2004-12-18 Martin Baulig <martin@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2004-12-18  Martin Baulig  <martin@ximian.com>
2
3         * class.c (inflate_generic_type): If we're inflating a generic
4         instance, set `ngclass->context->container = context->container';
5         ie. the container we inflated into.
6
7         * metadata.c (mono_metadata_parse_generic_param): Reflect above
8         inflate_generic_type() changes.
9
10 2004-12-17  Martin Baulig  <martin@ximian.com>
11
12         * class-internals.h
13         (MonoGenericClass): Replaced `MonoType *generic_type' with
14         `MonoClass *generic_class'.  Removed `dynamic_info'; if
15         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
16         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
17
18 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
19
20         * exception.c (mono_exception_from_token): New helper function.
21
22 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
23
24         * assembly.c (mono_assembly_load_with_partial_name): Call 
25         mono_assembly_loaded before invoking the preload hooks. Fixes
26         #70564.
27
28         * object-internals.h (MonoThread): Change culture_info and 
29         ui_culture_info into an array.
30
31         * threads.c: Cache culture info objects from more than one appdomain.
32
33         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
34         current UI culture.
35
36 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
37
38         * threads.h threads.c appdomain.c: Clear the culture_info field of
39         all threads during unloading if they point to an object in the dying
40         appdomain.
41
42 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
43
44         * culture-info.h (TextInfoEntry): New struct
45         * object-internals.h: sync with managed
46         * locales.c: fill the `text_info_data' field
47         * culture-info-tables.h: update
48
49 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
50
51         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
52         collector.
53
54 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
55
56         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
57         (ves_icall_ModuleBuilder_getMethodToken): Ditto
58
59 2004-12-12  Martin Baulig  <martin@ximian.com>
60
61         * mono-debug-debugger.c (write_type): If we're an enum and the
62         builtin types have already been initialized, call mono_class_init().
63
64 2004-12-11  Martin Baulig  <martin@ximian.com>
65
66         * metadata.c (mono_metadata_load_generic_params): Added
67         `MonoGenericContainer *parent_container' argument; automatically
68         compute `container->is_method'; pass the correct owner to
69         get_constraints().      
70
71         * reflection.c (compare_genericparam): Sort the GenericParam table
72         according to increasing owners. 
73
74 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
75
76         * profiler.c: allow disabling the default profiler.
77
78 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
79
80         * decimal.c, icall.c: allow disabling System.Decimal support.
81
82 2004-12-09  Marek Safar <marek.safar@seznam.cz>
83
84         * reflection.c: Add support for null attribute arguments.
85
86 2004-12-09  Martin Baulig  <martin@ximian.com>
87
88         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
89         names to get rid of compiler warnings.
90
91 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
92
93         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
94         mono_marshal_load_type_info (). Fixes #69625.
95         (mono_marshal_get_ptr_to_struct): Likewise.
96
97 2004-12-08  Martin Baulig  <martin@ximian.com>
98
99         * mono-debug.h: Bumped version number to 47.
100
101         * mono-debug-debugger.c
102         (mono_debugger_event_handler, mono_debugger_event): Take two
103         guint64 arguments insteed of a gpointer and a guint32.  
104
105 2004-12-08  Martin Baulig  <martin@ximian.com>
106
107         * debug-mono-symfile.h
108         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
109         `address' to `native_offset'.
110
111 2004-12-08  Martin Baulig  <martin@ximian.com>
112
113         * class.c (mono_class_create_from_typespec): Only inflate if we
114         either have `context->gclass' or `context->gmethod'.
115
116 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
117
118         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
119
120         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
121
122         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
123
124         * reflection.c (mono_assembly_get_object): Remove the workaround put
125         in for the release.
126         
127         * appdomain.c: Use the corlib_internal field from MonoAssembly.
128
129         * appdomain.c: Bump corlib version.
130
131         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
132         be visible in other appdomains.
133
134 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
135
136         * threads.c: Interlocked inc and dec for longs were messed up,
137         use a KISS based impl for this. Fixes 70234
138
139 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
140
141         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
142
143 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
144
145         * icall.c: fix to follow policy not to allow struct
146         arguments in icalls.
147
148 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
149
150         * process.c: make the patch that handles spaces in file paths work
151         on mono/windows too.
152
153 2004-12-06  Martin Baulig  <martin@ximian.com>
154
155         * class.c (mono_class_create_generic): Call
156         mono_class_setup_supertypes() if we're dynamic.
157         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
158
159 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
160
161         * object-internals.h: Add new fields to MonoThread.
162
163         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
164
165         * icall.c threads-types.h threads.c: Add new icalls.
166
167         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
168
169         * object-internals.h (MonoReflectionAssembly): Sync object layout with
170         managed side.
171
172         * appdomain.c: Bump corlib version.
173
174         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
175         internal assemblies. Fixes #69181.
176
177 2004-12-05  Martin Baulig  <martin@ximian.com>
178
179         * class.c (mono_class_inflate_generic_signature): Make this a
180         no-op if `context' is NULL or we don't have any type parameters;
181         also copy `sentinelpos'.        
182
183 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
184
185         * image.c: Add unbox_wrapper_cache.
186
187         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
188
189         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
190         function generator.
191         
192         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
193         Fixes #70173.
194
195         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
196         
197 2004-12-04  Martin Baulig  <martin@ximian.com>
198
199         * loader.c (mono_method_get_signature_full): New public function;
200         like mono_method_get_signature(), but with an additional
201         `MonoGenericContext *' argument.
202
203         * class.c (mono_class_inflate_generic_signature): Formerly known
204         as inflate_generic_signature(); make this public.
205
206 2004-12-04  Martin Baulig  <martin@ximian.com>
207
208         * metadata.c
209         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
210         instead of a `MonoGenericContainer *'.  
211         (mono_metadata_parse_array_full): Likewise.
212         (mono_metadata_parse_signature_full): Likewise.
213         (mono_metadata_parse_method_signature_full): Likewise.
214         (mono_metadata_parse_generic_inst): Likewise.
215         (mono_metadata_parse_generic_param): Likewise.
216         (mono_metadata_parse_mh_full): Likewise.
217         (mono_type_create_from_typespec_full): Likewise.
218
219 2004-12-03  Martin Baulig  <martin@ximian.com>
220
221         * class-internals.h (MonoGenericContainer): Replaced the
222         `MonoGenericContext * pointer with a `MonoGenericContext'
223         structure and made it the first element.
224
225 2004-12-03  Martin Baulig  <martin@ximian.com>
226
227         * class.c
228         (inflate_generic_type): Set the `context->container' when creating
229         a new MonoGenericContext.
230         (mono_class_inflate_generic_method): Likewise.
231         (mono_class_create_from_typespec): Just use `context->container'
232         to get the container.
233
234         * loader.c (method_from_methodspec): Set `context->parent' from
235         `context->container' - and if that's a method container, use its
236         parent.  Also set the `context->container' when creating a new
237         MonoGenericContext.
238         (mono_get_method_from_token): Use just `context->container' to get
239         the container.
240
241         * metadata.c (do_mono_metadata_parse_generic_class): Also set
242         `gclass->context->container'.
243
244         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
245         the `context->container' when creating a new MonoGenericContext.
246
247 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
248
249         * reflection.c (compare_genericparam): Sort params with identical
250         owner by their number. Fixes gen-111 on sparc.
251
252 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
253
254         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
255         around the domain changes.
256
257         * appdomain.c (mono_domain_unload): Handle the case when the thread
258         calling Unload is itself being aborted during unloading. Fixes #70022.
259
260         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
261
262         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
263         checkpoint_func as an icall so it gets a wrapper.
264         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
265         in the cross-appdomain wrappers too.
266
267         * threads.c (mono_thread_has_appdomain_ref): Make this public.
268
269         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
270
271         * reflection.c: Fix some memory leaks.
272         
273 2004-12-02  Martin Baulig  <martin@ximian.com>
274
275         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
276
277         * metadata.c (generic_class_cache): New static hashtable.
278         (mono_metadata_lookup_generic_class): New public method.
279
280 2004-12-02  Martin Baulig  <martin@ximian.com>
281
282         * class.c (mono_class_create_from_typedef): Call
283         mono_class_setup_parent() and mono_class_create_mono_type() before
284         parsing the interfaces.
285
286 2004-12-02  Martin Baulig  <martin@ximian.com>
287
288         * metadata.c (generic_inst_cache): New static hashtable.
289         (mono_metadata_lookup_generic_inst): New public function.
290         (mono_metadata_inflate_generic_inst): New public function.
291         (mono_metadata_parse_generic_inst): New public function.
292         (do_mono_metadata_parse_generic_class): Use the new
293         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
294         since this'll also use the cache.
295
296         * reflection.c (mono_reflection_bind_generic_method_parameters):
297         Use mono_metadata_lookup_generic_inst() to use the new cache.
298
299         * class.c (inflate_mono_type): Use
300         mono_metadata_inflate_generic_inst() to inflate a generic
301         instance; this'll also use the new cache.
302
303         * loader.c (method_from_methodspec): Use
304         mono_metadata_parse_generic_inst() and
305         mono_metadata_inflate_generic_inst() rather than parsing it
306         manually, so we can use the new cache.
307
308 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
309
310         * threads.c (wait_for_tids): Do not incorrectly free threads when 
311         the wait times out.
312
313 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
314
315         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
316         iter->args based on whether parameters are passed in registers (i.e.
317         MONO_ARCH_REGPARMS is defined)
318
319 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
320
321         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
322         the exception message. Fixes #70070.
323         (method_from_methodspec): Fix warnings.
324
325 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
326
327         * process.c: (complete_path) return the path quoted
328
329 2004-12-01  Martin Baulig  <martin@ximian.com>
330
331         * class-internals.h (MonoGenericInst): New structure.
332         (MonoGenericClass): Replaced `type_argc', `type_argv' and
333         `is_open' with `MonoGenericInst *inst'.
334         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
335         `is_open' with `MonoGenericInst *inst'.
336
337 2004-11-30  Martin Baulig  <martin@ximian.com>
338
339         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
340
341         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
342         to `generic_class_cache'.
343
344         * metadata.c
345         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
346         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
347         (mono_generic_inst_is_valuetype): Renamed to
348         mono_generic_class_is_valuetype().
349
350         * class-internals.h
351         (MonoGenericInst): Renamed to MonoGenericClass.
352         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
353         (MonoClass): Renamed `generic_inst' to `generic_class'.
354         (MonoGenericContext): Renamed `ginst' to `gclass'.
355
356         * object-internals.h
357         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
358
359         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
360         mono_reflection_generic_class_initialize().
361
362         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
363         now known as "System.Reflection.MonoGenericClass".
364         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
365
366 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
367
368         * class-internals.h: Added a flag field to MonoClass to cache the
369         declarative security attributes actions associated with the class.
370         * domain-internals.h: Added booleans to MonoJitInfo to cache the
371         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
372         applicable to the JITted method.
373         * reflection.c|h: Added functions to extract (as flags) which security
374         actions are available (declaratively) for a method, class or assembly.
375         * metadata.c|h: Added functions to search the declarative security
376         table in the metadata.
377         
378 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
379
380         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
381         EXPORTEDTYPES are already in the class name cache, so there is no
382         need to add extra code here to look at them. Just removes a bit of
383         cruft.
384
385         (ves_icall_System_Environment_get_TickCount): No need for #if
386         WINDOWS. We already have the code in io-layer.
387
388 2004-11-28  Martin Baulig  <martin@ximian.com>
389
390         * loader.c
391         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
392         Fixes gen-112.cs.
393
394 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
395
396         * assembly.c (do_mono_assembly_open): Instead of having a
397         conditional WITH_BUNDLE, incorporate support for bundles here, by
398         having a global `bundles' variable holding a pointer to the actual
399         bundles. 
400
401         (mono_register_bundled_assemblies): New API call used by the
402         bundle code. 
403
404         See mkbundle.1 for details.
405         
406 2004-11-27  Martin Baulig  <martin@ximian.com>
407
408         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
409         the vtable for generic methods.
410
411 2004-11-26  Martin Baulig  <martin@ximian.com>
412
413         * metadata.c
414         (mono_metadata_generic_method_hash): New public function.
415         (mono_metadata_generic_method_equal): Likewise.
416
417         * class-internals.h
418         (MonoGenericContainer): Added `GHashTable *method_hash'.
419
420         * reflection.c (ReflectionMethodBuilder): Added
421         `MonoGenericContainer *generic_container'.
422         (reflection_methodbuilder_to_mono_method): Don't create a new
423         MonoGenericContainer each time we're called.
424         (mono_reflection_bind_generic_method_parameters): Use
425         `container->method_hash' to cache the results so we don't create a
426         different method if we're called several times with the same
427         arguments.
428
429         * loader.c (method_from_methodspec): Use the new
430         `container->method_hash' here, too.
431
432 2004-11-26  Martin Baulig  <martin@ximian.com>
433
434         * class.c (inflate_generic_signature): Correctly compute
435         `res->has_type_parameters'.
436         (mono_class_vtable): Use the `has_type_parameters' flag to
437         determine whether we're a generic method.
438
439         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
440
441 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
442
443         * object.c (mono_runtime_run_main): Fix a small memory leak.
444
445 2004-11-25  Martin Baulig  <martin@ximian.com>
446
447         * class.c (set_generic_param_owner): Fixed the loop.
448
449 2004-11-25  Martin Baulig  <martin@ximian.com>
450
451         * object.c (mono_class_vtable): Don't create any JIT wrappers for
452         generic methods.
453
454 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
455
456         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
457         names. Fixes #69787.
458
459 2004-11-24  Martin Baulig  <martin@ximian.com>
460
461         * class.c (mono_class_create_generic_2): If we don't have a
462         `ginst->parent', inflate `gklass->parent' to get our parent.
463
464 2004-11-24  Martin Baulig  <martin@ximian.com>
465
466         * reflection.c (compare_genericparam): Correctly sort the
467         GenericParam table; fixes #69779.
468
469 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
470
471         * reflection.c: When writing a PE file, don't create a huge
472         buffer in memory. Just write the arrays we have to the file.
473         This reduces memory usage.
474
475         * metadata-internals.h: MonoDynamicStream pefile is no longer used
476         globally.
477
478 2004-11-17  Martin Baulig  <martin@ximian.com>
479
480         * class.c (mono_class_init): Don't setup `class->parent' for
481         dynamic instances; moved this to mono_class_generic_2().
482         (mono_class_create_generic): Also set `klass->inited' for dynamic
483         generic instances.
484         (mono_class_create_generic_2): Don't do anything for dynamic
485         generic instances.  Set `klass->parent' here and also call
486         mono_class_setup_parent() here. 
487
488         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
489         `MonoType *parent' argument; set `ginst->parent' before calling
490         mono_class_create_generic_2(), so we set the correct parent.
491
492 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
493
494         * reflection.c: allow getting attributes from ModuleBuilder
495         (used by ikvm).
496
497 2004-11-17  Martin Baulig  <martin@ximian.com>
498
499         * class.c (mono_class_create_from_typedef): If a type parameter is
500         inherited from an outer class, set its owner to that class.
501
502 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
503
504         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
505           for (int*) written size. This fixes bug #69592.
506
507 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
508
509         * icall.c: Added IsAuthenticodePresnet internal call.
510         * image.c|h: New function that check a MonoImage for an Authenticode
511         signature in the certificate PE data directory.
512         * security.c|h: New internal call to ask the runtime if an 
513         Authenticode signature seems referenced in the PE header.
514
515 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
516
517         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
518
519         * reflection.c (mono_image_create_pefile): Free the assembly streams
520         after writing out the assembly file.
521
522         * object.c (mono_runtime_run_main): Fix small memory leak.
523
524         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
525         property access modifiers. Fixes #69389.
526
527 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
528
529         * domain.c, object.c, object-internals.h, domain-internals.h,
530         object.h, marshal.c: keep dynamic code info per domain.
531
532 2004-11-15  Martin Baulig  <martin@ximian.com>
533
534         * class.c (mono_type_get_name_recurse): Put type arguments in
535         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
536         see bug #68387.
537
538 2004-11-15  Martin Baulig  <martin@ximian.com>
539
540         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
541         (mono_class_setup_vtable): When computing `the_cname' for a
542         generic instance, don't include the namespace since we'd otherwise
543         add it twice.
544
545 2004-11-15  Martin Baulig  <martin@ximian.com>
546
547         * class.c (mono_class_create_generic): Changed return type to void.
548         (mono_class_create_generic_2): New public function; setup
549         `class->method', `class->field' and `class->interfaces' here
550         instead of in mono_class_init().
551
552         * class.h (mono_class_create_generic): Moved to class-internals.h.
553
554 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
555
556         * reflection.c (mono_image_create_pefile): take a file HANDLE.
557         rather than writing to memory, write to this file. Right now,
558         we are just writting into a buffer, and copying that. However
559         we can avoid the buffer later.
560
561         (mono_dynamic_stream_reset): new function
562
563         * icall.c, object-internals.h: update for the above.
564
565 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
566
567         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
568         have been using gc'd memory. First it is slower, unlikely
569         the comment in the source code said, secondly, it increases
570         our footprint to do it in the gc.
571
572         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
573         the method so that it does not have to copy to managed code.
574
575 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
576
577         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
578
579 2004-11-12  Martin Baulig  <martin@localhost>
580
581         * reflection.c (mono_image_create_token): Allow generic method
582         definitions here, since they may appear in an `.override'; see
583         gen-98/gen-99 for an example.
584
585 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
586
587         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
588         #69365.
589
590         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
591         descriptive.
592
593 2004-11-11  Martin Baulig  <martin@ximian.com>
594
595         * class.c (mono_class_setup_vtable): In an explicit interface
596         implementation, the method name now includes the arity.
597
598 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
599
600         * object.c (mono_array_full_copy): Fix warning.
601
602 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
603
604         * appdomain.c: Removed look_for_method_by_name(). Use the new method
605         mono_class_get_method_from_name() instead.
606         
607         * class-internals.h: Added two new types of wrappers. 
608         Added MonoRemotingTarget enum. Added new trampoline function type, which
609         takes an additional MonoRemotingTarget value as parameter, so it is
610         possible to request a trampoline for a specific target.
611         
612         * class.c: Added new mono_class_get_method_from_name() method.
613         
614         * class.h: In MonoRemoteClass, we can have now to vtables, one for
615         general remoting sinks and one specific for cross domain calls.
616         
617         * debug-helpers.c: Added new wrapper names.
618         
619         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
620         of a remote class.
621         
622         * image.c: Porperly delete value objects form the remoting invoke hashtable.
623         
624         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
625         with several other methods (mono_marshal_get_xappdomain_dispatch,
626         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
627         and others) can generate a fast remoting wrapper for cross domain calls.
628         More information can be found in docs/remoting.
629         Other changes: Removed mono_find_method_by_name, and used
630         mono_class_get_method_from_name instead.
631         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
632         is stored in the remoting invoke hashtable.
633         
634         * marshal.h: published the new method for getting the xdomain wrapper,
635         and also added a method for getting the adequate wrapper for a given
636         method and target.
637         
638         * object-internals.h, object.c: Added a couple of methods for capying and
639         cloning arrays.
640         Modified mono_install_remoting_trampoline, which takes the new remoting
641         trampoline that has a remoting target as parameter.
642         mono_class_proxy_vtable now also takes a remoting target as parameter, and
643         will return the most suitable vtable for the target.
644         Added mono_remote_class_vtable, which returns the vtable of a remote class
645         (which can be the normal remoting vtable or the xdomain vtable).
646         
647         * threads.c: the xdomain invoke and dispatch wrappers must also be
648         protected against interruptions.
649
650 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
651
652         * icall.c: use memmove in BlockCopyInternal when the source and
653         destination arrays are the same.
654
655 2004-11-09  Martin Baulig  <martin@ximian.com>
656
657         * class-internals.h (MonoGenericContainer): Removed `method' and
658         `signature', replaced them with `is_method' and `is_signature'
659         flags.  Added `context'.
660
661         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
662         instead of a `MonoGenericContainer *'.
663
664         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
665         for dynamic type parameters.
666         (mono_metadata_load_generic_params): Setup `container->context'.
667
668         * reflection.c (mono_reflection_setup_generic_class): Setup
669         `tb->generic_container->context'.
670         (do_mono_reflection_bind_generic_parameters): Use
671         mono_class_inflate_generic_type() to correctly inflate types,
672         rather than using our own hack just for MONO_TYPE_VAR.
673
674 2004-11-09  Martin Baulig  <martin@ximian.com>
675
676         * class.c (mono_class_inflate_generic_method): Small fix; don't
677         crash here.
678
679         * icall.c
680         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
681         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
682         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
683         (ves_icall_Type_BindGenericParameters): Likewise.
684         (ves_icall_Type_get_IsGenericInstance): Likewise.
685         (ves_icall_Type_GetGenericParameterPosition): Likewise.
686         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
687         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
688         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
689
690 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
691
692         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
693         assembly versions and public key tokens. Fixes #69113.
694
695 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
696
697         * metadata.c: fix bug introduced with the type cache changes
698         on 2004-11-06.
699
700 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
701
702         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
703         the MonoClass pointer instead of the token in exception clauses.
704         * reflection.c: updates for the above and make the code not depend
705         on the structure of MonoExceptionClause.
706
707 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
708
709         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
710         Add support for dynamic assemblies. Fixes #69114.
711
712         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
713
714 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
715
716         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
717         since most only those methods use it. the code member of
718         MonoMethodPInvoke was dead, so that can be removed too. Also,
719         remove inline_count (again, not used), and move slot so that it
720         can share bits with some other flags. This saves 8 bytes in the
721         structure and gives us about 50 kb back for mcs helloworld.cs
722
723         * *.[ch]: Do naming changes for the above.
724
725         * loader.c (mono_method_get_header): Lazily init the header
726         on first access.
727         (mono_get_method_from_token): don't init the header here
728         (mono_free_method): the header may never be allocated
729
730         Overall, this saves 150 kb of unmanaged allocations
731         for mcs helloworld.cs. That accounts for 10% of the unmanaged
732         memory at runtime.
733         
734         * loader.c, loader.h (mono_method_get_header): new accessor.
735
736         * *.[ch]: use the above method. Prepares us to lazily load
737         the header.
738
739         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
740         three warnings, which are actual bugs (see 69206).
741
742         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
743         unused. Saves a cool 4 bytes / method.
744
745 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
746
747         * metadata.c (builtin_types): Add types for System.Object here.
748         (mono_metadata_parse_type_full): Cache MonoType*'s that are
749         for a class or valuetype from klass->this_arg or klass->byval_arg.
750
751         On mcs for a hello world, this gets us down from 21836 MonoType's
752         to 14560.
753
754         (mono_metadata_free_type): Account for the above change.
755
756 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
757
758         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
759         exception instead of asserting if name is null.
760         (ves_icall_System_AppDomain_GetData): Ditto.
761
762 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
763
764         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
765         EnumBuilder.
766
767         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
768         Return NULL when the domain does not have entry_assembly set.
769
770         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
771         Add a 'resource_modules' argument.
772         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
773
774         * reflection.c (mono_reflection_create_runtime_class): Move setting
775         of wastypebuilder here, so mono_get_type_object () returns a MonoType
776         for enums too.
777
778         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
779         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
780         Throw an ArgumentNullException if 'ptr' is null.
781
782         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
783         assemblies here. Fixes #69020.
784
785 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
786
787         * reflection.c (build_compressed_metadata): Fix the previous patch for
788         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
789         the stack.
790
791 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
792
793         * assembly.c (mono_assembly_names_equal): Allow a match if one of
794         the cultures is false. Fixes #69090.
795
796         * reflection.c (build_compressed_metadata): Fix invalid memory read 
797         detected by valgrind.
798         
799         * reflection.c (mono_reflection_get_type): Avoid triggering a 
800         TypeResolve multiple times for the same type. Fixes #65577.
801
802 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
803
804         * marshal.c: Avoid using ldftn to call managed functions. It is
805         much slower than just a call.
806
807         * reflection.c (mono_module_get_object): free the basename we
808         allocate here from glib.
809         
810         * reflection.c (ensure_runtime_vtable): make sure to free
811         overrides.  Also, we were allocating an array of MonoMethod not an
812         array of MonoMethod*.
813
814         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
815
816         * image.c (mono_image_close): free image->guid here.
817
818 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
819
820         * reflection.c: Fix some spec conformance issues with the PE file
821         structures so mcs compiled apps run on the Net 2.0 beta.
822
823 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
824
825         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
826         Implement this. Fixes #67264.
827
828         * debug-helpers.h debug-helpers.c marshal.c: Move 
829         mono_find_method_by_name to debug-helpers.c.
830
831 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
832
833         * object.c (mono_release_type_locks): type_initialization_hash is
834         a GHashTable.
835
836         * reflection.c object.c object-internals.h: Fix warnings.
837
838         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
839         without accessors. Fixes #61561.
840
841         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
842         application base from the root domain if not set. Fixes #65641.
843         (mono_runtime_init): Fix warning.
844
845 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
846
847         * appdomain.c: call mono_thread_pool_init.
848         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
849         of worker threads based on the number of CPUs and the environment
850         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
851         for non-windows (windows) systems.
852
853 2004-10-27  Chris Toshok  <toshok@ximian.com>
854
855         * mono-debug-debugger.c (write_class): don't call mono_class_init
856         here, as even with the check for (!klass->init_pending), we get
857         into a situation where we're hitting cycles in class
858         initialization.  Fixes #68816.
859
860 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
861
862         * image.c: Avoid overwriting values in the loaded_images_hash when an
863         assembly is loaded multiple times. Fixes #61152.
864
865         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
866         so multiple satellite assemblies for the same name can be loaded.
867         Fixes #68259.
868
869         * mono_domain_assembly_preload: Actually return the loaded assembly, 
870         not NULL.
871
872         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
873         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
874
875         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
876         pending finalizers are not invoked after the appdomain has been 
877         unloaded. Fixes #67862.
878
879 2004-10-22  Martin Baulig  <martin@ximian.com>
880
881         * mono-debug-debugger.c
882         (mono_debugger_runtime_invoke): Don't box valuetypes.
883
884 2004-10-22  Chris Toshok  <toshok@ximian.com>
885
886         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
887         don't hide private methods.
888
889 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
890
891         * icall.c: Allows the runtime to "share" (when known) the public key
892         token of an assembly. This avoid the need to recalculate the token 
893         (from the public key) in managed code.
894
895 2004-10-21  Chris Toshok  <toshok@ximian.com>
896
897         * debug-helpers.c (append_class_name): argh, revert last patch.
898         
899 2004-10-21  Chris Toshok  <toshok@ximian.com>
900
901         * debug-helpers.c (append_class_name): use '+' as the delimiter,
902         not '/', so that it matches what the debugger uses to look up
903         methods.
904
905 2004-10-21  Martin Baulig  <martin@ximian.com>
906
907         * mono-debug-debugger.c (mono_debugger_throw_exception): New
908         public method; this is called each time an exception is thrown and
909         allows the debugger to use exception catch points.
910
911 2004-10-21  Martin Baulig  <martin@ximian.com>
912
913         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
914         the stack pointer and the exception object in some struct and pass
915         that to the debugger.
916
917 2004-10-21  Chris Toshok  <toshok@ximian.com>
918
919         * mono-debug-debugger.c (do_write_class): add instance/static
920         event support.  We don't expose "raise" or "other" yet.
921         (event_is_static): new method.
922
923 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
924
925         * mono-debug-debugger.c
926         (mono_debugger_handle_exception): Remove
927         bogus return value for fussy compilers.
928
929 2004-10-20  Martin Baulig  <martin@ximian.com>
930
931         * mono-debug-debugger.c
932         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
933         (mono_debugger_handled_exception): Likewise.
934
935 2004-10-20  Martin Baulig  <martin@ximian.com>
936
937         * mono-debug-debugger.h (MonoDebuggerEvent): Added
938         MONO_DEBUGGER_EVENT_EXCEPTION.
939
940         * mono-debug-debugger.c (mono_debugger_handle_exception): New
941         public function to send the debugger a notification for an
942         exception and inform it about a catch/finally clause.
943
944 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
945
946         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
947         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
948         fix 2.95 build. 
949
950         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
951
952 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
953
954         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
955         marshalled as [In,Out]. Fixes #58325.
956
957 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
958
959         * reflection.c (mono_method_body_get_object): Implement some fields.
960
961 2004-10-12  Martin Baulig  <martin@ximian.com>
962
963         * reflection.c (mono_reflection_bind_generic_parameters): Small
964         fix, correctly retrieve our parent from a generic instance.
965
966 2004-10-12  Martin Baulig  <martin@ximian.com>
967
968         * metadata.c (mono_metadata_generic_param_equal): We always have
969         an owner.
970
971         * class.c
972         (mono_class_from_generic_parameter): We need to have an owner.
973         (my_mono_class_from_generic_parameter): Likewise.
974
975         * reflection.c (mono_reflection_setup_generic_class): Renamed to
976         mono_reflection_create_generic_class() and added a new
977         mono_reflection_setup_generic_class().  
978         (mono_reflection_initialize_generic_param): If we're a nested
979         generic type and inherited from the containing class, set our
980         owner to the outer class.
981
982 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
983
984         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
985
986         * reflection.c (mono_method_body_get_object): New function to create
987         a MethodBody object.
988
989         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
990
991 2004-10-11  Martin Baulig  <martin@ximian.com>
992
993         * metadata.c (_mono_metadata_type_equal): Renamed to
994         do_mono_metadata_type_equal() and made static.
995
996 2004-10-11  Martin Baulig  <martin@ximian.com>
997
998         * appdomain.c: Bump corlib version number to 28.
999
1000 2004-10-10  Martin Baulig  <martin@ximian.com>
1001
1002         * class-internals.h
1003         (MonoGenericInst): Added `MonoGenericContainer *container'.
1004         (MonoGenericMethod): Likewise.
1005         (MonoGenericContext): Likewise.
1006         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1007
1008         * metadata.c
1009         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1010         (do_mono_metadata_parse_generic_inst): Likewise.
1011         (mono_metadata_parse_type_full): New public method.  This is the actual
1012         mono_metadata_parse_type() implementation - with an additional
1013         `MonoGenericContainer *' argument.
1014         (mono_metadata_parse_array_full): Likewise.
1015         (mono_metadata_parse_signature_full): Likewise.
1016         (mono_metadata_parse_method_signature_full): Likewise.
1017         (mono_metadata_parse_mh_full): Likewise.
1018         (mono_type_create_from_typespec): Likewise.
1019         (mono_metadata_interfaces_from_typedef_full): New public method;
1020         this is similar to the other _full() methods, but we take a
1021         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1022         (mono_metadata_parse_generic_param): Take an additional
1023         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1024         from that container.
1025         (mono_metadata_generic_param_equal): New static method to compare
1026         two type parameters.
1027         (_mono_metadata_type_equal): New static method; takes an
1028         additional `gboolean signature_only' argument - if true, we don't
1029         compare the owners of generic parameters.
1030         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1031         with a TRUE argument - do a signature-only comparision.
1032
1033         * loader.c: Use the new _full() methods and pass the
1034         MonoGenericContainer to them.
1035
1036         * object-internals.h (MonoReflectionTypeBuilder): Added
1037         `MonoGenericContainer *generic_container' field.
1038         (MonoReflectionMethodBuilder): Likewise.
1039
1040 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1041
1042         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1043         case initial images of dynamic assemblies.
1044
1045         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1046
1047         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1048
1049         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1050         length of event->other array.
1051         (typebuilder_setup_events): Ditto.
1052
1053         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1054         'assembly_by_name' and add an 'assemblies' list.
1055
1056         * assembly.h assembly.c: Add a new search hook for determining whenever
1057         an assembly is already loaded. Use this instead of searching in the
1058         loaded_assemblies list.
1059
1060         * domain.c appdomain.c: Implement the new search hook so loaded 
1061         assemblies are now scoped by appdomain. Fixes #67727.
1062
1063 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1064
1065         * threads.c (mono_thread_attach): Initialize synch_lock field so
1066         mono_thread_detach works again.
1067
1068         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1069         'lib' too. Fixes #63130.
1070
1071 2004-10-06  Jackson Harper  <jackson@ximian.com>
1072
1073         * culture-info-tables.h: regenerated.
1074
1075 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1076
1077         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1078         implemented by other interfaces in the result. Fixes #65764.
1079         
1080         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1081         Handle unloadable modules without crashing.
1082
1083         * image.c (load_modules): Revert the previous patch since modules must
1084         have a fixed index inside the array.
1085         
1086         * image.c (load_modules): Don't include native modules in the modules
1087         array.
1088
1089 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1090
1091         * reflection.h: Add param_defaults field.
1092
1093         * reflection.c: Add support for parameter defaults in dynamic methods.
1094         Fixes #64595.
1095
1096         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1097         an empty string when a type has no namespace. Fixes #64230.
1098
1099 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1100
1101         * tabledefs.h: Added "internal" security actions to support non-CAS
1102         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1103         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1104
1105 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1106
1107         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1108         constructor of abstract class. Fixes #61689.
1109
1110 2004-10-04  Martin Baulig  <martin@ximian.com>
1111
1112         * class-internals.h (MonoGenericContainer): New type.
1113         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1114         `MonoGenericContainer *generic_container'.
1115         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1116         `MonoGenericContainer *generic_container'.
1117
1118         * metadata.c (mono_metadata_load_generic_params): Return a
1119         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1120         removed the `num' argument.
1121
1122 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1123
1124         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1125         for dynamic images.
1126
1127         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1128         machine fields.
1129
1130         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1131
1132         * reflection.c: Save pe_kind and machine values into the generated
1133         image file.
1134
1135         * appdomain.c: Bump corlib version number.
1136
1137         * object-internals.h: Reorganize layout of LocalBuilder.
1138
1139         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1140         New helper function.
1141
1142         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1143         created MonoType for dynamic types. Fixes #66180.
1144
1145 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1146
1147         * threadpool.c: the ares hashtable needs a critical section around it.
1148         this prevents some nasty segfaults
1149
1150 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1151
1152         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1153         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1154         bug 67324).
1155         
1156 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1157
1158         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1159         
1160 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1161
1162         * image.c: Always canonicalize image file names, to avoid loading
1163         the same assembly twice when referenced using a relative path.
1164
1165 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1166
1167         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1168
1169         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1170
1171         * marshal.c: Fix warnings.
1172
1173 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1174
1175         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1176         attempting to marshal the delegate_trampoline as the method_addr.
1177         This patch has a static hashtable of marshalled delegates so that 
1178         we can map delegate_trampoline addresses back to delegates.  This
1179         allows a delegate passed to managed code to be passed back into native
1180         code.  Fixes #67039
1181
1182 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1183
1184         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1185
1186         * reflection.c (method_encode_code): Align method headers properly.
1187         Fixes #66025.
1188
1189 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1190
1191         * marshal.c: In the runtime invoke wrapper, reset the abort
1192         exception if it is cached. This avoids the automatic rethrowal of 
1193         the exception after the catch of the wrapper. Also check for pending
1194         interruptions before calling the managed method. This is done using
1195         the new method emit_thread_force_interrupt_checkpoint, since the
1196         normal checkpoint method is ignored when running the invoke wrapper.
1197         * object.c: If the abort exception is rethrown, set the abort_exc
1198         field of the thread, so it will be rethrown aftere every catch.
1199         * threadpool.c: Only run an interruption checkpoint if what has been
1200         requested is a stop of the thread (aborts will be ignored).
1201         * threads.c: By default, a thread will now never be interrumped while
1202         running the runtime invoke wrapper (this ensures that runtime_invoke
1203         will always return to the caller if an exception pointer is provided).
1204         There is a new special method mono_thread_force_interruption_checkpoint()
1205         to force an interruption checkpoint even if running a protected
1206         wrapper, which is used by the same runtime invoke wrapper to do a check
1207         at a safe point.
1208
1209 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1210
1211         * object.c, object-internals.h: Implemented mono_release_type_locks,
1212         which releases the cctor locks held by a thread.
1213         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1214         by a thread. Added mono_thread_exit() method to be used to safely stop
1215         a thread.
1216
1217 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1218
1219         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1220         Move null check before dereference.  Avoid indexing beyond the end
1221         of the 'modules' array.
1222
1223 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1224
1225         * metadata-internals.h (MonoImage): Add module_count field.
1226         * image.c (load_modules): Set image->module_count.
1227         (mono_image_load_file_for_image): Use image->module_count.
1228         * reflection.c (mono_image_load_module): Append to image->modules array 
1229         of dynamic assembly.
1230         (mono_module_get_object): Fix loop to actually increment index.
1231         Use image->module_count.
1232         * assembly.c (mono_assembly_load_references): Use image->module_count.
1233         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1234         Likewise.
1235
1236 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1237
1238         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1239         Avoid assert on generic types.
1240
1241 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1242
1243         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1244
1245         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1246
1247         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1248         function to convert a MarshalSpec structure to its managed counterpart.
1249
1250         * reflection.c: Fix warnings.
1251         
1252         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1253         field.
1254
1255         * icall.c (mono_create_icall_signature): Fix build.
1256
1257 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1258
1259         * icall.c: Add MakePointType icall.
1260
1261         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1262         warnings.
1263
1264 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1265
1266         * threadpool.c: reuse allocated slots in the queue.
1267
1268 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1269
1270         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1271
1272         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1273
1274         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1275         previous change.
1276
1277         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1278         ThrowOnUnmappableChar.
1279
1280         * icall.c (ves_icall_Type_GetPacking): New icall.
1281
1282 2004-09-24  Martin Baulig  <martin@ximian.com>
1283
1284         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1285
1286 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1287
1288         * appdomain.c:
1289         (mono_domain_set): allow setting a domain that is being unloaded.
1290         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1291         being unloaded.
1292
1293 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1294
1295         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1296         the GetCustomAttributes icall.
1297
1298 2004-09-23  Martin Baulig  <martin@ximian.com>
1299
1300         * object-internals.h (MonoReflectionGenericParam): Replaced
1301         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1302         with `guint32 attrs'.
1303
1304 2004-09-23  Martin Baulig  <martin@ximian.com>
1305
1306         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1307
1308 2004-09-23  Martin Baulig  <martin@ximian.com>
1309
1310         * object-internals.h (GenericParameterAttributes): New enum.
1311
1312 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1313
1314         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1315         
1316         * class.c (init_events): Fill out event->other field.
1317
1318         * class.c: Fix warnings.
1319
1320         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1321
1322 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1323
1324         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1325         walk which doesn't supply the IL offset.
1326
1327 2004-09-22  Martin Baulig  <martin@ximian.com>
1328
1329         * reflection.c (mono_reflection_setup_internal_class): If we're
1330         System.ValueType, System.Object or System.Enum, set
1331         `klass->instance_size' and create the vtable.
1332         (mono_reflection_create_internal_class): If we're an enum type,
1333         get the base class from our current corlib.
1334
1335 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1336
1337         * reflection.h (MonoResolveTokenError): New type.
1338
1339         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1340         icall.
1341
1342         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1343
1344 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1345
1346         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1347         Support also calling constructors, but only for already allocated objects.
1348
1349 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1350
1351         * reflection.c (type_get_qualified_name): If the klass is null
1352         return the typename to avoid a NullRefEx.
1353         (encode_cattr_value): Get the qualified name of the boxed type,
1354         not the underlying enumtype.  Fixes #62984.
1355
1356 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1357
1358         * marshal.c: Fix problems with previous checkin.
1359
1360 2004-09-21    <vargaz@freemail.hu>
1361
1362         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1363         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1364
1365         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1366
1367 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1368
1369         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1370         should only return a type for pointers, arrays, and passbyref types.
1371         Fixes bug #63841.
1372
1373 2004-09-21  Martin Baulig  <martin@ximian.com>
1374
1375         * domain.c (mono_debugger_check_runtime_version): New public
1376         function.
1377
1378         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1379
1380 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1381
1382         * reflection.c: Added missing sort to the declarative security 
1383         attributes table. MS implementation stops seeing the attributes if the
1384         token number regress in the table (as shown by ildasm and permview).
1385
1386 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1387
1388         * object-internals.h (MonoReflectionModule): Add 'token' field.
1389         
1390         * reflection.c (mono_reflection_get_token): Add support for Module
1391         and Assembly.
1392         (mono_module_get_object): Set 'token' field.
1393         (mono_module_file_get_object): Set 'token' field.
1394
1395         * icall.c: Add new Assembly and Module icalls.
1396
1397         * appdomain.c: Bump corlib version.
1398
1399 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1400
1401         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1402         tokens of metadata objects.
1403
1404         * reflection.h reflection.c (mono_reflection_get_token): New function
1405         to obtain the token of a metadata object.
1406
1407         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1408
1409 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1410
1411         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1412         
1413         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1414
1415 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1416
1417         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1418         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1419         AssemblyBuilder to access the permissions set in the class lib.
1420         * reflection.c: Added security attributes encoding step in 
1421         mono_image_build_metadata.
1422         * tabledefs.h: Added new security actions defined in 2.0:
1423         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1424
1425 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1426
1427         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1428         macro parameter.
1429
1430 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1431  
1432         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1433           finalized. There where random SIGSEVs at program termination, when
1434           an object being finalized was trying to do a string comparison and
1435           the current culture was already finalized.
1436  
1437 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1438
1439         * threads.c: call thread_cleanup before finishing the thread if we get
1440         there.
1441
1442 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1443
1444         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1445         assemblies from the parent. Fixes #65665.
1446
1447 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1448
1449         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1450         modifiers.
1451
1452 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1453
1454         * reflection.h: add prototype for mono_get_dbnull_object
1455         * reflection.c: add prototypes for get_default_param_value_blobs 
1456         and mono_get_object_from_blob for fussier compilers
1457
1458 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1459  
1460         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1461         false deadlock checks in class initialization.
1462  
1463 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1464
1465         * image.c (mono_image_addref): Fix comment.
1466
1467         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1468         possible.
1469
1470 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1471
1472         * reflection.c (mono_param_get_objects): Modified to return
1473         ParameterInfo.DefaultValue object.
1474
1475         (get_default_param_value_blobs):
1476         (mono_get_object_from_blob):
1477         (mono_get_dbnull_object): New helper routines. 
1478
1479         * object.c (mono_get_constant_value_from_blob): New helper routine
1480         carved out from get_default_field_value ()
1481
1482         * object-internals.h (mono_get_constant_value_from_blob): Added
1483         function declaration.
1484
1485 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1486
1487         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1488         referenced assemblies. Fixes #62135.
1489
1490         * exception.h exception.c (mono_get_exception_file_not_found2): New
1491         helper function.
1492
1493 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1494
1495         * class.h class.c: Add mono_type_get_underlying_type ().
1496
1497 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1498
1499         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1500         Fix GetTypes() to support dynamically created assemblies.
1501
1502 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1503
1504         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1505         
1506         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1507         previous patch.
1508
1509         * reflection.h reflection.c loader.c: Allow dynamic construction of
1510         pinvoke methods. Fixes #65571.
1511         
1512         * reflection.c (mono_reflection_get_type): Revert previous change since
1513         it causes regressions.
1514
1515 2004-09-08  Martin Baulig  <martin@ximian.com>
1516
1517         * class.c (class_compute_field_layout): Don't call
1518         mono_class_layout_fields() for open generic instances.
1519
1520 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1521         * threads.c appdomain.c: fix typo in GC macro
1522
1523 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1524
1525         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1526         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1527
1528 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1529
1530         * image.c (mono_image_close): Applied patch from 
1531         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1532         assembly is loaded multiple times from data.
1533         
1534         * image.c (mono_image_open): Fix warning.
1535
1536 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1537
1538         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1539         once. Fixes #58334.
1540         
1541         * reflection.c (mono_reflection_create_runtime_class): Initialize
1542         klass->nested_classes. Fixes #61224.
1543
1544 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1545
1546         * threads.c: sched_yield() on exit, to allow threads to quit.
1547
1548 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1549
1550         * object.c (mono_unhandled_exception): Remove leftover debug code.
1551
1552 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1553
1554         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1555
1556 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1557
1558         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1559         
1560         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1561
1562 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1563
1564         * marshal.c (emit_marshal_array): Null terminate string arrays.
1565         
1566         * marshal.c (raise_auto_layout_exception): Fix warning.
1567
1568         * reflection.c (mono_param_get_objects): Initialize the default value
1569         with DBNull.Value, not null. Fixes #62123.
1570
1571 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1572
1573         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1574         throw an exception with a cute explanation.
1575
1576 2004-09-06  Dick Porter  <dick@ximian.com>
1577
1578         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1579         Close the new process's thread handle, as we don't use it.  The
1580         handle stays around forever otherwise.
1581
1582 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1583
1584         * object.c (arith_overflow): Fix warning.
1585
1586         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1587         calling conventions in method refs. Fixes #65352.
1588
1589         * reflection.c: Fix warnings.
1590
1591 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1592
1593         * icall.c: Add a new icall for Array.Clear
1594
1595 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1596
1597         * object.c: When allocating an array, we have to throw
1598         an overflow exception if any of the lengths are < 0.
1599
1600 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1601
1602         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1603         properly. Also move implementation of string array marshalling to 
1604         managed code. Fixes #42316.
1605
1606 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1607
1608         * assembly.c: provide more information when loading an assembly fails.
1609
1610 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1611
1612         * filewatcher.c: don't expect the development fam package to be
1613         installed.
1614
1615 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1616
1617         * marshal.c: Make a copy of the signature cookie since it will be
1618         freed by the caller.
1619         
1620         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1621
1622         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1623
1624         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1625         marshal specs.
1626
1627         * marshal.c: More refactoring.
1628         
1629         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1630         smaller functions.
1631
1632 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1633
1634         * object.c: In mono_message_invoke, fill the output parameter array after
1635           calling the managed method (it was done before the call). This fixes
1636           bug #59299.
1637
1638 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1639
1640         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1641         as well.
1642
1643 2004-09-02  Martin Baulig  <martin@ximian.com>
1644
1645         * class.c (mono_class_instance_size): Don't allow generic type
1646         definitions or open generic instances.
1647         (mono_class_array_element_size): If we're a value type, call
1648         mono_class_instance_size() on the original class.
1649
1650         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1651         handle generic instances.
1652
1653         * mono-debug-debugger.c (write_type): Handle generic instances
1654         like classes.
1655
1656 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1657
1658         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
1659         the allocation request fails. Fixes #65089.
1660
1661         * object.c (mono_runtime_free_method): Do not call mono_free_method.
1662         
1663         * object.c (mono_runtime_free_method): New function to free a dynamic
1664         method.
1665
1666         * marshal.c (mono_delegate_free_ftnptr): New function to free the
1667         delegate trampoline.
1668
1669         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
1670         with hasthis as dynamic,
1671
1672         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
1673
1674         * domain.c (mono_jit_info_table_remove): New function to remove an
1675         entry from the jit info table.
1676
1677         * class-internals.h (MonoMethod): Add 'dynamic' field.
1678
1679         * loader.c: Fix warnings.
1680
1681 2004-09-01  Martin Baulig  <martin@ximian.com>
1682
1683         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
1684         instead of mono_debugger_lock() because the latter one is a no-op
1685         unless running in the debugger.
1686
1687 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1688
1689         * class.c (class_compute_field_layout): Classes with auto-layout or
1690         reference fields are not blittable.
1691         
1692 2004-09-01  Dick Porter  <dick@ximian.com>
1693
1694         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
1695         mono_image_get_filename() to get the assembly location.
1696
1697         * icall.c:
1698         * metadata.h: Fix compile warnings
1699
1700 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1701
1702         * class.c (class_compute_field_layout): System.Object is blittable.
1703
1704         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
1705         as in/out. Fixes #59909.
1706
1707 2004-09-01  Martin Baulig  <martin@ximian.com>
1708
1709         * metadata.h (MONO_TYPE_ISREFERENCE): Call
1710         mono_metadata_generic_inst_is_valuetype() if we're a generic
1711         instance to check whether our underlying type is a reference type.
1712
1713 2004-09-01  Martin Baulig  <martin@ximian.com>
1714
1715         * metadata.c (mono_type_size): If we're a generic instance, call
1716         mono_class_value_size() for value types.
1717
1718 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
1719
1720         * marshal.c: Implement more custom marshalling functionality. Fixes
1721         #64915.
1722
1723 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1724
1725         * mono-debug.c, debug-mono-symfile.c: add some locking love.
1726
1727 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
1728
1729         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
1730
1731         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
1732
1733         * icall.c: Fix some warnings.
1734
1735         * threads.c (abort_appdomain_thread): Fix unref errors.
1736         (mono_thread_current): Fix THREAD_DEBUG define.
1737
1738 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
1739
1740         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
1741
1742         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
1743
1744 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
1745
1746         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
1747         string arrays.
1748
1749 2004-08-28  Martin Baulig  <martin@ximian.com>
1750
1751         * metadata.c
1752         (mono_metadata_generic_inst_is_valuetype): New public function.
1753
1754         * metadata.h (MONO_TYPE_ISSTRUCT): Call
1755         mono_metadata_generic_inst_is_valuetype() if we're a generic
1756         instance to check whether our underlying type is a valuetype.
1757
1758 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
1759
1760         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
1761         #63768.
1762
1763 2004-08-25  Martin Baulig  <martin@ximian.com>
1764
1765         * loader.c (mono_get_method_from_token): Abstract methods can also
1766         be generic and thus have type parameters.
1767
1768         * metadata-internals.h
1769         (MonoDynamicImage): Added `GPtrArray *gen_params'.
1770
1771         * reflection.c (mono_image_get_generic_param_info): Don't create a
1772         metadata row, just add an entry to the `gen_params' array.
1773         (build_compressed_metadata): Sort the `gen_params' array and then
1774         actually create the metadata.
1775
1776 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1777
1778         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
1779
1780 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
1781
1782         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
1783
1784 2004-08-24  Martin Baulig  <martin@ximian.com>
1785
1786         * class.cs (mono_class_is_subclass_of): Like an interface, a
1787         generic instance also derives from System.Object.
1788
1789 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
1790
1791         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
1792         custom modifiers to be in any order. Fixes #61990.
1793
1794 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
1795
1796         * object.c: Register mono_object_new_fast icall.
1797         
1798         * object.c (mono_class_get_allocation_ftn): Return to calling
1799         mono_object_new_fast, since it seems faster to compute the object 
1800         size in unmanaged code than passing it as a parameter.
1801
1802         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
1803
1804         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
1805         this function with Boehm as the oom handler, so we don't have to check
1806         the result of GC_malloc.
1807
1808         * object.c: Remove checks for oom.
1809
1810         * object.h object.c (mono_class_get_allocation_ftn): New function to
1811         return the icall which can be used to allocate an instance of a given
1812         class. 
1813
1814         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
1815
1816         * class-internals.h: Add 'enabled' field.
1817
1818 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
1819
1820         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
1821
1822 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
1823         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
1824         value 0x0010.
1825
1826 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
1827
1828         * appdomain.c: use the Tls function for appdomain too,
1829         at Zoltan's request. Actually return in mono_context_get
1830
1831         * appdomain.c, profiler.c, threads.c: use __thread
1832
1833 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
1834
1835         * appdomain.c threads.c: Call GC_CreateThread on windows.
1836
1837         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
1838         multiple libraries since this don't work on windows.
1839
1840 2004-08-18  Martin Baulig  <martin@ximian.com>
1841
1842         * class-internals.h
1843         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
1844         MonoMethodHeader.
1845
1846         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
1847         MonoMethodNormal since we also need it for abstract and interface
1848         methods.
1849
1850         * reflection.c
1851         (build_compressed_metadata): Sort the GenericParam table.
1852         (mono_image_create_token): Added `gboolean create_methodspec'
1853         argument; this is false when generating a MethodImpl token.
1854         (reflection_methodbuilder_to_mono_method): Abstract and interface
1855         methods may also have generic parameters.
1856
1857 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
1858
1859         * appdomain.c: thread local alloc
1860
1861 2004-08-17  Martin Baulig  <martin@ximian.com>
1862
1863         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
1864
1865         * icall.c
1866         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
1867         argument.
1868
1869         * class.c (mono_type_get_full_name): New public function.
1870         (mono_type_get_name): Don't include the type arguments.
1871
1872 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
1873
1874         * Makefile.am: Build static versions of libmetadata and libmonoruntime
1875         for inclusion into the mono executable.
1876
1877 2004-08-16  Martin Baulig  <martin@ximian.com>
1878
1879         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
1880         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
1881
1882 2004-08-14  Martin Baulig  <martin@ximian.com>
1883
1884         * class.c (dup_type): Also copy the `byref' field.
1885
1886 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
1887
1888         * reflection.c (create_dynamic_mono_image): Revert the last change 
1889         since it breaks bootstrap.
1890
1891 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
1892
1893         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
1894
1895         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
1896         not free them with g_free.
1897
1898 2004-08-11  Martin Baulig  <martin@ximian.com>
1899
1900         * reflection.c (mono_reflection_setup_internal_class): Also call
1901         mono_class_setup_mono_type() if we already have a `tb->type.type'.
1902
1903 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
1904
1905         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
1906         called during default (first) AppDomain creation. Keep track of
1907         Evidence when loading assemblies.
1908
1909 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
1910
1911         * opcodes.c, opcodes.h: reduce runtime relocations.
1912
1913 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
1914
1915         * culture-info.h, locales.c: fixes and chages to sue the new
1916         optimized format of the locale data.
1917         * culture-info-tables.h: regenerated.
1918
1919 2004-08-06  Geoff Norton <gnorton@customerdna.com>
1920         
1921         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
1922
1923 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
1924
1925         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
1926         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
1927         * domain-internals.h: icall declaration.
1928         * icall.c: icall registration.
1929         * object-internals.h: New fields in MonoAssembly for CAS.
1930
1931 2004-08-05  Duncan Mak  <duncan@ximian.com>
1932
1933         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
1934         CEE_LDELEM_ANY.
1935
1936 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
1937
1938         * reflection.c: fix to deal with object[] arrays in custom ctors
1939         (bug #62550).
1940
1941 2004-08-05  Martin Baulig  <martin@ximian.com>
1942
1943         * class.c (mono_class_array_element_size): Added support for
1944         generic instances and correctly handle "recursive" types.
1945
1946 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
1947
1948         * assembly.c: Fix warnings.
1949
1950 2004-08-04  Martin Baulig  <martin@ximian.com>
1951
1952         * class.c
1953         (mono_type_get_name_recurse): Added `gboolean include_arity'
1954         argument specifying whether or not we should include the generic
1955         arity in the type name.
1956         (_mono_type_get_name): New static function.
1957         (mono_class_setup_vtable): If we're a generic instance, don't
1958         include the generic arity in the names of explicit method
1959         implementations.        
1960
1961 2004-08-03  Martin Baulig  <martin@ximian.com>
1962
1963         * class.c (mono_type_get_name_recurse): Enclose the generic type
1964         arguments in `<', '>'.
1965
1966 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
1967
1968         * gc.c: make GC warning messages use the trace API, they are just
1969         noise to most of the users.
1970
1971 2004-08-03  Martin Baulig  <martin@ximian.com>
1972
1973         * debug-mono-symfile.c (read_string): Correctly read the string.
1974
1975 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
1976
1977         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
1978         
1979         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
1980         icalls.
1981         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
1982
1983 2004-07-30  Martin Baulig  <martin@ximian.com>
1984
1985         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
1986         Reflect latest symbol writer changes.   
1987
1988 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
1989
1990         * object.c: always create an object if null is passed
1991         to Invoke() where a valuetype is expected.
1992
1993 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
1994
1995         * marshal.c (mono_marshal_init): make managed
1996         signatures match native ones better for 64bits.
1997
1998 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1999
2000         * appdomain.c: hack to build correctly the private bin path on windows.
2001         Fixes bug #61991.
2002
2003 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2004
2005         * assembly.c: Load mscorlib from the correct framework directory
2006           (mono/<version>/mscorlib.dll).
2007         * appdomain.h: Added prototypes for new functions.
2008         * internals.h: Added some prototypes.
2009         * domain.c: When initializing the runtime, get from the executable and
2010           the configuration files the runtime version that the app supports.
2011           Added support methods for reading app.exe.config. Added list of versions
2012           supported by the JIT. Added two new methods: mono_init_from_assembly,
2013           which initializes the runtime and determines the required version from
2014           the provided exe file, and mono_init_version, which initializes
2015           the runtime using the provided version.
2016         * icall.c: Get machine.config from version-specific directory.
2017         * reflection.c: When generating an image, embed the version number
2018           of the current runtime.
2019
2020 2004-07-28  Dick Porter  <dick@ximian.com>
2021
2022         * socket-io.c
2023         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2024         returned sockaddr size before creating the remote address object.
2025         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2026         61608.
2027
2028 2004-07-28  Dick Porter  <dick@ximian.com>
2029
2030         * locales.c (string_invariant_compare_char): Fix invariant char
2031         compares between upper and lower cases.  Fixes bug 61458.
2032
2033 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2034         
2035         * marshal.c: actually cache stelem.ref wrappers.
2036         
2037 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2038
2039         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2040         sections and remove the mono_cli_rva_map () function.
2041
2042 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2043
2044         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2045         by Geoff Norton (<gnorton@customerdna.com>).
2046
2047 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2048
2049         * class.c: fix class loads for pointer types (typeof(int) !=
2050         typeof(int*)).
2051
2052 2004-07-27  Martin Baulig  <martin@ximian.com>
2053
2054         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2055         reading the debugging information from an external ".mdb" file.
2056
2057 2004-07-24  Martin Baulig  <martin@ximian.com>
2058
2059         * reflection.c (mono_image_get_type_info): Only write a class
2060         layout entry if we actually have a size or a packing size.
2061
2062 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2063
2064         * reflection.c (type_get_fully_qualified_name): 
2065         insert cast to get type checking of ?: with non-gcc compilers
2066
2067 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2068
2069         * rand.c: use g_getenv for both lookups of
2070         MONO_EGD_SOCKET
2071
2072 2004-07-17  Martin Baulig  <martin@ximian.com>
2073
2074         * reflection.c (mono_reflection_bind_generic_method_parameters):
2075         Set `gmethod->reflection_info'.
2076
2077 2004-07-17  Martin Baulig  <martin@ximian.com>
2078
2079         * class.c (mono_class_create_from_typedef): Insert the newly
2080         created class into the hash table before computing the interfaces
2081         since we could be called recursively.
2082
2083 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2084
2085         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2086         function to implement stelem.ref in managed code
2087         * class-internals.h, debug-helpers.c: a new wrapper type
2088         for the above.
2089
2090 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2091
2092         * gc.c: allow GC handles to work even when no GC is compiled in.
2093         Fix part of bug #61134 (GetAddrOfPinnedObject).
2094
2095 2004-07-13  Peter Williams  <peter@newton.cx>
2096  
2097         * process.c (complete_path): Make sure we don't attempt to execute
2098         directories.
2099  
2100 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2101
2102         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2103           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2104           and will add/subtract the hour if needed
2105
2106 2004-07-12  Martin Baulig  <martin@ximian.com>
2107
2108         * reflection.c (mono_field_get_object): If we have
2109         `field->generic_info', take the attributes from
2110         `field->generic_info->generic_type'.    
2111
2112 2004-07-12  Martin Baulig  <martin@ximian.com>
2113
2114         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2115         This function must be called before initializing the runtime.
2116         (mono_debug_init_1): New function; call this after initializing
2117         the runtime, but before loading the assembly.  It tells the
2118         debugger to load corlib and the builtin types.
2119
2120         * mono-debug-debugger.c: Did some larger changes in the debugging
2121         code; support recursive class declarations, make sure we actually
2122         add all classes.
2123
2124 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2125
2126         * debug-helpers.c: undo my previous patch and fixed the real issue in
2127         ../mini/exceptions-x86.c
2128
2129 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2130
2131         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2132         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2133         called from other .cctors.
2134
2135 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2136
2137         * loader.c: Removed the mono_loader_wine_init hack now that we are
2138         doing a managed version of Windows.Forms.
2139
2140 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2141
2142         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2143         threadpool.c, threads.c: remove static data from rootset.
2144
2145 2004-07-09  Dick Porter  <dick@ximian.com>
2146
2147         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2148         Don't do any more processing if the matched length was 0.  It was
2149         increasing the size of the string before.  Fixes bug 61167.
2150
2151 2004-07-09  Dick Porter  <dick@ximian.com>
2152
2153         * socket-io.h:
2154         * socket-io.c
2155         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2156         Add support for SO_PEERCRED if its available.
2157
2158 2004-07-09  Peter Bartok <pbartok@novell.com>
2159         * loader.c: winelib.exe.so error message is now only displayed if
2160         MONO_DEBUG is set. To help us avoid questions when people are trying
2161         out the new Managed.Windows.Forms.
2162
2163 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2164
2165         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2166         for isinst and castclass wrappers.
2167
2168         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2169         to libmetadata from the JIT, so they could be used by the marshalling
2170         code and the interpreter.
2171
2172         * marshal.c: Register marshalling related JIT icalls here instead of
2173         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2174         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2175
2176         * metadata.h: Remove unneeded marshalling conversions.
2177
2178         * opcodes.c: Update for new opcodes.
2179         
2180 2004-07-08  Martin Baulig  <martin@ximian.com>
2181
2182         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2183         (mono_debug_get_domain_data): Make this function static.
2184
2185 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2186
2187         * gc.c, object.h: add nice GC handle API for embedders.
2188
2189 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2190
2191         * reflection.c: more changes for the new api
2192
2193         * object.c: When we reflect on a field w/ a constant value, it
2194         will not have a memory location, so we must access metadata. Also,
2195         allow easier reading of strings so that we can read them from
2196         the constant data.
2197
2198         * class.c (mono_class_layout_fields): no need for literal fields here.
2199
2200         * class-internals.h: api changes for const fields
2201
2202         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2203
2204 2004-07-06  Martin Baulig  <martin@ximian.com>
2205
2206         * mono-debug.h: Increment version number to 44.
2207
2208         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2209         now a gpointer, rewrote this whole method.
2210
2211         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2212         function.  Add information about the wrapper in a new "misc table".
2213
2214         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2215         for the new misc table.
2216
2217 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2218
2219         * metadata-internals.h image.c: Add a cache for helper signatures.
2220
2221         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2222
2223 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2224
2225         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2226         delegates from a delegate. Fixes #61033.
2227         
2228         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2229         marshalling of stringbuilder arrays. Fixes #59900.
2230
2231 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2232
2233         * icall.c: Add EnumBuilder:setup_enum_type icall.
2234
2235 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2236
2237         * icall.c: Added a new icall for the property version of
2238         OffsetOfStringData.
2239
2240 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2241
2242         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2243         it has a constant size across platforms.
2244
2245         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2246         stack trace.
2247
2248 2004-06-29  Martin Baulig  <martin@ximian.com>
2249
2250         * mono-debug.c (mono_debug_add_method): Protect the whole function
2251         in mono_debugger_lock(), not just parts of it.
2252
2253 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2254
2255         * reflection.c: make sure padding bytes in heaps are zeroed.
2256
2257 2004-06-24  David Waite  <mass@akuma.org>
2258
2259         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2260         image.c, loader.c, locales.c, marshal.c, metadata.c,
2261         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2262         string-icalls.c, threads.c: change to C90-style comments from C99 /
2263         C++ -style
2264
2265 2004-06-24  Dick Porter  <dick@ximian.com>
2266
2267         * threads.c
2268         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2269         return createdNew.  Fixes bug 60412.
2270
2271         * threads-types.h: 
2272         * icall.c: Add createdNew parameter to CreateMutex icall
2273
2274 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2275
2276         * reflection.c, object-internals.h: save default value in params.
2277
2278 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2279
2280         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2281         no need to build a new path combining that with the application base.
2282         Fixes bug #60442.
2283
2284 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2285
2286         * reflection.c: fixed minor standard compliance issues.
2287
2288 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2289
2290         * reflection.c: fixed issue with encoding some custom attributes
2291         (arrays in properties and fields, bug #60411).
2292
2293 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2294
2295         * reflection.c: fix start address when copying the public key token.
2296
2297 2004-06-23  Martin Baulig  <martin@ximian.com>
2298
2299         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2300         the `exc' object in a static object to put it into the GC's root set.
2301
2302 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2303
2304         * reflection.c: make mono_reflection_setup_internal_class ()
2305         callable a second time to setup a new parent class.
2306
2307 2004-06-23  Dick Porter  <dick@ximian.com>
2308
2309         * threads.c: Check for WAIT_IO_COMPLETION return values.
2310
2311 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2312
2313         * appdomain.c: Removed the g_free on the public key token. Now copy 
2314         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2315         * assembly.c: Added public key token string value when loading 
2316         assemblies. Fix bug #60439.
2317         * icall.c: Added missing informations (like public key) in 
2318         GetReferencedAssemblies. Fix #60519.
2319         * image.h: Changed definition for public key token from const char*
2320         public_tok_value to guchar public_key_token [17];
2321         * reflection.c: Updated for changes to public key token.
2322
2323 2004-06-22  Lluis Sanchez Gual
2324
2325         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2326         for the field in base classes.
2327
2328 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2329
2330         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2331         mark headers as not supported, they are installed only for use by the
2332         debugger.
2333
2334 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2335
2336         * *.c, *.h: avoid namespace pollution in public headers.
2337
2338 2004-06-21  Martin Baulig  <martin@ximian.com>
2339
2340         * exception.c (mono_get_exception_security): It's in
2341         "System.Security", not in "System".
2342
2343         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2344         the exception classes.
2345
2346 2004-06-21  Martin Baulig  <martin@ximian.com>
2347
2348         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2349         Protect the exception object from being finalized.
2350
2351 2004-06-21  Martin Baulig  <martin@ximian.com>
2352
2353         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2354         public function.
2355
2356 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2357
2358         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2359         if it was not loaded before. Fix parts of #60439.
2360
2361 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2362
2363         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2364         code that was broken since Ben's change: wrappers are now
2365         dependent on the method signature only again.
2366
2367 2004-06-21  Martin Baulig  <martin@ximian.com>
2368
2369         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2370         added interface support.
2371
2372 2004-06-21  Martin Baulig  <martin@ximian.com>
2373
2374         * class.c (mono_vtable_get_static_field_data): New public method.
2375
2376 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2377
2378         * filewatcher.c : Windows build fix to be compliant with API changes.
2379
2380 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2381
2382         * class.h, class.c: more accessors.
2383         * metadata.h, metadata.c: prepare for hiding MonoType and
2384         MonoMethodSignature: people should use the accessors from now on
2385         outside of the tree.
2386
2387 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2388
2389         * *.c, *.h: more API cleanups.
2390
2391 2004-06-18  Jackson Harper  <jackson@ximian.com>
2392
2393         * assembly.c: Trace loading assemblies.
2394         * loader.c: Trace loading native libraries.
2395         * mono-config.c: Trace loading config files.
2396         
2397 2004-06-18  Dick Porter  <dick@ximian.com>
2398
2399         * locales.c: Tell ICU the lengths of strings, it can cope with
2400         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2401
2402 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2403
2404         * image.c: swapped name/filename;
2405
2406 2004-06-18  Martin Baulig  <martin@ximian.com>
2407
2408         * mono-debug-debugger.c (write_class): Write the parent class at
2409         the end of the header.
2410
2411 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2412
2413         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2414
2415 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2416
2417         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2418         (bundle_obj): New conditional define.
2419         (BUILT_SOURCES): Remove.
2420         ($(bundle_srcs)): Make parallel-make safe.
2421         (libmonoruntime_la_LIBADD): Make unconditional.
2422         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2423         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2424
2425 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2426
2427         * culture-info-tables.h: It was inconsistent with the latest
2428           supp info files.
2429
2430 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2431
2432         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2433         be loaded.
2434
2435         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2436         with gcc 2.95.
2437
2438 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2439
2440         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2441         cleaned up public header threads.h.
2442
2443 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2444
2445         * Makefile.am, *.c, *.h: more API cleanups.
2446
2447 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2448
2449         * Makefile.am: removed monosn from compilation.
2450         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2451         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2452         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2453         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2454         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2455         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2456
2457 2004-06-15  Jackson Harper  <jackson@ximian.com>
2458
2459         * assembly.c: Make locales lower case when searching the GAC for
2460         assemblies. gacutil will always make locales lowercase when
2461         installing so this effectively makes them case insensitive.
2462         
2463 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2464
2465         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2466         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2467           parameter which allows to choose whether the wait can be interrupted or 
2468           not. Also added the method mono_monitor_enter(), which locks the monitor
2469           using an infinite wait and without allowing interruption.
2470           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2471           interrupted.
2472         * object.h: Added new fields in MonoThread. suspend_event holds the event
2473           used to susped/resume the thread. synch_lock is the lock object to use for
2474           modifying the thread state.
2475         * threads.c: Use the new synch_lock object for locking, instead of "this",
2476           which can generate deadlocks.
2477           Moved thread state change in Thread.Sleep and Thread.Join from managed
2478           to unmanaged code. This avoids a deadlock when the thread was suspended
2479           just after acquiring the thread lock.
2480           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2481           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2482           which is not fully implemented in the io-layer.
2483         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2484
2485 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2486
2487         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2488         threads-types.h: more API cleanups.
2489
2490 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2491
2492         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2493         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2494         threadpool.c, threads.c: first pass at the exported API cleanup.
2495
2496 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2497
2498         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2499
2500 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2501
2502         * icall.c: added internalGetHome.
2503
2504 2004-06-14  Dick Porter  <dick@ximian.com>
2505
2506         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2507         possible to return successfully when '.' or '..' were the only
2508         entries in a directory, but were skipped.  The MonoIOStat was not
2509         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2510         Fixes bug 59574.
2511
2512 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2513
2514         * reflection.c: make binaries run on .Net 1.1 by default.
2515
2516 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2517
2518         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2519
2520 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2521
2522         * marshal.c: keep track of struct size with explicit layout
2523         (bug #59979).
2524
2525 2004-06-12  Martin Baulig  <martin@ximian.com>
2526
2527         * mono-debug-debugger.c: Comment out a debugging g_message().
2528
2529 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2530
2531         * reflection.c, reflection.h: do not free custom attrs that are cached.
2532         * icall.c: use braces to make code clearer.
2533
2534 2004-06-11  Martin Baulig  <martin@ximian.com>
2535
2536         * class.h (MonoInflatedField): New type.
2537         (MonoClassField): Replaced `MonoType *generic_type' with
2538         `MonoInflatedField *generic_info'.
2539
2540         * icall.c
2541         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2542
2543 2004-06-11  Martin Baulig  <martin@ximian.com>
2544
2545         * reflection.c (mono_image_create_method_token): Correctly encode
2546         varargs methods.
2547
2548 2004-06-11  Martin Baulig  <martin@ximian.com>
2549
2550         * metadata.c (mono_metadata_parse_method_signature): When parsing
2551         a MethodDef which has VarArgs, also set sentinelpos if we don't
2552         have any parameters.
2553
2554 2004-06-11  Martin Baulig  <martin@ximian.com>
2555
2556         * verify.c (mono_method_verify): In CEE_CALL, use
2557         mono_method_get_signature() to get the method's signature, unless
2558         we're a PInvoke method.
2559
2560 2004-06-10  Jackson Harper  <jackson@ximian.com>
2561
2562         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2563         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2564         logical name as the supplied path is just a prefix to the gac not
2565         the direct path to it.
2566         
2567 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2568
2569         * reflection.c: make the token for a created method match
2570         the token of the MethodBuilder it was created from
2571         (IKVM requires this behaviour now).
2572
2573 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2574
2575         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2576         reflection.c, socket-io.c: leak fixes.
2577
2578 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2579
2580         * icall.c: handle sentinel pos in vararg methods in position different
2581         from 0.
2582
2583 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2584
2585         * culture-info-tables.h: freshly generated.
2586
2587 2004-06-09  Martin Baulig  <martin@ximian.com>
2588
2589         * loader.c (mono_get_method_constrained): Call `mono_class_init
2590         (constrained_class)'.   
2591
2592 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2593
2594         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2595         any methods. Fixes #59629.
2596
2597 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2598
2599         * culture-info-tables.h: reflecting locale-builder updates.
2600
2601 2004-06-08  Dick Porter  <dick@ximian.com>
2602
2603         * object.h:
2604         * locales.c: Fixed compile warnings, including a real bug in
2605         CompareInfo_internal_compare.
2606         
2607 2004-06-08  Dick Porter  <dick@ximian.com>
2608
2609         * locales.c
2610         (ves_icall_System_Globalization_CompareInfo_internal_index):
2611         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2612         Double-check the resuls of usearches, because ICU currently
2613         ignores most of the collator settings here.  Fixes bug 59720.
2614         
2615 2004-06-08  Dick Porter  <dick@ximian.com>
2616
2617         * locales.c
2618         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2619         Fix memory leak and segfault-causing typo.  No idea how this one
2620         lasted so long without being noticed.
2621
2622 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2623
2624         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2625         any methods. Fixes #59629.
2626
2627 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2628
2629         * assembly.c:
2630         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2631         own the critical section before). Removed dead code (that's done
2632         in the preload hook).
2633
2634         (mono_assembly_load_with_partial_name): call the preload hook.
2635
2636 2004-06-08  Martin Baulig  <martin@ximian.com>
2637
2638         * metadata.c (mono_metadata_signature_alloc): Default
2639         `sentinelpos' to -1.
2640
2641         * reflection.c (mono_image_get_array_token): Likewise.
2642
2643 2004-06-08  Martin Baulig  <martin@ximian.com>
2644
2645         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2646
2647         * metadata.c (mono_metadata_parse_method_signature): When parsing
2648         a MethodDef which has VarArgs, set sentinelpos.
2649
2650         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2651         `gint16' since we're using -1 for non-varargs methods.
2652
2653         * reflection.c
2654         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
2655         (method_encode_signature): Added varargs support.
2656         (method_builder_encode_signature): Likewise.
2657         (mono_image_get_varargs_method_token): New static method.
2658         (mono_image_create_method_token): New public method; this is
2659         called via an icall instead of mono_image_create_token() when
2660         calling a varargs method.       
2661
2662 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
2663
2664         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
2665
2666 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2667
2668         * culture-info-tables.h : Reflecting the latest locale-builder that
2669           fixed empty array representation ({} to {0}).
2670
2671 2004-06-07  Jackson Harper  <jackson@ximian.com>
2672
2673         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
2674         looking up extra gac paths. This allows MONO_GAC_PATH to act
2675         exactly like a prefix.
2676         
2677 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2678
2679         * reflection.c (mono_reflection_type_from_name): Make a copy of the
2680         type name before modifying it. Fixes #59405.
2681
2682 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2683
2684         * culture-info.h: added fields for "all datetime patterns".
2685         * locales.c: (  ves_icall_System_Globalization_CultureInfo
2686           _construct_datetime_format ()): fill xxx_patterns fields.
2687         * object.h: added fields for "all datetime patterns" to
2688           MonoDateTimeFormatInfo.
2689         * culture-info-tables.h: reflecting locale-builder updates.
2690
2691 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2692
2693         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
2694         the event has no add and remove methods. Fixes #59629.
2695
2696 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
2697
2698         * object.c: Fixed possible integer overflow when allocating large
2699         strings.
2700
2701 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2702
2703         * culture-info-tables.h: reflecting locale-builder updates.
2704
2705 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2706
2707         * culture-info-tables.h: reflecting locale-builder updates.
2708
2709 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
2710
2711         * culture-info-tables.h: reflecting locale-builder updates.
2712
2713 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
2714
2715         * threads.c: Made Thread.Sleep abortable.
2716
2717 2004-06-02  Martin Baulig  <martin@ximian.com>
2718
2719         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
2720
2721         * debug-mono-symfile.h: Bumped symbol file version number to 37.
2722
2723 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
2724
2725         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
2726
2727 2004-05-30  Jackson Harper  <jackson@ximian.com>
2728
2729         * reflection.c: Do not hardcode assembly versions or public key
2730         tokens anymore. All of this except the corlib section was dead
2731         code anyways.
2732         
2733 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
2734
2735         * object.c (mono_runtime_invoke_array): Automatically create boxed
2736         objects for byref valuetypes if needed. Fixes #59300.
2737         
2738         * object.c (mono_method_return_message_restore): Handle 
2739         MONO_TYPE_OBJECT as well.
2740
2741 2004-05-28  Jackson Harper  <jackson@ximian.com>
2742
2743         * reflection.c: The modified type encoding was causing build
2744         problems. Reverted for now.
2745         
2746 2004-05-28  Jackson Harper  <jackson@ximian.com>
2747
2748         * reflection.c/h: Take an assembly ref so that we dont create
2749         fully qualified names when encoding types in the same assembly as
2750         the custom attribute being emitted.
2751         * appdomain.c: Increment version number.
2752         
2753 2004-05-26  Duncan Mak  <duncan@ximian.com>
2754
2755         * icall.c
2756         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
2757         Set the full version number (major, minor, build, revision).
2758
2759 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
2760
2761         * marshal.c (emit_struct_conv): increment src/dst after blit
2762         (mono_marshal_get_managed_wrapper,
2763         mono_marshal_get_native_wrapper): make sure we have marshalling
2764         info before marshalling params (info computation affects
2765         blittable)
2766
2767         * class.c (class_compute_field_layout): correctly deal with
2768         blittable
2769         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
2770         value types (as per what windows dows by default)
2771         (mono_class_setup_mono_type): System.ValueType is blittable
2772         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
2773         blittable
2774
2775         * marshal.c (mono_marshal_load_type_info): flag types  as
2776         non-blittable if the native layout doesn't match the managed
2777         layout
2778
2779 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2780
2781         * appdomain.c: don't add stuff in the private search path that is
2782         above the application base. If application base is not set, there's
2783         no private search path.
2784
2785 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
2786
2787         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
2788         byref struct arguments in native->managed marshalling.
2789
2790 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
2791
2792         * marshal.c (mono_marshal_get_runtime_invoke): correctly
2793         cache methods using signature (special case for methods
2794         that are value type or string class)
2795         
2796         * image.c (mono_image_close): clean up allocated GSList's
2797         in runtime_invoke_cache.
2798
2799 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2800
2801         * mono-config.c: set the correct path for mono_cfg_dir on windows when
2802         there's no MONO_CFG_DIR environment variable defined.
2803
2804 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2805
2806         * threads.c: windows version must be >= 0x0500 to include OpenThread.
2807
2808 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
2809
2810         * threadpool.c: Really wait for 500ms after the async call, even if the wait
2811           is interrumped.
2812         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
2813           before waiting for it, and call CloseHandle after the wait to unref it.
2814           This will make sure that handles are not disposed too early.
2815
2816 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2817
2818         * appdomain.c:
2819         * appdomain.h:
2820         * icall.c: removed
2821         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
2822         needed now.
2823
2824         * object.c: se the application_base only for the domain that runs
2825         Main. Fixes bug #59216,
2826
2827 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2828
2829         * appdomain.c:
2830         * object.c: only the domain in which Main is run have
2831         SetupInformation.ConfigurationFile set, so moved a few lines from
2832         appdomain.c to object.c.
2833
2834 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2835
2836         * appdomain.c: we tried to load [name].(dll|exe), but according
2837         to bug #57710, we must also try [culture]/[name].(dll|exe) and
2838         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
2839         There's a test case attached to bug #58922.
2840
2841 2004-05-27  Dick Porter  <dick@ximian.com>
2842
2843         * icall.c:
2844         * file-io.c: Implemented icalls for locking and unlocking regions
2845         in a file.
2846         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
2847         FALSE on error (fixes both compiler warning and real bug.)
2848
2849 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
2850
2851         * culture-info-tables.h: reflecting locale-builder updates.
2852
2853           (Added missing ChangeLog entry for 05/26)
2854
2855 2004-05-27  Jackson Harper  <jackson@ximian.com>
2856
2857         * locales.c: Fix some cut and paste errors.
2858         
2859 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2860
2861         * mono-config.c: set the correct path for config. directory on windows.
2862
2863 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
2864
2865         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
2866           on win32.
2867
2868 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
2869
2870         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
2871         from pinvoke functions.
2872         
2873         * marshal.c (mono_ftnptr_to_delegate): Implement this.
2874
2875 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
2876
2877         * culture-info-tables.h: reflecting locale-builder updates.
2878
2879 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
2880
2881         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
2882         #59086.
2883
2884 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
2885
2886         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
2887         * icall.c: Modified icalls for RNG.
2888         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
2889         Windows (CryptoAPI).
2890
2891 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
2892
2893         * locales.c: Fix build.
2894
2895 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
2896
2897         * culture-info-tables.h: reflecting locale-builder updates.
2898
2899 2004-05-25  Jackson Harper  <jackson@ximian.com>
2900
2901         * locales.c: When creating the current culture use the $LANGs
2902         specific culture. So DateTimeFormat and NumberFormat entries are created.
2903         
2904 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
2905
2906         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
2907         a char array as parameter.
2908
2909 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
2910
2911         * image.c: In mono_image_open(), always use an absolute path name to
2912           look for already loaded images.
2913
2914 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
2915
2916         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
2917         missing in the windows build (like older cygwin include files).
2918
2919 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
2920
2921         * icall.c: Fixed check for possible integer overflow in Buffer_
2922         BlockCopy icall. Replaced comments style // by /* */.
2923
2924 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
2925
2926         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
2927         
2928         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
2929         check after MONO_VTADDR. Fixes pinvoke2.exe.
2930
2931         * marshal.h marshal.c metadata.h: Add beginnings of support for
2932         ftnptr -> delegate marshalling.
2933
2934 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
2935
2936         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
2937         * threads.c: Fix warnings.
2938
2939 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
2940
2941         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
2942         * icall.c: Registered icalls for Suspend and Resume.
2943         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
2944           Thread.Abort.
2945         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
2946         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
2947         * process.c: Use WaitForSingleObjectEx.
2948         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
2949           checkpoints.
2950         * threads.c, threads.h: Make use of new Ex wait methods. Improved
2951           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
2952           for Suspend and Resume. Added new mono_thread_stop, used for stoping
2953           background threads. Added basic support for Abort in Windows.
2954           Start new threads using a managed delegate invoke wrapper. This wrapper
2955           has an interruption checkpoint that is needed since an interruption
2956           can be requested before the thread leaves the unmanaged code that starts 
2957           the thread.
2958         * marshal.c: Added interruption checkpoint after every native call, and
2959           also before managed calls for wrappers called from unmanaged code to
2960           go into managed code.
2961         * object.h: Added new field in MonoThread to keep track of interruption
2962           requests.
2963
2964 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
2965
2966         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
2967         calls.
2968
2969 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2970
2971         * appdomain.c:
2972         * assembly.c:
2973         * gc.c:
2974         * locales.c:
2975         * mono-config.c:
2976         * rand.c: getenv -> g_getenv (windows!)
2977
2978         * process.c: complete_path is also used on non-windows platforms.
2979
2980 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2981
2982         * icall.c: new signature for Process_Start.
2983
2984         * process.[ch]: new signature for Process_Start. If we're on windows
2985         and UseShellExecute is false, we have to search for the program by
2986         ourselves if we don't get a full path.
2987
2988 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
2989
2990         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
2991         marshalling and call CleanUpNativeData if needed. Fixes #58646.
2992
2993 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2994
2995         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
2996         Fixes bug #58373.
2997
2998 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2999
3000         * process.c: use double quotes to quote program name and arguments on
3001         windows. Fixes bug #58575.
3002
3003 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3004
3005         * file-io.c: don't return "." and ".." when using windows Find*File.
3006
3007 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3008
3009         * marshal.c: Don't pass wrappers to message init because method 
3010         addressed used to lookup metadata. part of remoting[2|3] fix.
3011
3012 2004-05-15  Jackson Harper  <jackson@ximian.com>
3013
3014         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3015         path is essentially the same as MONO_PATH except that it points to
3016         GACs instead of lib directories.
3017         * loader.h: The user gac is gone so we dont need function to
3018         enable/disable it.
3019         * mono-config.c: user gac option is now gone.
3020         
3021 2004-05-15  Jackson Harper  <jackson@ximian.com>
3022
3023         * culture-info.h: Make defines more consistent, add calendar data
3024         to the culture info table.
3025         * culture-info-tables.h: Add basic calendar data. Basically
3026         everyone gets default gregorian until all the data is
3027         updated.
3028         * locales.c: Use the new consistent defines. Set calendar data for
3029         culture info objects.
3030         * object.h: add a field for calendar data to CultureInfo
3031         
3032 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3033
3034         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3035         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3036         a signature.
3037         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3038         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3039         an extra param that is the pointer of the method to invoke. The IL for
3040         the invoke method is no longer specific to the method, but to the
3041         signature of the method. Thus, we can share the same code for multiple
3042         methods. This reduces the number of methods that have to be compiled.
3043
3044 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3045
3046         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3047
3048         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3049
3050         * icall.c: Optimize Buffer.BlockCopy.
3051
3052 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3053
3054         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3055         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3056         quote). Changed them to "MMMM yyyy".
3057
3058 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3059
3060         * rand.c
3061         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3062
3063 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3064
3065         * reflection.h: Updated after changes to managed structures.
3066
3067         * appdomain.c: Bump corlib version.
3068
3069 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3070
3071         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3072         windows.
3073
3074 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3075
3076         * Makefile.am: link to ../os/libmonoos.la on windows.
3077
3078         * assembly.c:
3079                 -If MONO_DEBUG, warn about non-existing directories in
3080                 MONO_PATH.
3081                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3082                 compile time variable.
3083                 -Removed init_default_path and call mono_set_rootdir from
3084                 libmonoos.a instead (windows only).
3085
3086         * assembly.h: declare mono_assembly_getrootdir().
3087
3088         * domain.c:
3089         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3090
3091         * loader.c: s/getenv/g_getenv/
3092
3093 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3094
3095         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3096
3097         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3098
3099         * metadata.h: Add new marshalling conversions.
3100
3101         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3102         function.
3103
3104         * reflection.c (mono_reflection_get_type): Lookup the type in all
3105         modules of a multi-module assembly. Fixes #58291.
3106
3107 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3108
3109         * threads.c: Before aborting a background, set the StopRequested
3110         state.  This avoids throwing the Abort exception.
3111         In mono_thread_manage, don't continue with the shutdown until all
3112         aborted threads have actually stopped.
3113
3114 2004-05-10  Jackson Harper  <jackson@ximian.com>
3115
3116         * locales.c: Remove the modifier from culture names.
3117         
3118 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3119
3120         * Makefile.am: monosn is not installed any more. It has been deprecated
3121         in favor of sn.
3122
3123 2004-05-07  Jackson Harper  <jackson@ximian.com>
3124
3125         * locales.c
3126         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3127         Fix array construction, add bailout if the length is 0.
3128
3129 2004-05-07  Dick Porter  <dick@ximian.com>
3130
3131         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3132         machine doesn't have a DNS entry.  Patch by Urs Muff
3133         (umuff@quark.com), fixes bug 57928.
3134
3135 2004-05-06  Jackson Harper  <jackson@ximian.com>
3136
3137         * reflection.c: Handle null PublicTokens properly. alloc mem for
3138         assembly names culture so we dont crash when freeing it.
3139         
3140 2004-05-06  Jackson Harper  <jackson@ximian.com>
3141
3142         * assembly.c: Check the usergac when loading with partial names.
3143         
3144 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3145
3146         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3147         does nothing for now (not required for Linux/Windows) but the class
3148         library can call it (and a newer or modified runtime could need it).
3149         * icall.c: Registred icall.
3150
3151 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3152
3153         * loader.c: prints a message on module loading error we set MONO_DEBUG
3154         environment variable.
3155
3156 2004-05-05  Jackson Harper  <jackson@ximian.com>
3157
3158         * appdomain.c: Handle PublicKeyToken=null properly.
3159         
3160 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3161
3162         * environment.c|h: Added icall ves_icall_System_Environment_
3163         GetOSVersionString to get the current OS version as a string.
3164         * icall.c: Registred icall.
3165
3166 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3167
3168         * object.c: in mono_object_get_virtual_method(), take into account that
3169         non-virtual methods don't have a slot in the vtable. Check needed when
3170         the object is a proxy.
3171
3172 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3173
3174         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3175         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3176
3177         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3178
3179         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3180         passed when a valuetype is expected.
3181
3182         * object.c (mono_unhandled_exception): Only set the exit code if the
3183         exception happens in the main thread. Fixes thread5.exe.
3184
3185         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3186         invalid names. Fixes #58047.
3187
3188 2004-05-03  Jackson Harper  <jackson@ximian.com>
3189
3190         * assembly.c: This line was committed accidently and is unneeded.
3191         
3192 2004-05-03  Jackson Harper  <jackson@ximian.com>
3193
3194         * icall.c: Add new icall for Assembly::LoadWithPartialName
3195         * assembly.c/.h: new function that probes the GAC to load partial
3196         assembly names by Paolo Molaro.
3197         
3198 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3199
3200         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3201         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3202         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3203         full type name.
3204
3205 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3206
3207         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3208         * reflection.c: fix bug when parsing a full type name and Version is not
3209         the last thing in the string.
3210
3211 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3212
3213         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3214         crashes when it is freed.
3215
3216 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3217
3218         * assembly.c: print the compat warning to stderr.
3219
3220 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3221
3222         * assembly.c (mono_assembly_load_references): Add a compatibility
3223         hack to run old applications that might be still referencing the
3224         3300-based assemblies, only do this for System.xxx.
3225
3226 2004-05-01  Jackson Harper  <jackson@ximian.com>
3227
3228         * appdomain.c: If the culture is neutral we set it to "".
3229         
3230 2004-04-29  Jackson Harper  <jackson@ximian.com>
3231
3232         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3233
3234 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3235  
3236         * string-icalls.c: added low overhead function for copying chars
3237         * icall.c: added needed icall for the above function
3238  
3239 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3240
3241         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3242         Environment.GetLogicalDrives.
3243
3244 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3245
3246         * rand.c: try and talk to egd or prngd
3247         for random bytes if opening devices fail.
3248
3249 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3250
3251         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3252         alignment for the type using the native alignment of its members 
3253         instead of using klass->min_align.
3254
3255         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3256
3257 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3258
3259         * file-io.c:
3260         * socket-io.c: added check for sys/aio.h.
3261
3262 2004-04-28  Dick Porter  <dick@ximian.com>
3263
3264         * threads.c: Don't abort a thread thats already aborting, when
3265         terminating everything.
3266
3267 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3268
3269         * icall.c: added 2 new async calls for Socket.
3270
3271         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3272         IO on *nix systems.
3273
3274         * threadpool.c: removed unused variable.
3275
3276 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3277
3278         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3279
3280 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3281
3282         * locales.c: put back string_invariant_tolower () and
3283         string_invariant_toupper ().
3284
3285 2004-04-26 David Waite <mass@akuma.org>
3286
3287         * file-io.h:
3288         * socket-io.h:
3289         * threads.h:
3290         * unicode.h: remove comma from end of enumeration declarations
3291
3292 2004-04-26 David Waite <mass@akuma.org>
3293
3294         * debug-mono-symfile.h:
3295         * decimal.c:
3296         * mono_debug.h:
3297         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3298
3299
3300 2004-04-26  Jackson Harper  <jackson@ximian.com>
3301
3302         * appdomain.c: Increment version number.
3303         
3304 2004-04-26  Jackson Harper  <jackson@ximian.com>
3305
3306         * appdomain.c: Set assembly references public token value when
3307         PublicKeyToken is specified, not the hash_value. Free public token
3308         values when free assembly name data. Previously the public key
3309         token was hex decoded, however we are using hex encoded public key
3310         tokens, so this is not neccasary.
3311         * assembly.c: Lookup assemblies in the gac if their public token
3312         value is set. Add function to allow enabling user gac
3313         lookups. Specify whether or not the assembly was loaded from the
3314         GAC. Compare full assembly names when checking the cache for
3315         assemblies (Temporarily disabled see comment in code). Remove
3316         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3317         specifies trace-loader they get extra info to stdout on the
3318         loading of assemblies.
3319         * image.h: Add a field for an assembly references public token
3320         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3321         whether an assembly has been loaded from the GAC.
3322         * image.c: Remove a corlib -> mscorlib name mapping.
3323         * loader.h: Add function to enable/disable the user gac.
3324         * mono-config.c: Check if the usergac is enabled in the config
3325         file.
3326         * icall.c: New icall to determine whether or not an assembly has
3327         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3328         * tabldefs.h: Add constant for assemblyref flag that specifies a
3329         full public key is used instead of a public token.
3330         * reflection.c: Remove mscorlib -> corlib mappings. Set
3331         PublicTokenValue instead of hash value. This value is a hex
3332         string so it does not need to be expanded.
3333
3334 2004-04-26  Martin Baulig  <martin@ximian.com>
3335
3336         * mono-debug-debugger.c (mono_debugger_initialize): Set
3337         `mono_debugger_initialized' before calling mono_debug_lock().
3338
3339 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3340
3341         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3342           InternalToUpper/InternalToLower.
3343         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3344           removed invariant culture shortcut.  This is now done in managed code.
3345         * locales.c: (string_invariant_toupper/tolower) removed.
3346
3347 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3348
3349         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3350         Added Poll internal call.
3351
3352         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3353         call for Poll. Select was too heavy for polling a single socket.
3354
3355         * threadpool.[ch]: added mono_threadpool_cleanup.
3356         * threads.c: use it. Don't use Thread_Abort on windows.
3357
3358 2004-04-23  Martin Baulig  <martin@ximian.com>
3359
3360         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3361
3362 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3363
3364         * icall.c: Registred new icalls for key pair protection and added an
3365         icall for Environment.GetFolderPath on Windows.
3366         * security.c|h: Added new icalls for key pair protection.
3367
3368 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3369
3370         * socket-io.c: don't display the non-supported family warning for known
3371         families. Now this is not displayed on windows when checking support
3372         for IPv4/IPv6.
3373
3374 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3375
3376         * class.c: don't display the layout warning for static fields.
3377
3378 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3379
3380         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3381         * locales.c, locales.h: Added new icalls for culture-specific
3382         Char.ToLower and Char.ToUpper.
3383
3384 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3385
3386         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3387         by David Waite.
3388
3389 2004-04-20  Martin Baulig  <martin@ximian.com>
3390
3391         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3392         of the type name before passing it to mono_reflection_type_from_name().
3393
3394 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3395
3396         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3397         encodings here. Fixes #56965.
3398
3399 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3400
3401         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3402         fix test on strstr result not that I can see anything that
3403         relies on the result.
3404
3405 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3406
3407         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3408         Fixes #57081.
3409
3410         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3411
3412         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3413         function to determine which marshalling to use for strings. Fixes
3414         #56965.
3415
3416         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3417
3418         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3419
3420 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3421
3422         * icall.c: #include mono-config.h
3423
3424 2004-04-15  Jackson Harper  <jackson@ximian.com>
3425
3426         * culture-info-tables.h: Fix date formats for en-US culture.
3427         
3428 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3429
3430         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3431         ThreadPool.SetMinThreads.
3432         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3433         ThreadPool.SetMinThreads.
3434
3435 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3436
3437         * mono-config.c: also load the .config file in the directory
3438         where the assembly was found.
3439
3440 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3441
3442         * assembly.c: load per-assembly config files.
3443         * icall.c: decrapified code to get the config dir and moved to
3444         mono-config.c.
3445         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3446         per-assembly config files. When doing a dll map lookup give precedence
3447         to the per-assembly data.
3448
3449 2004-04-14  Martin Baulig  <martin@ximian.com>
3450
3451         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3452         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3453         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3454
3455         * mono-debugger-debugger.c: While the debugger is locked, remember
3456         whether the symbol tables have changes and send one single
3457         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3458
3459 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3460
3461         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3462
3463         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3464         function.
3465
3466         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3467         account when marshalling string arrays. Fixes #56965.
3468
3469 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3470
3471         * icall.c: Add new icalls mapping for security.
3472         * security.c|h: Add internal calls for WindowsIdentity,
3473         WindowsImpersonationContext and WindowsPrincipal.
3474
3475 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3476
3477         * class.c: Added comment to ensure the System.MonoDummy class
3478         is removed when no longer necessary
3479
3480 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3481
3482         * appdomain.c: Pass arguments to the bootstraping exceptions to
3483         minimize JITed methods at boot
3484
3485         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3486         second string to be null.
3487
3488         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3489         Change the protocol to minimize the JIT methods at startup.  Now
3490         it Returns the internal codepage, if the value of "int_code_page"
3491         is 1 at entry, and we can not compute a suitable code page
3492         number, returns the code page as a string.
3493
3494 2004-04-13  Jackson Harper  <jackson@ximian.com>
3495
3496         * culture-info-tables.h: Fix number of decimal digits for all
3497         english locales.
3498
3499 2004-04-13  Jackson Harper  <jackson@ximian.com>
3500
3501         * icall.c: Clairfy out of sync error message. It is not always
3502         your corlib that is out of sync.
3503
3504 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3505
3506         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3507         properties when only the set accessor is overriden. Fixes #55874.
3508
3509 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3510
3511         * assembly.c (mono_assembly_load_references): Make this thread safe.
3512         Fixes #56327.
3513
3514 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3515
3516         * monosn.c: Add missing initialization calls.
3517
3518 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3519
3520         * locales.c:
3521         ves_icall_System_Globalization_CultureInfo_construct_number_format
3522         Fix g_assert so it compiles on fussier compilers re int/ptr
3523         mismatch
3524
3525 2004-04-08  Dick Porter  <dick@ximian.com>
3526
3527         * socket-io.h:
3528         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3529         53992.  Also rearrange the code so that the internal calls return
3530         an error value and exceptions are thrown from managed code.
3531
3532         * icall.c: Add type info to the socket icalls.
3533
3534 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3535
3536         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3537         owes me a beer.
3538
3539 2004-04-07  Martin Baulig  <martin@ximian.com>
3540
3541         * class.c (mono_class_from_generic_parameter): Don't default
3542         `klass->parent' to `mono_defaults.object_type'.
3543
3544 2004-04-07  Martin Baulig  <martin@ximian.com>
3545
3546         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3547         `param->pklass->reflection_info'.       
3548
3549 2004-04-07  Jackson Harper  <jackson@ximian.com>
3550
3551         * culture-info-tables.h: Fix date separator symbol.
3552         
3553 2004-04-07  Martin Baulig  <martin@ximian.com>
3554
3555         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3556         from System.Type to System.MonoType.
3557
3558 2004-04-07  Martin Baulig  <martin@ximian.com>
3559
3560         * reflection.h
3561         (MonoReflectionGenericParam): Added `has_reference_type' and
3562         `has_value_type' fields.
3563
3564         * reflection.c (mono_image_get_generic_param_info): Encode the
3565         correct flags if we have the `class' or `struct' constraint.
3566
3567 2004-04-07  Martin Baulig  <martin@ximian.com>
3568
3569         * reflection.h
3570         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3571
3572 2004-04-07  Jackson Harper  <jackson@ximian.com>
3573
3574         * appdomain.c: Revert extra patches, just wanted to bump the
3575         version number.
3576         
3577 2004-04-07  Jackson Harper  <jackson@ximian.com>
3578
3579         * Makefile.am: Add culture-info private headers.
3580         * icall.c: Add new icalls for contructing locales.
3581         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3582         * locales.h: Declare new culture info construction methods.
3583         * object.h: Add new fields used to avoid the CultureMap to
3584         MonoCultureInfo.
3585         * culture-info.h: Definition of structs used in the culture info
3586         tables.
3587         * culture-info-tables.h: Autogenerated tables that contain culture
3588         info data. This file was generated with the locale-builder tool.
3589         * appdomain.c: Incement corlib version number.
3590         
3591 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3592
3593         * appdomain.c: (mono_runtime_init) move mono_thread_init
3594         to before mono_object_new calls so critical sections
3595         are initialized before use.
3596
3597 2004-04-07  Martin Baulig  <martin@ximian.com>
3598
3599         * icall.c
3600         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3601         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3602         (ves_icall_MonoGenericParam_initialize): Removed.
3603         (monogenericparam_icalls): Removed.
3604         (generictypeparambuilder_icalls): Added new table for
3605         System.Reflection.Emit.GenericTypeParameterBuilder.
3606
3607         * reflection.c
3608         (mono_reflection_define_generic_parameter): Removed.
3609         (mono_reflection_initialize_generic_parameter): This is now called
3610         from GenericTypeParameterBuilder's .ctor.
3611
3612 2004-04-06  Martin Baulig  <martin@ximian.com>
3613
3614         * class.c (mono_class_init): Don't inflate nested classes in a
3615         generic instance.
3616         (mono_type_get_name_recurse): Include the generic arguments for
3617         generic instances and generic type declarations.
3618         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3619         (_mono_class_get_instantiation_name): Removed.
3620         (mono_class_create_generic): Always use `gklass->name' as our name.
3621
3622         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3623
3624         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3625         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3626         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3627         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3628         closed generic methods here.
3629
3630         * reflection.c
3631         (mono_reflection_generic_inst_get_nested_types): Removed.
3632         (inflate_mono_method): Copy the generic parameters from the
3633         MonoMethodHeader into out MonoGenericMethod.
3634
3635 2004-04-06  Martin Baulig  <martin@ximian.com>
3636
3637         * row-indexes.h
3638         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3639
3640         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3641
3642         * reflection.c (build_compressed_metadata): If we have any entries
3643         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3644         set the header version to 1.1.
3645
3646 2004-04-06  Martin Baulig  <martin@ximian.com>
3647
3648         * class.c (mono_class_init): If we're a generic instance,
3649         initialize our nested classes, too.
3650         (_mono_class_get_instantiation_name): Deal with the new `!%d'
3651         suffix. 
3652
3653 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3654
3655         * process.c: quote the argument passed to the shell on windows.
3656
3657 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
3658
3659         * threads.c (mono_alloc_special_static_data): Allow this to be
3660         called during startup.
3661
3662 2004-04-02  Martin Baulig  <martin@ximian.com>
3663
3664         * icall.c
3665         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
3666
3667 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
3668
3669         * icall.c: Fix build.
3670
3671 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
3672
3673         * Makefile.am: Added security.c|h.
3674         * icall.c: Added icall for get_UserName;
3675         * security.c: New file for security related icalls. Added function
3676         get_UserName for System.Environment (fix #56144).
3677         * security.h: New. Header file for security.c
3678
3679 2004-04-02  Dick Porter  <dick@ximian.com>
3680
3681         * icall.c: Deleted the icalls that were obsoleted some time ago
3682         by the ICU string code, and which were mixed into the icall
3683         rearranging.  Fixes bug 55969.
3684
3685         * string-icalls.h: 
3686         * string-icalls.c: Deleted the code that those icalls reference.
3687
3688 2004-04-01  Martin Baulig  <martin@ximian.com>
3689
3690         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
3691
3692         * class.c (mono_class_from_generic_parameter): Don't set 
3693         TYPE_ATTRIBUTE_INTERFACE.
3694         (my_mono_class_from_generic_parameter): Likewise.
3695
3696 2004-04-01  Martin Baulig  <martin@ximian.com>
3697
3698         * loader.c (find_method): Added an optional `MonoClass *ic'
3699         argument to search in a specific interface.
3700         (mono_get_method_constrained): New public function.
3701
3702 2004-04-01  Martin Baulig  <martin@ximian.com>
3703
3704         * reflection.c (mono_image_get_generic_field_token): Use the
3705         `handleref' cache here.
3706
3707 2004-04-01  Martin Baulig  <martin@ximian.com>
3708
3709         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
3710
3711         * reflection.c (create_generic_typespec): Use the `typespec' hash
3712         here, not the `typeref' one.    
3713
3714 2004-04-01  Martin Baulig  <martin@ximian.com>
3715
3716         * class.c (mono_class_inflate_generic_type): Moved the
3717         functionality into a new static inflate_generic_type() which
3718         returns NULL if it didn't do anything.  Only increment the
3719         `mono_stats.inflated_type_count' if we actually inflated
3720         something.
3721         (mono_class_get_full): Check the classes type to see whether we
3722         need to inflate it; also inflate MONO_TYPE_(M)VAR.
3723
3724 2004-04-01  Jackson Harper  <jackson@ximian.com>
3725
3726         * reflection.c: Set culture for assembly references.
3727         
3728 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
3729
3730         * reflection.[ch], icall.[ch], Fix support for pinning variables.
3731
3732 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3733
3734         * assembly.c:
3735         (do_mono_assembly_open): the critical section also covers
3736         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
3737
3738 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3739
3740         * threads.c:
3741         (mono_manage_threads): abort the background threads when finishing.
3742         Fixes bug #47232.
3743
3744 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3745
3746         * gc.c: only close the done_event handle if there was no timeout.
3747         C-ified comments.
3748
3749 2004-03-30  Martin Baulig  <martin@ximian.com>
3750
3751         * icall.c (icall_entries): It's called "System.Activator", not
3752         "System.Activation".    
3753
3754 2004-03-30  Martin Baulig  <martin@ximian.com>
3755
3756         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
3757         (mono_class_create_from_typespec): Likewise.
3758
3759 2004-03-30  Martin Baulig  <martin@ximian.com>
3760
3761         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
3762         `has_ctor_constraint' and `initialized'.
3763
3764 2004-03-30  Martin Baulig  <martin@ximian.com>
3765
3766         * reflection.c (encode_new_constraint): New static function to add
3767         the constructor constraint attribute to a type parameter.
3768         (encode_constraints): Call encode_new_constraint() if necessary.
3769
3770         * reflection.h
3771         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
3772
3773         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
3774         
3775 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
3776
3777         * reflection.c, icall.c: add support for pinning variables. 
3778
3779 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
3780
3781         * marshal.c (mono_marshal_get_managed_wrapper):
3782         init bool local with zero rather than null.
3783
3784 2004-03-29  Martin Baulig  <martin@ximian.com>
3785
3786         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
3787         the "official" behavior here.
3788         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
3789
3790 2004-03-29  Martin Baulig  <martin@ximian.com>
3791
3792         * icall.c: Reflect latest API changes.
3793
3794 2004-03-29  Martin Baulig  <martin@ximian.com>
3795
3796         * loader.c (mono_get_method_from_token): Also call
3797         mono_metadata_load_generic_params () for abstract and interface
3798         methods; replace the type arguments in the method signature with
3799         the ones which are loaded from the metadata.
3800
3801 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
3802
3803         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
3804         of the lock is not the current thread. MS.NET don't do it, in spite of
3805         what the documentation says. See bug #56157.
3806
3807 2004-03-28  Martin Baulig  <martin@ximian.com>
3808
3809         * class.c (mono_class_init): Don't call init_properties() and
3810         init_events() for generic instances; set `prop->parent' when
3811         inflating properties.
3812
3813         * reflection.c (mono_generic_inst_get_object): Call
3814         `mono_class_init (ginst->klass)'.
3815         (mono_type_get_object): Only create a MonoGenericInst if your
3816         generic type is a TypeBuilder.
3817         (do_mono_reflection_bind_generic_parameters): Only set
3818         `ginst->is_dynamic' if our generic type is a TypeBuilder.
3819
3820 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
3821
3822         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
3823         Fixes #56091.
3824
3825 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3826
3827         * icall.c: added Kill_internal icall.
3828         * process.[ch]: added Kill_internal icall.
3829
3830 2004-03-25  Martin Baulig  <martin@ximian.com>
3831
3832         * class.h (MonoStats): Added `generic_instance_count',
3833         `inflated_method_count', `inflated_type_count' and
3834         `generics_metadata_size'.       
3835
3836 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3837
3838         * reflection.c: no warnings now.
3839
3840 2004-03-25  Martin Baulig  <martin@ximian.com>
3841
3842         * class.c (mono_class_get_full): New public function; does a
3843         mono_class_get(), but also takes a `MonoGenericContext *'.
3844
3845         * loader.c (mono_field_from_memberref): Renamed to
3846         `field_from_memberref', made static and added `MonoGenericContext *'
3847         argument.
3848         (mono_field_from_token): Added `MonoGenericInst *' argument.
3849         (method_from_memberef): Likewise.
3850         (mono_get_method_from_token): Likewise.
3851         (mono_get_method_full): New public function; does a
3852         mono_get_method(), but also takes a `MonoGenericContext *'.
3853
3854         * verify.c (mono_method_verify): Get the method's generic context
3855         and pass it to mono_field_from_token(), mono_get_method_full() and
3856         mono_class_get_full().
3857
3858 2004-03-25  Martin Baulig  <martin@ximian.com>
3859
3860         * class.c (mono_class_inflate_generic_type): Take a
3861         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
3862         `MonoGenericMethod *'.
3863
3864 2004-03-25  Martin Baulig  <martin@ximian.com>
3865
3866         * loader.h (MonoMethodInflated): Store the MonoGenericContext
3867         instead of the MonoGenericMethod here.
3868
3869 2004-03-25  Martin Baulig  <martin@ximian.com>
3870
3871         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
3872         each time we create a new MonoGenericInst, we also create a new
3873         context which points back to us.
3874
3875         * class.c (inflate_method): Use `ginst->context' instead of
3876         creating a new context.
3877
3878         * loader.c (method_from_memberref): Use
3879         `klass->generic_inst->context' instead of creating a new context.
3880
3881 2004-03-25  Martin Baulig  <martin@ximian.com>
3882
3883         * class.h (MonoGenericContext): New struct.
3884         (MonoGenericMethod): Removed `generic_inst'.
3885
3886         * class.c (mono_class_inflate_generic_method): Take a
3887         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
3888
3889 2004-03-25  Martin Baulig  <martin@ximian.com>
3890
3891         * loader.h (MonoMethodInflated): New typedef.
3892
3893         * metadata.h (MonoMethodSignature): Removed `gen_method', make
3894         `generic_param_count' consume just 30 bits, added `is_inflated'
3895         and `has_type_parameters' flags (one bit each).
3896
3897         * class.c (mono_class_inflate_generic_method): Create a
3898         MonoMethodInflated instead of a MonoMethodNormal and set
3899         `is_inflated' in the method signature.
3900
3901         * class.h (MonoGenericMethod): Removed `generic_method'.
3902
3903 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
3904
3905         * image.c: Make sure the name of a MonoImage is always an absolute path.
3906           This fixes bug #54415.
3907
3908 2004-03-24  Martin Baulig  <martin@ximian.com>
3909
3910         * class.c (mono_class_setup_vtable): If we're a generic instance,
3911         use our generic type's vtable size.
3912
3913 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
3914
3915         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
3916         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
3917         problems.
3918
3919 2004-03-23  Martin Baulig  <martin@ximian.com>
3920
3921         * class.h (MonoDynamicGenericInst): Added `int count_events' and
3922         `MonoEvent *events'.
3923
3924         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
3925         (typebuilder_icalls): Added "get_event_info"; calls
3926         mono_reflection_event_builder_get_event_info(). 
3927
3928         * reflection.c (mono_reflection_generic_inst_initialize): Added
3929         `MonoArray *events'.
3930         (mono_reflection_event_builder_get_event_info): New function.
3931
3932 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
3933
3934         * object.h: add mono_type_initialization_init
3935
3936         * object.c (mono_runtime_class_init): 
3937         implement class constructor synchronization rules
3938         to cope with threading issues.  
3939         add mono_type_initialization_init
3940
3941         * appdomain.c (mono_runtime_init): call 
3942         mono_type_initialization_init
3943
3944         * class.h: removing initializing field from MonoVTable
3945
3946 2004-03-23  Martin Baulig  <martin@ximian.com>
3947
3948         * class.c (my_mono_class_from_generic_parameter): Use
3949         `param->name' if it's not NULL. 
3950
3951 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
3952
3953         * class.c: do not insert non-virtual methods in the vtable.
3954         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
3955         that means the method is non-virtual. This never would have
3956         happened before.
3957
3958 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
3959
3960         * profiler.c: Added lock for accessing coverage_hash.
3961
3962 2004-03-22  Martin Baulig  <martin@ximian.com>
3963
3964         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
3965         `method->method->signature->generic_param_count != 0' to make it
3966         work for interface methods.
3967
3968 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3969
3970         * process.c: quote the string passed to the shell using g_shell_quote.
3971
3972 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3973
3974         * threads.c:
3975         (mono_threads_manage): don't remove the finalizer thread and self
3976         from the threads hash table so that mono_thread_manage can be called
3977         more than once.
3978
3979 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3980
3981         * process.c: quote the arguments when UseShellExecute is true. Fixes
3982         bug #55790.
3983
3984 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3985
3986         * threads.c: set mono_thread_detach as a cleanup routine for every
3987         thread. This way it's always executed upon thread termination, either
3988         aborted or finished normally. No more xsp hangs!
3989
3990 2004-03-17  Martin Baulig  <martin@ximian.com>
3991
3992         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
3993         `int count_nested' and a `MonoType **nested'.
3994
3995         * reflection.c (mono_reflection_bind_generic_parameters): Moved
3996         most of the functionality into a new static
3997         do_mono_reflection_bind_generic_parameters() and don't take a
3998         `MonoType *nested_in' argument any more.  Don't compute nested
3999         types here.
4000         (mono_reflection_generic_inst_get_nested_types): New public method
4001         to get nested types.
4002
4003         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4004         we're a nested class.
4005
4006         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4007         mono_reflection_generic_inst_get_nested_types() to compute the
4008         nested types.
4009
4010 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4011
4012         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4013         descriptive error message under windows.
4014         
4015 2004-03-17  Martin Baulig  <martin@ximian.com>
4016
4017         * class.c (dup_type): Added `const MonoType *original' argument;
4018         copy the attrs from the original type.
4019
4020 2004-03-17  Martin Baulig  <martin@ximian.com>
4021
4022         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4023         `m->generic_inst_cache' here.
4024
4025 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4026
4027         * exception.h exception.c: Add stack_overflow_exception.
4028
4029 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4030
4031         * threadpool.c:
4032         (overlapped_callback): call SetEvent *after* invoking the callback.
4033         No need to call CloseHandle.
4034
4035 2004-03-16  Martin Baulig  <martin@ximian.com>
4036
4037         * reflection.c (mono_image_get_fieldref_token): Take a
4038         `MonoReflectionField *' instead of a `MonoClassField *' and a
4039         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4040
4041 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4042
4043         * appdomain.c: don't add the culture to the filename we're looking for
4044         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4045
4046 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4047
4048         * locales.c: don't ignore symbols when doing case insensitive compares.
4049         Thanks Dick! Fixes bug #54046.
4050
4051         * threads.c: surround 'threads' usage with enter/leave in
4052         mono_thread_manage.
4053
4054 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4055
4056         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4057         implicitly marshalled as [Out]. Fixes #55450.
4058
4059         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4060         an exception.
4061
4062 2004-03-16  Martin Baulig  <martin@ximian.com>
4063
4064         * class.c (mono_class_from_generic_parameter): Use the actual
4065         parameter name. 
4066
4067 2004-03-16  Martin Baulig  <martin@ximian.com>
4068
4069         * reflection.c (type_get_signature_size): New static function.
4070         Compues the size of the type in a method signature.
4071         (method_get_signature_size): New static function; calls
4072         type_get_signature_size() to compute the actual size of the
4073         method's signature.
4074         (method_encode_signature): Use method_get_signature_size() to get
4075         the signature's size rather than using `nparams * 10'.
4076
4077 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4078
4079         * file-io.h: define here WapiOverlapped on windows. I don't want the
4080         regular OVERLAPPED one.
4081
4082         * file-io.c:
4083         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4084         Disabling AIO on windows.
4085
4086 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4087
4088         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4089         bug #55385.
4090
4091 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4092
4093         * appdomain.c: upgraded corlib version.
4094
4095         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4096         and BeginWrite. Allow opening files for asynchrnous operations.
4097
4098         * file-io.h: new struct that maps FileStreamAsyncResult.
4099         * icall.c: added new icalls.
4100         * process.[ch]: support setting child process environment variables
4101         and use the SHELL or COMSPEC when UseShellExecute is true.
4102
4103         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4104         callback for async. IO is here and also BindHandle.
4105
4106         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4107         from here.
4108
4109 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4110
4111         * reflection.c (create_custom_attr): Allow len == 0.
4112
4113         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4114         computation on big-endian machines.
4115
4116 2004-03-13  Martin Baulig  <martin@ximian.com>
4117
4118         * class.h (MonoGenericInst): Added `int count_ifaces'.
4119
4120         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4121         `ginst->count_ifaces' instead `klass->interface_count' since we
4122         may get called before the vtable is created.
4123
4124         * loader.c (mono_method_get_param_names): If we're a generic
4125         instance, return and don't initialize the class.
4126
4127         * reflection.c (mono_reflection_setup_generic_class): Don't call
4128         ensure_runtime_vtable().
4129         (mono_reflection_bind_generic_parameters): Set
4130         `ginst->count_ifaces'.
4131
4132 2004-03-11  Jackson Harper <jackson@ximian.com>
4133
4134         * icall.c:
4135         * unicode.c:
4136         * unicode.h: Remove unused System.Char icalls.
4137         
4138 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4139
4140         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4141         code when we P/Invoke the first library in Windows.Forms, instead
4142         of when we first open the assembly.
4143
4144         * assembly.c: Drop the lookup from here.
4145
4146 2004-03-10  Martin Baulig  <martin@ximian.com>
4147
4148         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4149         class for properties, fields and events.  Finally fixes #54945.
4150
4151 2004-03-10  Martin Baulig  <martin@ximian.com>
4152
4153         * metadata.c (mono_metadata_class_equal): New static function;
4154         checks whether two generic instances or two generic parameters are
4155         equal.
4156         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4157         compare classes.        
4158
4159 2004-03-10  Martin Baulig  <martin@ximian.com>
4160
4161         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4162
4163         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4164         argument and write it into the `reflection_info' field.
4165
4166         * icall.c
4167         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4168         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4169
4170 2004-03-09  Jackson Harper  <jackson@ximian.com>
4171
4172         * char-conversions.h: use 8 bits for numeric data its all we need
4173         * icall.c: numeric data is only 8 bits now.
4174
4175 2004-03-09  Martin Baulig  <martin@ximian.com>
4176
4177         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4178
4179         * class.c (init_properties, init_events): Initialize the new
4180         `parent' field.
4181
4182         * reflection.c (typebuilder_setup_properties): Likewise.
4183         (typebuilder_setup_events): Likewise.
4184
4185         * reflection.h (MonoEventInfo): Replaced `parent with
4186         `declaring_type' and `reflected_type'.
4187
4188         * icall.c (ves_icall_get_property_info): Distinguish between
4189         declaring and reflected type.
4190         (ves_icall_get_event_info): Likewise.
4191
4192 2004-03-09  Martin Baulig  <martin@ximian.com>
4193
4194         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4195         (ves_icall_Type_GetField): Correctly set field->klass.
4196
4197 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4198
4199         * loader.h: Fix warning.
4200
4201 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4202
4203         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4204         library routine if present.  Notice that it will still continue
4205         executing even if its missing, for those working on the Gtk#
4206         edition of Windows.Forms.
4207
4208         * assembly.c (do_mono_assembly_open): If loading the
4209         System.Windows.Forms call mono_loader_wini_init.
4210
4211 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4212
4213         * class.h: Added MonoRemoteClass struct.
4214         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4215         function for MonoStrings.
4216         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4217         Added internal call for getting the proxy type.
4218         * marshal.c: Get the type of transparent proxies from its remote_class.
4219         Added methods that generate the IL for type checks and casts:
4220         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4221         mono_marshal_get_proxy_cancast.
4222         * marshal.h: Declaration of the previous new methods.
4223         * object.c: Added new moethods for creating and updating MonoRemoteClass
4224         instances: mono_remote_class, mono_upgrade_remote_class, 
4225         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4226         * verify.c: FIx transparent_proxy_fields layout.
4227         * appdomain.c: Bump corlib version.
4228
4229 2004-03-04  Jackson Harper  <jackson@ximian.com>
4230
4231         * icall.c: Add icall to access char conversion tables.
4232         * char-conversions.h: Character conversion tables.
4233         * Makefile.am: Add char-conversions.h private header file.
4234         
4235 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4236
4237         * appdomain.c (unload_thread_main): Increase unloading timeout to
4238         10 sec as a temporary workaround for Nant problems.
4239
4240 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4241
4242         * gc.c: Add checks for GC_enable and GC_disable.
4243
4244         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4245         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4246         (bug #54988).
4247         
4248 2004-02-27  Martin Baulig  <martin@ximian.com>
4249
4250         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4251         `MonoReflectionType *' instead of a `MonoType *'.
4252
4253 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4254
4255         * gc.c (run_finalize): Avoid finalizing the object representing the
4256         finalizer thread.
4257         (finalizer_thread): Fix warning.
4258
4259 2004-02-25  Martin Baulig  <martin@ximian.com>
4260
4261         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4262         argument for nested types.
4263         (mono_class_create_generic): Added support for nested generictypes.
4264
4265         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4266         `GList *nested'.
4267
4268         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4269
4270         * reflection.c (method_encode_signature): Increase the minimum
4271         value of `size' from 10 to 11.
4272         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4273         and `MonoType **types' arguments instead of the `MonoArray
4274         *types'; added `MonoType *nested_in'.  Recursively instantiate
4275         nested classes. 
4276
4277 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4278
4279         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4280         stack_overflow_ex members which are used by exception handling.
4281
4282         * appdomain.c (mono_runtime_init): Initialize the new members.
4283
4284         * gc.c (mono_gc_enable): New helper function.
4285         * gc.c (mono_gc_disable): New helper function.
4286
4287 2004-02-23  Martin Baulig  <martin@ximian.com>
4288
4289         * icall.c: I must have been really stupid - make it actually work
4290         this time ;-)
4291
4292 2004-02-23  Martin Baulig  <martin@ximian.com>
4293
4294         * loader.c (method_from_memberref): Only inflate the method if
4295         it's in another klass.
4296
4297 2004-02-23  Martin Baulig  <martin@ximian.com>
4298
4299         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4300         (mono_class_init): If we're a generic instance and an interface,
4301         compute `class->interface_id'; also create `class->interfaces'
4302         here and inflate them.
4303
4304         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4305         `ginst->is_open'.
4306         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4307
4308         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4309
4310 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4311
4312         * reflection.c (method_encode_code): Improved the error message
4313         generated by the exception.
4314
4315 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4316
4317         * icall.c: Martin did not do what he said in the ChangeLog for
4318         2004-02-18, but put back the changes for properties and events.
4319         Commenting those changes out again and adding comment to bug #54518.
4320         
4321         * process.c: removed warning.
4322
4323 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4324
4325         * marshal.c (emit_struct_conv): Print an error message instead of
4326         asserting when a type does not have the StructLayout attribute.
4327
4328 2004-02-20  Martin Baulig  <martin@ximian.com>
4329
4330         * reflection.c (mono_type_get_object): Also use the cache for
4331         generic instances.
4332         (mono_reflection_bind_generic_parameters): Always compute
4333         `ginst->ifaces'.        
4334
4335 2004-02-20  Martin Baulig  <martin@ximian.com>
4336
4337         * class.h (MonoGenericMethod): Removed `klass'.
4338
4339         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4340         *klass' argument.
4341
4342 2004-02-20  Martin Baulig  <martin@ximian.com>
4343
4344         * reflection.c (method_encode_methodspec): Actually use the
4345         uninflated signature for the memberref.
4346
4347 2004-02-20  Martin Baulig  <martin@ximian.com>
4348
4349         * class.h (MonoGenericMethod): Removed `declaring'.
4350
4351         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4352         is NULL, compute it here.
4353
4354 2004-02-20  Martin Baulig  <martin@ximian.com>
4355
4356         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4357
4358         * metadata.c (mono_metadata_generic_inst_hash): New method.
4359         (mono_metadata_generic_inst_equal): New method.
4360
4361         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4362         `klass->image->generic_inst_cache' cache to avoid creating
4363         duplicate MonoGenericInst's.
4364
4365         * class.c (mono_class_inflate_generic_type): Use the cache.
4366
4367 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4368
4369         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4370
4371 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4372
4373         * icall.c: added Socket.WSAIoctl icall.
4374
4375         * socket-io.[ch]: implemented
4376         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4377
4378 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4379
4380         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4381
4382 2004-02-18  Urs C Muff  <umuff@quark.com>
4383
4384         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4385         this work on PPC and other big-endian architectures.
4386
4387         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4388         fields with an underscore to make sure they're only accessed by
4389         the read32() macro.
4390
4391 2004-02-18  Martin Baulig  <martin@ximian.com>
4392
4393         * icall.c: Put the klass->refclass changes back for methods and
4394         fields, but not for properties and events.  We're currently not
4395         distinguishing between DeclaringType and ReflectedType for
4396         properties and events, that's what caused the regressions.
4397
4398 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4399
4400         * object.c:
4401         (mono_async_result_new): the handle can be NULL.
4402
4403         * threadpool.c: Use an event instead of a semaphore, don't initialize
4404         it until needed. This saves quite a few semaphores from being created
4405         when using the threadpool.
4406
4407 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4408
4409         * object.c (mono_string_is_interned_lookup): Fix interning of long
4410         strings. Fixes #54473.
4411
4412         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4413
4414         * icall.c: Revert the klass->refclass changes since they introduce
4415         regressions (bug #54518).
4416
4417 2004-02-18  Martin Baulig  <martin@ximian.com>
4418
4419         * class.c (mono_class_init): If we're a generic instance and don't
4420         come from a TypeBuilder, inflate our members here.
4421         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4422         (mono_class_create_generic): New public method.
4423         (mono_class_initialize_generic): Removed.
4424         (get_instantiation_name): Renamed to
4425         _mono_class_get_instantiation_name() and made it public.
4426
4427 2004-02-18  Martin Baulig  <martin@ximian.com>
4428
4429         * class.c (mono_class_inflate_generic_type): Clear the new
4430         instance's `nginst->klass' when inflating a generic instance.
4431         (mono_class_is_subclass_of): Added (basic) support for generic
4432         instances.
4433
4434 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4435
4436         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4437         MonoMempool to hold compiled native code.
4438
4439 2004-02-17  Martin Baulig  <martin@ximian.com>
4440
4441         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4442         `properties'.
4443
4444         * reflection.c (mono_reflection_generic_inst_initialize): Added
4445         `MonoArray *properties' argument.
4446
4447         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4448
4449 2004-02-17  Martin Baulig  <martin@ximian.com>
4450
4451         * icall.c (ves_icall_Type_GetFields): Renamed to
4452         ves_icall_Type_GetFields_internal() and added a
4453         `MonoReflectionType *rtype' argument; pass it to
4454         mono_field_get_object() to set the field's "reflected" type.
4455         (ves_icall_Type_GetConstructors): Likewise.
4456         (ves_icall_Type_GetEvents): Likewise.
4457         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4458         argument; pass it to mono_method_get_object() to set the method's
4459         "reflected" type.       
4460
4461 2004-02-17  Martin Baulig  <martin@ximian.com>
4462
4463         * class.h (MonoDynamicGenericInst): New type.
4464         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4465
4466         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4467         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4468         (ves_icall_MonoGenericInst_GetFields): New interncall.
4469
4470         * class.c (mono_class_from_generic): Don't call
4471         mono_class_initialize_generic() if this is a dynamic instance;
4472         ie. it's being created from a TypeBuilder.
4473         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4474         `class->byval_arg.type'.
4475
4476         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4477         to `inflate_method' and made static.
4478         (mono_reflection_inflate_field): Removed.
4479         (mono_reflection_generic_inst_initialize): New public method.
4480
4481         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4482         `ctors' and `fields'; added `initialized'.
4483
4484 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4485
4486         * debug-helpers.c (mono_method_full_name): Fix output for empty
4487         namespaces.
4488
4489 2004-02-12  Martin Baulig  <martin@ximian.com>
4490
4491         * class.h (MonoClassField): Added `MonoType *generic_type'.
4492
4493         * reflection.c (mono_image_get_fieldref_token): Added support for
4494         instantiated generic types.
4495         (field_encode_inflated_field): Removed.
4496         (mono_image_get_inflated_field_token): Removed.
4497         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4498
4499         * reflection.h (MonoReflectionInflatedField): Removed.
4500
4501 2004-02-12  Martin Baulig  <martin@ximian.com>
4502
4503         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4504         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4505
4506         * reflection.c (mono_image_get_methodspec_token): Take a
4507         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4508         (mono_image_create_token): Check whether we have a
4509         `method->signature->gen_method' and call
4510         mono_image_get_methodspec_token() if appropriate.
4511         (inflated_method_get_object): Removed.
4512         (mono_reflection_bind_generic_method_parameters): Return a
4513         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4514         (mono_reflection_inflate_method_or_ctor): Likewise.
4515
4516         * reflection.h (MonoReflectionInflatedMethod): Removed.
4517
4518 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4519
4520         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4521         for custom valuetype marshalling.
4522
4523         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4524
4525 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4526
4527         * icall.c: fixed WSAGetLastError_internal name.
4528
4529 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4530
4531         * threads.c (mono_thread_attach): Allow this to be called multiple
4532         times for a thread.
4533         
4534         * threads.c (build_wait_tids): Do not wait for ourselves.
4535
4536         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4537         appdomain list is empty.
4538
4539         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4540         memory returned by mono_string_builder_to_utf16, since it points into
4541         managed memory. Thanks to Bernie Solomon for noticing this.
4542
4543         * icall.c: Add AppDomainSetup icalls.
4544
4545         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4546
4547         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4548         types.
4549
4550         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4551         custom attributes to the method_aux struct. Also fix array indexes etc.
4552
4553         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4554         
4555 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4556
4557         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4558         (both static and runtime) and reduce startup time.
4559
4560 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4561
4562         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4563         AsAny marshalling conversion instead of crashing.
4564
4565         * marshal.c: Fix warnings.
4566
4567 2004-02-09  Martin Baulig  <martin@ximian.com>
4568
4569         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4570
4571         * reflection.h (MonoReflectionInflatedMethod): Removed the
4572         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4573
4574         * reflection.c (method_encode_methodspec): Removed the `method'
4575         argument; we get it from `gmethod->declaring'.
4576         (inflated_method_get_object): Removed the `declaring' argument.
4577
4578 2004-02-09  Martin Baulig  <martin@ximian.com>
4579
4580         * class.h (MonoGenericMethod): New type.
4581         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4582         `generic_method'.
4583
4584         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4585         a `MonoGenericMethod *gen_method' one.
4586
4587         * class.c (mono_class_inflate_generic_type): Take an additional
4588         `MonoGenericMethod * argument.  This is only non-NULL if we're
4589         inflating types for a generic method.   
4590         (mono_class_inflate_generic_signature): Renamed to
4591         inflate_generic_signature() and made static; take a
4592         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4593         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4594         instead of a `MonoGenericInst *' one.
4595         (mono_class_inflate_generic_method): Likewise.
4596
4597         * reflection.c (encode_generic_method_sig): Take a
4598         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4599         (method_encode_methodspec): Likewise.
4600         (inflated_method_get_object): Likewise. 
4601
4602         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4603         field with a `MonoGenericMethod *gmethod' one.  
4604
4605 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4606
4607         * class.h (mono_class_has_parent): add parens to expansion
4608         so you can ! this.
4609
4610 2004-02-08  Martin Baulig  <martin@ximian.com>
4611
4612         * image.h (MonoImage): Removed `generics_cache'.
4613
4614         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4615         instead of a `MonoType *' argument; removed the `inflate_methods'
4616         argument.  Don't inflate methods here.
4617
4618         * loader.c (find_method): If it's a generic instance, call
4619         mono_class_init() on the `sclass->generic_inst->generic_type'.
4620
4621         * metadata.c (mono_type_size): Make this work on uninitialized
4622         generic instances; call it on the `ginst->generic_type's class.
4623
4624         * reflection.c (mono_reflection_bind_generic_parameters): Call
4625         mono_class_from_generic() to create the `ginst->klass'.
4626
4627 2004-02-08  Martin Baulig  <martin@ximian.com>
4628
4629         * class.h (MonoClass): Changed type of `generic_inst' from
4630         `MonoType *' to `MonoGenericInst *'.
4631
4632 2004-02-08  Martin Baulig  <martin@ximian.com>
4633
4634         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4635         mono_type_get_object(), this is now creating a `MonoGenericInst'
4636         for MONO_TYPE_GENERICINST.
4637         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4638         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4639
4640         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4641         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4642         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4643         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4644         and reflected type.
4645
4646         * reflection.h (MonoReflectionInflatedMethod): Removed
4647         `declaring_type' and `reflected_type'.
4648
4649 2004-02-08  Martin Baulig  <martin@ximian.com>
4650
4651         * class.h (MonoGenericInst): Added `MonoType *parent' and
4652         `MonoType **ifaces'.
4653
4654         * reflection.h (MonoReflectionGenericInst): Removed `klass',
4655         `parent' and `interfaces'.
4656
4657         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4658         `MonoType *' argument and return a `MonoType *'.
4659
4660         * icall.c
4661         (ves_icall_MonoGenericInst_GetParentType): New interncall.
4662         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
4663
4664 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4665
4666         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
4667         valuetype marshalling.
4668
4669 2004-02-06  Martin Baulig  <martin@ximian.com>
4670
4671         * class.c
4672         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
4673         (my_mono_class_from_generic_parameter): Likewise.
4674
4675 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4676
4677         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
4678         contents of the symbol files lazily.
4679
4680         * object.h (MonoThread): Add 'name' and 'name_len' fields.
4681
4682         * threads.h threads.c icall.c: New icalls for getting and setting the
4683         threads name.
4684
4685 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
4686
4687         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
4688         Raise an exception when the domain is not found.
4689
4690 2004-02-03  Martin Baulig  <martin@ximian.com>
4691
4692         * reflection.c (mono_image_get_methodspec_token): Use the
4693         uninflated signature; fixes gen-33.
4694
4695 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
4696
4697         * gc.c threads.c: Make the finalizer thread a normal managed thread so
4698         the finalizer code can use thread functionality.
4699
4700         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
4701         the finalizer thread.
4702
4703         * threads.c: Make some functions more robust.
4704
4705         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
4706
4707         * metadata.h: Add new marshalling conventions.
4708
4709         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
4710         stringbuilder marshalling. Fixes #53700.
4711
4712         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
4713
4714         * reflection.c (mono_image_get_type_info): Save declarative security
4715         info.
4716
4717         * reflection.c (mono_image_get_field_info): Handle uninitialized 
4718         unmanaged fields as well.
4719
4720         * appdomain.c: Bump corlib version.
4721
4722 2004-02-01  Martin Baulig  <martin@ximian.com>
4723
4724         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
4725         method type arguments.  
4726
4727 2004-01-30  Duncan Mak  <duncan@ximian.com>
4728
4729         * marshal.h: Add prototype for
4730         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
4731         and
4732         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
4733         fix the build.
4734
4735 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
4736
4737         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
4738         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
4739
4740 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4741
4742         * marshal.c (mono_marshal_get_native_wrapper): Add support for
4743         custom marshalling of valuetypes.
4744
4745         * marshal.c: Fix some warnings.
4746
4747 2004-01-29  Martin Baulig  <martin@ximian.com>
4748
4749         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
4750         for generic method parameters.
4751
4752         * reflection.c (method_encode_methodspec): Write the uninflated
4753         signature into the methodspec table.
4754         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
4755         is always the uninflated method.
4756         (reflection_methodbuilder_to_mono_method): Copy the generic
4757         parameters from the MethodBuilder into `header->gen_params'.
4758
4759 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4760
4761         * class.c (mono_class_from_generic_parameter): Fix warning.
4762
4763 2004-01-27  Martin Baulig  <martin@ximian.com>
4764
4765         * class.c (mono_class_from_generic_parameter): Don't create
4766         `klass->methods' here.  
4767
4768 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
4769
4770         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
4771         extension since it does not work with libraries named lib<FOO>.dll.so.
4772
4773 2004-01-25  Martin Baulig  <martin@ximian.com>
4774
4775         * class.c (mono_class_inflate_generic_type): Added support for
4776         MONO_TYPE_GENERICINST.
4777
4778         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
4779         inflate methods on open constructed types.      
4780
4781 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4782
4783         * object.c: fire ProcessExit event in the root AppDomain after running
4784         Main. Fixes bug #53299.
4785
4786 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
4787
4788         * socket-io.c: include the new socket-wrappers.h header.
4789         Use the wrappers instead of the unix socket functions to make the code
4790         more clear.
4791
4792 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
4793
4794         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
4795
4796         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4797         Fixes #22532.
4798
4799 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
4800
4801         * reflection.c (mono_image_create_pefile): Handle the case when the
4802         entry point is not a MethodBuilder.
4803
4804         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4805         field to ReflectionMethod since it is not allways a builder.
4806
4807         * reflection.c (type_get_fully_qualified_name): New helper function to
4808         return the fully qualified name of a type.
4809
4810         * reflection.c (encode_marshal_blob): Always emit the fully qualified
4811         type name for custom marshallers.
4812
4813         * reflection.c (mono_marshal_spec_from_builder): Ditto.
4814
4815         * class.c (mono_class_setup_vtable): If a parent class already 
4816         implements an interface, use the implementing methods from that class.
4817         Fixes #53148.
4818
4819 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4820
4821         * threadpool.c: just return instead of ExitThread to allow for thread
4822         clean up earlier.
4823
4824 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
4825
4826         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
4827         when closing resource modules.
4828
4829         * reflection.c (mono_image_create_pefile): Handle the case when the
4830         entry point is not a MethodBuilder.
4831
4832         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4833         field to ReflectionMethod since it is not allways a builder.
4834
4835 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
4836
4837         * marshal.c (mono_marshal_get_managed_wrapper): 
4838         mono_marshal_alloc takes native int so CONV_I
4839         the arg for 64bits.
4840
4841 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
4842
4843         * reflection.c (fixup_cattrs): New function to fixup the methoddef
4844         tokens in the cattr table. Fixes #53108.
4845
4846 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4847
4848         * loader.c: don't trim ".dll" before looking up in the config file.
4849         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
4850
4851 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
4852
4853         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
4854         Return the module which contains the resource as well.
4855         (ves_icall_System_Reflection_Module_Close): New icall.
4856
4857         * appdomain.c: Bump corlib version number.
4858
4859         * image.c (mono_image_addref): New public function.
4860
4861         * assembly.c: Call mono_image_addref.
4862
4863         * reflection.c (mono_module_get_object): Increase reference count of 
4864         the image.
4865
4866         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4867         Fixes #22532.
4868
4869         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
4870         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
4871         proper exceptions on DllImport problems.
4872
4873 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
4874
4875         * class.c, metadata.c: eliminate CSIZE macro.
4876
4877 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
4878
4879         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
4880         * object.h: Added async_callback field in MonoAsyncResult.
4881         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
4882         * verify.c: Added async_callback in MonoAsyncResult layout.
4883
4884 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
4885
4886         * reflection.c (mono_reflection_get_custom_attrs): Add support
4887         for Modules.
4888
4889 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
4890
4891         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
4892         marshalling.
4893         (mono_marshal_method_from_wrapper): Add null pointer check.
4894
4895 2004-01-16  Martin Baulig  <martin@ximian.com>
4896
4897         * debug-mono-symfile.h: Set version number to 36 and reflect
4898         latest symbol writer changes.
4899
4900 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
4901
4902         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
4903         multi-dimensional arrays.
4904         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
4905         (mono_class_from_mono_type): Use bounded_array_class_get.
4906         
4907         * class.c (mono_bounded_array_class_get): New function which takes
4908         a 'bounded' bool argument to distinguish vectors from one dimensional
4909         arrays.
4910
4911         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
4912         bounded_array_class_get if the array has bounds.
4913
4914         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
4915         Search modules loaded using AssemblyBuilder:AddModule as well.
4916
4917 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4918
4919         * appdomain.c: increased corlib version.
4920         * filewatcher.c: removed g_print.
4921         * icall.c:
4922         (get_property_info): only allocate what is actually requested.
4923         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
4924
4925 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4926
4927         * Makefile.am: added filewatcher.[ch]
4928         * filewatcher.[ch]: FileSystemWatcher runtime support.
4929         * icall.c: added new FSW icalls.
4930
4931 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
4932
4933         * string-icalls.c: fix stringbuilder regression as suggested by
4934         Iain McCoy <iain@mccoy.id.au>.
4935
4936 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
4937
4938         * process.c (process_read_stringtable_block): Recognize '007f' as
4939         a language neutral stringtable block.
4940
4941 2004-01-12  Patrik Torstensson
4942
4943         * object.h (MonoStringBuilder) : Changed layout to support our
4944         new stringbuilder class.
4945         * marshal.c: Change marshalling to support the new layout of 
4946         string builder.
4947         * appdomain.c: increased version number because new layout of
4948         string builder.
4949
4950 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
4951
4952         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
4953         assembly name as an string instead of an AssemblyName, since it is
4954         easier to extract info from it.
4955
4956         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
4957         the culture subdirectories too. Fixes #52231.
4958
4959 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4960
4961         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
4962         It takes 2 new parameters with an optional name for the method to look
4963         for and case ignoring info.
4964
4965         * threadpool.c: removed unused variable.
4966
4967 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4968
4969         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
4970         It takes 2 new parameters with an optional name for the property to look
4971         for and case ignoring info.
4972         Fixes bug #52753.
4973
4974 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
4975
4976         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
4977         Fix #52451.
4978
4979 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4980
4981         * appdomain.c:
4982         * assembly.c: escape the uri before passing it to g_filename_from_uri.
4983         Fixes bug #52630.
4984
4985 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
4986
4987         * reflection.c: Add support for more than one unmanaged resource.
4988
4989         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
4990         in field->def_value, as done in all other cases.
4991
4992         * reflection.c (mono_reflection_get_custom_attrs): Add support for
4993         TypeBuilders.
4994
4995         * reflection.c (mono_reflection_create_runtime_class): Remove 
4996         errorneous assignment to klass->element_class, since it is already
4997         done in mono_reflection_setup_internal_class.
4998
4999 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5000
5001         * gc.c: added missing LeaveCriticalSection.
5002         * icall.c: indented a couple of lines.
5003         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5004         if we call EndInvoke inside a callback. Fixes bug #52601.
5005
5006 2004-01-07  Martin Baulig  <martin@ximian.com>
5007
5008         * mono-debug-debugger.h
5009         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5010
5011 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5012
5013         * appdomain.c: Use messages in NotImplementedException.
5014
5015         * exception.c (mono_get_exception_not_implemented): Now this takes
5016         a message argument.
5017
5018         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5019         exception instead of g_asserting an aborting when something is not
5020         implemented.
5021
5022         Add some inline docs.
5023
5024 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5025
5026         * reflection.h: Update after changes to object layout.
5027
5028         * reflection.c: Implement saving of unmanaged aka win32 resources.
5029
5030         * appdomain.c: Bump version number.
5031
5032         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5033         Handle missing domains gracefully.
5034
5035 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5036
5037         * file-io.c : On Windows, there are much more invalid_path_chars.
5038
5039 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5040
5041         * class.h, object.c: prepare for GetType () speedup.
5042
5043 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5044
5045         * profiler.c: workaround for --profile null reference exception on
5046           cygwin. Patch by Patrik Torstensson.
5047
5048 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5049
5050         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5051         make work for unaligned access.
5052
5053 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5054
5055         * class.c: small cleanup (class->fields [i] -> field).
5056         * image.c: check address of metadata is valid.
5057
5058 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5059
5060         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5061         search the list of loaded assemblies.
5062
5063         * reflection.c (mono_reflection_type_from_name): Use 
5064         mono_assembly_loaded instead of mono_image_loaded.
5065
5066         * reflection.c: Fix warnings.
5067
5068 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5069
5070         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5071         is dynamic. This is needed since an assembly can contain both dynamic and
5072         non-dynamic images.
5073
5074         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5075         assembly->dynamic.
5076
5077         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5078
5079         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5080         to store modules loaded using AddModule.
5081
5082         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5083         on Modules.
5084
5085         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5086
5087         * reflection.c (mono_image_fill_export_table_from_module): New function to
5088         fill out the EXPORTEDTYPES table from a module.
5089
5090         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5091         into a separate function. Also handle loaded non-dynamic modules.
5092
5093         * reflection.c (mono_image_basic_init): Fix memory allocation.
5094
5095         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5096
5097         * assembly.c (mono_assembly_load_references): Make this public.
5098
5099 2003-12-19  Martin Baulig  <martin@ximian.com>
5100
5101         * class.c (mono_class_initialize_generic): Made this static, take
5102         a `MonoGenericInst *' instead of a `MonoClass *'.
5103         (mono_class_from_generic): Call mono_class_initialize_generic()
5104         unless we're already initialized or being called from
5105         do_mono_metadata_parse_generic_inst().
5106
5107         * class.h (MonoGenericInst): Added `initialized' and
5108         `init_pending' flags.
5109
5110         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5111         `mono_class_init (gklass)' or mono_class_initialize_generic()
5112         here; set `generic_inst->init_pending' while parsing the
5113         `type_argv'.
5114
5115 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5116
5117         * locales.c: include string.h for memxxx prototypes
5118
5119 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5120
5121         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5122         constructor when accessing literal fields.
5123
5124 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5125
5126         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5127
5128         * reflection.c (assembly_add_resource_manifest): New function to fill
5129         the MANIFESTRESOURCE table.
5130
5131         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5132
5133         * reflection.h: Update to changes in class layout.
5134
5135         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5136         Reenable call to mono_runtime_is_shutting_down ().
5137
5138         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5139         determine if the runtime is shutting down.
5140
5141 2003-12-16  Jackson Harper <jackson@ximian.com>
5142
5143         * icall.c: comment out call to mono_runtime_is_shutting_down to
5144         fix build.
5145         
5146 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5147
5148         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5149         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5150
5151 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5152
5153         * reflection.c: move definition of swap_with_size
5154         to before its first call
5155
5156 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5157
5158         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5159
5160         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5161         icall.
5162
5163         * object.c: Fix warnings.
5164
5165         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5166         members if FlattenHierarchy is set.
5167
5168         * reflection.c (mono_image_add_decl_security): New function to emit
5169         declarative security.
5170
5171         * reflection.h reflection.c: Add support for declarative security.
5172
5173         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5174         
5175 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5176
5177         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5178         
5179         * appdomain.c verify.c: Moved corlib version checking into its own
5180         function in appdomain.c since it needs to create vtables etc.
5181
5182 2003-12-13  Patrik Torstensson <p@rxc.se>
5183
5184         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5185         instead of unwrapped server.
5186
5187 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5188
5189         * verify.c (check_corlib): Fix field index.
5190
5191 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5192
5193         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5194         GetGacPath icall.
5195
5196 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5197
5198         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5199         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5200         cope with sizeof(size_t) != sizeof(guint32).
5201
5202 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5203
5204         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5205         in case of failure.
5206
5207 2003-12-10  Mark Crichton <crichton@gimp.org>
5208
5209         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5210         in managed code.
5211
5212         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5213
5214 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5215
5216         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5217         marked as deleted.
5218
5219 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5220
5221         * verify.c (check_corlib): Handle the case when the version field is 
5222         initialized by a static constructor.
5223
5224 2003-12-08  Patrik Torstensson  <p@rxc.se>
5225
5226     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5227
5228 2003-12-08  Martin Baulig  <martin@ximian.com>
5229
5230         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5231         a MonoReflectionGenericParameter, also take the parameter index
5232         and name as arguments.
5233         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5234         (ves_icall_MonoGenericParam_initialize): New interncall.
5235         (ves_icall_Type_make_byref_type): New interncall.
5236
5237         * reflection.h (MonoReflectionGenericParam): Derive from
5238         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5239         `index' fields.
5240
5241         * reflection.c (mono_reflection_define_generic_parameter): Create
5242         and return a new MonoReflectionGenericParam; don't initialize the
5243         constraints here.
5244         (mono_reflection_initialize_generic_parameter): New public method;
5245         initializes the constraints and creates the `param->pklass'.
5246
5247 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5248
5249         * reflection.h reflection.c: Use the new fields 'num_types', 
5250         'num_fields' and 'num_methods' to track the number of types etc.
5251
5252         * verify.c (check_corlib): Check corlib version number.
5253
5254 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5255
5256         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5257         function works on all methods.
5258
5259 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5260
5261         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5262         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5263         the custom_type_info flag of the transparent proxy.
5264         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5265         objects that supports IRemotingTypeInfo.
5266         * object.h: Added custom_type_info field in transparent proxy.
5267
5268 2003-12-06  Martin Baulig  <martin@ximian.com>
5269
5270         * class.c (mono_class_create_from_generic): Removed.
5271         (mono_class_from_generic): Check `ginst->klass' before doing
5272         anything else.  This is important to fully support "recursive"
5273         generic types.
5274
5275         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5276         empty `generic_inst->klass' before doing anything else.
5277
5278 2003-12-06  Dick Porter  <dick@ximian.com>
5279
5280         * verify.c: 
5281         * object.h:
5282         * icall.c:
5283         * locales.c: Use C structs to access class fields.  Don't do a
5284         conversion between MonoString and UChar because both are
5285         platform-endian UTF-16.  Compare now takes startindex and count
5286         parameters.  Add a char overload for IndexOf.  Speed up the
5287         invariant string IndexOf.
5288
5289 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5290
5291         * Makefile.am (monosn_LDADD): Fix parallel build.
5292
5293 2003-12-04  Martin Baulig  <martin@ximian.com>
5294
5295         * icall.c
5296         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5297         (ves_icall_Type_make_array_type): New interncall.       
5298
5299 2003-12-04  Martin Baulig  <martin@ximian.com>
5300
5301         * locales.c: also change it in the !HAVE_ICU case.
5302
5303 2003-12-04  Dick Porter  <dick@ximian.com>
5304
5305         * icall.c:
5306         * locales.c: construct_compareinfo is now in CompareInfo, not
5307         CultureInfo.
5308
5309 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5310
5311         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5312         image->files array.
5313
5314         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5315         table as well.
5316
5317         * assembly.c (mono_assembly_load_references): Only load references
5318         once.
5319
5320         * class.c (mono_class_from_name): Avoid linear search of the 
5321         EXPORTEDTYPE table.
5322
5323         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5324
5325 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5326
5327         * image.h (MonoImage): Add 'field_cache' field.
5328
5329         * loader.c (mono_field_from_token): Cache field lookups.
5330         
5331         * reflection.c (mono_module_get_object): Fix name property.
5332
5333         * icall.c (ves_icall_get_enum_info): Update after changes to 
5334         mono_metadata_get_constant_index ().
5335
5336         * icall.c: Get rid of get_type_info icall, use a separate icall for
5337         each type property to avoid needless memory allocations. Fixes #51514.
5338
5339         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5340         to avoid needless binary searches.
5341
5342         * class.c (class_compute_field_layout): Move the initialization of
5343         field->def_value to mono_class_vtable ().
5344
5345         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5346         non-corlib types.
5347
5348         * object.c (mono_object_allocate): Make it inline.
5349
5350         * object.c (mono_object_allocate_spec): Make it inline.
5351         
5352 2003-12-02  Dick Porter  <dick@ximian.com>
5353
5354         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5355         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5356
5357 2003-12-01  Dick Porter  <dick@ximian.com>
5358
5359         * threads.c: Fix signature and call in CreateMutex and
5360         CreateEvent.
5361
5362 2003-12-01  Dick Porter  <dick@ximian.com>
5363
5364         * icall.c: 
5365         * locales.c: Implement string compares and searching
5366
5367         * object.h: Add extra Thread field
5368
5369 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5370
5371         * reflection.c (fixup_method): Add support for MonoCMethod.
5372
5373 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5374
5375         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5376
5377         * reflection.c (assembly_name_to_aname): Allow extra characters in
5378         assembly names. Fixes #51468.
5379
5380 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5381
5382         * exception.c (mono_exception_from_name_domain): New helper function.
5383
5384         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5385         exception object in the correct domain.
5386
5387         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5388         formatting + make a copy a the input data.
5389
5390         * loader.c (mono_get_method_from_token): Methods which contain
5391         native code do not have entries in the ImplMap.
5392
5393         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5394         Thanks to Gonzalo for spotting this.
5395         
5396         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5397         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5398
5399         * assembly.h (mono_assembly_load_from): Split the second part of 
5400         assembly loading into a new public function.
5401
5402         * exception.h (mono_get_exception_bad_image_format): New function.
5403
5404 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5405
5406         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5407         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5408         
5409         * icall.c: Add new icall for creating dynamic methods.
5410
5411         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5412
5413         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5414
5415         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5416         create a dynamic method.
5417
5418         * reflection.c (resolve_object): New helper function.
5419
5420         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5421         which manipulate it so they can also work on dynamic methods.
5422
5423         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5424         creating the MonoReflectionMethodAux structure if it is not needed.
5425         
5426         * reflection.h verify.c: Update after changes to object layout.
5427
5428         * reflection.c (method_builder_encode_signature): Fix compilation on
5429         gcc 2.95.x.
5430
5431 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5432
5433         * appdomain.h: Added support for context static fields. Added static_data
5434           field to MonoAppContext and renamed thread_static_fields to a more
5435           generic special_static_fields in MonoAppDomain, since it can now contain
5436           context static fields.
5437         * domain.c: Updated hashtable name.
5438         * object.c: Replaced field_is_thread_static() for a more generic
5439           field_is_special_static() which also checks for context static attribute.
5440           In mono_class_vtable(), added support for static context fields.
5441         * threads.c: Changed methods that manage thread static fields to more
5442           generic methods so they can be reused both for thread and context static
5443           data.
5444         * threads.h: Declared some new methods.
5445
5446 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5447
5448         * reflection.h: Update after changes to the managed types.
5449
5450         * reflection.c (encode_custom_modifiers): New helper function.
5451
5452         * reflection.c (method_encode_signature): Emit custom modifiers.
5453
5454         * reflection.c (field_encode_signature): Emit custom modifiers.
5455
5456 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5457
5458         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5459
5460         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5461         implementation.
5462
5463         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5464         icall.
5465
5466         * object.c (mono_field_get_value_object): New function.
5467
5468         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5469         specific.
5470
5471 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5472
5473         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5474         return a preallocated out-of-memory exception instance.
5475
5476         * object.c (out_of_memory): Use the new function.
5477
5478         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5479         flag is before the custom modifiers. Fixes #49802.
5480
5481 2003-11-16  Martin Baulig  <martin@ximian.com>
5482
5483         * class.c (mono_class_is_open_constructed_type): Implemented the
5484         MONO_TYPE_GENERICINST case.
5485
5486 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5487
5488         * assembly.c (mono_assembly_fill_assembly_name): New function to
5489         fill out the MonoAssemblyName structure.
5490         (mono_assembly_open): Use the new function.
5491
5492         * icall.c (fill_reflection_assembly_name): New helper function.
5493
5494         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5495         new function.
5496
5497         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5498
5499 2003-11-15  Martin Baulig  <martin@ximian.com>
5500
5501         * class.c (mono_class_is_open_constructed_type): New public
5502         function; checks whether a type is an open constructed type,
5503         ie. whether it still contains type parameters.
5504         (mono_class_inflate_generic_type): If we're a type parameter and
5505         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5506         type.
5507
5508         * class.h (MonoGenericInst): Added `guint32 is_open'.
5509
5510         * loader.c (method_from_methodspec): Check whether we're an open
5511         or closed constructed type and set `ginst->is_open'.
5512
5513         * reflection.c (mono_reflection_bind_generic_parameters): Check
5514         whether we're an open or closed constructed type and set
5515         `ginst->is_open'.
5516         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5517         from open constructed types.
5518
5519 2003-11-15  Martin Baulig  <martin@ximian.com>
5520
5521         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5522         a generic instance (instead of a generic type declaration) with
5523         unbound generic parameters, bind them to our actual types.
5524
5525 2003-11-14  Martin Baulig  <martin@ximian.com>
5526
5527         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5528
5529         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5530         an interface type, populate `res->interfaces' with instantiated
5531         versions of all the interfaces we inherit.
5532
5533 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5534
5535         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5536         when MONO_PATH is set but doesn't contain the install dir.
5537
5538 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5539
5540         * icall.c:
5541         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5542         it's also implemented in base classes. Fixes bug #50927.
5543
5544 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5545
5546         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5547         if this method is called from a finalizer. Fixes #50913.
5548
5549 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5550
5551         * threads.c: Implement VolatileRead/VolatileWrite
5552
5553         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5554
5555 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5556
5557         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5558         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5559         2.95.3.
5560
5561         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5562         from Peter Ross (pro@missioncriticalit.com).
5563         
5564 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5565
5566         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5567
5568 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5569
5570         * assembly.c (mono_assembly_load_references): Disable check because it
5571         triggers on older corlibs which lots of people have.
5572
5573 2003-11-12  Jackson Harper  <jackson@ximian.com>
5574
5575         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5576         load corlib.dll if mscorlib.dll is not found.
5577         * assembly.h: Remove corlib name define.
5578         * class.c:
5579         * domain.c:
5580         * image.c: Change corlib name to mscorlib.
5581         
5582 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5583
5584         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5585
5586 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5587
5588         * appdomain.h: Added loader_optimization here to sync with the C#
5589         code, and add disallow_binding_redirects field.
5590
5591 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5592
5593         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5594
5595         * reflection.c (mono_image_build_metadata): Fix crash on modules
5596         with no types.
5597
5598         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5599
5600         * icall.c (ves_icall_get_method_info): Return callingConvention as
5601         well.
5602
5603         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5604         namespaces from the EXPORTEDTYPE table as well.
5605
5606         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5607         from all modules inside the assembly.
5608         
5609 2003-11-11  Martin Baulig  <martin@ximian.com>
5610
5611         * reflection.c (mono_reflection_bind_generic_parameters): Make
5612         this work for interfaces.
5613
5614 2003-11-11  Martin Baulig  <martin@ximian.com>
5615
5616         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5617
5618 2003-11-11  Martin Baulig  <martin@ximian.com>
5619
5620         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5621         "MonoInflatedMethod" and "MonoInflatedCtor".
5622
5623 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5624
5625         * reflection.c (resolution_scope_from_image): Use the assembly table
5626         from the manifest module, since other modules don't have it.
5627
5628         * debug-helpers.c (mono_type_full_name): New helper function.
5629
5630         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5631
5632         * image.c (mono_image_load_file_for_image): New public function which
5633         is a replacement for the load_file_for_image in class.c.
5634
5635         * assembly.c (mono_assembly_load_module): A wrapper for the function
5636         above which does assembly association and reference loading too.
5637
5638         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5639
5640 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5641
5642         * appdomain.c: not all of the attributes for the full assembly name
5643         are required and the order doesn't matter. Fixes bug #50787.
5644
5645 2003-11-10  Dick Porter  <dick@ximian.com>
5646
5647         * locales.c: Use platform-endian UTF16
5648
5649 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5650
5651         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5652         
5653 2003-11-10  Martin Baulig  <martin@ximian.com>
5654
5655         * metadata.c
5656         (mono_metadata_load_generic_params): Make this actually work.
5657
5658         * reflection.c (mono_reflection_bind_generic_parameters): If our
5659         parent is a generic instance, pass all the `types' to it, no
5660         matter whether it has the same number of type parameters or not.
5661
5662 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5663
5664         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5665
5666         * assembly.c (mono_assembly_load_references): Move the image<->assembly
5667         assignment code to this function so it gets called recursively for all
5668         modules.
5669
5670         * image.c (load_modules): Remove the assembly assignment since it is
5671         now done by mono_assembly_load_references.
5672         
5673         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5674         Add 'module' argument.
5675         (mono_module_get_types): New helper function.
5676         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
5677
5678 2003-11-08  Martin Baulig  <martin@ximian.com>
5679
5680         * class.c (mono_class_inflate_generic_method): Interface method
5681         don't have a header.
5682
5683         * reflection.c (mono_image_get_methodspec_token): Take an
5684         additional `MonoGenericInst *' argument instead of reading it from
5685         the header; this is necessary to support interfaces.
5686         (mono_image_create_token): Pass the `MonoGenericInst *' from the
5687         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
5688         (inflated_method_get_object): Take an additional `MonoGenericInst *'
5689         argument.
5690
5691         * reflection.h (MonoReflectionInflatedMethod): Added
5692         `MonoGenericInst *ginst'.
5693
5694 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
5695
5696         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
5697
5698 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
5699
5700         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
5701
5702 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
5703
5704         * reflection.c 
5705         (reflection_methodbuilder_from_method_builder):
5706         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
5707         initialize a ReflectionMethodBuilder structure.
5708         (mono_image_get_methodbuilder_token):
5709         (mono_image_get_ctorbuilder_token): New functions to emit memberref
5710         tokens which point to types in another module inside the same assembly.
5711
5712         * reflection.c: Use the new helper functions.
5713         
5714         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
5715
5716         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
5717         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
5718
5719         * reflection.c (resolution_scope_from_image): Emit a moduleref if
5720         neccesary.
5721
5722         * reflection.c (mono_image_build_metadata): Emit metadata only for the
5723         current module. Emit the manifest only for the main module.
5724
5725         * reflection.c (mono_image_create_token): Add assertion when a 
5726         memberref needs to be created.
5727
5728         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
5729
5730         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
5731         larger buffer for the custom attribute blob. Fixes #50637.
5732         
5733 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5734
5735         * threadpool.c: notify listener on async processing handles after
5736         invoking the async callback. Thanks to Zoltan.
5737
5738 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5739
5740         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
5741         avoid code duplication.
5742
5743         * reflection.h (MonoDynamicImage): New type which is currently unused,
5744         but will be used through the ref.emit code in place of 
5745         MonoDynamicAssembly.
5746
5747         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5748         object layout.
5749
5750         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
5751         a MonoDynamicImage instead of just a MonoImage.
5752         
5753         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
5754         icalls to ModuleBuilder but keep their semantics, so they will work
5755         with moduleb->assemblyb. This will change later.
5756         
5757 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5758
5759         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5760         object layout.
5761
5762         * reflection.c (mono_image_build_metadata): Avoid creation of a default
5763         main module, since it is now done by the managed code.
5764
5765 2003-11-03  Martin Baulig  <martin@ximian.com>
5766
5767         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
5768         `ginst->klass' here.
5769         (method_encode_methodspec): Don't use the `ginst->generic_method's
5770         klass if it's a generic instance, use `ginst->klass' in this case.
5771
5772 2003-11-03  Martin Baulig  <martin@ximian.com>
5773
5774         * reflection.c (mono_image_get_generic_method_param_info):
5775         Removed, use mono_image_get_generic_param_info() instead.
5776         (mono_image_get_type_info): Write the GenericParam table before
5777         the Method table.  This is neccessary because in the GenericParam
5778         table, type parameters of the class (ie. '!0' etc.) must come
5779         before the ones from its generic methods (ie. '!!0' etc).
5780
5781 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5782
5783         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
5784
5785 2003-11-02  Martin Baulig  <martin@ximian.com>
5786
5787         * reflection.c (create_generic_typespec): Take a
5788         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
5789         the generic parameters from it.
5790
5791 2003-11-02  Martin Baulig  <martin@ximian.com>
5792
5793         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
5794         instead of a `MonoClassField *' since we just need the type.
5795         (create_generic_typespec): New static function.  Creates a
5796         TypeSpec token for a generic type declaration.
5797         (mono_image_get_generic_field_token): New static function.
5798         (mono_image_create_token): If we're a FieldBuilder in a generic
5799         type declaration, call mono_image_get_generic_field_token() to get
5800         the token.
5801
5802 2003-11-02  Martin Baulig  <martin@ximian.com>
5803
5804         * reflection.h
5805         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
5806         `MonoReflectionGenericInst *declaring_type' and
5807         `MonoReflectionGenericInst *reflected_type' fields.
5808
5809         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
5810         `MonoReflectionGenericInst *declaring_type' and a
5811         `MonoReflectionGenericInst *reflected_type' argument instead of a
5812         single `MonoReflectionGenericInst *type' one.  Set
5813         `res->declaring_type' and `res->reflected_type' from them.
5814         (mono_reflection_inflate_field): Likewise.      
5815
5816 2003-11-02  Martin Baulig  <martin@ximian.com>
5817
5818         * class.c (mono_class_setup_vtable): Don't store generic methods
5819         in the vtable.  
5820
5821 2003-11-02  Martin Baulig  <martin@ximian.com>
5822
5823         * reflection.h (MonoReflectionGenericInst): Added
5824         `MonoReflectionType *declaring_type'.
5825
5826         * reflection.c (mono_reflection_bind_generic_parameters): Use
5827         `if (tb->parent)' instead of `klass->parent'.
5828
5829 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
5830
5831         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
5832         with an empty ASSEMBLY table.
5833
5834         * reflection.c (mono_image_build_metadata): Avoid using the same loop
5835         variable in the inner and outer loops.
5836
5837 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
5838
5839         * metadata.h (mono_metadata_make_token): Put parentheses around macro
5840         argument.
5841
5842         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
5843         
5844         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
5845         icalls. Instead, do everything in managed code. This is needed since
5846         it is hard to restore the original domain etc. in unmanaged code in the
5847         presence of undeniable exceptions.
5848
5849         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
5850         New icalls to push and pop appdomain refs.
5851
5852 2003-10-31  Martin Baulig  <martin@ximian.com>
5853
5854         * class.c (inflate_generic_type): Renamed to
5855         mono_class_inflate_generic_type() and made it public.
5856
5857         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
5858         New interncall.
5859
5860         * loader.c (mono_field_from_memberref): Also set the retklass for
5861         typespecs.
5862
5863         * fielder.c (mono_image_get_inflated_field_token): New static
5864         method; creates a metadata token for an inflated field.
5865         (mono_image_create_token, fixup_method): Added support for
5866         "MonoInflatedField".
5867         (fieldbuilder_to_mono_class_field): New static function.
5868         (mono_reflection_inflate_field): New public function.
5869
5870         * reflection.h
5871         (MonoReflectionGenericInst): Added `MonoArray *fields'.
5872         (MonoReflectionInflatedField): New typedef.     
5873
5874 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
5875
5876         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
5877         for Solaris and other platforms without s6_addr16
5878
5879 2003-10-30  Martin Baulig  <martin@ximian.com>
5880
5881         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
5882         argument instead of two.
5883         (mono_class_inflate_generic_signature): Likewise.
5884         (inflate_generic_header): Likewise.
5885         (mono_class_inflate_generic_method): Likewise.  In addition, if
5886         `ginst->klass' is set, it becomes the new `method->klass'.
5887
5888         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
5889         field.
5890
5891         * reflection.c (encode_generic_method_sig): Write a 0xa as the
5892         first byte. [FIXME]
5893         (method_encode_methodspec): If we have generic parameters, create
5894         a MethodSpec instead of a MethodRef.
5895         (fixup_method): Added support for "MonoInflatedMethod" and
5896         "MonoInflatedCtor".
5897         (mono_image_create_token): Added support for "MonoInflatedMethod"
5898         and "MonoInflatedCtor".
5899         (inflated_method_get_object): New static function; returns a
5900         managed "System.Reflection.MonoInflatedMethod" object.
5901         (mono_reflection_bind_generic_method_parameters): Return a
5902         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
5903         (mono_reflection_inflate_method_or_ctor): Likewise.
5904         (mono_image_get_generic_method_param_info): Initialize unused
5905         fields to zero.
5906         (mono_image_get_generic_param_info): Likewise.
5907
5908         * reflection.h (MonoReflectionInflatedMethod): New public
5909         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
5910         "S.R.MonoInflatedCtor" classes.
5911
5912         * loader.c (method_from_memberref): If we're a TypeSpec and it
5913         resolves to a generic instance, inflate the method.
5914
5915 2003-10-28  Dick Porter  <dick@ximian.com>
5916
5917         * object.c (mono_runtime_run_main): Convert command-line arguments
5918         into utf8, falling back to the user's locale encoding to do so.
5919
5920 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
5921
5922         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
5923         at this time.
5924
5925         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
5926
5927         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
5928         up icalls at method definition time. Partially fixes #33569.
5929
5930 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
5931
5932         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
5933         marshalling of arrays. Fixes #50116.
5934
5935         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
5936
5937         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
5938         points to a vtable in the dying appdomain.
5939
5940         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
5941         listeners into unmanaged code inside the lock.
5942
5943         * object.c (mono_class_vtable): Turn off typed allocation in non-root
5944         domains and add some comments.
5945
5946 2003-10-25  Martin Baulig  <martin@ximian.com>
5947
5948         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
5949
5950         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
5951
5952         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
5953         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
5954         currently parsing.  Create the generic class and store it in
5955         `generic_inst->klass' before parsing the type arguments.  This is
5956         required to support "recursive" definitions; see mcs/tests/gen-23.cs
5957         for an example.
5958         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
5959         to support recursive typespec entries.
5960
5961         * class.c (mono_class_setup_parent): If our parent is a generic
5962         instance, we may get called before it has its name set.
5963         (mono_class_from_generic): Splitted into
5964         mono_class_create_from_generic() and mono_class_initialize_generic().
5965
5966 2003-10-25  Martin Baulig  <martin@ximian.com>
5967
5968         * icall.c (ves_icall_Type_BindGenericParameters): Return a
5969         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
5970         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
5971         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
5972
5973         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
5974         (create_typespec): Likewise.
5975         (mono_reflection_bind_generic_parameters): Return a
5976         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
5977         (mono_reflection_inflate_method_or_ctor): New public function.
5978
5979         * reflection.h (MonoReflectionGenericInst): New typedef.        
5980
5981 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
5982
5983         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
5984         inside the domain lock. Fixes #49993.
5985         
5986         * object.c (mono_class_vtable): When typed allocation is used, 
5987         allocate vtables in the GC heap instead of in the mempool, since the
5988         vtables contain GC descriptors which are used by the collector even
5989         after the domain owning the mempool is unloaded.
5990
5991         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
5992
5993         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
5994         reflect what it does. Also invalidate mempools instead of freeing
5995         them if a define is set.
5996
5997         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
5998         of the appdomain.
5999         
6000         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6001         hold the finalizable objects in this domain.
6002
6003         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6004         appdomain.
6005
6006         * appdomain.c (mono_domain_set): New function to set the current
6007         appdomain, but only if it is not being unloaded.
6008
6009         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6010         appdomain which is being unloaded.
6011         
6012         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6013         unloading of the root appdomain.
6014
6015         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6016         icall to execute a method in another appdomain. Intended as a 
6017         replacement for InternalSetDomain, which can confuse the code 
6018         generation in the JIT.
6019
6020         * appdomain.c (mono_domain_is_unloading): New function to determine
6021         whenever an appdomain is unloading.
6022
6023         * appdomain.c (mono_domain_unload): New function to correctly unload
6024         an appdomain.
6025
6026         * assembly.c (mono_assembly_load_references): Check that an assembly
6027         does not references itself.
6028
6029         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6030         domain manually, it asks the finalizer thread to do it, then waits for
6031         the result. Also added a timeout.
6032
6033         * icall.c: Register the new icalls.
6034
6035         * threads.h threads.c: Export the mono_gc_stop_world and 
6036         mono_gc_start_world functions.
6037         
6038         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6039         function to fill out the mempool with 0x2a.
6040
6041 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6042
6043         * reflection.h (MonoReflectionMethodAux): New structure to store
6044         information which is rarely used, thus is not in the MonoMethod
6045         structure.
6046
6047         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6048         store the aux info.
6049
6050         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6051         and marshalling info into the aux structure.
6052
6053         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6054         from the aux structure.
6055
6056         * loader.c (mono_method_get_param_names): Retrieve the param names from
6057         the aux structure.
6058         
6059 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6060
6061         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6062         warning.
6063
6064 2003-10-21  Dick Porter  <dick@ximian.com>
6065
6066         * socket-io.c
6067         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6068         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6069
6070 2003-10-21  Martin Baulig  <martin@ximian.com>
6071
6072         * reflection.c (mono_reflection_bind_generic_parameters):
6073         `klass->parent' is NULL for interfaces.
6074
6075 2003-10-21  Martin Baulig  <martin@ximian.com>
6076
6077         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6078
6079 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6080
6081         * exception.c (mono_exception_from_name_msg): New helper function for
6082         creating exceptions and initializing their message field.
6083
6084         * exception.c: Simplify functions using the new helper.
6085
6086         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6087         New function.
6088
6089         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6090         mono_raise_exception, since otherwise gcc doesn't generate the function
6091         epilog for raise_exception, confusing the stack unwinding in the JIT.
6092         Fixes #45043.
6093
6094         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6095         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6096         Fixes #49499.
6097
6098 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6099
6100         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6101         utf8.
6102
6103 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6104
6105         * icall.c: Removed GetUninitializedObject method because
6106           AllocateUninitializedClassInstance does the same.
6107
6108 2003-10-18  Martin Baulig  <martin@ximian.com>
6109
6110         * class.c (inflate_generic_signature): Renamed to
6111         mono_class_inflate_generic_signature() and made it public.
6112         (my_mono_class_from_generic_parameter): New static function; if we
6113         don't already have the generic parameter's MonoClass, create a
6114         very simple one which is just used internally in the runtime and
6115         not passed back to managed code.
6116
6117         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6118
6119         * metadata.h (MonoMethodSignature): Moved the
6120         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6121         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6122
6123         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6124         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6125         interncall on the MonoMethod class, not on MethodInfo.
6126         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6127         calling mono_reflection_bind_generic_method_parameters() directly.
6128
6129         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6130         return the already computed `method->signature'.
6131         (method_from_methodspec): New static function to load a method
6132         from a MethodSpec entry.
6133         (mono_get_method_from_token): Call the new method_from_methodspec()
6134         for MethodSpec tokens.  
6135         (mono_get_method_from_token): If we're a generic method, load the
6136         type parameters.
6137
6138         * reflection.c (mono_image_get_memberref_token): Allow
6139         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6140         table.
6141         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6142         (mono_image_create_token): First check whether it's a generic
6143         method (so we'd need to create a MethodSpec), then do the other
6144         two alternatives.
6145         (mono_reflection_bind_generic_method_parameters): Return a
6146         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6147         called directly from the interncall.
6148
6149 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6150
6151         * reflection.c (load_public_key): Move loading of the public key
6152         into managed code.
6153
6154         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6155
6156         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6157         fields.
6158
6159         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6160         culture, hash_alg and public_key. Fixes #49555.
6161
6162 2003-10-17  Martin Baulig  <martin@ximian.com>
6163
6164         * class.h (MonoGenericInst): Moved this declaration here and added
6165         `MonoMethod *generic_method'.
6166
6167         * icall.c
6168         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6169         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6170
6171         * metadata.c (mono_metadata_type_equal): Two types of
6172         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6173         index; ie. don't compare the address of the `MonoGenericParam'
6174         structure.
6175         (mono_metadata_load_generic_params): Removed the `MonoMethod
6176         *method' argument.
6177
6178         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6179         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6180
6181         * reflection.c (method_encode_signature): Encode the number of
6182         generic parameters.
6183         (encode_generic_method_sig): New static function.
6184         (method_encode_methodspec): New static function; creates an entry
6185         in the MethodSpec table for a generic method.
6186         (mono_image_get_methodspec_token): New static function.
6187         (mono_image_create_token): Call mono_image_get_methodspec_token()
6188         for generic methods.
6189         (mono_reflection_bind_generic_method_parameters): New public
6190         function.  Instantiates a generic method.
6191
6192 2003-10-16  Martin Baulig  <martin@ximian.com>
6193
6194         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6195         *gen_params' here from MonoMethodHeader.
6196
6197         * metadata.c (mono_metadata_parse_method_signature): If we have
6198         generic parameters, initialize `method->gen_params' and then set
6199         the correct `type->data.generic_param' in all the parameters.
6200
6201 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6202
6203         * threads.c (mono_threads_get_default_stacksize): New function to 
6204         return the default stacksize.
6205
6206         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6207         termination of the finalizer thread, since the previous method had
6208         race conditions. Fixes #49628.
6209
6210         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6211         as for the other managed threads.
6212
6213 2003-10-16  Martin Baulig  <martin@ximian.com>
6214
6215         * class.c (inflate_generic_signature): Copy `generic_param_count'
6216         and `gen_params'.
6217
6218         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6219         New interncall.
6220
6221         * metadata.c (mono_metadata_parse_method_signature): Actually set
6222         the `method->generic_param_count' here.
6223         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6224
6225 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6226
6227         * object.h: Add a new field to TypedRef to simplify the implementation
6228         of the REFANY opcodes in the JIT.
6229
6230         * icall.c: Make use of the new field.
6231
6232         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6233         dynamically.
6234
6235 2003-10-15  Martin Baulig  <martin@ximian.com>
6236
6237         * class.c (mono_class_from_gen_param): Renamed to
6238         mono_class_from_generic_parameter() and moved most of the
6239         functionality from mono_reflection_define_generic_parameter()
6240         here; ie. we create a "real" class here.
6241         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6242         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6243         previously been called.
6244
6245         * class.h (MonoGenericParam): Moved the declaration of this struct
6246         here from metadata.h and added `MonoMethod *method'.
6247
6248         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6249         interncall.
6250
6251         * loader.c (mono_get_method_from_token): If we have any generic
6252         parameters, call mono_metadata_load_generic_params() to read them
6253         from the MONO_TABLE_GENERICPAR.
6254
6255         * metadata.c (mono_metadata_load_generic_params): Added
6256         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6257
6258         * metadata.h (MonoMethodSignature): Replaced
6259         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6260         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6261
6262         * reflection.c (mono_reflection_define_generic_parameter): Moved
6263         most of the functionality into the new
6264         mono_class_from_generic_parameter(); set the `method' field if
6265         we're a method parameter.       
6266
6267 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6268
6269         * marshal.c (emit_struct_conv): if native size is 0
6270         emit no code.
6271
6272 2003-10-14  Martin Baulig  <martin@ximian.com>
6273
6274         * icall.c: The generics API has changed in the spec since it was
6275         added to System.Type; these modifications make it match the spec
6276         again.
6277         (ves_icall_Type_GetGenericParameters): Renamed to
6278         `ves_icall_Type_GetGenericArguments'.
6279         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6280         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6281         `ves_icall_MonoType_get_HasGenericArguments'.
6282         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6283         `ves_icall_MonoType_get_IsGenericParameter'.
6284         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6285         this is no interncall anymore.
6286         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6287         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6288
6289 2003-10-14  Martin Baulig  <martin@ximian.com>
6290
6291         * reflection.c (mono_reflection_bind_generic_parameters): Also
6292         inflate generic methods if we're reading the class from IL.
6293
6294 2003-10-13  Martin Baulig  <martin@ximian.com>
6295
6296         * reflection.c (mono_reflection_define_generic_parameter): This
6297         method isn't called directly from the icall anymore; take a
6298         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6299         method generic parameters.
6300         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6301         (method_builder_encode_signature): Encode generic parameters.
6302         (mono_image_get_method_info): Write generic params to the
6303         MONO_TABLE_GENERICPARAM table.
6304
6305         * reflection.h (MonoReflectionMethodBuilder): Added
6306         `MonoArray *generic_params'.
6307
6308         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6309
6310         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6311         wrapper for mono_reflection_define_generic_parameter().
6312         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6313
6314 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6315
6316         * marshal.h: Add missing function to fix build.
6317
6318         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6319         the SetLastError pinvoke attribute.
6320
6321         * marshal.c (mono_marshal_set_last_error): New helper function called
6322         by the generated code.
6323         
6324         * marshal.c (mono_mb_emit_branch): New helper function.
6325
6326         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6327
6328         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6329         classes as parameters and return values of delegates. Fixes #29256. 
6330
6331 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6332
6333         * locales.c: use gint32 in non HAVE_ICU case
6334
6335 2003-10-11  Martin Baulig  <martin@ximian.com>
6336
6337         * mono-debug.c (mono_debug_add_method): Added a workaround for
6338         bug #48591.
6339
6340 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6341
6342         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6343         delegates passed to native code must use the STDCALL calling 
6344         convention. Fixes #35987.
6345
6346 2003-10-10  Martin Baulig  <martin@ximian.com>
6347
6348         * class.c (inflate_generic_type): If we're inflating for a generic
6349         type instance (and not for a generic method), return
6350         MONO_TYPE_MVAR unchanged.
6351
6352 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6353
6354         * string-icalls.c: Join ignores null strings in the source array.
6355         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6356         * threads.c: GetAvailableTheads is slightly more accurate.
6357
6358 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6359
6360         * threads.h threads.c : add mono_threads_set_default_stacksize
6361         and pass default to CreateThread calls.
6362
6363 2003-10-09  Dick Porter  <dick@ximian.com>
6364
6365         * icall.c:
6366         * locales.h:
6367         * locales.c: Internal calls for constructing CultureInfo and
6368         related objects from libicu (if its available.)
6369
6370 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6371
6372         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6373
6374 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6375
6376         * threadpool.c: added an argument to async_invoke_thread that is the
6377         item to process, pass the MonoAsyncResult to the thread start function
6378         when creating a new thread. This way we don't need to acquire any lock
6379         when we're creating a new thread. Readded a semaphore for faster
6380         response times (instead of that Sleep i added).
6381
6382 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6383
6384         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6385         get daylight change dates better on Windows, fix handling
6386         of platforms without tm_gmtoff.
6387
6388 2003-10-06  Martin Baulig  <martin@ximian.com>
6389
6390         * class.c (inflate_generic_method): Renamed to
6391         mono_class_inflate_generic_method() and made public.
6392         (mono_class_init): Don't inflate the generic methods here.
6393         (mono_class_from_generic): Added `gboolean inflate_methods'
6394         argument.  Inflate the methods here.
6395
6396         * loader.c (mono_method_get_param_names): Ignore instances of
6397         generic types for the moment.
6398
6399         * reflection.c (fixup_method): Added support for inflated methods.
6400         (mono_image_create_token): Use mono_image_get_methodref_token()
6401         for inflated methods.
6402         (mono_custom_attrs_from_param): Ignore instances of generic types
6403         for the moment.
6404         (mono_reflection_bind_generic_parameters): New public function.
6405         Moved all the functionality from
6406         ves_icall_Type_BindGenericParameters() here and added support for
6407         dynamic types.
6408         (mono_reflection_define_generic_parameter): Initialize
6409         `klass->methods' here.
6410
6411         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6412         functionality into mono_reflection_define_generic_parameter().
6413         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6414         TypeBuilder, return that TypeBuilder.
6415
6416 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6417
6418         * appdomain.c: removed mono_delegate_semaphore.
6419
6420         * threadpool.c:
6421         (mono_thread_pool_add): moved hash table creation inside and the thread 
6422         creation outside of the critical region.
6423         (mono_thread_pool_finish): removed obsolete code.
6424         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6425         continue or exit the thread depending on the queue.
6426
6427 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6428
6429         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6430         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6431         handle more bool marshalling options
6432
6433 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6434
6435         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6436         arrays of structs. Also add a more descriptive error message when
6437         a structure member is marshalled as LPArray.
6438
6439 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6440
6441         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6442         marshalling arrays of complex types. Fixes #29098. Also remove an
6443         usused and incomplete function.
6444
6445 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6446
6447         * gc.c: report heap_size - free_bytes as total memory allocated
6448         (bug#49362).
6449
6450 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6451
6452         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6453         fix timezone handling problems on Windows.
6454         
6455         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6456         asserts when the year is outside the range handled by ms the functions.
6457
6458         * class.c (setup_interface_offsets): If the class is an interface,
6459         fill out its interface_offsets slot.
6460
6461 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6462
6463         * threadpool.c: mark threadpool threads as background.
6464
6465 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6466
6467         * decimal.c - define DECINLINE to nothing if not using GCC
6468
6469 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6470
6471         * assembly.c: More refcount fixes.
6472
6473 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6474
6475         * string-icalls.c: if we're not trimming, return the same string.
6476         When not splitting, don't create a new string.
6477
6478 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6479
6480         * image.c:
6481         (mono_image_open): increment the ref_count inside the critical section.
6482
6483 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6484
6485         * image.c (mono_image_open): Fix reference counting bug.
6486
6487 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6488
6489         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6490         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6491         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6492         mono_lookup_pinvoke_call throws.        
6493
6494 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6495
6496         * reflection.c (mono_reflection_parse_type): Fix #49114.
6497
6498         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6499         temporary workaround for cygwin header problem.
6500
6501         * object.c (mono_object_isinst): Synchronize this with the code
6502         generated by the JIT for casts.
6503
6504 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6505
6506         * reflection.c (encode_type): Fix #38332.
6507
6508 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6509
6510         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6511         the original method from the wrapper method.
6512
6513 2003-09-25  Martin Baulig  <martin@ximian.com>
6514
6515         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6516         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6517         (ves_icall_Type_get_IsGenericInstance): New interncall.
6518
6519 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6520
6521         * object.c: fix cast warning in big endian code.
6522
6523 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6524
6525         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6526         
6527 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6528
6529         * assembly.c: don't call check_env from mono_assembly_load. It's
6530         already done once in mono_assemblies_init and may cause headaches when
6531         multiple threads are loading assemblies.
6532
6533 2003-09-19  Martin Baulig  <martin@ximian.com>
6534
6535         * reflection.c (mono_reflection_define_generic_parameter): Don't
6536         allocate `klass->methods', set `klass->flags' to
6537         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6538
6539 2003-09-18  Martin Baulig  <martin@ximian.com>
6540
6541         * class.c (mono_class_init): Don't create `class->methods' if it's
6542         already initialized.
6543
6544         * metadata.c (mono_metadata_load_generic_params): Make this
6545         actually work.
6546
6547         * reflection.c (mono_reflection_define_generic_parameter): Set
6548         parent class and interfaces from the constraints.
6549
6550         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6551         to keep this struct in sync with the declaration in TypeBuilder.cs.
6552
6553 2003-09-17  Martin Baulig  <martin@ximian.com>
6554
6555         * metadata.h (MonoType): Replaced the data's `int type_param'
6556         field with `MonoGenericParam *generic_param'.
6557         (MonoGenericParam): Added `MonoClass *klass'.
6558
6559         * class.c (mono_class_from_gen_param): Removed the
6560         `MonoImage *image' and `int type_num' arguments.
6561
6562         * metadata.c (mono_metadata_parse_generic_param): New static
6563         method; creates a MonoGenericParam which just contains the index.
6564         (do_mono_metadata_parse_type): Call
6565         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6566         MONO_TYPE_MVAR.
6567
6568         * reflection.c (mono_image_typedef_or_ref): Generic type
6569         parameters may be in the same assembly, but never use a typedef
6570         for them.
6571         (mono_reflection_define_generic_parameter): We're now creating a
6572         "real" class for the type parameter; it's now safe to call
6573         mono_class_from_mono_type() on the class'es type, it'll do the
6574         right thing.
6575
6576 2003-09-16  Martin Baulig  <martin@ximian.com>
6577
6578         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6579         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6580         the `symfile' data structure must be fully initialized before it
6581         gets added to the table.
6582
6583 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6584
6585         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6586
6587         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6588         class init trampolines.
6589
6590 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6591
6592         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6593         to the built-in profiler to turn off time and allocation profiling
6594         respectively.
6595
6596 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6597
6598         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6599         g_direct_equal.
6600
6601         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6602         in human readable form.
6603
6604 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6605
6606         * reflection.c icall.c: Fixed warnings.
6607
6608         * image.c (load_class_names): Use a temporary hash table to hold the
6609         namespaces in order to avoid doing many string comparisons.
6610
6611         * image.h: Fix typo.
6612
6613         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6614         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6615         since the NULL case is short-circuited inside g_hash_table_lookup, 
6616         leading to better performance.  
6617
6618         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6619         obtain the first custom attribute for a given index. Depends on the
6620         CustomAttribute table being sorted by the parent field.
6621
6622         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6623         for better performance.
6624
6625 2003-09-07  Martin Baulig  <martin@ximian.com>
6626
6627         * class.c (mono_class_init): If we're a generic instance, inflate
6628         all our methods instead of loading them from the image.
6629         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6630
6631 2003-09-07  Martin Baulig  <martin@ximian.com>
6632
6633         * mono-debug-debugger.c: Added support for constructors.
6634
6635 2003-09-06  Martin Baulig  <martin@ximian.com>
6636
6637         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6638         New interncall.
6639
6640         * reflection.c (mono_reflection_setup_generic_class): Call
6641         ensure_runtime_vtable() to create the vtable.
6642
6643 2003-09-05  Martin Baulig  <martin@ximian.com>
6644
6645         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6646         MONO_TYPE_MVAR.
6647
6648 2003-09-04  Martin Baulig  <martin@ximian.com>
6649
6650         * reflection.c (mono_reflection_define_generic_parameter): Generic
6651         parameters start with zero.
6652
6653 2003-09-04  Martin Baulig  <martin@ximian.com>
6654
6655         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6656
6657         * reflection.h (MonoReflectionGenericParam): New typedef.
6658         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
6659         the generic parameters from the managed TypeBuilder.
6660
6661         * reflection.c (mono_reflection_define_generic_parameter): New function.
6662         (mono_reflection_create_runtime_class): Encode generic parameters.
6663         (mono_reflection_setup_generic_class): New function; this is
6664         called after adding adding all generic params to the TypeBuilder.
6665         (encode_type): Added MONO_TYPE_VAR.
6666
6667 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
6668
6669         * class.h class.c (mono_class_needs_cctor_run): Moved this method
6670         here from the JIT.
6671
6672         * assembly.h assembly.c: Moved the AOT loading code into an assembly
6673         load hook.
6674
6675 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
6676
6677         * reflection.h reflection.c class.h class.c: Delete duplicate 
6678         definition of mono_type_get_name () from reflection.c and export the
6679         one in class.c.
6680
6681         * class.c: Class loading fixes from Bernie Solomon 
6682         (bernard@ugsolutions.com).
6683
6684         * reflection.c: Endianness fixes from Bernie Solomon 
6685         (bernard@ugsolutions.com).
6686         
6687 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
6688
6689         * assembly.h assembly.c: Define a file format version for AOT
6690         libraries.
6691         
6692         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
6693
6694         * appdomain.h (MonoJitInfo): New field to determine whenever the
6695         code is domain neutral.
6696         
6697 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
6698
6699         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
6700
6701 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
6702
6703         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
6704         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
6705         Avoid caching the result since strings must be domain specific. Fixes
6706         #48050.
6707
6708 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
6709
6710         * marshal.c (mono_marshal_init): Make this callable multiple times
6711         since it is hard to find a correct place to call it.
6712
6713         * object.c (mono_runtime_class_init): Execute static constructors in
6714         the correct appdomain.
6715
6716         * image.c (build_guid_table): Handle the case when multiple images have
6717         the same GUID.
6718
6719 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6720
6721         * icall.c: added a couple of icalls for System.Web.
6722
6723 2003-08-28  Martin Baulig  <martin@ximian.com>
6724
6725         * icall.c (ves_icall_Type_BindGenericParameters): Use
6726         `klass->generic_inst' instead of `&klass->byval_arg' in the
6727         mono_type_get_object() call.  The returned type must be
6728         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
6729
6730 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
6731
6732         * NOTES: New file.
6733
6734         * object.c (mono_class_proxy_vtable): Make it thread safe.
6735
6736         * pedump.c: Fix warning.
6737
6738         * object.c appdomain.h: Get rid of metadata_section. 
6739         It is no longer needed and it was causing deadlocks with domain->lock.
6740
6741         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
6742
6743 2003-08-26  Martin Baulig  <martin@ximian.com>
6744
6745         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
6746
6747 2003-08-26  Martin Baulig  <martin@ximian.com>
6748
6749         * pedump.c (main): Call mono_metadata_init(),
6750         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
6751         and mono_loader_init().
6752
6753 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
6754
6755         * loader.h: Add missing include to fix build.
6756
6757         * image.h: mono_image_load_references is no more.
6758
6759         * assembly.c: Reworked assembly loading to make it really thread safe.
6760         After these changes, the assembly returned by mono_assembly_open is
6761         fully initialized, i.e. all its references assemblies are loaded.
6762
6763         * assembly.c (mono_image_load_references): Renamed to 
6764         mono_assembly_load_references, and made private, since clients no
6765         longer need to call it.
6766
6767         * class.c: Removed calls to mono_assembly_load_references, since it was
6768         a source of deadlocks.
6769
6770         * loader.h loader.c class.h class.c: Protect data structures using a 
6771         new lock, the loader lock.
6772
6773         * class.c (mono_class_setup_vtable): Create temporary hash tables and
6774         GPtrArrays only when needed.
6775
6776         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
6777         into empty structures by mcs. Fixes pinvoke7.cs.
6778         
6779         * domain.c (mono_init): Call a new initialization function.
6780
6781         * appdomain.c (mono_runtime_init): Call the new initializer function
6782         of the marshal module.
6783
6784         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
6785         inserted into empty structures by mcs. Fixes pinvoke7.cs.
6786
6787         * marshal.h marshal.c: Added locks around the wrapper caches to make
6788         this module thread safe.
6789
6790         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
6791         this argument. Fixes pinvoke1.exe.
6792
6793 2003-08-25  Lluis Sanchez <lluis@ximian.com>
6794
6795         * object.h: Added call_type field to MonoMethodMessage and the corresponding
6796         enumeration of values. Removed fields to store remote call output values in
6797         MonoAsyncResult. Not needed any more.
6798         * object.c: Initialize call_type and async_result fields in mono_message_init.
6799         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
6800         dispatching the message.
6801         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
6802         async call to finish. To do it use a message with EndInvoke call type.
6803
6804 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
6805
6806         * loader.h loader.c (mono_method_hash_marhal_info): New function which
6807         determines whenever a method has marshalling info.
6808
6809 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6810
6811         * assembly.c: fix the build on windows.
6812
6813 2003-08-22 Lluis Sanchez <lluis@ximian.com>
6814
6815         * object.cs: Fixed bug #47785.
6816
6817 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
6818
6819         * string-icalls.c (StringReplace): If their are no occurances of
6820         the old string found return a reference to the supplied
6821         string. This saves some memory and matches MS behavoir.
6822         
6823 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6824
6825         * socket-io.c: fixed compilation for systems that define AF_INET6
6826         and don't define SOL_IP/SOL_IPV6.
6827
6828 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
6829
6830         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
6831         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
6832
6833         * rawbuffer.c rawbuffer.h: Make this module thread safe.
6834
6835         * domain.c: Make this module thread safe.
6836
6837         * domain.c (mono_init): Call new initialization function.
6838
6839         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
6840         reference types too. Fixes #38812.
6841
6842         * image.c (mono_image_init): Fixed warnings.
6843
6844         * class.c (mono_class_from_typeref): Handle assembly load failure
6845         correctly.
6846
6847         * appdomain.c (add_assemblies_to_domain): Handle the case when
6848         the references of an assembly are not yet loaded.
6849
6850         * metadata.c image.c assembly.c: Moved initialization of global
6851         variables to a separate function called at startup since lazy 
6852         initialization of these variables is not thread safe.
6853         
6854         * image.c assembly.c: Made this module thread safe by adding locks in 
6855         the appropriate places.
6856
6857         * domain.c (mono_init): Call the new initialization functions of the
6858         three modules.
6859
6860 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
6861
6862         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
6863           make a direct call. It is proxy's work to make the call asynchronous.
6864           mono_delegate_end_invoke(): If the targe is a proxy, just collect
6865           the return values.
6866         * object.cs: mono_method_call_message_new(): read AsyncResult and
6867           state object from parameters list, if this info is requested.
6868         * object.h: Added fields to store remote call output values in
6869           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
6870
6871 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
6872
6873         * object.h: add needed fields to MonoThread.
6874         * threads.c, threads.h: allow registering a function to cleanup data
6875         allocated per thread by the JIT.
6876
6877 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6878
6879         * loader.h: portability fix by Bernie Solomon
6880         * <bernard@ugsolutions.com>.
6881
6882 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
6883
6884         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
6885         return a MonoArray. This simplifies the code and also ensures that
6886         the cache allways contains an object reference as a value.
6887
6888         * icall.c (ves_icall_get_parameter_info): Simplified using the new
6889         function.
6890
6891 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6892
6893         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
6894         fixes a problem with byte ordering when getting the address family for
6895         a socket.
6896
6897 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
6898
6899         * .cvsignore: Added monosn.
6900
6901         * reflection.h reflection.c loader.c: Added support for parameter
6902         marshalling to dynamically created types. Fixes #47295.
6903
6904 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
6905
6906         * rand.c: remove useless warnings.
6907
6908 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
6909
6910         * class.c: implemented ldtoken for methods and fieldrefs.
6911
6912 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6913
6914         * threadpool.c: when mono_async_invoke was called, no one took care of
6915         monitoring the queue. So if the method invoked took some time and we
6916         got new async invoke requests after 500 ms (the thread created waited
6917         that long in WaitForSingleObject), the new async invoke was not called
6918         until the previous one finished.
6919
6920         This is fixed now. Thanks to Totte for helping with it.
6921
6922 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6923
6924         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
6925
6926 2003-08-11  Martin Baulig  <martin@ximian.com>
6927
6928         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
6929
6930 2003-08-06  Martin Baulig  <martin@ximian.com>
6931
6932         * mono-debug-debugger.c: Added support for static fields,
6933         properties and methods.
6934
6935 2003-08-06  Martin Baulig  <martin@ximian.com>
6936
6937         * mono-debug-debugger.c: Don't store the MonoString's vtable to
6938         make this work for applications with multiple application domains.
6939
6940 2003-08-04  Martin Baulig  <martin@ximian.com>
6941
6942         * mono-debug-debugger.c: Completely reworked the type support; the
6943         most important thing is that we're now just using one single
6944         `MonoType' instance per type.
6945
6946 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
6947
6948         * mono-endian.h, mono-endian.c, icall.c: Added icall
6949         ves_icall_System_Double_AssertEndianity to assert double word endianity
6950         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
6951
6952 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
6953
6954         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
6955         support, icalls and fixes.
6956
6957 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
6958
6959         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
6960         classes that are a punctuation character in .NET is not the same a
6961         g_unichar_ispunct.
6962
6963 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6964
6965         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
6966
6967 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
6968
6969         * icall.c: Add new MemCopy internalcall.
6970         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
6971         Simplified code; It is not necessary to handle all the cases here,
6972         as the C# code takes care of it.  Only handle the case of the name
6973         resource embedded into the assembly.
6974
6975         Changed signature to return the data pointer and the size of the
6976         data. 
6977
6978 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
6979
6980         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
6981         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
6982
6983 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
6984
6985         * socket-io.c: ignore EINTR error in select.
6986
6987 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
6988
6989         * class.h, class.c: removed unused subclasses field in MonoClass.
6990
6991 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
6992
6993         * icall.c: improve fix of get_base_definition(). If the parent class
6994           doesn't have the mehod, look at the parent of the parent.
6995         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
6996           to check if a parameter is an in or out parameter
6997           (PARAM_ATTRIBUTE_IN is not set by default).
6998           mono_method_return_message_restore(): Use mono_class_value_size to
6999           get the size of a value type. mono_type_stack_size (parameterType)
7000           does not return the correct value if parameterType is byRef.
7001           mono_load_remote_field(), mono_load_remote_field_new(),
7002           mono_store_remote_field(), mono_store_remote_field_new():
7003           raise exception if the remote call returns an exception.
7004
7005 2003-07-28  Martin Baulig  <martin@ximian.com>
7006
7007         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7008         method.  This is a wrapper around mono_runtime_invoke() which
7009         boxes the instance object if neccessary.
7010
7011 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7012
7013         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7014         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7015
7016 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7017
7018         * icall.c: disable mcs bug workaround.
7019
7020 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7021
7022         * object.c (mono_runtime_class_init): Take the metadata_section
7023         mutex before obtaining the domain mutex.
7024
7025         * appdomain.h: Added definition of metadata_section mutex here. 
7026
7027         * object.c: define metadata_mutex here.
7028
7029 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7030
7031         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7032         fixed.
7033
7034 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7035
7036         * reflection.c: Fix bug #46669
7037
7038 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7039
7040         * exception.c:
7041         * exception.h:
7042         * icall.c:
7043         * object.h: fill in the type name for TypeLoadException.
7044
7045 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7046
7047         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7048         relationship between TypeBuilders while compiling corlib) and bug
7049         45993 (Array types returned from the runtime while compiling
7050         corlib were from the loaded corlib).
7051
7052 2003-07-22  Martin Baulig  <martin@ximian.com>
7053
7054         * mono-debug-debugger.c: Reworked the type support a bit more;
7055         distinguish between types and classes.
7056
7057 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7058
7059         * icall.c: add IsArrayImpl icall.
7060
7061 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7062
7063         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7064         initializing real_size only once. Also fix bug #46602.
7065
7066 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7067
7068         * object.c: Renamed mono_metadata_section to metadata_section.
7069
7070 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7071
7072         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7073           empty array if the type is an array. Fixed.
7074           ves_icall_MonoMethod_get_base_definition: if the base method
7075           is abstract, get the MethodInfo from the list of methods of
7076           the class.
7077         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7078           and it was 1-based. Fixed in mono_param_get_objects.
7079
7080 2003-07-20  Martin Baulig  <martin@ximian.com>
7081
7082         * mono-debug.h: Set version number to 31.
7083         (mono_debug_init): Added `MonoDomain *' argument.
7084
7085         * mono-debug-debugger.c: Reworked the type support; explicitly
7086         tell the debugger about builtin types; pass the `klass' address to
7087         the debugger.
7088
7089 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7090
7091         * image.c: Allow new metadata tables to be loaded without a
7092         warning. Also update the warning message to give the new constant value.
7093                 
7094 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7095
7096         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7097         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7098         array type representation changes.
7099
7100 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7101
7102         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7103         on Environment.Exit () call.
7104
7105 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7106
7107         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7108         requires a matching corlib.
7109
7110 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7111
7112         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7113           Committed again without the CRs.
7114         
7115 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7116
7117         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7118           getting it from the "this" socket instance. Did not work
7119           if the socket is a subclass of Socket.
7120           Also fixed bug #35371.
7121
7122 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7123
7124         * metadata.c: fixed size for TypedByRef.
7125         * loader.c: when searching for a method, consider the vararg amrker.
7126         * unicode.c, decimal.c: constify some arrays.
7127
7128 2003-07-15  Dick Porter  <dick@ximian.com>
7129
7130         * socket-io.c: Fixed compilation for gcc < 3.2.
7131
7132         Fixed compilation for machines that don't have AF_INET6 (thanks to
7133         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7134
7135         Fixed compile warnings.
7136         
7137         Fixed formatting and line endings.
7138
7139 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7140
7141         * socket-io.h:
7142         * socket-io.c: Added IPv6 support.
7143
7144 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7145
7146         * class.c (mono_class_is_assignable_from): New function to implement
7147         the is_assignable_from logic. Used by mono_object_isinst, 
7148         Type::IsAssignableFrom () and the interpreter.
7149
7150         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7151         Object, even interfaces.
7152         
7153         * object.c (mono_object_isinst): Implement in terms of 
7154         is_assignable_from.
7155
7156         * icall.c (ves_icall_type_is_assignable_from): New icall.
7157
7158 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7159
7160         * domain.c (foreach_domain): fix compiler warning.
7161
7162 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7163
7164         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7165         not available on all plattforms
7166
7167 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7168
7169         * image.h image.c: Store the metadata version string in MonoImage.
7170         * icall.c: New icall to retrieve the image version.
7171         * reflection.c (create_dynamic_image): Fill in the image version field
7172         * reflection.c (build_compressed_metadata): Use the image version
7173         from the image structure.
7174
7175 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7176
7177         * appdomain.c: modified comment.
7178         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7179         That will be its last iteration when mono_gc_cleanup is called from
7180         mono_runtime_cleanup and before the domain is unloaded.
7181
7182         Fixes bug #45962.
7183
7184 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7185
7186         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7187         attributes.
7188
7189 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7190
7191         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7192         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7193         Bernie Solomon <bernard@ugsolutions.com>.
7194
7195 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7196
7197         * object.c, object.h: provide mono_object_new_fast() for faster
7198         allocation in some special cases.
7199
7200 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7201
7202         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7203         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7204
7205 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7206
7207         * threadpool.c: fix leaks.
7208
7209 2003-07-01  Dick Porter  <dick@ximian.com>
7210
7211         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7212         using MonoGHashTables.  Fixes threadpool bug posted to list.
7213
7214 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7215
7216         * image.h, image.c: added support to load an assembly from a byte array.
7217         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7218         assembly bundle support.
7219
7220 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7221
7222         * threadpool.c (mono_thread_pool_add): keep a reference to the
7223         AsyncResult to prevent GC
7224
7225 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7226
7227         * class.c: leak fix.
7228
7229 2003-06-25  Dick Porter  <dick@ximian.com>
7230
7231         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7232         for the async object, the WaitHandle object will close the handle.
7233         Fixes bug 45321.
7234
7235 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7236
7237         * class.c: in mono_array_class_get (), lookup from the hash with the
7238         same type we insert: this works around a bug in
7239         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7240         lluis. The real fix will have to wait for after the release.
7241
7242 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7243
7244         * icall.c: fix memory leak when getting type members.
7245
7246 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7247
7248         * reflection.c: added more pubtoken special cases.
7249
7250 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7251
7252         * class.c: handle field offset correctly when class size
7253         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7254
7255 2003-06-20  Martin Baulig  <martin@ximian.com>
7256
7257         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7258         *image' field.
7259
7260 2003-06-20  Martin Baulig  <martin@ximian.com>
7261
7262         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7263
7264 2003-06-20  Martin Baulig  <martin@ximian.com>
7265
7266         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7267         just distinguish between variables in registers and variables at
7268         an offset relative to a register.
7269
7270 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7271
7272         * icall.c: #ifdef out latest changes until mcs is fixed.
7273
7274 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7275
7276         * icall.c: return members in metadata order.
7277
7278 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7279
7280         * icall.c: avoid infinite loop in GetTimeZoneData.
7281
7282 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7283
7284         * icall.c: added Marshal.Prelink/All icalls.
7285
7286 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7287
7288         * object.c, object.h: fix warnings and do some overflow checking
7289         when creating arrays.
7290
7291 2003-06-17  Dick Porter  <dick@ximian.com>
7292
7293         * file-io.h:
7294         * file-io.c: File attributes need to be tweaked slightly when
7295         passed from the managed to the w32 world.
7296
7297 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7298         * profiler.h profiler-private.h profiler.c: Rework last patch
7299         based on suggestion by Paolo.
7300         
7301 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7302
7303         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7304         instruction level coverage data collection.
7305         * profiler.h profiler.c (: Added new callback function which can be
7306         used by the profiler to limit which functions should have coverage
7307         instrumentation.
7308         * profiler.c (mono_profiler_load): Call g_module_build_path to
7309         generate the file name of the profiler library.
7310
7311 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7312
7313         * profiler.c, profiler.h, profiler-private.h: added basic block 
7314         coverage profiling API.
7315
7316 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7317
7318         * reflection.c (mono_reflection_create_runtime_class): Add support
7319         for events in dynamically generated code.
7320
7321         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7322         not allocated.
7323
7324 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7325
7326         * icall.c: when getting timezone info, return reasonable values if we
7327         can't get the actual data.
7328
7329 2003-06-14  Dick Porter  <dick@ximian.com>
7330
7331         * threads.c (start_wrapper): Remove the reference to the thread
7332         object in the TLS data, so the thread object can be finalized.
7333         This won't be reached if the thread threw an uncaught exception,
7334         so those thread handles will stay referenced :-( (This is due to
7335         missing support for scanning thread-specific data in the Boehm GC
7336         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7337
7338 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7339
7340         * reflection.c: ensure streams and tables are first allocated with
7341         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7342
7343 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7344
7345         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7346
7347 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7348
7349         * reflection.c (mono_reflection_create_runtime_class): Add support for
7350         properties to dynamically created classes.
7351         * reflection.c: Fix a few places where non-MonoObjects were inserted
7352         into the tokens hashtable.
7353
7354 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7355
7356         * object.c: some support to handle out of memory exceptions.
7357
7358 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7359
7360         * marshal.c (mono_marshal_get_native_wrapper): support reference
7361         return types
7362
7363 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7364
7365         * object.h, object.c: more portability stuff from Bernie Solomon.
7366         Unexport mono_object_allocate(). Added mono_object_unbox ().
7367         Set exitcode when an unhandled exception is thrown.
7368
7369 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7370
7371         * marshal.c (mono_marshal_get_native_wrapper): use custom
7372         marshaler for return types.
7373
7374 2003-06-10  Dick Porter  <dick@ximian.com>
7375
7376         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7377         ip_mreq is available
7378
7379 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7380
7381         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7382         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7383         by Bernie Solomon <bernard@ugsolutions.com>.
7384
7385 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7386
7387         * gc.c (mono_gc_init): Avoid error message on shutdown when
7388         GC_DONT_GC=1 is used.
7389
7390         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7391         New icall to return the GUID of a module.
7392
7393 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7394
7395         * class.c: ensure instance size always includes the parent's size
7396         even whem class size is set explicitly (fixes bug#44294).
7397
7398 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7399
7400         * profiler.h, profiler.c: made the simple profiler thread-safe,
7401         get more accurate timing info. Allow the loading of an
7402         externally-developed profiler module.
7403
7404 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7405
7406         * marshal.c (mono_marshal_get_native_wrapper): improved
7407         class/byref arguments.
7408         (mono_marshal_get_native_wrapper): better string marshaling support.
7409
7410 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7411
7412         * class.c: ensure .pack and .size are handled correctly and
7413         simplified layout of static fields.
7414
7415 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7416
7417         * appdomain.c
7418         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7419
7420         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7421         current directory (fix bug 44008)
7422
7423 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7424
7425         * marshal.c (mono_marshal_get_native_wrapper): started support for
7426         custom marshalers.
7427         (mono_delegate_to_ftnptr): consider marshalling specifications
7428
7429 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7430
7431         * reflection.c, reflection.h: emit custom marshal info.
7432
7433 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7434
7435         * object.c: free the GError.
7436         * icall.c: added CloseEvent_internal.
7437         * threads.[ch]:
7438         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7439         call.
7440
7441 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7442
7443         * loader.c (mono_method_get_signature): Add support for dynamic
7444         assemblies.
7445
7446 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7447
7448         * reflection.c: fixed bug #43905.
7449
7450 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7451
7452         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7453         handling TypedReference and ArgIterator.
7454         * loader.c, loader.h: added function to get signature at call site.
7455
7456 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7457
7458         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7459         data readonly. Buglets and warning fixes. Some MethodSpec support.
7460
7461 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7462
7463         * class.h, class.c, object.c: remove relative numbering support.
7464
7465 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7466
7467         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7468         free the string, until we get a chance to fix Gtk#
7469
7470 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7471
7472         * marshal.c: revert last patch.
7473
7474 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7475
7476         * icall.c: updates for new mono_class_vtable() not calling
7477         the type constructor anymore.
7478
7479 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7480
7481         * object.h, object.c: separate vtable creation from type
7482         initialization. Make running the .cctor thread safe.
7483
7484 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7485
7486         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7487
7488 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7489
7490         * loader.c (mono_get_method): consider calling convention
7491
7492 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7493
7494         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7495         to return the invisible global type for a module.
7496
7497         * reflection.c (mono_image_build_metadata): Emit global fields too.
7498
7499 2003-05-20  Peter Williams  <peterw@ximian.com>
7500
7501         * loader.c (mono_lookup_internal_call): Add a few newlines.
7502
7503 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7504
7505         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7506         literal strings.
7507
7508         * appdomain.c (set_domain_search_path): Recalculate search path when
7509         AppDomainSetup.PrivateBinPath changes.
7510
7511         * object.c (mono_class_compute_gc_descriptor): It turns out some
7512         parts of the class libs (like System.Thread) holds pointers to
7513         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7514         to treat native int a pointer type here.
7515         
7516 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7517
7518         * appdomain.h, domain.c: add hashtable for jump target resolution.
7519
7520 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7521
7522         * reflection.h reflection.c icall.c: Added new icalls 
7523         GetManifestResourceInfoInternal, GetModulesInternal and support
7524         infrastructure.
7525
7526 2003-05-16  Dick Porter  <dick@ximian.com>
7527
7528         * icall.c:
7529         * file-io.h:
7530         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7531
7532 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7533
7534         * object.c: mono_store_remote_field: little fix to previous patch.
7535
7536 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7537
7538         * class.c: add constructors to array classes.
7539         * icall.c: special case array construction for InternalInvoke (),
7540
7541 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7542
7543         * class.h class.c reflection.c object.c: Added support for field
7544         defaults in dynamically generated classes.
7545
7546 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7547
7548         * reflection.c: properly encode charset for ddlimport.
7549
7550 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7551
7552         * threads.c: allow compiling without GC.
7553
7554 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7555
7556         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7557         handling of thread static data.
7558
7559 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7560
7561         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7562
7563 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7564
7565         * class.c (mono_array_class_get): always set the serializable flags
7566         (mono_array_class_get): always set the SEALED attribute for array types
7567
7568 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7569
7570         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7571         attributes (fix for bug 42021).
7572
7573 2003-05-12  Dick Porter  <dick@ximian.com>
7574
7575         * gc.c: Don't run finalizers when the finalizer thread is
7576         finishing up, because the default domain has already been
7577         destroyed.
7578
7579 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7580
7581         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7582         value is null, we should throw an exception.   This is slightly
7583         different than the other conventions used for the constructor.
7584
7585 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7586
7587         * socket-io.c: fixed windows build.
7588
7589 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7590
7591         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7592
7593 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7594
7595         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7596         compilers.
7597
7598 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7599
7600         * class.c (mono_class_layout_fields): Add experimental GC aware
7601         auto layout facility. Requires class library changes to work correctly.
7602
7603         (mono_class_setup_vtable): Avoid overriding explicit interface
7604         method implementations. Fixes iface3.exe test.
7605
7606         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7607         object reference.
7608         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7609         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7610
7611         * metadata.h: Add new type classification macro which determines
7612         whenever the type holds an object reference.
7613
7614 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7615
7616         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7617
7618 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7619
7620         * gc.c (finalizer_thread): Work around a GC bug.
7621
7622 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7623
7624         * marshal.c (emit_struct_conv): allow unions
7625
7626         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7627
7628 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7629
7630         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7631
7632 2003-05-06  Martin Baulig  <martin@ximian.com>
7633
7634         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7635
7636 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7637
7638         * socket-io.c:
7639         (Select_internal): allow NULLs, don't create arrays if not needed.
7640         Coupled with Socket.cs changes.
7641
7642         * threadpool.c:
7643         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7644         register a finalizer for it that will close the semaphore handle. This
7645         fixes the leak and make Lupus' test run with > 4080 loops.
7646
7647 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7648
7649         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7650         Jerome Laban (bug #42287)
7651
7652 2003-05-02  Martin Baulig  <martin@ximian.com>
7653
7654         * debug-mono-symfile.h
7655         (MonoSymbolFile): Moved declaration into mono-debug.h.
7656         (MonoDebugMethodJitInfo): Likewise.
7657         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
7658         argument.
7659         (_mono_debug_address_from_il_offset): Take a
7660         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
7661
7662         * mono-debug.h
7663         (MonoDebugDomainData): New struct.
7664         (mono_debug_get_domain_data): New function.
7665         (mono_debug_add_method): Take an additional `MonoDomain *'
7666         argument.
7667         (mono_debug_source_location_from_address): Likewise.
7668         (mono_debug_il_offset_from_address): Likewise.
7669         (mono_debug_address_from_il_offset): Likewise.
7670
7671 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
7672
7673         * reflection.c: one more check for null type in custom attrs.
7674
7675 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7676
7677         * reflection.c: avoid warning (comparison is always false due to limited
7678         range of data type).
7679
7680 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7681
7682         * icall.c: throw an exception in Type.GetField if the argument 'name'
7683         is NULL.
7684
7685 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
7686
7687         * reflection.c: fixed handling of enums in named arguments to custom
7688         attributes (bug #42123).
7689
7690 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
7691
7692         * reflection.c: use the right array element type and handle
7693         a null for a Type argument, too.
7694
7695 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
7696
7697         * reflection.c: handle arrays as arguments to custom attributes.
7698
7699 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7700
7701         * reflection.c: handle a string value in a custom attr
7702         ctor that takes an object.
7703
7704 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
7705
7706         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
7707         (fix bug #42063)
7708
7709 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
7710
7711         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
7712
7713 2003-04-27  Martin Baulig  <martin@ximian.com>
7714
7715         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
7716         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
7717         MONO_DEBUGGER_EVENT_BREAKPOINT.
7718         (mono_breakpoint_trampoline_code): Removed.
7719         (mono_debugger_event_handler): The last argument is now a
7720         `guint32'.
7721         (mono_debugger_insert_breakpoint_full): Removed the
7722         `use_trampoline' argument.
7723         (mono_debugger_method_has_breakpoint): Likewise.
7724         (mono_debugger_trampoline_breakpoint_callback): Renamed to
7725         mono_debugger_breakpoint_callback(); take the method and
7726         breakpoint number as arguments.
7727
7728 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
7729
7730         * metadata.c: fix off by one when loading parameters attributes.
7731
7732 2003-04-24  Martin Baulig  <martin@ximian.com>
7733
7734         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
7735
7736 2003-04-24  Martin Baulig  <martin@ximian.com>
7737
7738         * mono-debug-debugger.c: Moved all code which interacts with the
7739         Mono Debugger here.
7740
7741         * debug-mono-symfile.c: This code now just deals with the symbol
7742         file itself, the debugger code is now in mono-debug-debugger.c.
7743
7744 2003-04-23  Martin Baulig  <martin@ximian.com>
7745
7746         * mono-debug.c (mono_debug_source_location_from_il_offset):
7747         New method; like mono_debug_source_location_from_address(), but
7748         takes an IL offset instead of a machine address.
7749
7750 2003-04-23  Martin Baulig  <martin@ximian.com>
7751
7752         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
7753         `line' field; this is now computed by the debugger.
7754
7755 2003-04-23  Martin Baulig  <martin@ximian.com>
7756
7757         * mono-debug.[ch]: New files.  This is the new debugging interface.
7758
7759         * mono-debug-debugger.[ch]: New files.  Moved all code which
7760         interacts with the Mono Debugger here.
7761
7762 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
7763
7764         * domain.c (mono_init): initialize mono_defaults.monitor_class
7765
7766 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
7767
7768         * reflection.c (method_encode_code): Add a spicy exception to help
7769         future compiler authors.
7770
7771 2003-04-21  Martin Baulig  <martin@ximian.com>
7772
7773         * icall.c
7774         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7775         Make this work with relative pathnames; g_filename_to_uri() needs
7776         an absolute filename.
7777
7778 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
7779
7780         * icall.c: Track name changes in Object and ValueType.
7781
7782 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
7783
7784         * metadata.c (mono_type_stack_size): size should be a multiple of
7785         sizeof (gpointer)
7786
7787 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7788
7789         * gc.c:
7790         (internal_domain_finalize): moved into mono_domain_finalize. No need
7791         to create another thread because the finalizers will be run in the
7792         finalizer thread.
7793         
7794         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
7795         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
7796         to be run (MS does this too).
7797
7798 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
7799
7800         * object.c (mono_class_compute_gc_descriptor): Update comment.
7801
7802         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
7803
7804         * image.h: Add synchronized wrapper cache.
7805
7806         * image.c (do_mono_image_open): Initialize cache.
7807
7808         * reflection.c (create_dynamic_mono_image): Initialize cache.
7809
7810 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7811
7812         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
7813         ves_icall_System_Buffer_ByteLengthInternal.
7814
7815 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7816
7817         * reflection.c: setup klass->nested_in earlier. Allow
7818         a dash in the assembly name.
7819
7820 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
7821
7822         * metadata.c (mono_type_to_unmanaged): dont access
7823         type->data.klass for MONO_TYPE_OBJECT
7824         (mono_type_to_unmanaged): consider System.Delegate class
7825
7826 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
7827
7828         * class.c: just setup supertypes in the proper place instead of
7829         initializing the full element class for arrays.
7830
7831 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7832
7833         * class.c: ensure the element class of arrays is initialized.
7834         Setup the supertype info for array classes, too.
7835
7836 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
7837
7838         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
7839
7840 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7841
7842         * Makefile.am: re-added -m option when running cygpath. This way,
7843         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
7844         separator.
7845         * mono-config.c: same codepath for locating mono config file for WIN32
7846         and the rest.
7847         * assembly.c: if mono_assembly_setrootdir is called, don't override
7848         the value set.
7849
7850 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7851
7852         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
7853         MONO_ASSEMBLIES variable.
7854
7855 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
7856
7857         * icall.c: added Assembly::GetNamespaces() icall.
7858
7859 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7860
7861         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
7862
7863 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
7864
7865         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
7866         * object.c: fixed bug in the construction of vtable for proxies
7867
7868 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
7869
7870         * object.c (mono_array_new): Mark mono_array_new as an icall.
7871
7872 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7873
7874         * class.c: fixed test for public method when overriding interfaces.
7875         Closes bug #40970.
7876
7877 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7878
7879         * appdomain.h, domain.c: added mono_domain_foreach() to
7880         be able to access the currently loaded appdomains.
7881         * object.c: make string interning work across sppdomains.
7882         Mark some functions for use as icalls.
7883
7884 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
7885
7886         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
7887
7888         * reflection.h reflection.c: Allocate long living data using 
7889         GC_MALLOC_ATOMIC so the collector does not need to scan it.
7890
7891         * reflection.c: Double the allocation size in streams instead of
7892         increasing it, to prevent unneccesary copying on large assemblies.
7893         
7894         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
7895         creation if the assembly does not have the Run flag set.
7896
7897 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
7898
7899         * class.h: avoid the C++ keywords in header files (Jerome Laban
7900         spotted and fixed this).
7901
7902 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7903
7904         * object.c:
7905         (mono_unhandled_exception): fill in the arguments for the
7906         UnhandledException event. Only trigger that event for the default
7907         domain (as MS does).
7908
7909 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
7910
7911         * object.c: Improve typed allocation stuff based on suggestions from
7912         Paolo. Also turn it on if the GC library supports it.
7913
7914 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
7915
7916         * object.c object.h class.h: Added experimental typed allocation
7917         facility using the interfaces in gc_gcj.h.
7918
7919         * os/gc_wrapper.h: Added new include files.
7920         
7921 2003-04-03  Martin Baulig  <martin@ximian.com>
7922
7923         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
7924         which is not yet enabled by default.
7925
7926         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
7927         functions.
7928         (mono_gc_lock, mono_gc_unlock): New static functions.
7929
7930         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
7931         functions; stop/start the world for the garbage collector.  This
7932         is using the windows API; we need to complete the SuspendThread()/
7933         ResumeThread() implementation in the io-layer to make this work on Unix.
7934         (mono_gc_push_all_stacks): New public function; tells the garbage
7935         collector about the stack pointers from all managed threads.
7936
7937 2003-04-03  Martin Baulig  <martin@ximian.com>
7938
7939         * object.h (MonoThread): Added `gpointer stack_ptr'.
7940
7941         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
7942
7943 2003-04-03  Martin Baulig  <martin@ximian.com>
7944
7945         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
7946
7947 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
7948
7949         * reflection.c (typebuilder_setup_fields): Initialize field.first and
7950         field.last.
7951
7952 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
7953
7954         * loader.c (mono_lookup_internal_call): Report the corlib that is
7955         out of sync.
7956
7957 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
7958
7959         * icall.c (ves_icall_type_GetTypeCode): fixed check for
7960         System.DBNull (it's class not valuetype).
7961
7962 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7963
7964         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
7965         if the array method was already assigned a token (fixes bug#40646).
7966
7967 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
7968
7969         * reflection.c (mono_reflection_get_type): Attempt type resolve even
7970         if no assembly is given.
7971
7972 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
7973
7974         * metadata.h: Added the new tables.
7975
7976         * row-indexes.h: Added definitions for new tables.
7977
7978         * metadata.c: Add schemas for new tables, and add support for
7979         computing the sizes of them.
7980
7981         * class.c: Update for handling the new type cases.
7982
7983 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
7984
7985         * metadata.h (MONO_TYPE_IS_VOID): new macro
7986
7987 2003-03-31  Martin Baulig  <martin@ximian.com>
7988
7989         * threads.h (MonoThreadCallbacks): Added `thread_created'.
7990
7991         * threads.c (mono_thread_new_init): Call `thread_created' in the
7992         mono_thread_callbacks.
7993
7994 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
7995
7996         * loader.h: added marshalbyrefobject_class to mono_defaults
7997         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
7998         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
7999           generation of output parameters.
8000           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8001         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8002           contextbound and the target object belongs to the context of the caller.
8003         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8004         * object.c: Implemented support for interfaces and abstract classes
8005           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8006           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8007
8008 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8009
8010         * class.h class.c (mono_class_is_subclass_of): New function.
8011         
8012         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8013         routines for most common case (calls from ArrayList::ToArray).
8014
8015         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8016         routine so programs which call Environment::Exit() can be profiled.
8017
8018         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8019         Added MONO_ARCH_SAVE_REGS.
8020
8021         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8022
8023 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8024
8025         * blob.h: Add a couple of new MonoType types definitions.
8026
8027         * tabledefs.h: Add a couple of new call convs.
8028
8029 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8030
8031         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8032         the layout of the class.
8033
8034         * reflection.c (alloc_table): double the size on overflow to avoid
8035         unnecessary copying.
8036
8037         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8038         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8039         null so it can be garbage collected.
8040         
8041 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8042
8043         * reflection.c (mono_reflection_get_type): Return the resolved type
8044         only if it is in the assembly we searched.
8045
8046         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8047
8048         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8049         method.
8050
8051 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8052
8053         * appdomain.c:
8054         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8055         the right one is 'file:///blah', but MS allows it.
8056         * assembly.c:
8057         (mono_assembly_open): allow 'file://blah'
8058
8059         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8060
8061 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8062
8063         * socket-io.c: fixes bug #40310.
8064
8065 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8066
8067         * reflection.c (mono_reflection_parse_type): handle deeply nested
8068         types correctly.
8069
8070         * reflection.c (mono_image_create_token): Use unique token values
8071         since they will be put into a hash table.
8072
8073         * class.c (mono_class_setup_vtable): If a method occurs in more than
8074         one place in the vtable, and it gets overriden, then change the
8075         other occurances too.
8076
8077         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8078         object as return type.
8079
8080 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8081
8082         * icall.c: Deleted "ToString" implementation for double and float
8083         because they are full implemented in managed code.
8084
8085 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8086
8087         * reflection.c, reflection.h: implemented and exported functions
8088         to retrieve info about custom attributes.
8089
8090 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8091
8092         * appdomain.c: moved Uri handling to assembly.c
8093         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8094         work when using a file Uri in *nix and windows.
8095
8096         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8097         GetReferencedAssemblies.
8098
8099 2003-03-18  Dick Porter  <dick@ximian.com>
8100
8101         * icall.c: Rename a couple of internal calls
8102
8103         * threads.c: Set the thread state to Stopped when a thread exits.
8104         Fixes bug 39377.
8105
8106 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8107
8108         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8109         New icall.
8110
8111         * object.c (mono_class_vtable): fix warning.
8112
8113 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8114
8115         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8116
8117         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8118         memory.
8119         (method_encode_clauses): Create exception info structures in the right
8120         order.
8121         (mono_reflection_setup_internal_class): Initialize supertypes field.
8122
8123         * class.c object.c: Handle interfaces which implement other interfaces 
8124         correctly.
8125
8126         * class.h class.c: Move the supertypes array initialization code into 
8127         a separate function so it can be used for dynamic types too. Also call
8128         it earlier, in mono_class_init(), since it can be used before the
8129         type is initialized.
8130
8131 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8132
8133         * Makefile.am:
8134         * assembly.c:
8135         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8136
8137         * appdomain.c:
8138         * appdomain.h:
8139         * marshal.c:
8140         * object.c: remove warnings.
8141
8142 2003-03-13  Martin Baulig  <martin@ximian.com>
8143
8144         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8145         (MonoDebugLexicalBlockEntry): New types.
8146
8147         * debug-mono-symfile.c
8148         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8149
8150 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8151
8152         * process.c: ret can be any non-zero value accroding to MS doc.
8153
8154 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8155
8156         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8157         fixing a warning for a miss-used prototype, would have cause
8158         random memory corruption.
8159
8160 2003-03-07  Martin Baulig  <martin@ximian.com>
8161
8162         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8163         getting really annoying ....
8164
8165 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8166
8167         * reflection.c (fixup_method): added support for array methods.
8168
8169 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8170
8171         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8172         (pointed out by Michael Adams).
8173
8174 2003-03-04  Dick Porter  <dick@ximian.com>
8175
8176         * icall.c: Temporarily reverted the Double and Single ToString()
8177         change, because it broke nunit.
8178
8179 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8180
8181         * object.h, threads.h: make include files compatible with C++
8182         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8183
8184 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8185
8186         * icall.c: Erased ToString helper functions for Double and Single.
8187         Now, that implementations ar all in managed code (Double and Single
8188         Formatters).
8189
8190 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8191
8192         * appdomain.c: Added method for initializing the default context of
8193         a domain. Added internal call for getting the default context.
8194         * appdomain.h: Added context variable in MonoDomain struct.
8195         * domain.c: mono_domain_set also sets the default context of the domain
8196         * icall.c: Mapped internal method InternalGetDefaultContext.
8197         * object.c: mono_object_get_virtual_method returns always a remoting
8198         wrapper if the object is a transparent proxy.
8199         mono_runtime_invoke_array: when creating an object by calling the
8200         constructor, if the created object is a proxy, then the constructor should
8201         be called using the a remoting wrapper.
8202
8203 2003-03-03  Dick Porter  <dick@ximian.com>
8204
8205         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8206         variable so it compiles on solaris.  Problem spotted by
8207         Christopher Taylor <ct@cs.clemson.edu>
8208
8209 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8210
8211         * appdomain.c:
8212         (get_info_from_assembly_name): don't leak value.
8213
8214         * icall.c:
8215         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8216         result.
8217
8218 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8219
8220         * assembly.c: export mono_image_load_references ().
8221         * class.c: handle function pointers. mono_class_from_name() now
8222         supports nested type names directly.
8223
8224 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8225
8226         * reflection.h reflection.c: Encode already created dynamic methods 
8227         and fields correctly as a DEF instead of a REF.
8228
8229         * reflection.c: Get rid of the force_ref argument to 
8230         mono_image_typedef_or_ref since it was wrong in the first place.
8231
8232         * string-icalls.c: add error checking to string constructors according
8233         to the MSDN docs.
8234
8235         * reflection.c: Emit types in the order their TypeBuilders were 
8236         created. Previously, a new table index was assigned to each type before
8237         the tables were emitted. This was wrong because the signature blob
8238         might already refer to a type by its original table index.
8239
8240 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8241
8242         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8243         change.
8244         
8245 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8246
8247         * Makefile.am: make assemblies dir have \ instead of / on windows.
8248
8249 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8250
8251         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8252         iterate over the NESTEDCLASS table using a linear search since the
8253         table is not guaranteed to be sorted by the secondary key.
8254
8255         * class.c (mono_class_create_from_typedef): fixed up call to
8256         mono_metadata_nesting_typedef.
8257         
8258 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8259
8260         * marshal.c (mono_string_to_byvalstr): clear the memory as
8261         suggested by Jerome Laban <jlaban@wanadoo.fr>
8262
8263 2003-02-26  Dick Porter  <dick@ximian.com>
8264
8265         * process.c: Cope with padding in .rsrc blocks
8266
8267 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8268
8269         * metadata.h: reverted the filter_len change, it breaks reflection
8270         
8271 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8272
8273         * metadata.h: added a new field to store the filter_len
8274         
8275
8276 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8277
8278         * reflection.c: handle custom attributes for types and members
8279         created with Reflection.Emit (bug#38422).
8280
8281 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8282
8283         * reflection.c: define RTSpecialName automatically for constructors for
8284         compatibility with MS.NET.
8285
8286         * reflection.c (mono_reflection_create_runtime_class): initialize
8287         nested_in field of dynamically created classes.
8288
8289 2003-02-22  Martin Baulig  <martin@ximian.com>
8290
8291         * debug-mono-symfile.h: Incremented version number.
8292
8293 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8294
8295         * object.h icall.c process.c: fix warnings.
8296
8297 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8298
8299         * appdomain.h appdomain.c:
8300         (mono_domain_try_type_resolve): split the 
8301         name_or_tb argument into a name and a tb argument.
8302         (mono_domain_has_type_resolve): new function to check whenever the
8303         application has registered a TypeResolve event handler.
8304         
8305         * icall.c reflection.h reflection.c: move the type resolve logic into
8306         mono_reflection_get_type () so it will be invoked when 
8307         Assembly::GetType () is called.
8308
8309         * reflection.c:
8310         (mono_reflection_get_type): renamed to get_type_internal.
8311         (mono_reflection_get_type): fixed type name generation so it works 
8312         for nested types too.
8313         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8314         costly type name generation if there is no resolve event handler.
8315
8316 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8317
8318         * class.c, image.c: load exported types from file references.
8319
8320 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8321
8322         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8323           used to cache the managed methods used to create proxies and make 
8324           remote invocation of methods.
8325         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8326           to be remotely created.
8327         * object.c: Modified the method mono_class_vtable(). It now initializes 
8328           the remote flag of the vtable. Modified mono_object_new_specific(), 
8329           so now it checks the remote flag.
8330         * icall.c: Added a couple of internal methods, one for enabling instance 
8331           creation interception for a type, and one for creating objects bypassing
8332           the remote check.
8333
8334 2003-02-18  Martin Baulig  <martin@ximian.com>
8335
8336         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8337         New interncall to get a method's metadata token.
8338
8339         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8340         New interncall for the debugger.
8341
8342 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8343
8344         * class.c (mono_class_setup_vtable): allocate supertype array
8345
8346 2003-02-18  Martin Baulig  <martin@ximian.com>
8347
8348         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8349
8350 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8351
8352         * reflection.c:
8353         (assembly_name_to_aname): jump over unknown properties (i've found
8354         something like: 'type, assembly, version=xxx, custom=null, public...',
8355         so now will ignore custom=null and still get the rest of the values).
8356
8357 2003-02-17  Dick Porter  <dick@ximian.com>
8358
8359         * threads.c: Have Thread.Start() wait for a semaphore to signal
8360         that the thread has set up all its local data.  This fixes bug
8361         34323, where Abort() raced the new thread's TLS data.
8362
8363         Also removes the handle_store() call from start_wrapper, because
8364         threads are now always created suspended and there is no longer a
8365         race between the parent and child threads to store the info.
8366
8367 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8368
8369         * image.c: explain the #- heap issue in a message, hopefully
8370         avoiding FAQs on mono-list.
8371
8372 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8373
8374         * icall.c:
8375         (GetEntryAssembly): if the domain has not invoked
8376         AppDomain.ExecuteAssembly yet, return the assembly of the default
8377         AppDomain.
8378
8379 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8380
8381         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8382
8383 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8384
8385         * metadata.c, reflection.c: simple speedup to type hash
8386         and equals code.
8387
8388 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8389
8390         * image.c, image.h, class.c, assembly.c: move module loading
8391         to MonoImage. When loading metadata, consider alignemnet from
8392         the start of metadata, not from the metadata address in memory.
8393
8394 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8395
8396         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8397         AssemblyBuilder objects. Factored out custom attribute creation into
8398         a separate function.
8399         (create_custom_attr): new function to create custom attributes.
8400
8401 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8402
8403         * Makefile.am: Got tired of typing the full pathname to pedump.
8404         Until there is another option, am installing this.
8405
8406 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8407
8408         * class.c (class_compute_field_layout): always set field->parent 
8409         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8410
8411 2003-02-11  Dick Porter  <dick@ximian.com>
8412
8413         * threads-types.h:
8414         * monitor.c: Rewrote Monitor, making lock much faster and
8415         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8416         creates them as needed.
8417
8418         * exception.c: Added SynchronizationLockException
8419
8420         * threads.c: Deleted old Monitor implementation.  The new one is
8421         in a new file.
8422
8423 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8424
8425         * class.c: handled TypedReference type code. Set the correct size for
8426         class data. Setup interface_offsets for interface classes, too.
8427
8428 2003-02-09  Martin Baulig  <martin@ximian.com>
8429
8430         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8431
8432 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8433
8434         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8435         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8436         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8437         * verify.c: check for code that runs after the end of the method.
8438
8439 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8440
8441         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8442         "System.Math::Round2".
8443         * sysmath.h: Added Floor, Round and Round2 definitions.
8444         * sysmath.c: Modified certain functions that were not 100% compliant
8445         with MS.NET (math precision) and added the implementation of Floor,
8446         Round and Round2.
8447
8448 2003-02-07  Martin Baulig  <martin@ximian.com>
8449
8450         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8451
8452 2003-02-07  Martin Baulig  <martin@ximian.com>
8453
8454         * debug-mono-symfile.c: Reflected latest symwriter changes.
8455         (mono_debug_create_mono_symbol_file): Removed.
8456         (mono_debug_open_mono_symbol_file): Take an argument which
8457         specifies whether to create a dynamic symbol file.
8458
8459 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8460
8461         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8462
8463 2003-02-05  Martin Baulig  <martin@ximian.com>
8464
8465         * reflection.c (mono_image_build_metadata): Make this public,
8466         protect it against being called multiple times, don't create
8467         resources and don't build the compressed metadata here.
8468         (mono_image_create_pefile): Do this here.
8469
8470         * icall.c
8471         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8472
8473 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8474
8475         * socket-io.c: fixed bug #36322.
8476
8477 2003-02-06  Piers Haken <piersh@friskit.com>
8478
8479         * appdomain.[ch]:
8480         * class.h:
8481         * debug-mono-symfile.c:
8482         * icall.c:
8483         * loader.c:
8484         * mono-config.c:
8485         * monosn.c:
8486         * reflection.c:
8487         * socket-io.c: warning cleanups
8488
8489 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8490
8491         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8492         function. works like remoting invoke, but does a check for the Proxy first.
8493
8494 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8495
8496         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8497
8498 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8499
8500         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8501         array of pointers.
8502         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8503         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8504
8505         * object.c (mono_store_remote_field_new): used by the new jit
8506         instead of mono_store_remote_field
8507         (mono_load_remote_field_new): used by the new jit
8508         instead of mono_load_remote_field
8509
8510 2003-02-05  Patrik Torstensson
8511
8512         * appdomain.c: changed unload to take the domain id instead
8513         of domain
8514         
8515         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8516
8517
8518 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8519
8520         * appdomain.c: don't look for assemblies in ApplicationBase if
8521         PrivateBinPathProbe is set.
8522
8523 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8524
8525         * object.c: make the first argument in main_args contain the absolute
8526         path to the assembly. Fixes bug #37511.
8527
8528 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8529
8530         * icall.c: get correct UTC offset for countries not using daylight
8531         time saving. Fixes bug #30030.
8532
8533 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8534
8535         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8536         and 1 are the family).
8537
8538 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8539
8540         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8541
8542         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8543
8544 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8545
8546         * reflection.c: added support for SignatureHelper tokens, which is
8547         needed by the Calli opcode.
8548
8549         * reflection.h: track changes to SignatureHelper class.
8550
8551         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8552
8553 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8554
8555         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8556
8557 2003-02-03  Patrik Torstensson
8558         * appdomain.[c|h], domain.c : 
8559          - Added support for getting a domain via domain id
8560          - Support for setting and getting domain from System.AppDomain 
8561            (used in cross appdomain channel)
8562          - Added support for get/set for a MonoAppContext on a thread 
8563            (Context class in System.Runtime.Remoting.Contexts),
8564          - Removed hack in Get/SetData and ExecuteAssembly.
8565         
8566         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8567         the managed world to get control when a proxy is created.
8568
8569         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8570         
8571 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8572
8573         * icall.c
8574         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8575         Populate the codebase field as well.
8576
8577 2003-02-02  Martin Baulig  <martin@ximian.com>
8578
8579         * debug-mono-symfile.c
8580         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8581         (mono_debug_symfile_add_method): Allow interncalls.
8582
8583 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8584
8585         * icall.c: throw parse exception if strtod fails or the string is empty.
8586
8587 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8588
8589         * marshal.c: handle object type separately from defined
8590         class types.
8591
8592 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8593
8594         * marshal.c: handle NATIVE_LPSTR for strings when it's
8595         explicitly specified.
8596
8597 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8598
8599         * reflection.c, reflection.h, icall.c: setup the reflection
8600         handle cache for ModuleBuilders and AssemblyBuilders.
8601
8602 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8603
8604         * reflection.c (reflection_methodbuilder_to_mono_method): set
8605         pinvoke flag
8606
8607 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8608
8609         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8610
8611 2003-01-29  Dick Porter  <dick@ximian.com>
8612
8613         * threads.c: No need for the fake_thread kludge now that Thread
8614         doesn't run a class constructor
8615         
8616 2003-01-29  Dick Porter  <dick@ximian.com>
8617
8618         * threads.c: Use g_direct_hash instead of the rather bogus
8619         g_int_hash
8620
8621 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8622
8623         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8624         (fix pinvoke12.exe)
8625         (mono_marshal_get_struct_to_ptr): generate valid IL code
8626         (mono_marshal_get_ptr_to_struct): generate valid IL code
8627         (*): correctly set sig->pinvoke, we need to memdup the signature
8628         to do that
8629
8630 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8631
8632         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8633         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8634
8635 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8636
8637         * profiler.c: provide more callers information.
8638
8639 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8640
8641         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8642
8643         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8644
8645         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8646
8647 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8648
8649         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8650         exception instead of going into an infinite loop on dates which it 
8651         can't yet handle.
8652
8653         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
8654         out-of-range exception if needed.
8655
8656         * class.c (mono_class_setup_vtable): allow a virtual method to provide
8657         an implementation for an interface method and to override an inherited
8658         method at the same time. 
8659         Imagine a scenario when a virtual method is used to override a
8660         virtual abstract method in a parent class, and this same method 
8661         provides an implementation for an method inherited from an interface. 
8662         In this case, the interface resolution code will set im->slot, which 
8663         means that the virtual method override pass will skip this method 
8664         which means a pointer to the abstract method inherited from the parent
8665         will remain in the vtable of this non-abstract class.
8666
8667         * class.c: (mono_class_setup_vtable): continue search for a real 
8668         method if only an abstract method is found.     
8669
8670 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8671
8672         * reflection.c: add size to encoding for ByValStr and ByValArray
8673         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
8674
8675 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8676
8677         * class.c (mono_class_setup_vtable): pass the override info as an
8678         argument.
8679
8680         * class.c (mono_class_setup_vtable): set the slot of overriding methods
8681         correctly.
8682         
8683         * reflection.c (ensure_runtime_vtable); add support for method 
8684         overrides.
8685         
8686 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8687
8688         * reflection.c (resolution_scope_from_image): Hack to work to work with
8689         dynamic assemblies.
8690
8691         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
8692         added a 'force_ref' argument to force this function to allways return 
8693         a TypeRef. This is needed by mono_image_get_memberref_token ().
8694         
8695 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8696
8697         * reflection.c (mono_image_get_type_info): interfaces really don't have
8698         a parent.
8699
8700         * reflection.c (mono_image_basic_init): fill out missing fields of
8701         image structure.
8702
8703         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
8704         dynamic assemblies. This is required so dynamic assemblies show up in
8705         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
8706         Type::GetType() etc. This is consistent with MS behaviour.
8707
8708         * image.c image.h reflection.c: add newly created classes to the name 
8709         cache so mono_class_get () will find them.      
8710
8711 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8712
8713         First part of changes to get IKVM.NET running under mono.
8714         
8715         * appdomain.h, appdomain.c: added new function 
8716         mono_domain_try_type_resolve() which will emit TypeResolve events. 
8717         This function will call AppDomain::DoTypeResolve to do the actual work.
8718
8719         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
8720         moved existing code dealing with dynamic tokens to a new function 
8721         called mono_reflection_lookup_dynamic_token (). This function will 
8722         raise TypeResolve events when appropriate. Since reflection.c is not 
8723         part of libmetadata, a new hook function called 
8724         mono_lookup_dynamic_token() is added to class.c which will call this.
8725
8726         * assembly.h assembly.c: make the invoke_load_hook function public,
8727         so it can be called for dynamic assemblies.
8728
8729         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
8730
8731         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
8732         type isn't found.
8733
8734         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
8735         MonoGHashTable, since it contains pointers to objects which the GC 
8736         needs to track.
8737
8738         * assembly.c (search_loaded): remove unused variable.
8739         
8740 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
8741
8742         * object.c: fixed issue exposed by gcc-generated IL programs
8743         that use RVA data for pointers.
8744
8745 2003-01-25  Martin Baulig  <martin@ximian.com>
8746
8747         * threads.c (start_wrapper): Moved the initialization of
8748         `start_func' above the mono_new_thread_init() call to which we
8749         pass it as argument.
8750
8751 2003-01-24  Martin Baulig  <martin@ximian.com>
8752
8753         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
8754         the MonoThread pointer.
8755
8756 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
8757
8758         * icall.c: Rename `PowImpl' to Pow.
8759
8760 2003-01-23  Dick Porter  <dick@ximian.com>
8761
8762         * threads.c (start_wrapper): Create a Thread object if needed, so
8763         the Main() thread can do the class initialisation in a subthread
8764         that has been set up to allow managed code execution.
8765
8766         Pass the thread ID instead of the MonoThread pointer to the thread
8767         start and attach callbacks.  This change is required, because the
8768         jit thread start callback must be called _before_ the Thread
8769         object can be created.
8770         
8771         (mono_thread_init): Removed much object creation code that is no
8772         longer needed.  No managed code is called from here now.
8773
8774         * object.c (mono_runtime_exec_managed_code): Create a subthread
8775         for Main, and call back to the runtime to use it.
8776         Set the exit code when Main exits.
8777
8778         * gc.c: Make sure domain finalisation happens in a subthread.
8779         Re-enable threaded GC, fixing bug 31333 (again).
8780
8781         * environment.c: System.Environment internall calls (so far just
8782         ExitCode is here, the others are still in icall.c)
8783
8784         * appdomain.c (mono_runtime_cleanup): All threads running managed
8785         code should have finished before mono_runtime_cleanup() is
8786         reached, so no need to clean up threads.
8787
8788 2003-01-22  Martin Baulig  <martin@ximian.com>
8789
8790         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
8791         `gpointer func' arguments.      
8792         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
8793         but added `MonoThread *thread' argument.
8794         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
8795
8796         * threads.c (mono_new_thread_init): Added `gpointer func' argument
8797         and pass it to the mono_thread_start_cb callback.
8798         (mono_install_thread_callbacks): New public function to install a
8799         set of callbacks which are set by the debugger.
8800         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
8801
8802 2003-01-22  Martin Baulig  <martin@ximian.com>
8803
8804         * Makefile.am: Install debug-mono-symfile.h.
8805
8806 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
8807
8808         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
8809
8810 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
8811
8812         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
8813         * class.c (mono_ptr_class_get): correctly set access levels of pointers
8814         (mono_array_class_get): correctly set access levels of arrays
8815
8816 2003-01-20      Patrik Torstensson
8817         * image.h (MonoAssemblyName): changed major, minor, build, revision
8818         from signed to unsigned.
8819
8820 2003-01-20  sean kasun <skasun@azstarnet.com>
8821
8822         * reflection.c (load_cattr_value): Now this handles
8823         MONO_TYPE_SZARRAY.  Fixes bug #35629
8824
8825 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
8826
8827         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
8828         integer value
8829
8830 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8831
8832         * decimal.c: fixed bug #26056.
8833
8834 2003-01-17  Martin Baulig  <martin@ximian.com>
8835
8836         * gc.c: Raise an ExecutionEngineException instead of using g_error().
8837
8838 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8839
8840         * exception.[ch]:
8841         (mono_get_exception_type_initialization): new function.
8842
8843         * object.c: throw a TypeInitializationException when an exception is
8844         thrown invoking the class constructor.
8845
8846 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8847
8848         * reflection.c: fixed attribute reading.
8849
8850 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8851
8852         * icall.c:
8853         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
8854         provided, look for the type in the calling assembly and then in
8855         mscorlib; if the assembly name is provided, only try that one.
8856
8857 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
8858
8859         * object.c: register the vtable before there is a chance it's
8860         queried again recursively.
8861
8862 2003-01-13  Duncan Mak  <duncan@ximian.com>
8863
8864         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
8865         gc-internal.h. 
8866         
8867 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
8868
8869         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
8870
8871 2003-01-11  Martin Baulig  <martin@ximian.com>
8872
8873         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
8874         this to 20 for the release.
8875
8876 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
8877
8878         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
8879
8880         * loader.c (mono_method_get_marshal_info): bug fix
8881
8882         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
8883         structures with explicit layout
8884
8885 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
8886
8887         * profiler.c: made the output more readable (and sorted). 
8888         Added caller information for the allocation profiler.
8889
8890 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
8891
8892         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
8893
8894 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8895
8896         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
8897         to get value types.
8898         
8899 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
8900
8901         * object.c, profiler.h, profiler.c, profiler-private.h:
8902         Added object allocation profiler.
8903
8904 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
8905
8906         * reflection.h, reflection.c: handle global methods.
8907         Compress blob entries.
8908
8909 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
8910
8911         * marshal.c: fix compilation.
8912
8913 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
8914
8915         * loader.c (mono_method_get_marshal_info): impl.
8916
8917         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
8918
8919 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8920
8921         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
8922         for reference types.
8923
8924 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
8925
8926         * loader.c: fixed off by one error in loaded parameter names.
8927
8928 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
8929
8930         * marshal.c (mono_marshal_get_icall_wrapper): like
8931         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
8932         instead of a MonoMethod.
8933
8934 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8935
8936         * decimal.c: fixed bug #36537.
8937
8938 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
8939
8940         * marshal.c: throw a missing method exception if a
8941         P/Invoke method is not found.
8942
8943 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
8944
8945         * icall.c: allow a null this for constructors.
8946
8947 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
8948
8949         * icall.c: raise the proper exceptions if the arguments to the
8950         internal Invoke are incorrect.
8951
8952 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
8953
8954         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
8955
8956 2003-01-03  Martin Baulig  <martin@ximian.com>
8957
8958         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
8959
8960 2002-12-31  Martin Baulig  <martin@ximian.com>
8961
8962         * debug-mono-symfile.c: Completely rewrote the type section.
8963         Instead of using individual malloc()ed fields, we use one big
8964         continuous memory area and offsets into this area.
8965         See the comments in the source code for details.
8966
8967 2002-12-30  Martin Baulig  <martin@ximian.com>
8968
8969         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
8970
8971 2002-12-30  Martin Baulig  <martin@ximian.com>
8972
8973         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
8974         line number table in this data blob instead of using an external
8975         pointer.
8976
8977 2002-12-28  Martin Baulig  <martin@ximian.com>
8978
8979         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
8980
8981 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
8982
8983         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
8984         as a boxed return type.
8985
8986 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
8987
8988         * appdomain.c
8989         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
8990         g_build_filename to properly get separators on the filename created.
8991
8992         * object.h: Small change, introduce MonoMarshalByRefObject to
8993         track the layout of that structure in the C# universe as we make
8994         changes there.
8995
8996 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
8997
8998         * object.c: removed assert to allow static fields on interfaces.
8999         * loader.c: a TypeSpec may be used for any type, not just arrays.
9000
9001 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9002
9003         * class.c, class.h: added mono_class_array_element_size ().
9004         Ignore static methods in interfaces.
9005
9006 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9007
9008         * threads.c: fixed the build under cygwin.
9009
9010 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9011
9012         * reflection.c: handle nullref constants. Allocate keys for
9013         reflection handles with the GC.
9014
9015 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9016
9017         * threads.c, threads.h: added mono_thread_get_abort_signal()
9018         to get a suitable signal for thread abort.
9019
9020 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9021
9022         * metadata.c: fix handling of ExportedType table.
9023
9024 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9025
9026         * icall.c: added WriteWindowsDebugString internal call.
9027
9028 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9029
9030         * reflection.h: added fields to match C# implementation.
9031
9032 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9033
9034         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9035
9036 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9037
9038         * gc.h, gc-internal.h: Rename header for GC internal calls to
9039         gc-internal.h from gc.h as to not clash with Boehm GC having its
9040         header installed as <gc.h> in outside include paths.
9041         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9042         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9043
9044 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9045
9046         * icall.c: assign minor, build and revision in FillName.
9047
9048 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9049
9050         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9051         Added support for running code generated by Reflection.Emit.
9052
9053 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9054
9055         * appdomain.c: check for NULL argument in LoadFrom.
9056
9057 2002-12-10  Dick Porter  <dick@ximian.com>
9058
9059         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9060
9061 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9062
9063         * appdomain.c: fix buglet when building exe file name.  Handle full
9064         assembly name (needed after latest changes to AssemblyName).
9065         * image.c:
9066         (mono_image_close): free some hashtables.
9067
9068 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9069
9070         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9071         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9072         on some systems (redhat 7.3) 
9073
9074 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9075
9076         * threads.c: delete the critical section of a sync block,
9077         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9078
9079 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9080
9081         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9082
9083 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9084
9085         * appdomain.[ch]: handle the assembly preload event to try loading the
9086         assemblies using the paths we have in the current domain.
9087
9088         * assembly.[ch]: created an assembly preload hook that is called to try
9089         loading the assembly by other means that the ones provided here.
9090
9091         * domain.c: initialize the domain search path.
9092
9093         From now on, assemblies (TODO: except corlib and System) are loaded
9094         according to these rules when using mono_assembly_load ():
9095
9096                 1. It tries to load the assembly from the ApplicationBase
9097                 of the current domain appending .dll and .exe (TODO: have to
9098                 try loading from name/name.dll and name/name.exe).
9099
9100                 2. It tries the search path specified in PrivateBinPath for the
9101                 current domain (if any).
9102
9103                 3. Previous behavior.
9104
9105 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9106
9107         * icall.c: implemented GetInterfaceMap() related icall.
9108         * domain.c, loader.h: load MethodInfo in mono_defaults.
9109
9110 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9111
9112         * gc.c: disable the finalizer thread for now, untill all the issues
9113         with it are resolved.
9114
9115 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9116
9117         * string-icalls.c: handle embedded nulls in string ctor when the
9118         length is specified.
9119
9120 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9121
9122         * class.c: look for explicit interface implementation in parent
9123         classes, too.
9124
9125 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9126
9127         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9128
9129 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9130
9131         * gc.c: protect handles with a critical section.
9132
9133 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9134
9135         * icall.c:
9136         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9137         parameters. If no assembly specified, try getting the type from all
9138         the assemblies in the current domain, else, load the assembly and get
9139         the type from it.
9140
9141 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9142
9143         * marshal.c: applied patch from Aleksey Demakov that fixes
9144         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9145
9146 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9147
9148         * icall.c: fixed get_location.
9149
9150 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9151
9152         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9153         declarations to make it work with older gcc. 
9154
9155         * loader.c (mono_get_method): set signature->pinvoke for native calls
9156
9157 2002-11-20  Dick Porter  <dick@ximian.com>
9158
9159         * threads.c (mono_thread_init): Set the main thread's handle
9160
9161 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9162
9163         * gc.c: allow compilation without GC support. Changed to match the
9164         mono coding style.
9165
9166 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9167
9168         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9169
9170 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9171
9172         * reflection.c: set a public key token on the core assemblies.
9173
9174 2002-11-18  Dick Porter  <dick@ximian.com>
9175
9176         * threads.c: Split out some thread initialisation so that other
9177         files can set the start callback function.
9178
9179         * gc.c: Run finalisers in a separate thread, to avoid stack
9180         overflow.  Fixes bug 31333.
9181
9182         * appdomain.c: Set up GC finalisation thread.
9183
9184         * reflection.c: 
9185         * object.c: 
9186         * domain.c: Use gc.h macros for GC_malloc
9187         
9188 2002-11-15  Dick Porter  <dick@ximian.com>
9189
9190         * threadpool.c: 
9191         * threads.c:
9192         * appdomain.c: Removed mono_runtime_init_with_attach(),
9193         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9194         merging the extra parameter with the existing function.  Removed
9195         unneeded code in mono_thread_attach().
9196
9197 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9198
9199         * image.c (mono_image_loaded_by_guid): a method to get loaded
9200         images by guid. 
9201         (load_metadata_ptrs): we store the guid as string.
9202
9203 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9204
9205         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9206
9207         * metadata.c (mono_guid_to_string): imported method form Zoltan
9208         Varga (slightly modified)
9209
9210         * assembly.c (mono_assembly_open): load precompiled code
9211
9212         * loader.h (MonoMethod): we store the method token for use in the
9213         aot compiler. 
9214
9215 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9216
9217         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9218         the hook function called when an assembly is loaded.
9219         
9220         * domain.c: Modified file.
9221         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9222
9223         Fixes bug #33196.
9224
9225 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9226
9227         * reflection.c: Map PEFileKind to the value expected by the WinNT
9228         image loader. 
9229
9230 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9231
9232         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9233         Read until the buffer is filled completely.
9234
9235 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9236
9237         * icall.c: implemented MonoType.InternalGetEvent ().
9238
9239 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9240
9241         * appdomain.c: implemented InitAppDomainSetup. Delayed
9242         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9243         the entry_assembly.
9244
9245         * assembly.c: base_dir is now an absolute path ending with
9246         G_DIR_SEPARATOR.
9247
9248         * icall.c: modified get_location according to the above changes.
9249
9250         * object.c: init AppDomain.SetupInformation for the default domain after
9251         we have the entry assembly.
9252
9253         * domain.c: when unloading a domain, setup = NULL.
9254
9255 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9256
9257         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9258
9259 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9260
9261         * object.h, object.c: introduced mono_object_get_virtual_method ()
9262         to lookup the method invoked on an object when a callvirt is done on
9263         a method.
9264         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9265
9266 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9267
9268         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9269         current domain when loaded an assembly and failed to load it.
9270
9271         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9272
9273 2002-10-31  Dick Porter  <dick@ximian.com>
9274
9275         * icall.c: 
9276         * file-io.h: 
9277         * file-io.c: Return the error status in a parameter, as the
9278         GetLastError() value has long since been blown away if we try and
9279         look it up in a subsequent internal call invocation.  Delete the
9280         GetLastError() internal call, because it's useless.
9281
9282 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9283
9284         * class.[ch]: added cast_class to fix bug 29517
9285
9286 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9287
9288         * marshal.c: create valid IL code in the filter clause:
9289         the new JIT is less forgiving:-)
9290
9291 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9292
9293         * icall.c: removed get_property internal call.
9294
9295 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9296
9297         * appdomain.h domain.c: Added an ID to appdomains.
9298         
9299         * threads.c threads.h icall.c: Implement icall
9300         Thread:GetDomainID(), and remove unused icall 
9301         CurrentThreadDomain_internal.
9302
9303 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9304
9305         * icall.c: Don't recurse through the base types in GetConstructor.
9306         Fixes bug #32063. 
9307
9308 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9309
9310         * mempool.h, mempool.c: added mono_mempool_empty() and
9311         mono_mempool_stats().
9312
9313 2002-10-23  Dick Porter  <dick@ximian.com>
9314
9315         * file-io.c: 
9316         * file-io.h: 
9317         * icall.c: Added MonoIO.GetFileType internal call
9318
9319 2002-10-17  Dick Porter  <dick@ximian.com>
9320
9321         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9322         delegate semaphore before waiting for all threads to finish,
9323         because new threads can also call async delegates.  Fixes bug
9324         32004.
9325
9326         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9327         of 3 seconds, in case another async job is queued.  (This part is
9328         needed because the bug fix reintroduced the 3s exit lag.)  This
9329         makes the mono_runtime_shutdown flag superfluous.
9330
9331 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9332
9333         * reflection.c: include ehader size in method section headers.
9334         Really check for suplicated modules entries.
9335
9336 2002-10-17  Martin Baulig  <martin@gnome.org>
9337
9338         * debug-mono-symfile.c: Added back support for locals.
9339
9340 2002-10-14  Martin Baulig  <martin@gnome.org>
9341
9342         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9343         MONO_TYPE_VOID.
9344
9345 2002-10-14  Martin Baulig  <martin@gnome.org>
9346
9347         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9348         mono_class_get() instead of looking in the class cache. 
9349
9350 2002-10-13  Martin Baulig  <martin@gnome.org>
9351
9352         * debug-mono-symfile.c: Set version number to 28, include the
9353         signature in method names.
9354
9355 2002-10-13  Martin Baulig  <martin@gnome.org>
9356
9357         * debug-mono-symfile.h: Set version number to 27.
9358
9359 2002-10-11  Martin Baulig  <martin@gnome.org>
9360
9361         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9362
9363 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9364
9365         * metadata.c, metadata.h: added helper function to allocate signatures.
9366
9367 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9368
9369         * icall.c: added internal call to get the location of machine.config.
9370
9371 2002-10-08  Martin Baulig  <martin@gnome.org>
9372
9373         * debug-mono-symfile.c: Ignore classes with a pending init for the
9374         moment.
9375
9376 2002-10-03  Dick Porter  <dick@ximian.com>
9377
9378         * threads.c: Freebsd pthread_t is a pointer
9379
9380 2002-10-03  Dick Porter  <dick@ximian.com>
9381
9382         * socket-io.c: Implemented GetHostName_internal
9383
9384 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9385
9386         * mono-config.c:
9387         (mono_config_parse_file): don't leak the text.
9388
9389 2002-10-02  Martin Baulig  <martin@gnome.org>
9390
9391         * debug-mono-symfile.c: Added support for methods.
9392
9393 2002-10-01  Martin Baulig  <martin@gnome.org>
9394
9395         * debug-mono-symfile.c: Don't emit methods and line numbers for
9396         the dynamic symbol file, just write the type table.  We can easily
9397         have an external helper program which creates a symbol file for an
9398         IL file.        
9399
9400 2002-10-01  Dick Porter  <dick@ximian.com>
9401
9402         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9403         Only add the handle to the cleanup array when we're about to
9404         launch the thread.  Bug 31425 deadlocked when the test was run on
9405         mono under w32.
9406
9407 2002-10-01  Martin Baulig  <martin@gnome.org>
9408
9409         * debug-mono-symfile.c: Added support for properties.
9410
9411 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9412
9413         * reflection.c: unaligned store fix from Mark Crichton
9414         <crichton@gimp.org>.
9415
9416 2002-09-27  Martin Baulig  <martin@gnome.org>
9417
9418         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9419         New interncall.
9420
9421 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9422
9423         * assembly.h, assembly.c: use a sane API to hook into the assembly
9424         loading process instead of a useless special-purpouse hack
9425         (ngen needs a hook, too, for example).
9426
9427 2002-09-27  Dick Porter  <dick@ximian.com>
9428
9429         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9430         io-layer can set up some process handle info.  Not needed on w32,
9431         but doesn't hurt either.
9432
9433         * process.c: Pass the program name in the second parameter to
9434         CreateProcess, so the path is searched.  Include the working
9435         directory. Implemented process name, process enumeration, and some
9436         process detail internal calls.
9437         
9438         * icall.c: Added internal calls for process lookup, and some
9439         process details
9440
9441 2002-09-26  Martin Baulig  <martin@gnome.org>
9442
9443         * assembly.c (mono_install_open_assembly_hook): New global
9444         function to install a function to be invoked each time a new
9445         assembly is loaded.
9446         (mono_assembly_open): Run this callback function if set.
9447
9448         * debug-mono-symfile.c: Put back line numbers for the dynamic
9449         symbol file and also record the .il file as source file.  This
9450         allows us to install the temporary symbol file as `file.dbg' just
9451         like a compiler-generated one.
9452
9453 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9454
9455         * Corrected typo in gc.c (BOHEM vs BOEHM).
9456
9457 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9458
9459         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9460         GetProperties. Also avoid calling g_slist_length in GetProperties and
9461         GetMethods.
9462
9463 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9464
9465         * reflection.c: avoid unaligned stores (bug spotted by
9466         Mark Crichton  <crichton@gimp.org>).
9467
9468 2002-09-25  Martin Baulig  <martin@gnome.org>
9469
9470         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9471         instead of guint64 for addresses and added prologue/epilogue info.
9472
9473 2002-09-25  Martin Baulig  <martin@gnome.org>
9474
9475         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9476         store line number info.  For the dynamic symbol file, we only need
9477         to provide the JIT generated dynamic line number info for the dynamic
9478         symbol file.
9479
9480 2002-09-25  Martin Baulig  <martin@gnome.org>
9481
9482         * debug-mono-symfile.h: Incremented version number.
9483
9484 2002-09-24  Martin Baulig  <martin@gnome.org>
9485
9486         * class.c (mono_debugger_class_init_func): New global function
9487         pointer variable.
9488         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9489         call it.
9490
9491         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9492         function.  This is called via the mono_debugger_class_init_func
9493         hook to add all types to the dynamic type table.
9494         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9495         from its metadata token.
9496
9497         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9498         New interncall for the debugger.
9499
9500 2002-09-24  Nick Drochak <ndrochak@gol.com>
9501
9502         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9503         before using it in case it is null.
9504         
9505 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9506
9507         * metadata.c: allow custom modifiers in local var signatures
9508         (bug spotted by Zoltan Varga).
9509
9510 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9511
9512         * class.c: deal with the <Module> class that may have a NULL vtable.
9513         Eliminate warnings.
9514
9515 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9516
9517         * image.c, image.h: more strong name helpers.
9518         * monosn.c: more work: convert pem keys to cryptoapi format.
9519
9520 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9521
9522         * string-icalls.c: speedup IndexOf.
9523
9524 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9525
9526         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9527
9528 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9529
9530         * icall.c: cleanup: use mono_object_domain ().
9531
9532 2002-09-23  Martin Baulig  <martin@gnome.org>
9533
9534         * debug-mono-symfile.c: Improved type support.
9535
9536 2002-09-22  Martin Baulig  <martin@gnome.org>
9537
9538         * debug-mono-symfile.c: Added support for reference types and strings.
9539
9540 2002-09-22  Martin Baulig  <martin@gnome.org>
9541
9542         * debug-mono-symfile.c: Started to work on the type table.
9543
9544 2002-09-21  Martin Baulig  <martin@gnome.org>
9545
9546         * debug-mono-symfile.c: Largely reworked the symbol table format.
9547         The symbol table is now incrementally updated each time a new
9548         method is added.  We're now also using our own magic and version
9549         so that you don't need to recompile all your classes if the
9550         dynamic table changes.
9551         (mono_debug_update_mono_symbol_file): Removed.
9552         (mono_debug_symfile_add_method): New function to add a method.
9553
9554 2002-09-21  Martin Baulig  <martin@gnome.org>
9555
9556         * icall.c
9557         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9558         New interncall.
9559
9560         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9561         New interncall to get a method from its metadata token.
9562
9563 2002-09-21  Martin Baulig  <martin@gnome.org>
9564
9565         * debug-mono-symfile.c: Create type table.
9566
9567 2002-09-20  Martin Baulig  <martin@gnome.org>
9568
9569         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9570
9571 2002-09-20  Martin Baulig  <martin@gnome.org>
9572
9573         * debug-mono-symfile.c: Provide information about params and locals.
9574
9575 2002-09-20  Martin Baulig  <martin@gnome.org>
9576
9577         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9578         New interncall.
9579
9580         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9581         interncall to get a method from its metadata token.
9582
9583 2002-09-20  Martin Baulig  <martin@gnome.org>
9584
9585         * debug-mono-symfile.c: Added a few checks for method->header
9586         being non-NULL.  This should never happen, but for the moment
9587         let's use a g_warning() rather than a g_assert().
9588
9589 2002-09-19  Mark Crichton  <crichton@gimp.org>
9590
9591         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9592         even if support for it isn't present.  Added an #ifdef to fix this.
9593
9594         * socket-io.c: Added checks back for Solaris support.
9595
9596 2002-09-19  Martin Baulig  <martin@gnome.org>
9597
9598         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9599         changes in the symbol file format.
9600
9601 2002-09-18  Martin Baulig  <martin@gnome.org>
9602
9603         * debug-mono-symfile.c: Set version number to 21.
9604
9605 2002-09-18  Dick Porter  <dick@ximian.com>
9606
9607         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9608         on netbsd.  Fixes bug 30051.
9609
9610 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9611
9612         * reflection.c:
9613         (set_version_from_string): little fix.
9614
9615 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9616
9617         * monosn.c, Makefile.am: added strong name utility.
9618         * reflection.h, reflection.c: implemented delayed signing,
9619         locale, version and hash id assembly attributes.
9620
9621 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9622
9623         * loader.c, metadata.c: load param attributes in signatures.
9624
9625 2002-09-16  Martin Baulig  <martin@gnome.org>
9626
9627         * debug-mono-symfile.c: Added string table with all method names.
9628
9629 2002-09-14  Martin Baulig  <martin@gnome.org>
9630
9631         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9632         fast method lookup.
9633
9634 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9635
9636         * reflection.c: record the public key token of referenced assemblies.
9637
9638 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9639
9640         * image.c, image.h: added functions to get the strong name and the
9641         public key of an assembly.
9642         * pedump.c: use them.
9643
9644 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9645
9646         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9647
9648 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9649
9650         * marshal.c (mono_marshal_get_managed_wrapper): Added
9651         MONO_TYPE_BOOLEAN 
9652
9653 2002-09-11  Martin Baulig  <martin@gnome.org>
9654
9655         * gc.c: Call GC_unregister_disappearing_link() on all links when
9656         finalizing them, this is necessary to aviod a crash in boehm's
9657         finalize handler.
9658
9659 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9660
9661         * gc.c: handle GetTarget for finalized objects spotted and fixed by
9662         nick@chemlab.org.
9663
9664 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9665
9666         * icall.c: implemented MonoType::Module.
9667         * reflection.c, reflection.h: mono_module_get_object () from
9668         Tomi Pakarinen <tomi.pakarinen@welho.com>.
9669
9670 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9671
9672         * icall.c: ignore overridden methods in GetMethods ().
9673         Fix for FieldInfo::SetValue().
9674         * object.c: handle float/double in runtime invoke.
9675
9676 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9677
9678         * object.c: allow a constructor to be called again on an object.
9679
9680 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9681
9682         * class.h, class.c: move field layout code to it's own function and
9683         export it. Get an interface id earlier. Move fields in MonoClass
9684         so they are more cache friendly and align the bitfields.
9685         * loader.c: temporary handle get_param_names() for a runtime method.
9686         * reflection.c, reflection.h: more code to handle runtime creation of
9687         types.
9688
9689 2002-09-09  Martin Baulig  <martin@gnome.org>
9690
9691         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
9692         signature with the pinvoke field being set for the actual call.
9693
9694 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9695
9696         * icall.c: removed some unused icalls. Start of map of glib charsets
9697         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
9698
9699 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9700
9701         * debug-helpers.c: break infinite loop (found and fixed by
9702         Holger Arnold <harnold@gmx.de>).
9703
9704 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9705
9706         * icall.c: target may be null in create_delegate.
9707
9708 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9709
9710         * marshal.c: handle a boolean return type.
9711
9712 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9713
9714         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
9715
9716 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9717
9718         * gc.c: fix weakreferences.
9719
9720 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9721
9722         * icall.c: added icall to get default codepage.
9723
9724 2002-09-03  Dick Porter  <dick@ximian.com>
9725
9726         * threads.h: 
9727         * threads.c: Use MonoThread instead of MonoObject where
9728         apropriate.
9729
9730         Store running thread objects in a hash table, so that we have all
9731         the info to hand when waiting for them to finish
9732         (means we don't need OpenThread() any more, so mingw builds should
9733         be fully functional again.)
9734
9735         * verify.c:
9736         * object.h: Added thread ID to MonoThread
9737
9738 2002-09-03  Martin Baulig  <martin@gnome.org>
9739
9740         * icall.c (System.Reflection.Assembly::get_location): New interncall.
9741
9742 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9743
9744         * icall.c: fixed leak in get_temp_path. Thanks lupus.
9745
9746 2002-09-03  Martin Baulig  <martin@gnome.org>
9747
9748         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
9749         argument to store the end address of the disassembled instruction.
9750
9751         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
9752         here from debug-symfile.h.
9753         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
9754         JIT into this struct.
9755         (MonoSymbolFile): Added `char *image_file' field.
9756         (MonoDebugGetMethodFunc): Removed.
9757         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
9758         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
9759         (mono_debug_find_method): New method.
9760
9761         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
9762         create a full symbol file.
9763         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
9764         and static symbol files.
9765         (mono_debug_find_method): The symbol file keeps an internal method hash,
9766         call this to get a MonoDebugMethodInfo from a MonoMethod.
9767
9768         * debug-symfile.[ch]: Removed.
9769
9770 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
9771
9772         * image.c (do_mono_image_open): Remove linker version check.
9773
9774 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
9775
9776         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
9777         wrappers for instance methods.
9778         
9779 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9780
9781         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
9782
9783 2002-08-28  Dick Porter  <dick@ximian.com>
9784
9785         * Makefile.am: Export HOST_CC for w32 builds
9786
9787 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9788
9789         * file-io.c process.c: MonoString are null terminated, no
9790         need for mono_string_to_utf16() anymore.
9791
9792 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9793
9794         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
9795
9796 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
9797
9798         * icall.c, reflection.h: speedup System.MonoType.
9799
9800 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9801
9802         * reflection.c: allow null as the value of a string argument in
9803         custom attributes constructors.
9804
9805 2002-08-27  Martin Baulig  <martin@gnome.org>
9806
9807         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
9808         `trampoline_address' field.
9809
9810 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
9811
9812         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
9813         check (fixes bug #29486) 
9814
9815 2002-08-27  Martin Baulig  <martin@gnome.org>
9816
9817         * debug-mono-symfile.c: Changed the file format in a way that allows us
9818         open it read-only and to use a specially malloced area for all the
9819         dynamic data.  We can now also generate a symbol file on-the-fly if we're
9820         debugging IL code and there is no MCS generated symbol file for it.
9821
9822 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9823
9824         * object.c: added a define for a good string and array
9825         creation speedup (not enabled by default because we need to deal with
9826         the synch stuff).
9827
9828 2002-08-26  Martin Baulig  <martin@gnome.org>
9829
9830         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
9831         function to create a dynamic symbol file.  This is used by the
9832         debugger to create a symbol file for IL code on-the-fly.
9833
9834 2002-08-26  Martin Baulig  <martin@gnome.org>
9835
9836         * loader.c (mono_lookup_pinvoke_call): Include the error message
9837         from g_module_error() in the error message.
9838
9839 2002-08-24  Martin Baulig  <martin@gnome.org>
9840
9841         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
9842         function to update the symbol file.  The symbol file is mmap()ed
9843         writable, but private.  This allows us to install the symbol file
9844         together with the assembly.
9845
9846 2002-08-24  Martin Baulig  <martin@gnome.org>
9847
9848         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
9849         but they can read the new symbol file format which mcs is now creating.
9850
9851         * debug-symfile.c (mono_debug_find_source_location): Moved to
9852         debug-mono-symfile.c; this is now operating on the new symbol file.
9853
9854 2002-08-23  Martin Baulig  <martin@gnome.org>
9855
9856         * debug-helpers.c (mono_method_desc_from_method): New function to get
9857         a MonoMethodDesc from a MonoMethod.
9858
9859 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9860
9861         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
9862         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
9863
9864 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
9865
9866         * string-icalls.[ch]: make helper methods static.
9867
9868 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9869
9870         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
9871         types to it and to SetValueInternal.
9872
9873         * object.c: Moved handle_enum label to its proper place. This was the
9874         f... bug! ;-)
9875
9876         This time i compiled mcs and gtk-sharp and they both work.
9877
9878 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9879
9880         * icall.c: reverted partially my previous patch until 
9881         object.c:set_value handles enums correcly.
9882
9883 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9884
9885         * icall.c:
9886         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
9887         (ves_icall_System_Environment_get_MachineName): removed warning when
9888         compiling under cygwin.
9889
9890 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9891
9892         * object.c: fixed field_get_value() for reference types.
9893
9894 2002-08-22  Dick Porter  <dick@ximian.com>
9895
9896         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
9897         Don't free a buffer while it's still needed.  Patch from Jonathan
9898         Liger <Jonathan.liger@wanadoo.fr>
9899
9900 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
9901
9902         * icall.c (ves_icall_System_Environment_get_Platform): Add new
9903         internal call.
9904
9905 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
9906
9907         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
9908         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
9909
9910         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
9911         we call unmanaged code which throws exceptions.
9912
9913 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9914
9915         * appdomain.h: added per-domain entry_assembly.
9916         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
9917         arguments.
9918         * icall.c: Assembly::GetEntryAssembly icall.
9919         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
9920         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
9921
9922 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
9923
9924         * appdomain.h, gc.c: added mono_domain_finalize ().
9925
9926 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9927
9928         * object.c:
9929         (mono_print_unhandled_exception): changed g_warning by g_printerr
9930         because g_log has a 1024 characters limit (yeah, i got a big stack
9931         trace). Don't print exception name, that should be in ToString 
9932         returned string.
9933
9934 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9935
9936         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
9937         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
9938
9939 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9940
9941         * object.c:
9942         (mono_print_unhandled_exception): after previous commit, i realized
9943         that MS calls ToString on the exception. I changed this function to
9944         do that. This way we get stack_trace for free.
9945
9946 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9947
9948         * object.c:
9949         (mono_print_unhandled_exception): invoke Message property instead of
9950         getting 'message' field from Exception. Don't allocate memory for
9951         'trace' and 'message' if not needed.
9952
9953 2002-08-18  Dick Porter  <dick@ximian.com>
9954
9955         * unicode.c: Fix asserts to match Encoder.cs checks
9956
9957 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9958
9959         * marshal.c: fix unaligned store issue and a few wrong
9960         opcode argument types.
9961
9962 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9963
9964         * icall.c: added GetUninitializedObjectInternal internal call.
9965
9966 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
9967
9968         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
9969         to the right domain.
9970
9971 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
9972
9973         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
9974
9975         * class.c (class_compute_field_layout): set blittable to false for Strings
9976
9977         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
9978
9979 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9980
9981         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
9982         first chunk of code to create types at runtime. Code to
9983         handle ReflectedType/DeclaringType. Make reflection handles
9984         domain specific.
9985
9986 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
9987
9988         * class.c: set correct name in arrays.
9989
9990 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
9991
9992         * appdomain.c (mono_domain_transfer_object): make it work with
9993         valuetypes. bug fixes.
9994
9995 2002-08-12  Dick Porter  <dick@ximian.com>
9996
9997         * object.h: Rename some parameters to avoid c++ keywords (Patch
9998         from Joseph Wenninger <kde@jowenn.at>)
9999
10000 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10001
10002         * icall.c: added icall to implement Assembly.GetFile*.
10003
10004 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10005
10006         * reflection.h, reflection.c: code to embed managed resources.
10007
10008 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10009
10010         * class.c: move all the type size stuff into
10011         class_compute_field_layout().
10012
10013 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10014
10015         * class.c: ensure enums have always the correct instance size.
10016         * unicode.c: remove wrong assert.
10017
10018 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10019
10020         * assembly.c: fix mem corruption issue.
10021         * image.h, image.c: added mono_image_get_resource () to access
10022         managed resources.
10023         * icall.c: implemented Assembly.EntryPoint property and some
10024         Managed Resources related internalcalls.
10025
10026
10027 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10028
10029         * image.c, image.h: impemented mono_image_get_entry_point ().
10030         * appdomain.c: use mono_image_get_entry_point.
10031
10032 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10033
10034         * reflection.c: support the object type argument when loading
10035         custom attributes.
10036
10037 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10038
10039         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10040         String as return type.
10041
10042 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10043
10044         * reflection.c: fix encoding of named args for custom attrs to match
10045         the ms implementation. Read them back when instantiating custom
10046         attributes.
10047
10048 2002-08-02  Radek Doulik  <rodo@ximian.com>
10049
10050         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10051         by Dietmar as quick fix
10052         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10053         16 as stack size, used on more places as quick fix before Dietmar
10054         will fix it properly
10055
10056 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10057
10058         * object.h, object.c: added accessors for fields and properties.
10059
10060 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10061
10062         * class.c, class.h: made mono_class_get_field_from_name ()
10063         loop on parent types.
10064         Added mono_class_get_property_from_name ().
10065
10066 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10067
10068         * class.c, class.h: move the code to setup the type vtable in its own
10069         function so that it can be reused also for types created at runtime.
10070         Eliminate the "class" identifier from the header file.
10071         * reflection.c: setup the vtable for enums so that we can create
10072         objects for use in SetConstant ().
10073
10074 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10075
10076         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10077         instead of the delegate itself as this pointer (bug #28383)
10078
10079 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10080
10081         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10082         conversions.
10083
10084 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10085
10086         * loader.c: don't set the pinvoke bit on icalls.
10087
10088 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10089
10090         * debug-helpers.c (mono_method_full_name): only print a number to
10091         indicate wrapper type (so that the output is more readable in traces).
10092
10093 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10094
10095         * class.c (mono_class_init): include method override patch from Paolo
10096
10097 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10098
10099         * icall.c: fixed GetTypeCode().
10100
10101 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10102
10103         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10104         use real delegate invoke function to make it work with multicast
10105         delegates (fix bug# 28291).
10106
10107 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10108
10109         * object.c: load constant strings.
10110
10111 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10112
10113         * reflection.c: no magic numbers.
10114         * tabledefs.h: security action enum.
10115
10116 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10117
10118         * assembly.c: fix possible memory corruption.
10119
10120 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10121
10122         * reflection.h, reflection.c: added support for linking resources.
10123         * verify.c: check we have an updated corlib.
10124
10125 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10126
10127         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10128         string arrays.
10129         (mono_marshal_string_array): null terminate unmanaged string arrays.
10130         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10131
10132 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10133
10134         * icall.c: Type.GetType () can now return also types from the
10135         calling assembly.
10136
10137 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10138
10139         * loader.h, loader.c: stack walking support.
10140         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10141         GetCallingAssembly.
10142
10143 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10144
10145         * marshal.c: added optimisations for blittable types 
10146
10147         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10148         (mono_class_setup_mono_type): set blittable attribute for single
10149         and double.
10150
10151         * marshal.c (mono_string_utf8_to_builder): impl.
10152         (mono_string_builder_to_utf8): impl.
10153         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10154
10155 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10156
10157         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10158         (mono_marshal_get_managed_wrapper): impl. byref types
10159
10160 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10161
10162         * icall.c:
10163         (search_method): don't display debug message. 
10164
10165 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10166
10167         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10168
10169 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10170
10171         * appdomain.c: set the missing filename when throwing exception.
10172
10173 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10174
10175         * metadata.c (mono_type_size): code cleanup
10176         (mono_type_stack_size): removed some test code
10177
10178 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10179
10180         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10181         mono_get_exception_file_not_found now.
10182
10183         * exception.c (mono_exception_from_name_two_strings): New version
10184         that will call a constructor with two string arguments. 
10185         (mono_get_exception_file_not_found): New helper routine, used to
10186         report file-not-found errors.
10187
10188 2002-07-20  Dick Porter  <dick@ximian.com>
10189
10190         * process.h:
10191         * process.c: Pass file handles to CreateProcess
10192         
10193         * icall.c:
10194         * file-io.h:
10195         * file-io.c: Implemented CreatePipe
10196
10197 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10198
10199         * metadata.c (mono_get_param_info): set alignment for value types
10200
10201 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10202
10203         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10204         Constify mono_domain_assembly_open().
10205         * loader.c: handle null namespace in icalls.
10206
10207 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10208
10209         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10210         (emit_str_to_ptr_conv): marshal object as structs
10211
10212         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10213
10214         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10215
10216 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10217
10218         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10219         (mono_marshal_get_native_wrapper): we an now return value types
10220
10221 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10222
10223         * verify.c: more checks implemented.
10224
10225 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10226
10227         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10228         (fix bug #27695)
10229         (mono_marshal_get_native_wrapper): allow byref arguments
10230         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10231         impl. PtrToStringXXX methods
10232         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10233         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10234         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10235         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10236         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10237
10238 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10239
10240         * reflection.c: fix buglet in parsing an assembly name.
10241
10242 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10243
10244         * marshal.c (emit_ptr_to_str_conv): first impl.
10245
10246 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10247
10248         * object.c, class.h: cache the vtable in the class as suggested by
10249         vargaz@freemail.hu (Zoltan Varga).
10250
10251 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10252
10253         * class.h, loader.c: added mono_field_from_token().
10254         * verify.c: first cut of type checking code.
10255
10256 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10257
10258         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10259
10260 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10261
10262         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10263         (fix bug #27782)
10264         (mono_marshal_get_remoting_invoke): impl.
10265         (mono_delegate_begin_invoke): impl.
10266         (mono_mb_emit_save_args): impl.
10267         (mono_delegate_end_invoke): impl.
10268         (mono_marshal_get_delegate_begin_invoke):
10269         (mono_marshal_get_delegate_end_invoke):
10270         (mono_marshal_get_delegate_invoke): generate a special name for
10271         those methods (including the signature) and associate them whith
10272         the delegate class. 
10273
10274 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10275
10276         * reflection.[ch]: 
10277         (mono_reflection_type_from_name): now it has a MonoImage parameter
10278         which is used as the default image to search the type in. If the image
10279         is NULL or getting the type from it fails, it defaults to corlib.
10280
10281         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10282         new parameter.
10283
10284 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10285
10286         * reflection.c: update the parameter table index.
10287
10288 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10289
10290         * domain.c: don't include the mark byte in the string hash.
10291
10292 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10293
10294         * icall.cs: icall for Type.GetTypeCode ().
10295         * verify: a couple of fixes and disabled local initialization checks.
10296
10297 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10298
10299         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10300
10301         * debug-helpers.c (mono_method_full_name): print the type of the
10302         runtime wrapper
10303
10304         * metadata.c (mono_signature_hash): a hash function for signatures
10305         (mono_signature_hash): better hash algorithm
10306
10307         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10308
10309         * debug-helpers.c (mono_method_full_name): this can now generate
10310         method names with signatures
10311
10312         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10313         method dont have this pointers.
10314
10315 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10316
10317         * reflection.c: fixup typebuilder tokens.
10318         * image.c: fix buglet.
10319         * marshal.h: remove whitespace.
10320         * metadata.h, metadata.c: reinstate code that was removed.
10321         * verify.c: handle catch directives and fix another couple of bugs.
10322
10323 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10324
10325         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10326         (mono_marshal_get_native_wrapper): make it comp. with the old code
10327         (mono_marshal_get_native_wrapper): support boolean
10328         (mono_marshal_get_managed_wrapper): support more types
10329
10330 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10331
10332         * class.c (class_compute_field_layout): compute class->blittable attribute.
10333
10334 2002-07-09  Dick Porter  <dick@ximian.com>
10335
10336         * threads.c: Make the thread cleaning up cope with threads that
10337         call ExitThread()
10338
10339 2002-07-08  Radek Doulik  <rodo@ximian.com>
10340
10341         * reflection.c (method_encode_code): use non-translated values to
10342         compute finally_start, this fixes exception handling on ppc, yay!
10343
10344         * decimal.h (struct signscale): fix endianess
10345
10346 2002-07-07  Radek Doulik  <rodo@ximian.com>
10347
10348         * reflection.c: swap box_val and not val
10349
10350 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10351
10352         * reflection.c, reflection.h: handle full assembly info in type name.
10353         Handle Type arguments when loading custom attributes.
10354         * icall.c: updated to use new mono_reflection_type_from_name () method.
10355
10356 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10357
10358         * loader.c:
10359         (method_from_memberref): also print assembly name when method not found.
10360
10361 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10362
10363         * icall.c:
10364         (ves_icall_TypeGetProperties): fixed bug #27473. 
10365
10366 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10367
10368         * reflection.c: display image name and token when cannot find the
10369         .ctor for an attribute.
10370
10371 2002-07-05  Martin Baulig  <martin@gnome.org>
10372
10373         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10374
10375 2002-07-04  Dick Porter  <dick@ximian.com>
10376
10377         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10378         compile on mingw.  This will cause mingw builds to not wait for
10379         subthreads to terminate after the main thread does.  I've lodged a
10380         bug with the mingw developers for them to wrap OpenThread().
10381
10382 2002-07-03  Dick Porter  <dick@ximian.com>
10383
10384         * threads.c: Store thread IDs instead of handles, because
10385         GetCurrentThread() returns a pseudohandle and therefore stores
10386         useless values.  mono_thread_cleanup() continues checking the
10387         array of threads until it is empty, to cope with subthreads
10388         spawning new threads after the main thread has finished.
10389
10390         * profiler.h:
10391         * profiler.c:
10392         * profiler-private.h: Pass the thread ID to thread profiler
10393         functions, instead of a handle
10394
10395 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10396
10397         * verify.c: fixes to make it more usable.
10398         * pedump.c: added --verify code to verify IL code in an assembly.
10399
10400 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10401
10402         * reflection.c: turn errors into warnings to allow compiling corlib.
10403
10404 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10405
10406         * reflection.c: add special cases to compile corlib.
10407
10408 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10409
10410         * reflection.c: handle properties with only a set method.
10411
10412 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10413
10414         * opcodes.h: add enum with opcodes in opval order.
10415
10416 2002-07-01  Dick Porter  <dick@ximian.com>
10417         
10418         * object.h:
10419         * object.c (mono_runtime_run_main): Removed unneeded argument
10420
10421 2002-06-28  Martin Baulig  <martin@gnome.org>
10422
10423         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10424
10425 2002-06-27  Dick Porter  <dick@ximian.com>
10426
10427         * threads.c: Store the handle in both the parent thread and in the
10428         subthread, to minimise the time between starting a new thread and
10429         storing its ID.
10430
10431 2002-06-26  Dick Porter  <dick@ximian.com>
10432
10433         * appdomain.c (mono_runtime_cleanup): Close the socket library
10434         after all the threads have finished, not before
10435
10436 2002-06-26  Martin Baulig  <martin@gnome.org>
10437
10438         * debug-symfile.c (mono_debug_find_source_location): Added
10439         `guint32 *line_number' argument.  If it's not NULL, store the line number
10440         there and return the file name without the line number.
10441
10442 2002-06-25  Dick Porter  <dick@ximian.com>
10443
10444         * icall.c:
10445         * process.h:
10446         * process.c: Process forking and other support functions
10447
10448 2002-06-25  Dick Porter  <dick@ximian.com>
10449
10450         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10451         things dont happen when the image is closed.
10452         (mono_image_lookup_resource): Walk the resource section looking
10453         for a particular entry
10454
10455         * cil-coff.h: PE resource section decoding
10456
10457 2002-06-25  Dick Porter  <dick@ximian.com>
10458         
10459         * assembly.h:
10460         * assembly.c: 
10461         (mono_assembly_foreach): Accessor functions to walk the list of
10462         loaded assemblies
10463         (mono_assembly_set_main):
10464         (mono_assembly_get_main): Process methods need to know which
10465         assembly is the "main" one
10466
10467         * object.c (mono_runtime_run_main): Record the main assembly
10468
10469         * debug-helpers.c: Fix typo
10470
10471 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10472
10473         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10474         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10475
10476 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10477
10478         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10479
10480 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10481
10482         * image.c (do_mono_image_open): Initialize reference count,
10483         otherwise we leak the MonoImage.
10484
10485 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10486
10487         * reflection.c: small tweak to handle self-hosting.
10488
10489 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10490
10491         * reflection.c: fix type name parse code.
10492
10493 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10494
10495         * reflection.c: break out of the loop.
10496         * image.c: special case corlib.
10497
10498 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10499
10500         * reflection.c: add all the custom attrs at the end to ensure the
10501         ctors have been properly initialized when the attributes are defined
10502         in the current assembly.
10503
10504 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10505
10506         * reflection.c: handle correctly multiple-nested types.
10507
10508 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10509
10510         * row-indexes.h: fix typos.
10511         * reflection.c: adjust for typos and fix method_def_or_ref
10512         encoding in MethodImpl table.
10513
10514 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10515
10516         * reflection.c: fix entry point patching (thanks Serge!).
10517
10518 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10519
10520         * verify.c: add check for System.Exception
10521
10522 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10523
10524         * image.c, class.c: minifix for code just c&p'ed.
10525         * reflection.c: warning fix.
10526         * object.h, loader.h, domain.c: load also StringBuilder.
10527
10528 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10529
10530         * marshal.h, marshal.c: some support code to handle complex marshaling.
10531
10532 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10533
10534         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10535         Better signatures with vtable error dump.
10536
10537 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10538
10539         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10540
10541 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10542
10543         * icall.c (ves_icall_Type_GetField): impl.
10544
10545 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10546
10547         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10548         to retrieve a marshal description blob for a field or param.
10549
10550 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10551
10552         * reflection.h, reflection.c: change order of nested type emission
10553         to avoid table corruption. The NestedTypes table is sorted.
10554         * icall.c: change order of GetConstructor results to workaround mcs bug.
10555
10556 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10557
10558         * reflection.h, reflection.c: handle field and param marshal
10559         information.
10560
10561 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10562
10563         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10564
10565 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10566
10567         * reflection.c: fix call convention.
10568
10569 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10570
10571         * reflection.h, reflection.c: mono_image_get_memberref_token()
10572         takes a type instead of a class, now. Added
10573         mono_image_get_array_token() to create tokens for the special
10574         multi-dim array methods.
10575
10576 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10577
10578         * assembly.c: handle modules (no assembly table). Split
10579         loading references in its own function.
10580         * class.c: handle moduleref resolution scope.
10581         * image.c, image.h: cache module name in image.
10582
10583 2002-06-07  Martin Baulig  <martin@gnome.org>
10584
10585         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10586         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10587
10588 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10589
10590         * icall.c: more signature fixes that used uint instead of int.
10591
10592 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10593
10594         * reflection.c: fixed signature of field refs.
10595
10596 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10597
10598         * class.c, reflection.c: handle typerefs of nested types
10599         (both on read and when writing files).
10600
10601 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10602
10603         * icall.c: fix method signatures that tried to workaround the previous
10604         typo, d'oh!
10605
10606 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10607
10608         * debug-helpers.c: fix typo.
10609
10610 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10611
10612         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10613         rewrote the PE/COFF writing code (our programs are understood by the
10614         ms runtime, now).
10615
10616 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10617
10618         * gc.c, gc.h, icall.c: weakreference support.
10619
10620 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10621
10622         * Makefile.am, mono-config.c: use $(sysconfdir).
10623
10624 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10625
10626         * icall.c: changed default precision of Double.ToString() to 15.
10627         Fixed memory leak. Unified with Single.ToString.
10628
10629 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10630
10631         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10632
10633 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10634
10635         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10636         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10637         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10638         and myself.
10639
10640 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10641
10642         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10643
10644 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10645
10646         * reflection.c, socket-io.c: more compilation fixes.
10647
10648 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10649
10650         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10651         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10652         unicode.c: warning and compiler compatibility fixes.
10653
10654 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10655
10656         * class.h, metadata.c: fixed warnings/compilation errors.
10657
10658 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10659
10660         * Makefile.am, mono-config.c, mono-config.h: configuration file
10661         support routines.
10662         * loader.c, loader.h: make Dll mapping configurable at runtime in the
10663         config file. Export methods to insert and lookup mappings.
10664
10665 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10666
10667         * reflection.c: handle types and boxed objects in custom attr
10668         constructors.
10669
10670 2002-05-30  Martin Baulig  <martin@gnome.org>
10671
10672         * debug-symfile.c
10673         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
10674
10675 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
10676
10677         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
10678         to lookup the implmap row for a P/Invoke method.
10679         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
10680         P/Invoke method from the runtime on an as needed basis.
10681
10682 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
10683
10684         * metadata.c (mono_metadata_parse_signature): impl.
10685
10686 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10687
10688         * class.c: handle .pack directive.
10689
10690 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10691
10692         * object.c: initialize static fields with RVA data.
10693
10694 2002-05-25  Martin Baulig  <martin@gnome.org>
10695
10696         * debug-symfile.c
10697         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
10698
10699 2002-05-24  Martin Baulig  <martin@gnome.org>
10700
10701         * debug-symfile.c
10702         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
10703         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
10704         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
10705
10706 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10707
10708         * object.c: special case string ctros in invoke.
10709         * gc.c: silly whitespace changes.
10710
10711 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
10712
10713         * threadpool.[ch]: impl. a threadpool that can
10714         be used by mint and mono.
10715
10716 2002-05-22  Martin Baulig  <martin@gnome.org>
10717
10718         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
10719         The first argument is now a `MonoReflectionModuleBuilder *', the return
10720         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
10721         `methods' field to get the method builder.  The `token' argument is the
10722         unfixed token.
10723
10724         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
10725         invalid characters instead of g_assert_not_reached()ing.  This seems
10726         to be the behaviour of mscorlib.
10727
10728 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
10729
10730         * object.c (mono_runtime_invoke_array): applied patch from Rachel
10731         Hestilow to fix bug #25104
10732
10733 2002-05-21  Martin Baulig  <martin@gnome.org>
10734
10735         * debug-symfile.c (mono_debug_find_source_location): New function.
10736         Looks up an IL offset in the line number table and returns the source
10737         location as a string.
10738
10739 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10740
10741         * icall.c:
10742         (mono_double_ToStringImpl): changed %f by %g until we have something
10743         better.
10744
10745 2002-05-21  Nick Drochak  <ndrochak@gol.com>
10746
10747         * icall.c : Use different name for Math.Pow's icall.  Needed to check
10748         parameters first in C#.
10749
10750 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10751
10752         * icall.c, reflection.h: added icall to get info about an event.
10753
10754 2002-05-20  Radek Doulik  <rodo@ximian.com>
10755
10756         * object.c (mono_value_box): don't use memcpy for boxing on BIG
10757         endian
10758         (mono_value_box): don't use memcpy for small sizes on
10759         architectures with unaligned access
10760
10761 2002-05-20  Martin Baulig  <martin@gnome.org>
10762
10763         * reflection.c (mono_reflection_setup_internal_class): Don't crash
10764         if `tb->parent == NULL'.
10765         (mono_reflection_create_internal_class): New function.  This is
10766         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
10767         for enum types.
10768
10769         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
10770         New interncall.
10771
10772 2002-05-19  Martin Baulig  <martin@gnome.org>
10773
10774         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
10775         argument to get the length, don't default to the array length.
10776
10777 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
10778
10779         * assembly.c (mono_assembly_setrootdir): New function used to
10780         override the MONO_ASSEMBLIES directory.
10781
10782 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10783
10784         * icall.c: ValueType_GetHashCode() initialize local var.
10785
10786 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10787
10788         * reflection.c: sort custom attributes table.
10789
10790 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10791
10792         * reflection.c: support named args in custom attributes (write support).
10793
10794 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10795
10796         * reflection.c: fix finally position calculation.
10797
10798 2002-05-15  Radek Doulik  <rodo@ximian.com>
10799
10800         * reflection.c: fixed endianess at many places
10801
10802         * icall.c (ves_icall_InitializeArray): comment out debug msg
10803
10804 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
10805
10806         * object.c (mono_unhandled_exception): new function to handle
10807         unhandled exceptions.
10808         (mono_unhandled_exception): call the UnhandledException event.
10809         (mono_runtime_delegate_invoke): impl.
10810
10811 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
10812
10813         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
10814         returns the RVA, not the direct pointer to the data. Handle the case
10815         when the class size is fixed.
10816
10817 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10818
10819         * reflection.c: fix some endianess issues.
10820
10821 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
10822
10823         * object.c (mono_runtime_invoke): is now able to catch exceptions.
10824
10825         * threads.c (mono_thread_init): added a callback which is invoked
10826         at thread start.
10827
10828 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10829         
10830         * icall.c: make GetHashCode return non-negative values.
10831
10832 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10833
10834         * object.c, icall.c, gc.c: revert to address-based hashcode.
10835
10836 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
10837
10838         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
10839
10840 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10841
10842         * icall.c, class.c: special case <Module>.
10843
10844 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
10845
10846         * icall.c: fix bug in GetNow().
10847
10848 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
10849
10850         * object.c (mono_runtime_class_init): make sure that we call all
10851         static class constructors.
10852
10853 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10854
10855         * reflection.c: sort methodsemantics table.
10856
10857 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10858
10859         * reflection.h, reflection.c: honour init locals setting.
10860
10861 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
10862
10863         * icall.c: copied Double ToStringImpl for Single ToStringImpl
10864
10865 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10866
10867         * reflection.c: support ContructorBuilders in attribute blob creation.
10868
10869 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10870
10871         * reflection.c: some changes to build a binary that can be run
10872         directly in windows.
10873
10874 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
10875
10876         * loader.c: print a big message when an icall can't be found.
10877
10878 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10879
10880         * string-icalls.c: fix bug 24248.
10881
10882 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10883
10884         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
10885         icall.c, reflection.h: separate assembly loading by pathname and by
10886         assembly name. Use the MONO_PATH env var to search for assemblies.
10887
10888 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10889
10890         * assembly.c, image.h: add some support for assemblies
10891         with multiple modules.
10892         * class.c, class.h: export mono_class_from_typeref().
10893         * loader.c: remove duplicated code and use mono_class_from_typeref(),
10894         instead.
10895
10896 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10897
10898         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
10899         documentation says (the ECMA one is correct).
10900
10901 2002-05-02  Dick Porter  <dick@ximian.com>
10902
10903         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
10904         Don't name the synchronisation mutex.
10905
10906 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
10907
10908         * rand.c
10909         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
10910         Make the prototypes match.
10911         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
10912         Same.
10913
10914         * icall.c
10915         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
10916         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
10917         all systems have tm.tm_zone, so use strftime() with %Z to print
10918         the timezone abreviation into a temp string.
10919
10920         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
10921         rather than mono_array_addr() on a MonoString on Big Endian
10922         machines.
10923
10924 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
10925
10926         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
10927         fix bug 24041
10928
10929 2002-04-30  Dick Porter  <dick@ximian.com>
10930
10931         * socket-io.c: Cope with SOCKET being an integer rather than a
10932         pointer now.
10933
10934         * threads.c: Added Thread_free_internal, to deal with thread
10935         handle cleanup.  Moved calls to handle_store() and handle_remove()
10936         to start_wrapper(), so each can only be called once.  Allocate
10937         synchronisation blocks with GC_malloc(), and use GC finalisation
10938         to close the handles.
10939
10940         * icall.c: added System.Threading.Thread::Thread_free_internal
10941
10942 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10943
10944         * icall.c: support Environment.Exit, CommandLineArgs().
10945
10946 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10947
10948         * object.c, object.h: added mono_runtime_run_main () and
10949         mono_runtime_get_main_args () for use in System.Environment.
10950
10951 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10952
10953         * gc.c: fix thinko, enable actual finalization since the jit is now
10954         fixed.
10955
10956 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10957
10958         * gc.c, object.c: take into account that an object may be offset wrt the address
10959         returned by GC_malloc().
10960
10961 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
10962
10963         * image.c: handle files without entries in the assembly table (modules).
10964
10965 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
10966
10967         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
10968         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
10969         allowed to be null when it's System.Object class setup.
10970
10971 2002-04-27  Martin Baulig  <martin@gnome.org>
10972
10973         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
10974         if `tb->parent == NULL' rather than crashing.
10975
10976 2002-04-28  Nick Drochak  <ndrochak@gol.com>
10977
10978         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
10979         calling acos() where asin() should have been called.
10980
10981 2002-04-26  Martin Baulig  <martin@gnome.org>
10982
10983         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
10984         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
10985         there's a subdirectory called `System', but we don't want to read that
10986         subdirectory as an assembly.
10987
10988 2002-04-25  Martin Baulig  <martin@gnome.org>
10989
10990         * debug-symfile.c: Reflect latest MonoString changes.
10991
10992 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10993
10994         * rand.c, rand.h: instance method icalls need to have an explicit
10995         this pointer as first argument in the C implementation.
10996
10997 2002-04-25  Nick Drochak <ndrochak@gol.com>
10998
10999         * icall.c: Fix typo in map for GetNonZeroBytes
11000
11001 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11002
11003         * string-icalls.c : String does now passes unit tests without any 
11004         errors, the following changes has been made:
11005         
11006         Implemented replace methods.
11007         Renaming of methods to (try) follow the standard.
11008         Fixed compare ordinal
11009         Made all memory allocated directly to function instead of via icall function.
11010         Small performance fix in is_in_array function
11011                         
11012  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11013
11014         c (mono_string_Internal_ctor_charp_int_int):
11015         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11016         sindex < 0, throw ArgumentOutOfRangeException instead of
11017         ArgumentNullException.
11018
11019         Added new check for length == 0, however
11020         I need to make it return String.Empty from the C code.
11021         
11022         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11023         that calculate the length for us here.
11024         
11025         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11026         mono_string_new_utf16 with mono_string_new, since value is utf8.
11027
11028 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11029
11030         * object.c: register the object for finalization if needed.
11031         Allocate one more char in the string for the terminating 0 char.
11032
11033 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11034
11035         * class.c, class.h, image.c: check if a type implemenst a destructor.
11036         Use the proper key for array class lookups.
11037         * icall.c: register the icalls in the System.GC class.
11038         * gc.c, gc.h: GC-related functions and icalls.
11039
11040 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11041
11042         * icall.c:
11043         * socket-io.c:
11044         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11045         changed a couple of free () by g_free ().
11046
11047         * decimal.c: one-liner in the comments for decimal2string ().
11048
11049 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11050
11051         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11052
11053 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11054
11055         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11056         * object.c (mono_runtime_invoke_array) : handle null in params
11057
11058 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11059
11060         * string-icalls.c: fixed bug in split (one off bug)
11061
11062 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11063
11064         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11065         * icalls.c: added String::Equals as internal method
11066
11067 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11068
11069         * threads.c: fixed bug in the double interlocked functions
11070
11071 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11072
11073         * threads.c: implemented all of the new interlocked icalls.
11074         * string-icalls.c: fix a bug in insert.
11075         * icalls.c: added the icalls for interlocked, removed old string functions.
11076         
11077 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11078
11079         * loader.c: fix off-by-one error when reading argument names.
11080
11081 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11082
11083         * profiler.c: win32 counter implementation (untested).
11084         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11085         (the latter needs testing and more complete impl. from win32 folks).
11086
11087 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11088
11089         * object.c: mono_array_new_full workaround mono_array_class_get
11090         problem.
11091
11092 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11093
11094         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11095         * object.h (mono_string_chars): Changed casting type.
11096
11097 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11098
11099         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11100                            method signatures to use gunichar2 instead of gint16.
11101
11102 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11103
11104         * object.h, object.c: domain-specific versions of mono_object_new and
11105         mono_array_new.
11106
11107 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11108
11109         * object.c: changed String layout
11110
11111         * string-icalls.c (mono_string_Internal_ctor_chara): added
11112         internal string constructors.
11113
11114 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11115
11116         * threads.c: pass 'this' to the thread start routine.
11117
11118 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11119
11120         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11121         InternalCompareStr don't call twice mono_string_cmp_char for the last
11122         character. Improved performance in mono_string_cmp_char.
11123
11124 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11125
11126         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11127         code into its own library: libmonoruntime.
11128
11129 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11130
11131         * object.h, object.c: changed array format so that szarrays do not
11132         require a bounds structure.
11133         * icall.c, appdomain.c: support for new szarray format.
11134
11135 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11136
11137         * metadata.c: compare also the retuns type when comparing signatures:
11138         we didn't do this as an optimization since really overloaded methods
11139         must differ also in the arguments, but this doesn't work with
11140         low-level IL code (or when using explicit conversion operators: see
11141         bug#23498 for an example).
11142
11143 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11144
11145         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11146
11147 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11148
11149         * icall.c: make MonoType::GetElementType its own icall.
11150
11151 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11152
11153         * icall.c: remove MonoMethod_get_Name().
11154         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11155         object.
11156
11157 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11158
11159         * string-icalls.c: optimized a few methods.
11160
11161 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11162
11163         * icall.c: added all new string internal calls
11164         * string-icalls.c: added, new string internal call implementation.
11165         * object.c: added mono_string_new_size for allocating a string a size
11166
11167 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11168
11169         * object.c (mono_object_isinst): use the same code as in the
11170         optimized x86 version.
11171
11172 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11173
11174         * profiler.c: TSC-based timer code (faster and more accurate).
11175         Not hooked up in configure, yet (set USE_X86TSC to 1).
11176
11177 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11178
11179         * profiler.c, profiler.h: track time spent compiling methods.
11180         * threads.c: track thread creation/destruction.
11181
11182 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11183
11184         * profiler.c, profiler.h, profiler-private.h: profiling interface
11185         and sample implementation. Moved here so that it can be used also by
11186         the jit.
11187
11188 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11189
11190         * reflection.c, reflection.h: keep types and other handles separate in
11191         the hash tables for referred tokens. Add guid for modules.
11192
11193 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11194
11195         * assembly.c: fix bugs found with valgrind.
11196         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11197
11198 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11199
11200         * threads: added icall support for getting current domain for
11201                    the thread.
11202  
11203 2002-04-13  Martin Baulig  <martin@gnome.org>
11204
11205         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11206         (MonoDebugVarInfo): Added `index' field for register based addresses.
11207         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11208         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11209         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11210         `MonoDebugVarInfo *this_var'.
11211
11212         * debug-symfile.c (relocate_variable): New static function to write
11213         a location description for a local variable or method parameter.
11214
11215 2002-04-12  Martin Baulig  <martin@gnome.org>
11216
11217         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11218         stack offset and begin/end scope address of a local variable.
11219         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11220         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11221         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11222
11223         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11224         Added new relocation types for start/end scope of a local variable.
11225
11226 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11227
11228         * object.h: add mono_object_domain() macro.
11229         * reflection.c: handle typespecs.
11230         * icall.c: MonoMethod::get_Name() implementation.
11231
11232 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11233
11234         * icall.c: String::GetHashCode() icall implementation.
11235
11236 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11237
11238         * icall.c: String::IndexOfAny icall.
11239         * object.c, object.h: make array->max_length more useful.
11240         Intrduced mono_object_class() and mono_string_length() macros.
11241
11242 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11243
11244         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11245         instead of g_unichar_isdigit.
11246
11247 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11248
11249         * icall.c: Implement a simple Double.ToString().
11250
11251 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11252
11253         * appdomain.h: only io-layer.h is supposed to be included.
11254         * icall.c: explicitly import environ. Fix warning.
11255
11256 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11257
11258         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11259                 return true even if it's not Daylight Savings time.
11260                 Only return false for the case where the function isn't
11261                 implemented for a plaform (read Windows).
11262
11263 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11264
11265         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11266         data with a mutex.
11267
11268 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11269
11270         * mempool.c (mono_mempool_alloc): only use g_malloc when
11271         absolutely necessary.
11272
11273 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11274
11275         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11276
11277         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11278         (mono_class_proxy_vtable): use domain mempool
11279
11280 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11281
11282         * appdomain.h, appdomain.c: split initialization that requires the
11283         execution engine support into mono_runtime_init().
11284
11285 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11286
11287         * class.c (mono_class_init): don't include vtable inside MonoClass
11288         to save some memory, gather some statistics.
11289         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11290
11291 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11292
11293         * icall.c: internalcall implementation for ValueType.Equals().
11294
11295 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11296
11297         * object.c (mono_message_init): moved 
11298         (mono_runtime_exec_main): new arch. independent impl.
11299         (mono_runtime_invoke_array): new method - like
11300         mono_runtime_invoke, but you can pass an array of objects.
11301         (mono_remoting_invoke): new arch. independent impl.
11302         (mono_message_invoke): new arch. independent impl.
11303         (mono_runtime_class_init): new arch. independent impl.
11304         (mono_runtime_object_init): new arch. independent impl.
11305
11306 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11307
11308         * metadata.c, object.c, reflection.c: documented the exported
11309         functions.
11310
11311 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11312
11313         * icall.c: simpler code to pass the assembly builder data to corlib.
11314         Implement GetNestedTypes() internalcall.
11315
11316 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11317
11318         * class.c: warn if a type can't be loaded.
11319
11320 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11321
11322         * image.h: typedef MonoImageOpenStatus
11323         * types.h: removed unused file
11324         
11325 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11326
11327         * icall.c: Enum_ToObject accepts enum value arguments.
11328
11329 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11330
11331         * class.c: move initialization of properties, events and nested
11332         classes, so that they happen for interfaces, too.
11333
11334 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11335
11336         * icall.c: cleanup some ugly casts in Array_SetValue*.
11337
11338 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11339
11340         * icall.c: the values array fro enums is of the correct type, now.
11341         Implement (correctly) getFullName instead of assQualifiedName for
11342         MonoType.
11343         * reflection.h, reflection.c: added mono_type_get_name ().
11344
11345 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11346
11347         * assembly.c, image.h: for each MonoImage, record from wich assembly
11348         it was loaded.
11349         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11350         Make Type.Assembly work.
11351
11352 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11353
11354         * debug-symfile.h: use char* instead of gpointer to avoid
11355         unnecessary casts.
11356
11357         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11358
11359         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11360         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11361
11362 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11363
11364         * icall.c (mono_message_init): impl. (code cleanup)
11365         (ves_icall_InternalExecute): impl. FieldGetter
11366
11367         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11368         defined we call all (non-static)methods through the vtable. 
11369
11370 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11371
11372         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11373         finalizer even though the memory is still referenced (and the chunk of
11374         memory is not freed).
11375
11376 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11377
11378         * assembly.c: fix brokeness.
11379
11380 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11381
11382         * class.c: kill some warnings. Check explicit interface method
11383         implementation also without considering the namespace.
11384         Load also literal strings in static class data.
11385
11386 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11387
11388         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11389         (default_assembly_name_resolver): Make the resolver take the
11390         "base" directory where the assembly was originally defined, so we
11391         can load DLLs that are in the same directory as the assembly that
11392         is being referenced.
11393
11394 2002-03-28  Dick Porter  <dick@ximian.com>
11395
11396         * file-io.h: 
11397         * file-io.c:
11398         * socket-io.c: 
11399         * unicode.h: 
11400         * unicode.c: Warning cleanups
11401
11402 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11403
11404         * object.h, reflection.h: use the correct type instead of MonoObject.
11405
11406 2002-03-28  Martin Baulig  <martin@gnome.org>
11407
11408         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11409         (mono_debug_update_symbol_file): Initialize classes if necessary.
11410
11411 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11412
11413         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11414         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11415
11416 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11417
11418         * assembly.h: fix function prototype.
11419         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11420         * mono-endian.h: use const cast.
11421
11422 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11423
11424         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11425
11426 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11427
11428         * loader.c: don't assert when a typeref can't be loaded, give
11429         a chance to the runtime to trow an exception instead.
11430         * loader.h: fix warning.
11431
11432 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11433
11434         * class.c (mono_class_proxy_vtable): added proxy support
11435
11436 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11437
11438         * icall.c: removed last of PAL calls, added System.Environment
11439         * file-io.h, file-io.c: MonoIO implementation
11440         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11441
11442 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11443
11444         * appdomain.c: do not use the byte marker in ldstr table lookup.
11445         * debug-helpers.c: allow two ':' to separate class and method name.
11446         * object.c: allocate arrays bounds with the GC, too.
11447         * verify: add a few more checks.
11448
11449 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11450
11451         * reflection.c: output also literal strings. Allocate parameter data
11452         with GC_malloc() (thanks, Martin, for catching this!).
11453
11454 2002-03-26  Martin Baulig  <martin@gnome.org>
11455
11456         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11457         include the `this' offset in the `param_offsets'.
11458
11459 2002-03-25  Martin Baulig  <martin@gnome.org>
11460
11461         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11462         mono_debug_get_class() function to get the classes. Added new
11463         relocation types for arrays and strings.
11464         (mono_debug_get_class): New static function to search in all
11465         referenced assemblies for a metadata token.
11466
11467         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11468
11469 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11470
11471         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11472         hold gc-allocated objects. Make the string heap a stream like the
11473         others. Removed duplicated code when writing stream info.
11474         Added asserts to catch possible buffer overflows. Set the sorted map
11475         for tables that need sorting. Added some documentation.
11476
11477 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11478
11479         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11480         for interned strings and vtables.
11481
11482 2002-03-24  Martin Baulig  <martin@gnome.org>
11483
11484         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11485         it in the array since it was created with g_slist_prepend().
11486
11487 2002-03-24  Martin Baulig  <martin@gnome.org>
11488
11489         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11490         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11491         (mono_debug_method_from_token): Renamed to
11492         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11493         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11494
11495         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11496         relocation types.
11497
11498         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11499
11500 2002-03-24  Martin Baulig  <martin@gnome.org>
11501
11502         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11503         (mono_debug_method_from_token): New func.
11504
11505         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11506         New interncall, calls mono_debug_local_type_from_signature().
11507         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11508         calls mono_debug_method_from_token().
11509
11510 2002-03-23  Martin Baulig  <martin@gnome.org>
11511
11512         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11513         specifies the number of bytes to be converted, not the array size.
11514         Return the number of chars, not the number of bytes.
11515         (ves_icall_iconv_get_chars): The `byteCount' argument
11516         specifies the number of bytes to be converted, not the array size.
11517
11518 2002-03-23  Martin Baulig  <martin@gnome.org>
11519
11520         * reflection.h (MonoReflectionSigHelper): New type.
11521
11522         * reflection.c (mono_reflection_sighelper_get_signature_local),
11523         (mono_reflection_sighelper_get_signature_local): New functions.
11524
11525         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11526         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11527         interncalls.
11528
11529 2002-03-23  Martin Baulig  <martin@gnome.org>
11530
11531         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11532         is_writeable is set.
11533         (mono_raw_buffer_update): New function to write the modified map
11534         back to disk.
11535
11536         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11537
11538         * debug-symfile.c (mono_debug_update_symbol_file): Call
11539         mono_raw_buffer_update() when done writing.
11540
11541 2002-03-23  Martin Baulig  <martin@gnome.org>
11542
11543         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11544
11545         * debug-symfile.c: Added support for arguments and local variables.
11546
11547 2002-03-23  Dick Porter  <dick@ximian.com>
11548
11549         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11550         protected by ifdefs, hence breaking the w32 build.
11551
11552 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11553
11554         * object.c: implement is_interned() the right way.
11555
11556 2002-03-21  Martin Baulig  <martin@gnome.org>
11557
11558         * debug-symfile.[ch]: New files to handle debugging information
11559         files. There's also support to dynamically update these symbol
11560         files to include machine dependent information.
11561
11562 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11563
11564         * threads.c (mono_thread_create): new function to create thread
11565         from C
11566
11567 2002-03-20  Martin Baulig  <martin@gnome.org>
11568
11569         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11570         method is a constructor.
11571         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11572         points to ves_icall_InternalInvoke().
11573
11574 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11575
11576         * file-io.c: Flush shouldn't throw exceptions.
11577
11578 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11579
11580         * file-io.c: FileStream flush support; FileSetLength now
11581         restores file pointer.
11582
11583 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11584
11585         * class.c: set image for pointer classes.
11586
11587 2002/03/19  Nick Drochak <ndrochak@gol.com>
11588
11589         * sysmath.c: Forgot one.
11590
11591 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11592
11593         * sysmath.c: Avoid redefining existing names.
11594
11595 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11596
11597         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11598         handled by runtime as icall rather than dllimport from libm.so
11599         * file-io.c, file-io.h: fixed handle argument type.
11600
11601 2002-03-18  Dick Porter  <dick@ximian.com>
11602
11603         * reflection.c (mono_image_get_type_info): rename interface to
11604         iface, because of "#define interface struct" on windows.
11605
11606 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11607
11608         * class.c, class.h: rename and export mono_ptr_class_get().
11609         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11610         * reflection.c, reflection.h, icall.c: better/saner type name
11611         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11612         method signatures.
11613
11614 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11615
11616         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11617
11618         * icall.c (ves_icall_InternalInvoke): impl.
11619
11620 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11621
11622         * reflection.c: output the interface map table, too.
11623
11624 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11625
11626         * class.c (class_compute_field_layout): separate computation of 
11627         static field layout
11628
11629 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11630
11631         * icall.c: added System.Buffer support.
11632         * file-io.c: moved file icalls from PAL to FileStream.
11633
11634 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11635
11636         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11637
11638 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11639
11640         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11641
11642 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11643
11644         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11645
11646 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11647
11648         * debug-helpers.{c,h}: moved here from monograph some useful functions
11649         to locate a method by name/signature in a class or image. Included
11650         also a small and flexible IL disassembler.
11651
11652 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11653
11654         * reflection.c: fixup tokens in methods with small header size, too.
11655
11656 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
11657
11658         * object.c (mono_string_to_utf8): remove assert(!error), instead
11659         print a warning. 
11660
11661 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
11662
11663         * icall.c: update to the new mono_Array_class_get interface.
11664
11665 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11666
11667         * appdomain.c, object.c: Boehm-GC enable.
11668         * icall.c: make get_data_chunk() support split data requests.
11669         Ensure a class is initialized in more cases. Return only the first
11670         property found in GetProperties() or the compiler gets confused. 
11671         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
11672         * reflection.h, reflection.c: add fixup mechanism for field and method
11673         tokens. Initialize assembly->typeref in a single place. Output
11674         properties after events. Support custom attributes for events, too.
11675         Typo fix for paramter custom attrs.
11676
11677 2002-03-07  Martin Baulig  <martin@gnome.org>
11678
11679         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
11680
11681 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
11682
11683         * class.c (mono_array_class_get): fix. for multi. dim. arrays
11684
11685 2002-03-06  Martin Baulig  <martin@gnome.org>
11686
11687         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
11688         non-zero lower bounds. See testcases #F10-#F13.
11689
11690 2002-03-05  Martin Baulig  <martin@gnome.org>
11691
11692         * exception.c (mono_get_exception_argument_out_of_range): New exception.
11693
11694         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
11695         ves_icall_System_Array_GetValue(), only calculate the absolute array position
11696         here.
11697         (ves_icall_System_Array_SetValue): Likewise.
11698         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
11699         as argument and does the actual work. This function is used when copying a
11700         multi-dimensional array.
11701         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
11702         now do all the widening conversions of value types.
11703         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
11704
11705 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11706
11707         * class.c: remove some magic numbers and use the smbolic names,
11708         instead. Added init_events() to load event info at class init time.
11709         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
11710         and mono_metadata_methods_from_event().
11711         * reflection.h, reflection.c: added support for writing out the evnets
11712         related information.
11713
11714 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11715
11716         * reflection.h, icall.c: use a different method (GetInterfaces)
11717         to gather interface info and add isbyref, isprimitive and
11718         ispointer to the ves_icall_get_type_info() return value.
11719
11720 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11721
11722         * class.h: stared adding support for events.
11723         * icall.c: split find_members implementation. Added debug icall to get
11724         the address of an object.
11725         * reflection.c: handle TypeBuilders in mono_type_get_object().
11726
11727 2002-03-01  Martin Baulig  <martin@gnome.org>
11728
11729         * icall.c (ves_icall_System_Array_GetLength): This must throw an
11730         ArgumentOutOfRangeException(), not an ArgumentException().
11731         (ves_icall_System_Array_GetLowerBound): Likewise.
11732         (ves_icall_System_Array_GetValue): Improved argument checking.
11733         (ves_icall_System_Array_SetValue): Improved argument checking.
11734
11735 2002-03-01  Martin Baulig  <martin@gnome.org>
11736
11737         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
11738         called with invalid arguments rather than just dying with g_assert().
11739         (ves_icall_System_Array_SetValue): Likewise.
11740         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
11741         raise a NotImplementedException instead.
11742         (ves_icall_System_Array_GetLength): Added argument checking.
11743         (ves_icall_System_Array_GetLowerBound): Added argument checking.
11744
11745 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
11746
11747         * object.h (mono_assert): new macros mono_assert and
11748         mono_assert_not_reached
11749
11750 2002-02-28  Martin Baulig  <martin@gnome.org>
11751
11752         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
11753         and "System::String::IsInterned" to "System::String::_IsInterned".
11754
11755 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
11756
11757         * icall.c: remove hacks for typebuilder. Added icall to create a
11758         modified type from a tybebuilder.
11759         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
11760         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
11761         to create a backing MonoClass for a TypeBuilder.
11762
11763 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11764
11765         * class.c, class.h: more refactoring of class init.
11766         Export mono_class_setup_mono_type() and mono_class_setup_parent().
11767
11768 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
11769
11770         * marshal.c, marshal.h: start of marshaling interface.
11771
11772 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
11773
11774         * icall.c: fix order in assembly qualified name icall.
11775
11776 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
11777
11778         * class.c: do not free str, since we store it in the hash table.
11779         * reflection.h: add label field to MonoILExceptionInfo.
11780         * reflection.c: handle references to more than one assembly. Handle
11781         case when there isn't a module created in the assembly.
11782
11783 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11784
11785         * class.c: Fix typo. Start refactoring of class init code.
11786
11787 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11788
11789         * appdomain.c: exit with 1 on error.
11790         * class.c: we already have the name in MonoClassField.
11791         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
11792         MonoStreamHeader instead of an offset of image->raw_metadata.
11793
11794 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
11795
11796         * appdomain.c (mono_init): Be even more descriptive about the error.
11797
11798 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
11799
11800         * appdomain.c: give the user an informative message when corlib can't
11801         be loaded.
11802
11803 2002-02-26  Martin Baulig  <martin@gnome.org>
11804
11805         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
11806         New icall to get the time zone data.
11807
11808 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11809
11810         * reflection.c: set virtual and raw size of section correctly.
11811         * threads.c: transfer domain information to newly created threads.
11812
11813 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
11814
11815         * class.c: when instancing a class in a domain, load the default
11816         vaules for static fields from the constant table. Fix System.Enum to
11817         not be an enum.
11818         * icall.c: implement Object::GetType() internalcall. Implemented
11819         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
11820         Fixed checking of binding flags in find_members().
11821         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
11822         * reflection.c: handle enumerations when writing to the constant
11823         table. Use a different object cache for types.
11824
11825
11826 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
11827
11828         * object.c (mono_object_isinst): fix for arrays
11829
11830         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
11831
11832 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
11833
11834         * object.c: don't use mprotect ()  and fix intern pool hash table
11835         lookup for big endian systems.
11836
11837 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11838
11839         * icall.c: change type_is_subtype_of () signature.
11840
11841 2002-02-21  Mark Crichton  <crichton@gimp.org>
11842
11843         * rand.c, rand.h: Added random number generator for
11844         System.Security.Cryptography classes.
11845
11846         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
11847
11848         * icall.c: Added System.Security.Cryptography calls.
11849
11850 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
11851
11852         * class.c, icall.c, metadata.c: better support for pointer types.
11853         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
11854         * reflection.c: Add support for getting custom attrs for properties
11855         and simplify some code.
11856
11857 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11858
11859         * icall.c: change getToken () and add custom attribute GetBlob()helper
11860         method.
11861         * reflection.h: add custom attrs array to the reflection builder structures.
11862         * reflection.c: encode and emit custom attributes for all the relevant
11863         reflection objects. Cache fieldref and methodref tokens. Change
11864         mono_image_create_token() interface to take a MonoDynamicAssembly.
11865         More complete custom attributes decoder. Load custom attributes for
11866         Assembly, Field, Method and Constructor objects, too. Make the
11867         returned array an Attribute[] one, not object[]. Added
11868         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
11869         custom attribute constructor.
11870
11871 2002-02-20  Dick Porter  <dick@ximian.com>
11872
11873         * icall.c:
11874         * rawbuffer.c:
11875         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
11876         problem code out for now).
11877
11878 2002-02-19  Radek Doulik  <rodo@ximian.com>
11879
11880         * object.c (mono_ldstr): use hash table to avoid multiple swapping
11881
11882 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
11883
11884         * icall.c: register the GetCustomAttributes method.
11885         * object.c, object.h: add mono_string_new_len ().
11886         * reflection.h, reflection.c: added mono_runtime_invoke(),
11887         mono_install_runtime_invoke(). Added
11888         mono_reflection_get_custom_attrs () to load custom attributes and
11889         create the attribute objects.
11890
11891 2002-02-19  Dick Porter  <dick@ximian.com>
11892         * threads-dummy-types.c:
11893         * threads-dummy-types.h:
11894         * threads-dummy.c:
11895         * threads-dummy.h:
11896         * threads-pthread-types.c:
11897         * threads-pthread-types.h:
11898         * threads-pthread.c:
11899         * threads-pthread.h:  Deleted obsolete files
11900
11901 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
11902
11903         * class.c (mono_class_vtable): runtime init the class when we
11904         allocate static class data.
11905
11906         * icall.c (ves_icall_System_Array_SetValue): check for null values.
11907
11908         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
11909         and String - but we will need generic marshalling support in the
11910         future. 
11911         (mono_init): set the domain name in a ms compatible way
11912
11913         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
11914         String[].
11915
11916 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
11917
11918         * object.c (mono_array_clone): use alloca() instead of g_malloc  
11919         for sizes
11920
11921         * appdomain.c (mono_domain_unload): impl.
11922
11923 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
11924
11925         * appdomain.c, object.c: fix intern pool implementation.
11926         * class.c: fix alignment code.
11927
11928 2002-02-16  Radek Doulik  <rodo@ximian.com>
11929
11930         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
11931         and s2 > s1, just copy lower bytes to be compatible with little
11932         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
11933         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
11934
11935         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
11936         force big_endian to be 1 for big endian machines 
11937         (ves_icall_iconv_new_decoder): ditto
11938
11939 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
11940
11941         * socket-io.c (convert_sockopt_level_and_name): If the system
11942         doesn't define SOL_IP or SOL_TCP, get them by hand using
11943         getprotobyname() and caching the values (because this could be a
11944         slow operation).
11945         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
11946         Use the appropriate struct when the system does support it. Ie,
11947         not all systems have struct ip_mreqn so use struct ip_mreq when
11948         appropriate.
11949
11950 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
11951
11952         * reflection.c: handle finally clauses.
11953
11954 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
11955
11956         * socket-io.c: use g_snprintf() instead of snprintf.
11957
11958 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
11959
11960         * reflection.c (mono_param_get_objects): Cast second argument to
11961         mono_method_get_param_names to a const char** to silence the
11962         compiler warning.
11963
11964         * appdomain.c (mono_domain_assembly_open): Put parens around the
11965         truth statement in the for-loop.
11966
11967         * unicode.c (iconv_convert): Got rid of a compiler warning about
11968         int i being unused when the system has a new iconv.
11969         (iconv_get_length): Same.
11970
11971         * image.c (load_class_names): Cast the second argument to
11972         g_hash_table_insert() to char* to hush compiler warnings about the
11973         arg being a const.
11974         (mono_image_open): Same here.
11975
11976         * socket-io.c: Don't conditionally include sys/filio.h or
11977         sys/sockio.h here anymore since we now get them from
11978         io-layer/io-layer.h
11979         (inet_pton): If the system doesn't support inet_aton, implement
11980         using inet_addr and also #define INADDR_NONE if it isn't defined
11981         by the system.
11982
11983 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
11984
11985         * metadata.c, metadata.h: added function to get packing and size info
11986         of a typedef.
11987         * reflection.h, reflection.c: handle field RVA data. Save info about
11988         the table layout if needed. Assign typedef indexes to all the types
11989         before dumping the info about them to avoid forward reference problems.
11990
11991 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
11992
11993         * socket-io.c (convert_sockopt_level_and_name): ifdef
11994         SO_ACCEPTCONN because it is not defined on my system (old debian)
11995
11996 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11997
11998         * opcode.c: use stddef.h to get NULL.
11999
12000 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12001
12002         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12003         for FIONBIO, FIONREAD and SIOCATMARK.
12004         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12005         define INADDR_NONE and besides, inet_addr() is deprecated and
12006         should not be used. Use inet_pton() instead - it also has the
12007         added bonus that it can easily handle IPv6 addresses as well.
12008         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12009
12010 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12011
12012         * decimal.c: remove _MSC_VER conditional.
12013
12014 2002-02-13  Dick Porter  <dick@ximian.com>
12015
12016         * socket-io.c: 
12017         * icall.c: Internal calls for Blocking, Select, Shutdown,
12018         GetSocketOption and SetSocketOption
12019
12020 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12021
12022         * assembly.cs: better resolver: use it instead of some kludgy
12023         code.
12024
12025 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12026
12027         * reflection.c: the best way to speed-up the compiler is to avoid
12028         infinite loops.
12029
12030 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12031
12032         * class.c (mono_class_vtable): changed the object layout
12033         (obj->vtable->class). 
12034         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12035
12036 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12037
12038         * assembly.c: look for assemblies in the assembly dir, too.
12039
12040 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12041
12042         * class.c: fix thinko in mono_class_from_type().
12043
12044 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12045
12046         * exception.h, exception.c: added TypeLoadException.
12047         * object.h, object.c: added mono_array_clone ().
12048         * icall.c: handle throwOnError in AssemblyGetType().
12049         Added Array.Clone().
12050         * opcode.h, opcode.c: use a single value for the opcode val.
12051         Compile fix for non-gcc compilers.
12052
12053 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12054
12055         * opcodes.c, opcodes.h: export interesting info about opcodes.
12056
12057 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12058
12059         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12060         icalls. 
12061
12062         * class.c (class_compute_field_layout): set element_class for enums
12063         (mono_class_create_from_typedef): set element_class for normal classes
12064
12065         * icall.c (ves_icall_System_Enum_get_value): impl.
12066
12067         * class.c (mono_class_create_from_typedef): do not set valuetype
12068         flag for System.ValueType and System.Enum
12069
12070 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12071
12072         * unicode.c (iconv_convert): fix big endian problem.
12073
12074 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12075
12076         * class.c: add asserts if we are ever going to scribble over memory.
12077         * socket-io.c: not all systems have AF_IRDA defined.
12078
12079 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12080
12081         * class.c (class_compute_field_layout): do not consider static
12082         fields to compute alignment
12083
12084 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12085
12086         * appdomain.c (mono_appdomain_get): impl.
12087         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12088
12089 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12090
12091         * icall.c: ignore "file://" prefix when loading an assembly.
12092
12093 2002-01-23  Dick Porter  <dick@ximian.com>
12094
12095         * socket-io.c:
12096         * icall.c:
12097         * Makefile.am: Added socket support
12098
12099 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12100
12101         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12102         code back.  This should return the assemblies that are loaded by
12103         the runtime on behalf of an application domain. 
12104
12105         The current implementation is still broken, it just returns every
12106         assembly loaded, but until we get real applications domain this
12107         will do.
12108
12109 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12110
12111         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12112         AppDomain object.
12113
12114 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12115
12116         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12117         the mono_class_from_name lookup.
12118         (ves_icall_get_parameter_info): ditto.
12119         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12120         method.
12121         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12122
12123 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12124
12125         * class.c: load also nested classes on class init.
12126         System.ValueType instance methods gets passed boxed
12127         values, unless methods in derived classed that get a pointer to the
12128         data.
12129         * icall.c: use better name parsing code in GetType().
12130         * image.c, image.h: add mono_image_loaded ().
12131         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12132         * reflection.c, reflection.h: added mono_reflection_parse_type().
12133
12134 2002-01-22  Veronica De Santis <veron78@interfree.it>
12135
12136         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12137         * threads.c : Added the implementation of internal calls for events
12138         * threads.h : Added prototypes of internal calls for events
12139         
12140 2002-01-21  Radek Doulik  <rodo@ximian.com>
12141
12142         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12143
12144 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12145
12146         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12147         (mono_class_value_size): use min_align
12148
12149 2002-01-20  Dick Porter  <dick@ximian.com>
12150
12151         * threads.h:
12152         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12153         so it compiles on w32.
12154
12155 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12156
12157         * metadata.c (mono_type_stack_size): impl.
12158
12159         * class.c (mono_class_get_field): impl. memberref token
12160
12161 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12162
12163         * icall.h : Added the internal calls mapping for CreateMutex_internal
12164                     and ReleaseMutex_internal.
12165         * threads.h : Added the prototype of mutexes internal calls.
12166         * threads.c : Added the implementations of mutexes internal calls.
12167
12168 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12169
12170         * metaparse.h: removed unused file.
12171         * reflection.c, reflection.h: added stream_data_align () function 
12172         to align data in streams and keep stream aligned. Add support for
12173         exception support in method headers.
12174
12175 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12176
12177         * unicode.c: make iconv_convert () return the number of bytess written
12178         in the output buffer.
12179
12180 2002-01-15  Dick Porter  <dick@ximian.com>
12181         * threads.c: Make the runtime's idea of infinite timeouts coincide
12182         with the class library's
12183
12184         Fix a particularly egregious bug in mono_thread_cleanup(). That
12185         code was so utterly bogus it must have been written on a Monday.
12186
12187 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12188
12189         * reflection.h: add subtypes field to TypeBuilder.
12190         * reflection.c: encode constants for literal fields.
12191         Handle subtypes. Fix user string token (and add a zero byte)
12192         at the end.
12193         
12194 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12195
12196         * class.c (mono_class_init): bug fix: assign slot numbers for
12197         abstract methods.
12198
12199 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12200
12201         * reflection.c: don't try to output a code RVA for abstract methods.
12202         Small fixes for method header format. Output parameter info to the
12203         ParamDef table. Save method overriding info to MethodImpl table.
12204         Fix property support. Allow typedef.extends to be a type in the
12205         building assembly.
12206         * verify.c: fix off-by-one error.
12207
12208 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12209
12210         * class.c: fix mono_class_from_mono_type () for szarray types.
12211         Remove unused cache check in mono_class_from_type_spec().
12212         * icall.c: *type_from_name () functions handle simple arrays and byref.
12213         * reflection.c: handle byref and szarray types. Handle methods without
12214         body (gets P/Invoke compilation working). Handle types and fields in
12215         get_token ().
12216         * reflection.h: add rank to MonoTypeInfo.
12217
12218 2002-01-10  Dick Porter  <dick@ximian.com>
12219
12220         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12221         internal calls
12222
12223 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12224
12225         * icall.c: initialize class in type_from_handle ().
12226         Loop also in parent classes for get_method ().
12227         * reflection.c: properly encode class and valuetype types.
12228         Start on encoding TypeBuilder types. Handle fieldrefs.
12229         Use correct length when registering a user string.
12230         Handle ConstructorBuilder and MonoMethod in get_token ().
12231         Make mono_type_get_object () aware of cached types.
12232         * object.c: back out change to mono_string_new ().
12233
12234 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12235         * object.c: mono_string_new should return a NULL when the string 
12236         passed in is NULL -- not try to deference it.
12237         
12238 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12239
12240         * icall.c: hack to make IsSubType work for TypeBuilders.
12241         * reflection.c: emit constructors before methods.
12242         Retrieve param names in mono_param_get_objects().
12243
12244 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12245
12246         * Makefile.am: fix list of headers and sources so automake 1.5
12247         doesn't complain. Removed \# at end of list.
12248
12249 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12250
12251         * reflection.c: get token for a method ref. Set return type of
12252         constructor to void.
12253         * loader.c: debug message.
12254         * class.c: typo fix.
12255
12256 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12257
12258         * icall.c: fix array init with rank > 1. FindMembers
12259         loops in parent class as well.
12260         * image.c: do not insert nested types in name cache.
12261         * reflection.c: warning fix.
12262         * reflection.h: add override method (for interface impl).
12263
12264 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12265
12266         * metadata.c: fix customattr decoding.
12267
12268 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12269
12270         * rawbuffer.cs: Added native Win32 implementation, avoids using
12271         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12272
12273 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12274
12275         * class.c: make the low-level routines handle the cache.
12276
12277 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12278
12279         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12280
12281 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12282
12283         * class.c: fix mono_array_element_size() for objects.
12284         * class.h, class.c: add properties to MonoClass and load them
12285         at init time.
12286         * icall.c: check with isinst() when assigning a value to an array
12287         instead of requiring the classes to match exactly.
12288         Implemented icall for System.Type::GetType().
12289         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12290         enums. Handle bindingflags when looking for methods and fields.
12291         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12292         and mono_metadata_methods_from_property().
12293         * reflection.h, reflection.c: added structures for propreties,
12294         parameters and enums. Implemented mono_property_get_object() and
12295         mono_param_get_objects().
12296
12297 2001-12-18  Dick Porter  <dick@ximian.com>
12298
12299         * file-io.c: Use mono_string_to_utf16() instead of
12300         mono_string_chars()
12301
12302         * object.c: Added mono_string_to_utf16(), which copies the non
12303         NULL-terminated MonoString into a new double-null-terminated
12304         buffer.
12305
12306 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12307
12308         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12309
12310 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12311
12312         * file-io.c: raise exceptions if handle is invalid.
12313
12314 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12315
12316         * assembly.c: yet another check for mscorlib.
12317         * class.c, class.h: load nesting info for classes.
12318         * icall.c: many new functions to support the Reflection classes.
12319         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12320         * reflection.h, reflection.c: mono_image_create_token(),
12321         mono_assembly_get_object(), mono_type_get_object(),
12322         mono_method_get_object(), mono_field_get_object(): methods to return
12323         objects that parallel the C representation of assemblies, types,
12324         methods, fields.
12325
12326 2001-12-11  Dick Porter  <dick@ximian.com>
12327
12328         * icall.c:
12329         * file-io.c: Internal calls for file IO.
12330
12331 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12332
12333         * tabledefs.h: missing FileAttributes.
12334         * verify.h, verify.c: use is_valid_string () to simplify and check for
12335         valid strings more correctly. Fix warnings and speeling.
12336         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12337         Check code: branches, maxstack, method calls.
12338
12339 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12340
12341         * object.c (mono_object_allocate): removed static, so that the jit
12342         can allocate value types.
12343
12344         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12345
12346 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12347
12348         * class.c: init enum types right away and register the
12349         token->MonoClass map in mono_class_create_from_typedef ().
12350         * verify.h, verify.c: first cut of the verifier.
12351         * pedump.c: add --verify switch to verify metadata tables.
12352         * tabledefs.h: add some missing enums.
12353
12354 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12355
12356         * class.c (mono_install_runtime_class_init): impl.
12357         (mono_class_init): renamed mono_class_metadata_init to
12358         mono_class_init, also removed the metadata_inited flag
12359
12360         * object.c (mono_object_isinst): use faster algorithm
12361
12362 2001-11-30  Radek Doulik  <rodo@ximian.com>
12363
12364         * mono-endian.h: reverted last change
12365         added function prototypes
12366
12367         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12368         add mono-endian.c back
12369
12370         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12371         for unaligned access, I've mistaked it with endianess. I am
12372         sorry.
12373         (mono_read16): fix reverted endianess
12374         (mono_read64): ditto
12375         (mono_read32): ditto
12376
12377 2001-11-30  Dick Porter  <dick@ximian.com>
12378
12379         * exception.c: Implement mono_exception_from_name()
12380
12381 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12382
12383         * metadata.h, metadata.c: remove params_size and locals_size and their
12384         calculation from the metadata code: they are only usefult to the
12385         interp.
12386
12387 2001-11-29  Radek Doulik  <rodo@ximian.com>
12388
12389         * object.c (mono_ldstr): swap bytes here, it's probably not the
12390         best place, but works for me now, I'll redo it once I know mono
12391         better, also note that I add PROT_WRITE and don't reset back, also
12392         note that it's only affects big endians, so x86 should be OK
12393
12394         * mono-endian.h (read16): use just glib macros for both endians
12395
12396         * mono-endian.c: removed as glib macros are used in in
12397         mono-endian.h so we don't need to care about endianess for read
12398         macros as glib does that for us already
12399
12400 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12401
12402         * class.h, class.h: take minimum alignment into consideration so
12403         that the fields of a class remain aligned also when in an array.
12404
12405 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12406
12407         * loader.h, loader.c: add mono_method_get_param_names().
12408         * class.c: 0-init class fields.
12409
12410 2001-11-26  Dick Porter  <dick@ximian.com>
12411
12412         * icall.c:
12413         * threads-types.h:
12414         * threads.c: New file that handles System.Threading on all platforms
12415
12416         * object.c: 
12417         * object.h: Remove the synchronisation struct from MonoObject,
12418         replace it with a pointer that gets initialised on demand
12419
12420         * Makefile.am: Replace all the system-specific threading code with
12421         a single file that uses the new wrapper library
12422
12423 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12424
12425         * class.c, class.h: add mono_install_trampoline() so that the runtime
12426         can register a function to create a trampoline: removes the ugly
12427         requirement that a runtime needed to export arch_create_jit_trampoline.
12428         * object.h, object.c: added mono_install_handler() so that the runtime
12429         can install an handler for exceptions generated in C code (with
12430         mono_raise_exception()). Added C struct for System.Delegate.
12431         * pedump.c: removed arch_create_jit_trampoline.
12432         * reflection.c: some cleanups to allow registering user strings and
12433         later getting a token for methodrefs and fieldrefs before the assembly
12434         is built.
12435         * row-indexes.h: updates and fixes from the new ECMA specs.
12436
12437 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12438
12439         * class.h, class.c: add enum_basetype field to MonoClass.
12440         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12441         to get index in the constant table reated to a field, param or
12442         property.
12443         * reflection.h, reflection.c: handle constructors. Set public-key and
12444         version number of the built assembly to 0.
12445         * row-indexes.h: update from new ECMA spec.
12446
12447 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12448
12449         * class.h, class.c: add a max_interface_id to MonoClass.
12450         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12451         since it's used to do that. Added mono_type_type_from_obj().
12452         Make GetType() return NULL instead of segfaulting if the type was not
12453         found. Handle simple arrays in assQualifiedName.
12454         * object.h: add a struct to represent an Exception.
12455         * reflection.c: output call convention in method signature.
12456         Add code to support P/Invoke methods and fixed offsets for fields.
12457
12458 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12459
12460         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12461         the value.
12462         * icall.c: use mono_array_addr instead of array->vector: fixes the
12463         reflection image writing.
12464         * reflection.c: init call convention byte to 0 in method signature.
12465         Encode the property signature. Don't output property-related methods
12466         twice. Really process the properties for a type (don't cast a field to
12467         a property, my mom always told me that).
12468         Fix 64 bit issues in pointer alignment in a different and more
12469         readable way.
12470
12471 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12472
12473         * loader.h: Removed type class from MonoDefaults, added monotype
12474
12475         * loader.c: Loaded MonoType, removed loading of Type
12476
12477         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12478         and fills in System.Type._impl with a RuntimeTypeHandle rather
12479         than the actual MonoClass *
12480
12481         (ves_icall_type_from_handle): change from type_class to
12482         monotype_class
12483
12484         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12485         implemented
12486
12487         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12488         implemented
12489
12490         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12491
12492         (ves_icall_System_Reflection_Assembly_GetType): implemented
12493
12494         (ves_icall_System_MonoType_assQualifiedName): implemented
12495
12496         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12497
12498 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12499
12500         * assembly.c (mono_assembly_open): Implement a cache for the
12501         assemblies. 
12502
12503         (mono_assembly_close): only destroy the assembly when the last
12504         reference is gone.
12505         
12506 2001-11-09  Dick Porter  <dick@ximian.com>
12507
12508         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12509
12510 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12511
12512         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12513
12514 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12515
12516         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12517         from Martin Weindel.
12518         * object.h: add mono_string_chars ().
12519
12520 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12521
12522         * reflection.c (build_compressed_metadata): Eliminates warnings
12523         and uses 64-bit clean code.
12524
12525         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12526         (mono_type_equal): Change signature to eliminate warnings.
12527
12528 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12529
12530         * icall.c, loader.c: remove the internalcall array constructors.
12531         Changes to match the new MonoArray structure.
12532         * object.h, object.c: an array object doesn't allocate an extra
12533         vector. Add mono_array_new_full () to create jagged arrays easily.
12534
12535 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12536
12537         * metadata.h, metadata.c: add mono_metadata_field_info () to
12538         retreive all the info about a field from vairous tables.
12539         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12540         * class.h, class.c: augment MonoClassField with more info.
12541         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12542         policy and load a field's RVA if needed.
12543
12544 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12545
12546         * class.c (mono_class_metadata_init): create a trampoline for all
12547         virtual functions instead of actually compiling them.
12548
12549 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12550
12551         * class.h, class.c: include name in MonoClassField.
12552         * class.c: fix fundamental type of System.Object and System.String.
12553         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12554         tokens in ldtoken.
12555         * icall.c: remove internalcalls for the Reflection stuff that is now
12556         done in C# code.
12557         * loader.c: mono_field_from_memberref () implementation.
12558         * mono-endian.c: thinko (s/struct/union/g).
12559         * object.c, object.h: make the mono_string_* prototypes actually use
12560         MonoString instead of MonoObject.
12561         * reflection.c, reflection.h: updates for changes in the reflection
12562         code in corlib: we use C structures that map to the actual C# classes.
12563         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12564         fat method header if needed and use the info from the ILGenerator for
12565         methods. Handle fields in types. Misc fixes.
12566
12567 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12568
12569         * class.c (mono_class_metadata_init): bug fix: always allocate
12570         space for static class data
12571
12572 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12573
12574         * class.c (mono_compute_relative_numbering): use relative
12575         numbering to support fast runtime type checks.
12576
12577 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12578
12579         * class.c (mono_class_create_from_typeref): added debugging output
12580         to print class name when MonoDummy is returned instead of real class
12581
12582 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12583
12584         * class.c (mono_class_metadata_init): interface offset table now
12585         contains pointers into the vtable - this is more efficient for the jit
12586
12587 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12588
12589         * class.c (mono_class_metadata_init): use a temporary vtable (the
12590         old algorithm only worked for the interpreter, but not for the jit)
12591
12592 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12593
12594         * loader.c (method_from_memberref): use mono_class_get to get the
12595         class of an array instead of using System.Array directly.
12596         (mono_get_method): also add MEMBERREF methods to the method cache
12597         which usefull for arrays.
12598
12599 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12600
12601         * pedump.c (arch_compile_method): added to compute vtable entry
12602
12603         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12604         number of interfaces.
12605         
12606         * class.h: merged MonoArrayClass into MonoClass
12607
12608         * class.c (mono_class_create_from_typedef): compute the vtable size and
12609         allocate space to include the vtable inside MonoClass
12610         (mono_class_metadata_init): initialize the vtable
12611
12612 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12613
12614         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12615         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12616         * image.c: endian fixes by Laurent Rioux.
12617         * object.h, object.c: rename MonoStringObject to MonoString and
12618         MonoArrayObject to MonoArray. Change some function names to conform to
12619         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12620         guint16* as first argument, so don't use char*.
12621         Provide macros to do the interesting things on arrays in a portable way.
12622         * threads-pthread.c: updates for the API changes and #include <sched.h>
12623         (required for sched_yield()).
12624         * icall.c: updates for the API changes above.
12625         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12626         platforms that need them.
12627
12628 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12629
12630         * class.c: set the correct type for all the fundamental
12631         type when loading the class.
12632
12633 2001-10-05  Dick Porter  <dick@ximian.com>
12634
12635         * threads-pthread.c (pthread_mutex_timedlock): Simple
12636         compatibility version for C libraries that lack this call.
12637
12638 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12639
12640         * class.c: MonoTypes stored in MonoClass are stored as
12641         fundamental MonoTypes when the class represents a
12642         fundamental type (System.Int32, ...).
12643         The TypeHandle return by ldtoken is a MonoType*.
12644         * icall.c: ves_icall_get_data_chunk () write out all the
12645         PE/COFF stuff. Implement ves_icall_define_method (),
12646         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12647         * image.c: properly skip unknown streams.
12648         * loader.h, loader.c: add type_class to mono_defaults.
12649         * metadata.c, metadata.h: export compute_size () as
12650         mono_metadata_compute_size () with a better interface.
12651         Typo and C&P fixes.
12652         * pedump.c: don't try to print the entry point RVA if there is no entry point.
12653         * reflection.c, reflection.h: many cleanups, fixes, output method
12654         signatures and headers, typedef and typeref info, compress the metadata
12655         tables, output all the heap streams, cli header etc.
12656         * row-indexes.h: typo fixes.
12657
12658 2001-10-04  Dick Porter  <dick@ximian.com>
12659
12660         * object.h: Add a synchronisation mutex struct to MonoObject
12661
12662         * object.c (mono_new_object): Initialise the object
12663         synchronisation mutexes
12664
12665         * icall.c: System.Threading.Monitor internal calls
12666         
12667         * threads-pthread.h:
12668         * threads-pthread.c: System.Threading.Monitor internal calls
12669
12670         * threads-types.h: New file, includes the system-specific thread
12671         structures
12672         
12673         * threads-pthread-types.h:
12674         * threads-pthread-types.c: New files, handle pthread-specific
12675         synchronisation types
12676
12677         * threads-dummy-types.h: 
12678         * threads-dummy-types.c: New files of dummy support for
12679         thread-specific types
12680
12681         * metadata.c:
12682         * image.c:
12683         * pedump.c: include mono-endian.h not endian.h
12684         
12685         * Makefile.am: More threads files.
12686         Name mono-endian.h not endian.h
12687
12688 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
12689
12690         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
12691         stuff and implement a few more bits.
12692         * icall.c: a field needs to be dereferenced twice. Do not use the same
12693         name for two variables in the same scope.
12694         * image.c, image.h: cleanups.
12695
12696 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
12697
12698         * class.c (mono_class_metadata_init): bug fix: compute the right size
12699
12700 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
12701
12702         * icall.c: implemented some of the Reflection internalcalls.
12703         * image.c, image.h: start writing out the PE/COFF image.
12704         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
12705         that does the reverse than decode_blob_size ().
12706         * object.c: use mono_metadata_encode_value (). Move here
12707         temporary implementation of mono_string_to_utf8 ().
12708         * rawbuffer.c: make malloc_map static.
12709
12710 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12711
12712         * metadata.c: fix type comparison for arrays.
12713         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
12714         Added a couple of new classes to monodefaults.
12715         * icall.c: added a couple of Reflection-related internalcalls.
12716         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
12717         Added a byval_arg MonoType to MonoClass.
12718
12719 2001-09-28  Dick Porter  <dick@ximian.com>
12720
12721         * icall.c:
12722         * threads-pthread.h: 
12723         * threads-pthread.c: Implemented internal calls for
12724         LocalDataStoreSlot operations.  Applied mutexes around all shared
12725         data.  Reworked the thread creation and Start() operations to
12726         avoid a race condition.
12727         
12728         * threads-dummy.h:
12729         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
12730
12731 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
12732
12733         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
12734
12735 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
12736
12737         * class.c, loader.c: warn and return NULL instead of erroring out.
12738         * icall.c: added System.AppDomain::getCurDomain().
12739         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
12740
12741 2001-09-25  Dick Porter  <dick@ximian.com>
12742
12743         * threads-pthread.h:
12744         * threads-pthread.c: Implemented timed thread joining and added
12745         System.Threading.Thread::Join_internal internal call
12746
12747         * icall.c: Added System.Threading.Thread::Join_internal internal call
12748
12749         * threads-dummy.h:
12750         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
12751
12752 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
12753
12754         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
12755         mono_string_intern () to implement the semantics of the ldstr opcode
12756         and the interning of System.Strings.
12757         * icall.c: provide hooks to make String::IsIntern and String::Intern
12758         internalcalls.
12759
12760 2001-09-23  Dick Porter  <dick@ximian.com>
12761
12762         * threads-dummy.c: 
12763         * threads-dummy.h: New files of dummy threading routines
12764
12765         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
12766         support code based on system specifics
12767
12768         Rename PTHREAD_LIBS to THREAD_LIBS
12769         
12770 2001-09-23  Dick Porter  <dick@ximian.com>
12771
12772         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
12773         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
12774         internal calls.
12775         (mono_thread_init): Set up a Thread object instance to return when
12776         the main thread calls Thread.CurrentThread
12777         (mono_thread_cleanup): Wait for all subthreads to exit
12778
12779         * icall.c: New internal calls for System.Threading.Thread::Sleep
12780         (including Schedule) and CurrentThread
12781
12782         * threads.h: New file, to insulate thread-specific stuff from the
12783         rest of the code
12784
12785 2001-09-21  Dick Porter  <dick@ximian.com>
12786
12787         * threads-pthread.h: 
12788         * threads-pthread.c: New file, for handling pthreads-style
12789         threading support.  Start() now starts a new thread and executes
12790         the ThreadStart delegate instance.
12791
12792         * icall.c: Added the internalcall for
12793         System.Threading.Thread::Start_internal
12794
12795         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
12796
12797 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
12798
12799         * loader.c: work around the different signatures for delegates
12800         constructors csc generates in compiled code vs the ones compiled in mscorlib.
12801
12802 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
12803
12804         * class.h, class.c: add mono_class_get_field_from_name ().
12805         * *: Fix C comments and other ANSI C issues.
12806
12807 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
12808
12809         * endian.h, assembly.c: fix some endianness issues.
12810
12811 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
12812
12813         * loader.h, load.c: add delegate_class to mono_defaults.
12814         Handle runtime provided methods in mono_get_method ().
12815
12816 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
12817
12818         * loader.c (mono_get_method): use pinvoke for internal call
12819
12820         * icall.c: use pinvoke for internal call
12821
12822         * loader.c (method_from_memberref): set the method name
12823
12824 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
12825
12826         * metadata.c: help the compiler generate better code for
12827         mono_class_from_mono_type ().
12828
12829 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
12830
12831         * class.c (mono_class_metadata_init): delayed computing of the
12832         class size to mono_class_metadata_init ()
12833
12834 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
12835
12836         * class.c, class.h: add an interfaces member to MonoClass.
12837         * image.c, image.h: add assembly_name field to MonoImage
12838         from the assembly table.
12839         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
12840
12841 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
12842
12843         * class.c: Handle Array in mono_class_from_mono_type ().
12844         * metadata.c, pedump.c: some endian fixes.
12845
12846 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12847
12848         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
12849         * metadata.c: fix small problem introduced with the latest commit.
12850
12851 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
12852
12853         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
12854         We don't need a MonoMetadata pointer anymore to compare signatures in
12855         mono_metadata_signature_equal (), update callers.
12856         Reduced memory usage an number of allocations for MonoMethodHeader and
12857         MonoMethodSignature.
12858
12859 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
12860
12861         * metadata.c: added compare for szarray.
12862
12863 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
12864
12865         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
12866         and add a couple more types to it and mono_defaults. Give an hint on
12867         classes that need implementing in our corlib and are referenced
12868         in mscorlib.
12869
12870 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
12871
12872         * class.h, class.c: keep track if a class is also an Enum.
12873         * loader.c: Implement a couple more types for use in libffi
12874         marshalling. Gives better diagnostics when failing to dlopen
12875         a library. Set method->klass for P/Invoke methods, too.
12876
12877 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
12878
12879         * class.c, class.h: add a MonoType this_arg to MonoClass that
12880         represents a pointer to an object of the class' type that
12881         can be used by the interpreter and later the type cache.
12882         Add best guess alignment info for valuetype objects.
12883
12884 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
12885
12886         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
12887         into MonoType: one less level of indirection and allocation and
12888         simplifies quite a bit of code. Added cache for MonoTypes that are
12889         used frequently, so that we don't need to allocate them all the time.
12890
12891 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
12892
12893         * class.c (mono_class_create_from_typedef): System.Enum is also a
12894         value type, although it does not derive from System.ValueType
12895         (maybe a bug in the ms compiler?)
12896
12897         * metadata.c (mono_type_size): return the right size for value types
12898
12899         * loader.c (mono_get_method): only initialize method header if not abstract
12900
12901         * class.c (mono_class_from_mono_type): use mono_default values. 
12902
12903 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
12904
12905         * *: use MonoClass pointers instead of <type_tokens>
12906         
12907         * class.h: new flag: metadata_inited.
12908
12909         * class.c (mono_class_metadata_init): impl.
12910         (mono_class_instance_size): impl.
12911         (mono_class_data_size): impl.
12912
12913 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12914
12915         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
12916         MonoClass now has the name and name_space fields. 
12917         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
12918         mono_get_method () takes and optional MonoClass as argument.
12919         Removed mono_typedef_from_name() and added mono_class_token_from_name()
12920         instead that takes advantage of a map from class names to typedef
12921         tokens in MonoImage.
12922
12923 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
12924
12925         * metadata.c: zero is not a valid alignment boundary.
12926         Merge MONO_TYPE_VOID in default decoding code.
12927
12928 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
12929
12930         * image.h: merged MonoMetadata into MonoImage
12931
12932         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
12933         identify the type of elements.
12934
12935 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
12936
12937         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
12938         * cil-coff.h: split MonoMSDOSHeader and add size info.
12939         * image.c: add some consistency checks.
12940         * metadata.c: fix row size computation: one programmer
12941         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
12942         add explanation for the locator routine.
12943         Fix decoding of size in method header.
12944         
12945 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
12946
12947         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
12948         (g_concat_dir_and_file): Bring g_concat_dir_and_file
12949         function from gnome-libs.  This uses the right path separator
12950         based on the OS, and also works around a bug in some systems where
12951         a double slash is not allowed. 
12952         (default_assembly_name_resolver): Use g_concat_dir_and_file
12953         (mono_assembly_open): ditto.
12954
12955 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
12956
12957         * metadata.c (mono_metadata_signature_equal): impl.
12958
12959         * *: void is now a realy MonoType (instead of using NULL)
12960         
12961         * metadata.c (do_mono_metadata_parse_type): use
12962         mono_metadata_parse_type to parse void value.
12963
12964 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
12965
12966         * metadata.c, metadata.h: in the signature and method header store
12967         only the space required for holding the loca vars and incoming arguments.
12968
12969 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
12970
12971         * metadata.c (do_mono_metadata_parse_type): treat void like any
12972         other type (instead of assigning NULL);
12973
12974 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
12975
12976         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
12977
12978 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
12979
12980         * image.c (do_mono_image_open): added a cache for arrays.
12981
12982 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
12983
12984         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
12985         decode a single column from a row in a metadata table and changes
12986         to take advantage of it in the typedef locator (gives a nice speed up).
12987         Store offset info for function params.
12988
12989 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
12990
12991         * image.h (MONO_IMAGE_IS_CORLIB): removed 
12992
12993 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
12994
12995         * assembly.c: how could mono_assembly_close () had ever worked?
12996         * metadata.c, metadata.h: provide offset info for local vars.
12997         Implement mono_type_size () to take care of alignment as well
12998         as size (it was mono_field_type_size in cli/class.c before).
12999
13000 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13001
13002         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13003
13004         * assembly.h (CORLIB_NAME): set to corlib.dll
13005
13006         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13007
13008 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13009
13010         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13011         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13012         tokentype.h: massive namespace cleanup.
13013
13014 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13015
13016         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13017
13018 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13019
13020         * metadata.c (mono_metadata_free_type): added check for type !=
13021         NULL (void) before calling mono_metadata_free_type()
13022
13023 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13024
13025         * metadata.h, row_indexes.h: added header with enumerations to use
13026         to index in the columns from tables in metadata and to decode coded
13027         tokens: we should start using this instead of embedding magic numbers
13028         all over the code.
13029
13030 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13031
13032         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13033         Move metadata_t info from cli_image_info_t to MonoImage, where
13034         it's easily accessible. Changed all the uses accordingly.
13035         Added the method and class caches to MonoImage.
13036         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13037         and mono_metadata_decode_value () signature to be more consistent
13038         with the other parse functions (and simplify code). Taken advantage
13039         of zero-length array allocation with GCC. Removed reduntant (and
13040         wrong) MonoFieldType struct and use MonoParam instead. Changed
13041         mono_metadata_parse_field_type () to use common code for parsing.
13042         Added mono_metadata_typedef_from_field () and
13043         mono_metadata_typedef_from_method () to lookup a typedef index from a
13044         field or method token.
13045         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13046
13047 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13048
13049         * metadata.c (mono_metadata_parse_field_type): Implement. 
13050         (do_mono_metadata_parse_type): Split engine from
13051         mono_metadata_parse_type, so that we can create smaller structures
13052         for things that just have one pointer to the MonoType (look at
13053         the MonoFieldType)
13054
13055 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13056
13057         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13058         as Jan Gray found out, it is incorrect. 
13059
13060 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13061
13062         * assembly.c: Implement asssembly loading.  This loads an image
13063         and loads all the referenced assemblies.  Come to think of it, we
13064         could always do lazy loading of the assemblies. 
13065
13066         * image.c (mono_image_open): Keep loaded images in a hashtable.
13067
13068         * image.h (MonoImage): Add reference count.
13069
13070 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13071
13072         * assembly.c (mono_assembly_open): Keep track of the file name in
13073         case the assembly has no ASSEMBLY table.
13074
13075         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13076         from get.c here.
13077
13078 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13079
13080         * metadata.c, metadata.h: decode local vars in method header
13081         parse function. Change callers accordingly.
13082
13083 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13084
13085         * metadata.h, cil-coff.h: protect against multiple inclusion.
13086         Added some new structures to hold information decoded from metadata:
13087         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13088         and relevant decoding/free functions.
13089         * metadata.c: implement decoding functions. Add warning for out of bounds
13090         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13091         all the info about a method signature and invocation. Remove check on
13092         uninitialized local var in parse_mh() and fix memory leak.
13093
13094 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13095
13096         * metadata.h: More macros.
13097
13098         * tokentype.h: New file.
13099
13100 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13101
13102         * assembly.c: added a consistency check and initialize
13103         some structures with g_new0().
13104         * metadata.c: fixed a couple more bugs in table size computation
13105         and add other checks for out-of bound access to metadata.
13106
13107 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13108
13109         * metatada.c: fix bugs computing table sizes. Spew a
13110         warning when index in string heap is out of bounds.
13111
13112 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13113
13114         * metadata.h: Add a couple of macros to manipulate tokens. 
13115
13116 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13117
13118         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13119         cli_section_tables).
13120
13121 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13122
13123         * metadata.c (mono_metadata_user_string): New function, provides
13124         access to the UserString heap. 
13125
13126 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13127
13128         * metadata.c: Add inline documentation.
13129
13130 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13131
13132         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13133         files. 
13134
13135 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13136
13137         * typeattr.h: New file, TypeAttribute flags. 
13138
13139 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13140
13141         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13142         mono_assembly_ensure_section): Section loading code.
13143         (load_section_tables): Load the sections.
13144
13145         * mono/metadata/metadata.c (mono_metadata_locate_token,
13146         mono_metadata_locate): Functions to locate the information
13147         definition given a token or a table and an index.
13148         (mono_metadata_compute_table_bases): New.
13149         (compute_size): New function to compute the sizes of the various
13150         tables.
13151
13152         * mono/metadata/metadata.h: Finish listing the different index
13153         types. 
13154
13155         * mono/metadata/pedump.c: Improve to dump new information.
13156
13157 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13158
13159         * mono/metadata/metadata.c: Entered all the tables matching
13160         Beta2. 
13161
13162         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13163