2005-01-08 Ben Maurer <bmaurer@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
2
3         * object.c (mono_object_get_size): New function to get the size of
4         an object instance.
5
6         * profiler.c (simple_allocation): Use above.
7
8 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9
10         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
11         ves_icall_System_AppDomain_getRootDomain (as it's not required to
12         get an appdomain by it's id and we can't assume the root's id is 0).
13         * domain-internals.h: Change the function prototype to match.
14         * icall.c: Change the icall table for AppDomain.
15
16 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
17
18         * locales.c (string_invariant_compare_char): Only compute
19         GUnicodeTypes in the case where we need them.  Test for ordinality
20         first and return if so.
21
22         From the commit:
23
24                 /*
25                  * FIXME: here we must use the information from c1type and c2type
26                  * to find out the proper collation, even on the InvariantCulture, the
27                  * sorting is not done by computing the unicode values, but their
28                  * actual sort order.
29                  */
30
31 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
32
33         * loader.c: for P/Invoke methods, allow the "Internal" shared
34         library name to refer to the calling process symbol namespace.
35
36 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
37
38         * Makefile.am: Add the security manager to the build.
39         * security-manager.c|h: New. Initialization of the security manager.
40
41 2005-01-07  Dick Porter  <dick@ximian.com>
42
43         * threads.c: 
44         * monitor.c: Update thread state during Monitor and WaitHandle
45         waits.  Fixes bug 71031.
46
47 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
48
49         * reflection.c (property_encode_signature): Correctly handle when the
50         property has no methods.
51
52 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
53
54         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
55         
56         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
57         fields from mb, not rmb. Fixes #71017.
58
59         * marshal.c (emit_ptr_to_str_conv): Add support for 
60         ByValTStr -> string conversion. Fixes #71015.
61
62         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
63
64         * mempool.c (mono_mempool_contains_addr): New helper function.
65
66 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
67
68         * metadata.c (mono_metadata_compute_size): Fix size calculation of
69         HasSematics encoded fields.
70         
71         * metadata.c (mono_type_to_unmanaged): Improve error message for 
72         invalid string marshalling.
73
74         * metadata.c: Fix warnings.
75         
76 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
77
78         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
79         profiler support.
80
81 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
82
83         * domain.c object.c domain-internals.h: Revert part of r38077 since the
84         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
85         tests.
86
87 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
88
89         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
90         so methods containing these can be AOTed.
91
92 2005-01-03  Martin Baulig  <martin@ximian.com>
93
94         * loader.c (find_method): Removed the hack for generic instances.
95         (method_from_memberref): If our parent is a generic instance, pass
96         its generic type definition to find_method() and then inflate the
97         method.
98         (mono_get_method_constrained): Pass the generic type definition to
99         find_method() and inflate the method later.
100
101         * class-internals.h (MonoStats): Added `generic_class_count'.
102
103         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
104         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
105
106         * reflection.c (mono_custom_attrs_from_params): Don't ignore
107         generic type definitions.
108
109 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
110
111         * loader.c icall.c: Fix warnings.
112
113 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
114
115         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
116         blittable types. Fixes #70864.
117
118 2004-12-29  Martin Baulig  <martin@ximian.com>
119
120         * icall.c
121         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
122
123         * reflection.c (mono_method_get_object): Create a
124         "System.Reflection.MonoGenericMethod" for inflated methods; don't
125         call mono_get_inflated_method().
126
127         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
128
129 2004-12-27  Martin Baulig  <martin@ximian.com>
130
131         * class-internals.h (MonoMethod): Added `is_inflated' flag.
132         (MonoMethodInflated): Added `inflated' field.
133
134         * class.c (mono_class_inflate_generic_method): Don't really
135         inflate the method here; just set the `is_inflated' flag in the
136         MonoMethod.
137         (mono_class_get_inflated_method): Actually inflate the method here
138         if it's not already inflated; we use the MonoMethodInflated's new
139         `inflated' field as a cache.
140
141 2004-12-26  Martin Baulig  <martin@ximian.com>
142
143         * class.c
144         (inflate_generic_class): Moved some code out of inflate_generic_type().
145         (mono_class_inflate_generic_method): If we're already inflated,
146         inflate the context and use the declaring method; ie. make sure
147         the declaring method of an inflated method is always the generic
148         method definition.
149         (mono_class_create_from_typedef): Create
150         `class->generic_container->context->gclass'.
151
152 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
153
154         * metadata-internals.h, marshal.c, reflection.c: More
155         MonoGHashTable->GHashTable.
156
157         * domain-internals.h, class.c: Change MonoGHashTable's into
158         GHashTables for some cases where no gc stuff is used
159
160         All users: update apis
161
162 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
163
164         * metadata.c (builtin_types): Make this `const'. Makes this get
165         put into the shareable section.
166         (mono_metadata_init): Casts to make gcc happy.
167
168 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
169
170         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
171
172 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
173
174         * icall.c: Added an internal call to retrieve the position and length
175         of assembly-level declarative security attributes (RequestMinimum, 
176         RequestOptional and RequestRefuse). This is used by the Assembly class
177         to re-create the corresponding permission sets.
178
179 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
180
181         * marshal.c: fix the stelemref wrapper to be type correct
182         (and faster).
183
184 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
185
186         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
187         to do key & 0x7fffffff. Hashtable already does this. It just
188         results in longer code.
189
190 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
191
192         * appdomain.c: Bump corlib version.
193         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
194         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
195         * reflection.c|h: Add functions to get declarative security infos
196         (blob position and length) for assemblies, classes and methods.
197
198 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
199
200         * reflection.c: sort the constant table (bug #70693).
201
202 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
203
204         * object-internals.h, threads.c, domain.c: add accessors for
205         the MonoThread and MonoDomain tls keys.
206
207 2004-12-18  Martin Baulig  <martin@ximian.com>
208
209         * class.c (inflate_generic_type): If we're inflating a generic
210         instance, set `ngclass->context->container = context->container';
211         ie. the container we inflated into.
212
213         * metadata.c (mono_metadata_parse_generic_param): Reflect above
214         inflate_generic_type() changes.
215
216 2004-12-17  Martin Baulig  <martin@ximian.com>
217
218         * class-internals.h
219         (MonoGenericClass): Replaced `MonoType *generic_type' with
220         `MonoClass *generic_class'.  Removed `dynamic_info'; if
221         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
222         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
223
224 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
225
226         * exception.c (mono_exception_from_token): New helper function.
227
228 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
229
230         * assembly.c (mono_assembly_load_with_partial_name): Call 
231         mono_assembly_loaded before invoking the preload hooks. Fixes
232         #70564.
233
234         * object-internals.h (MonoThread): Change culture_info and 
235         ui_culture_info into an array.
236
237         * threads.c: Cache culture info objects from more than one appdomain.
238
239         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
240         current UI culture.
241
242 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
243
244         * threads.h threads.c appdomain.c: Clear the culture_info field of
245         all threads during unloading if they point to an object in the dying
246         appdomain.
247
248 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
249
250         * culture-info.h (TextInfoEntry): New struct
251         * object-internals.h: sync with managed
252         * locales.c: fill the `text_info_data' field
253         * culture-info-tables.h: update
254
255 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
256
257         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
258         collector.
259
260 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
261
262         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
263         (ves_icall_ModuleBuilder_getMethodToken): Ditto
264
265 2004-12-12  Martin Baulig  <martin@ximian.com>
266
267         * mono-debug-debugger.c (write_type): If we're an enum and the
268         builtin types have already been initialized, call mono_class_init().
269
270 2004-12-11  Martin Baulig  <martin@ximian.com>
271
272         * metadata.c (mono_metadata_load_generic_params): Added
273         `MonoGenericContainer *parent_container' argument; automatically
274         compute `container->is_method'; pass the correct owner to
275         get_constraints().      
276
277         * reflection.c (compare_genericparam): Sort the GenericParam table
278         according to increasing owners. 
279
280 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
281
282         * profiler.c: allow disabling the default profiler.
283
284 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
285
286         * decimal.c, icall.c: allow disabling System.Decimal support.
287
288 2004-12-09  Marek Safar <marek.safar@seznam.cz>
289
290         * reflection.c: Add support for null attribute arguments.
291
292 2004-12-09  Martin Baulig  <martin@ximian.com>
293
294         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
295         names to get rid of compiler warnings.
296
297 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
298
299         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
300         mono_marshal_load_type_info (). Fixes #69625.
301         (mono_marshal_get_ptr_to_struct): Likewise.
302
303 2004-12-08  Martin Baulig  <martin@ximian.com>
304
305         * mono-debug.h: Bumped version number to 47.
306
307         * mono-debug-debugger.c
308         (mono_debugger_event_handler, mono_debugger_event): Take two
309         guint64 arguments insteed of a gpointer and a guint32.  
310
311 2004-12-08  Martin Baulig  <martin@ximian.com>
312
313         * debug-mono-symfile.h
314         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
315         `address' to `native_offset'.
316
317 2004-12-08  Martin Baulig  <martin@ximian.com>
318
319         * class.c (mono_class_create_from_typespec): Only inflate if we
320         either have `context->gclass' or `context->gmethod'.
321
322 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
323
324         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
325
326         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
327
328         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
329
330         * reflection.c (mono_assembly_get_object): Remove the workaround put
331         in for the release.
332         
333         * appdomain.c: Use the corlib_internal field from MonoAssembly.
334
335         * appdomain.c: Bump corlib version.
336
337         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
338         be visible in other appdomains.
339
340 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
341
342         * threads.c: Interlocked inc and dec for longs were messed up,
343         use a KISS based impl for this. Fixes 70234
344
345 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
346
347         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
348
349 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
350
351         * icall.c: fix to follow policy not to allow struct
352         arguments in icalls.
353
354 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
355
356         * process.c: make the patch that handles spaces in file paths work
357         on mono/windows too.
358
359 2004-12-06  Martin Baulig  <martin@ximian.com>
360
361         * class.c (mono_class_create_generic): Call
362         mono_class_setup_supertypes() if we're dynamic.
363         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
364
365 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
366
367         * object-internals.h: Add new fields to MonoThread.
368
369         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
370
371         * icall.c threads-types.h threads.c: Add new icalls.
372
373         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
374
375         * object-internals.h (MonoReflectionAssembly): Sync object layout with
376         managed side.
377
378         * appdomain.c: Bump corlib version.
379
380         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
381         internal assemblies. Fixes #69181.
382
383 2004-12-05  Martin Baulig  <martin@ximian.com>
384
385         * class.c (mono_class_inflate_generic_signature): Make this a
386         no-op if `context' is NULL or we don't have any type parameters;
387         also copy `sentinelpos'.        
388
389 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
390
391         * image.c: Add unbox_wrapper_cache.
392
393         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
394
395         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
396         function generator.
397         
398         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
399         Fixes #70173.
400
401         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
402         
403 2004-12-04  Martin Baulig  <martin@ximian.com>
404
405         * loader.c (mono_method_get_signature_full): New public function;
406         like mono_method_get_signature(), but with an additional
407         `MonoGenericContext *' argument.
408
409         * class.c (mono_class_inflate_generic_signature): Formerly known
410         as inflate_generic_signature(); make this public.
411
412 2004-12-04  Martin Baulig  <martin@ximian.com>
413
414         * metadata.c
415         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
416         instead of a `MonoGenericContainer *'.  
417         (mono_metadata_parse_array_full): Likewise.
418         (mono_metadata_parse_signature_full): Likewise.
419         (mono_metadata_parse_method_signature_full): Likewise.
420         (mono_metadata_parse_generic_inst): Likewise.
421         (mono_metadata_parse_generic_param): Likewise.
422         (mono_metadata_parse_mh_full): Likewise.
423         (mono_type_create_from_typespec_full): Likewise.
424
425 2004-12-03  Martin Baulig  <martin@ximian.com>
426
427         * class-internals.h (MonoGenericContainer): Replaced the
428         `MonoGenericContext * pointer with a `MonoGenericContext'
429         structure and made it the first element.
430
431 2004-12-03  Martin Baulig  <martin@ximian.com>
432
433         * class.c
434         (inflate_generic_type): Set the `context->container' when creating
435         a new MonoGenericContext.
436         (mono_class_inflate_generic_method): Likewise.
437         (mono_class_create_from_typespec): Just use `context->container'
438         to get the container.
439
440         * loader.c (method_from_methodspec): Set `context->parent' from
441         `context->container' - and if that's a method container, use its
442         parent.  Also set the `context->container' when creating a new
443         MonoGenericContext.
444         (mono_get_method_from_token): Use just `context->container' to get
445         the container.
446
447         * metadata.c (do_mono_metadata_parse_generic_class): Also set
448         `gclass->context->container'.
449
450         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
451         the `context->container' when creating a new MonoGenericContext.
452
453 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
454
455         * reflection.c (compare_genericparam): Sort params with identical
456         owner by their number. Fixes gen-111 on sparc.
457
458 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
459
460         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
461         around the domain changes.
462
463         * appdomain.c (mono_domain_unload): Handle the case when the thread
464         calling Unload is itself being aborted during unloading. Fixes #70022.
465
466         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
467
468         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
469         checkpoint_func as an icall so it gets a wrapper.
470         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
471         in the cross-appdomain wrappers too.
472
473         * threads.c (mono_thread_has_appdomain_ref): Make this public.
474
475         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
476
477         * reflection.c: Fix some memory leaks.
478         
479 2004-12-02  Martin Baulig  <martin@ximian.com>
480
481         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
482
483         * metadata.c (generic_class_cache): New static hashtable.
484         (mono_metadata_lookup_generic_class): New public method.
485
486 2004-12-02  Martin Baulig  <martin@ximian.com>
487
488         * class.c (mono_class_create_from_typedef): Call
489         mono_class_setup_parent() and mono_class_create_mono_type() before
490         parsing the interfaces.
491
492 2004-12-02  Martin Baulig  <martin@ximian.com>
493
494         * metadata.c (generic_inst_cache): New static hashtable.
495         (mono_metadata_lookup_generic_inst): New public function.
496         (mono_metadata_inflate_generic_inst): New public function.
497         (mono_metadata_parse_generic_inst): New public function.
498         (do_mono_metadata_parse_generic_class): Use the new
499         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
500         since this'll also use the cache.
501
502         * reflection.c (mono_reflection_bind_generic_method_parameters):
503         Use mono_metadata_lookup_generic_inst() to use the new cache.
504
505         * class.c (inflate_mono_type): Use
506         mono_metadata_inflate_generic_inst() to inflate a generic
507         instance; this'll also use the new cache.
508
509         * loader.c (method_from_methodspec): Use
510         mono_metadata_parse_generic_inst() and
511         mono_metadata_inflate_generic_inst() rather than parsing it
512         manually, so we can use the new cache.
513
514 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
515
516         * threads.c (wait_for_tids): Do not incorrectly free threads when 
517         the wait times out.
518
519 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
520
521         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
522         iter->args based on whether parameters are passed in registers (i.e.
523         MONO_ARCH_REGPARMS is defined)
524
525 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
526
527         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
528         the exception message. Fixes #70070.
529         (method_from_methodspec): Fix warnings.
530
531 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
532
533         * process.c: (complete_path) return the path quoted
534
535 2004-12-01  Martin Baulig  <martin@ximian.com>
536
537         * class-internals.h (MonoGenericInst): New structure.
538         (MonoGenericClass): Replaced `type_argc', `type_argv' and
539         `is_open' with `MonoGenericInst *inst'.
540         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
541         `is_open' with `MonoGenericInst *inst'.
542
543 2004-11-30  Martin Baulig  <martin@ximian.com>
544
545         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
546
547         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
548         to `generic_class_cache'.
549
550         * metadata.c
551         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
552         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
553         (mono_generic_inst_is_valuetype): Renamed to
554         mono_generic_class_is_valuetype().
555
556         * class-internals.h
557         (MonoGenericInst): Renamed to MonoGenericClass.
558         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
559         (MonoClass): Renamed `generic_inst' to `generic_class'.
560         (MonoGenericContext): Renamed `ginst' to `gclass'.
561
562         * object-internals.h
563         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
564
565         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
566         mono_reflection_generic_class_initialize().
567
568         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
569         now known as "System.Reflection.MonoGenericClass".
570         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
571
572 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
573
574         * class-internals.h: Added a flag field to MonoClass to cache the
575         declarative security attributes actions associated with the class.
576         * domain-internals.h: Added booleans to MonoJitInfo to cache the
577         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
578         applicable to the JITted method.
579         * reflection.c|h: Added functions to extract (as flags) which security
580         actions are available (declaratively) for a method, class or assembly.
581         * metadata.c|h: Added functions to search the declarative security
582         table in the metadata.
583         
584 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
585
586         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
587         EXPORTEDTYPES are already in the class name cache, so there is no
588         need to add extra code here to look at them. Just removes a bit of
589         cruft.
590
591         (ves_icall_System_Environment_get_TickCount): No need for #if
592         WINDOWS. We already have the code in io-layer.
593
594 2004-11-28  Martin Baulig  <martin@ximian.com>
595
596         * loader.c
597         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
598         Fixes gen-112.cs.
599
600 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
601
602         * assembly.c (do_mono_assembly_open): Instead of having a
603         conditional WITH_BUNDLE, incorporate support for bundles here, by
604         having a global `bundles' variable holding a pointer to the actual
605         bundles. 
606
607         (mono_register_bundled_assemblies): New API call used by the
608         bundle code. 
609
610         See mkbundle.1 for details.
611         
612 2004-11-27  Martin Baulig  <martin@ximian.com>
613
614         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
615         the vtable for generic methods.
616
617 2004-11-26  Martin Baulig  <martin@ximian.com>
618
619         * metadata.c
620         (mono_metadata_generic_method_hash): New public function.
621         (mono_metadata_generic_method_equal): Likewise.
622
623         * class-internals.h
624         (MonoGenericContainer): Added `GHashTable *method_hash'.
625
626         * reflection.c (ReflectionMethodBuilder): Added
627         `MonoGenericContainer *generic_container'.
628         (reflection_methodbuilder_to_mono_method): Don't create a new
629         MonoGenericContainer each time we're called.
630         (mono_reflection_bind_generic_method_parameters): Use
631         `container->method_hash' to cache the results so we don't create a
632         different method if we're called several times with the same
633         arguments.
634
635         * loader.c (method_from_methodspec): Use the new
636         `container->method_hash' here, too.
637
638 2004-11-26  Martin Baulig  <martin@ximian.com>
639
640         * class.c (inflate_generic_signature): Correctly compute
641         `res->has_type_parameters'.
642         (mono_class_vtable): Use the `has_type_parameters' flag to
643         determine whether we're a generic method.
644
645         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
646
647 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
648
649         * object.c (mono_runtime_run_main): Fix a small memory leak.
650
651 2004-11-25  Martin Baulig  <martin@ximian.com>
652
653         * class.c (set_generic_param_owner): Fixed the loop.
654
655 2004-11-25  Martin Baulig  <martin@ximian.com>
656
657         * object.c (mono_class_vtable): Don't create any JIT wrappers for
658         generic methods.
659
660 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
661
662         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
663         names. Fixes #69787.
664
665 2004-11-24  Martin Baulig  <martin@ximian.com>
666
667         * class.c (mono_class_create_generic_2): If we don't have a
668         `ginst->parent', inflate `gklass->parent' to get our parent.
669
670 2004-11-24  Martin Baulig  <martin@ximian.com>
671
672         * reflection.c (compare_genericparam): Correctly sort the
673         GenericParam table; fixes #69779.
674
675 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
676
677         * reflection.c: When writing a PE file, don't create a huge
678         buffer in memory. Just write the arrays we have to the file.
679         This reduces memory usage.
680
681         * metadata-internals.h: MonoDynamicStream pefile is no longer used
682         globally.
683
684 2004-11-17  Martin Baulig  <martin@ximian.com>
685
686         * class.c (mono_class_init): Don't setup `class->parent' for
687         dynamic instances; moved this to mono_class_generic_2().
688         (mono_class_create_generic): Also set `klass->inited' for dynamic
689         generic instances.
690         (mono_class_create_generic_2): Don't do anything for dynamic
691         generic instances.  Set `klass->parent' here and also call
692         mono_class_setup_parent() here. 
693
694         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
695         `MonoType *parent' argument; set `ginst->parent' before calling
696         mono_class_create_generic_2(), so we set the correct parent.
697
698 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
699
700         * reflection.c: allow getting attributes from ModuleBuilder
701         (used by ikvm).
702
703 2004-11-17  Martin Baulig  <martin@ximian.com>
704
705         * class.c (mono_class_create_from_typedef): If a type parameter is
706         inherited from an outer class, set its owner to that class.
707
708 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
709
710         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
711           for (int*) written size. This fixes bug #69592.
712
713 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
714
715         * icall.c: Added IsAuthenticodePresnet internal call.
716         * image.c|h: New function that check a MonoImage for an Authenticode
717         signature in the certificate PE data directory.
718         * security.c|h: New internal call to ask the runtime if an 
719         Authenticode signature seems referenced in the PE header.
720
721 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
722
723         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
724
725         * reflection.c (mono_image_create_pefile): Free the assembly streams
726         after writing out the assembly file.
727
728         * object.c (mono_runtime_run_main): Fix small memory leak.
729
730         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
731         property access modifiers. Fixes #69389.
732
733 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
734
735         * domain.c, object.c, object-internals.h, domain-internals.h,
736         object.h, marshal.c: keep dynamic code info per domain.
737
738 2004-11-15  Martin Baulig  <martin@ximian.com>
739
740         * class.c (mono_type_get_name_recurse): Put type arguments in
741         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
742         see bug #68387.
743
744 2004-11-15  Martin Baulig  <martin@ximian.com>
745
746         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
747         (mono_class_setup_vtable): When computing `the_cname' for a
748         generic instance, don't include the namespace since we'd otherwise
749         add it twice.
750
751 2004-11-15  Martin Baulig  <martin@ximian.com>
752
753         * class.c (mono_class_create_generic): Changed return type to void.
754         (mono_class_create_generic_2): New public function; setup
755         `class->method', `class->field' and `class->interfaces' here
756         instead of in mono_class_init().
757
758         * class.h (mono_class_create_generic): Moved to class-internals.h.
759
760 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
761
762         * reflection.c (mono_image_create_pefile): take a file HANDLE.
763         rather than writing to memory, write to this file. Right now,
764         we are just writting into a buffer, and copying that. However
765         we can avoid the buffer later.
766
767         (mono_dynamic_stream_reset): new function
768
769         * icall.c, object-internals.h: update for the above.
770
771 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
772
773         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
774         have been using gc'd memory. First it is slower, unlikely
775         the comment in the source code said, secondly, it increases
776         our footprint to do it in the gc.
777
778         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
779         the method so that it does not have to copy to managed code.
780
781 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
782
783         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
784
785 2004-11-12  Martin Baulig  <martin@localhost>
786
787         * reflection.c (mono_image_create_token): Allow generic method
788         definitions here, since they may appear in an `.override'; see
789         gen-98/gen-99 for an example.
790
791 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
792
793         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
794         #69365.
795
796         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
797         descriptive.
798
799 2004-11-11  Martin Baulig  <martin@ximian.com>
800
801         * class.c (mono_class_setup_vtable): In an explicit interface
802         implementation, the method name now includes the arity.
803
804 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
805
806         * object.c (mono_array_full_copy): Fix warning.
807
808 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
809
810         * appdomain.c: Removed look_for_method_by_name(). Use the new method
811         mono_class_get_method_from_name() instead.
812         
813         * class-internals.h: Added two new types of wrappers. 
814         Added MonoRemotingTarget enum. Added new trampoline function type, which
815         takes an additional MonoRemotingTarget value as parameter, so it is
816         possible to request a trampoline for a specific target.
817         
818         * class.c: Added new mono_class_get_method_from_name() method.
819         
820         * class.h: In MonoRemoteClass, we can have now to vtables, one for
821         general remoting sinks and one specific for cross domain calls.
822         
823         * debug-helpers.c: Added new wrapper names.
824         
825         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
826         of a remote class.
827         
828         * image.c: Porperly delete value objects form the remoting invoke hashtable.
829         
830         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
831         with several other methods (mono_marshal_get_xappdomain_dispatch,
832         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
833         and others) can generate a fast remoting wrapper for cross domain calls.
834         More information can be found in docs/remoting.
835         Other changes: Removed mono_find_method_by_name, and used
836         mono_class_get_method_from_name instead.
837         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
838         is stored in the remoting invoke hashtable.
839         
840         * marshal.h: published the new method for getting the xdomain wrapper,
841         and also added a method for getting the adequate wrapper for a given
842         method and target.
843         
844         * object-internals.h, object.c: Added a couple of methods for capying and
845         cloning arrays.
846         Modified mono_install_remoting_trampoline, which takes the new remoting
847         trampoline that has a remoting target as parameter.
848         mono_class_proxy_vtable now also takes a remoting target as parameter, and
849         will return the most suitable vtable for the target.
850         Added mono_remote_class_vtable, which returns the vtable of a remote class
851         (which can be the normal remoting vtable or the xdomain vtable).
852         
853         * threads.c: the xdomain invoke and dispatch wrappers must also be
854         protected against interruptions.
855
856 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
857
858         * icall.c: use memmove in BlockCopyInternal when the source and
859         destination arrays are the same.
860
861 2004-11-09  Martin Baulig  <martin@ximian.com>
862
863         * class-internals.h (MonoGenericContainer): Removed `method' and
864         `signature', replaced them with `is_method' and `is_signature'
865         flags.  Added `context'.
866
867         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
868         instead of a `MonoGenericContainer *'.
869
870         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
871         for dynamic type parameters.
872         (mono_metadata_load_generic_params): Setup `container->context'.
873
874         * reflection.c (mono_reflection_setup_generic_class): Setup
875         `tb->generic_container->context'.
876         (do_mono_reflection_bind_generic_parameters): Use
877         mono_class_inflate_generic_type() to correctly inflate types,
878         rather than using our own hack just for MONO_TYPE_VAR.
879
880 2004-11-09  Martin Baulig  <martin@ximian.com>
881
882         * class.c (mono_class_inflate_generic_method): Small fix; don't
883         crash here.
884
885         * icall.c
886         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
887         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
888         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
889         (ves_icall_Type_BindGenericParameters): Likewise.
890         (ves_icall_Type_get_IsGenericInstance): Likewise.
891         (ves_icall_Type_GetGenericParameterPosition): Likewise.
892         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
893         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
894         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
895
896 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
897
898         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
899         assembly versions and public key tokens. Fixes #69113.
900
901 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
902
903         * metadata.c: fix bug introduced with the type cache changes
904         on 2004-11-06.
905
906 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
907
908         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
909         the MonoClass pointer instead of the token in exception clauses.
910         * reflection.c: updates for the above and make the code not depend
911         on the structure of MonoExceptionClause.
912
913 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
914
915         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
916         Add support for dynamic assemblies. Fixes #69114.
917
918         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
919
920 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
921
922         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
923         since most only those methods use it. the code member of
924         MonoMethodPInvoke was dead, so that can be removed too. Also,
925         remove inline_count (again, not used), and move slot so that it
926         can share bits with some other flags. This saves 8 bytes in the
927         structure and gives us about 50 kb back for mcs helloworld.cs
928
929         * *.[ch]: Do naming changes for the above.
930
931         * loader.c (mono_method_get_header): Lazily init the header
932         on first access.
933         (mono_get_method_from_token): don't init the header here
934         (mono_free_method): the header may never be allocated
935
936         Overall, this saves 150 kb of unmanaged allocations
937         for mcs helloworld.cs. That accounts for 10% of the unmanaged
938         memory at runtime.
939         
940         * loader.c, loader.h (mono_method_get_header): new accessor.
941
942         * *.[ch]: use the above method. Prepares us to lazily load
943         the header.
944
945         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
946         three warnings, which are actual bugs (see 69206).
947
948         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
949         unused. Saves a cool 4 bytes / method.
950
951 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
952
953         * metadata.c (builtin_types): Add types for System.Object here.
954         (mono_metadata_parse_type_full): Cache MonoType*'s that are
955         for a class or valuetype from klass->this_arg or klass->byval_arg.
956
957         On mcs for a hello world, this gets us down from 21836 MonoType's
958         to 14560.
959
960         (mono_metadata_free_type): Account for the above change.
961
962 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
963
964         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
965         exception instead of asserting if name is null.
966         (ves_icall_System_AppDomain_GetData): Ditto.
967
968 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
969
970         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
971         EnumBuilder.
972
973         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
974         Return NULL when the domain does not have entry_assembly set.
975
976         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
977         Add a 'resource_modules' argument.
978         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
979
980         * reflection.c (mono_reflection_create_runtime_class): Move setting
981         of wastypebuilder here, so mono_get_type_object () returns a MonoType
982         for enums too.
983
984         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
985         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
986         Throw an ArgumentNullException if 'ptr' is null.
987
988         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
989         assemblies here. Fixes #69020.
990
991 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
992
993         * reflection.c (build_compressed_metadata): Fix the previous patch for
994         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
995         the stack.
996
997 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
998
999         * assembly.c (mono_assembly_names_equal): Allow a match if one of
1000         the cultures is false. Fixes #69090.
1001
1002         * reflection.c (build_compressed_metadata): Fix invalid memory read 
1003         detected by valgrind.
1004         
1005         * reflection.c (mono_reflection_get_type): Avoid triggering a 
1006         TypeResolve multiple times for the same type. Fixes #65577.
1007
1008 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
1009
1010         * marshal.c: Avoid using ldftn to call managed functions. It is
1011         much slower than just a call.
1012
1013         * reflection.c (mono_module_get_object): free the basename we
1014         allocate here from glib.
1015         
1016         * reflection.c (ensure_runtime_vtable): make sure to free
1017         overrides.  Also, we were allocating an array of MonoMethod not an
1018         array of MonoMethod*.
1019
1020         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
1021
1022         * image.c (mono_image_close): free image->guid here.
1023
1024 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
1025
1026         * reflection.c: Fix some spec conformance issues with the PE file
1027         structures so mcs compiled apps run on the Net 2.0 beta.
1028
1029 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
1030
1031         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
1032         Implement this. Fixes #67264.
1033
1034         * debug-helpers.h debug-helpers.c marshal.c: Move 
1035         mono_find_method_by_name to debug-helpers.c.
1036
1037 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
1038
1039         * object.c (mono_release_type_locks): type_initialization_hash is
1040         a GHashTable.
1041
1042         * reflection.c object.c object-internals.h: Fix warnings.
1043
1044         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
1045         without accessors. Fixes #61561.
1046
1047         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
1048         application base from the root domain if not set. Fixes #65641.
1049         (mono_runtime_init): Fix warning.
1050
1051 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1052
1053         * appdomain.c: call mono_thread_pool_init.
1054         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1055         of worker threads based on the number of CPUs and the environment
1056         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1057         for non-windows (windows) systems.
1058
1059 2004-10-27  Chris Toshok  <toshok@ximian.com>
1060
1061         * mono-debug-debugger.c (write_class): don't call mono_class_init
1062         here, as even with the check for (!klass->init_pending), we get
1063         into a situation where we're hitting cycles in class
1064         initialization.  Fixes #68816.
1065
1066 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1067
1068         * image.c: Avoid overwriting values in the loaded_images_hash when an
1069         assembly is loaded multiple times. Fixes #61152.
1070
1071         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1072         so multiple satellite assemblies for the same name can be loaded.
1073         Fixes #68259.
1074
1075         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1076         not NULL.
1077
1078         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1079         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1080
1081         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1082         pending finalizers are not invoked after the appdomain has been 
1083         unloaded. Fixes #67862.
1084
1085 2004-10-22  Martin Baulig  <martin@ximian.com>
1086
1087         * mono-debug-debugger.c
1088         (mono_debugger_runtime_invoke): Don't box valuetypes.
1089
1090 2004-10-22  Chris Toshok  <toshok@ximian.com>
1091
1092         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1093         don't hide private methods.
1094
1095 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1096
1097         * icall.c: Allows the runtime to "share" (when known) the public key
1098         token of an assembly. This avoid the need to recalculate the token 
1099         (from the public key) in managed code.
1100
1101 2004-10-21  Chris Toshok  <toshok@ximian.com>
1102
1103         * debug-helpers.c (append_class_name): argh, revert last patch.
1104         
1105 2004-10-21  Chris Toshok  <toshok@ximian.com>
1106
1107         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1108         not '/', so that it matches what the debugger uses to look up
1109         methods.
1110
1111 2004-10-21  Martin Baulig  <martin@ximian.com>
1112
1113         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1114         public method; this is called each time an exception is thrown and
1115         allows the debugger to use exception catch points.
1116
1117 2004-10-21  Martin Baulig  <martin@ximian.com>
1118
1119         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1120         the stack pointer and the exception object in some struct and pass
1121         that to the debugger.
1122
1123 2004-10-21  Chris Toshok  <toshok@ximian.com>
1124
1125         * mono-debug-debugger.c (do_write_class): add instance/static
1126         event support.  We don't expose "raise" or "other" yet.
1127         (event_is_static): new method.
1128
1129 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1130
1131         * mono-debug-debugger.c
1132         (mono_debugger_handle_exception): Remove
1133         bogus return value for fussy compilers.
1134
1135 2004-10-20  Martin Baulig  <martin@ximian.com>
1136
1137         * mono-debug-debugger.c
1138         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1139         (mono_debugger_handled_exception): Likewise.
1140
1141 2004-10-20  Martin Baulig  <martin@ximian.com>
1142
1143         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1144         MONO_DEBUGGER_EVENT_EXCEPTION.
1145
1146         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1147         public function to send the debugger a notification for an
1148         exception and inform it about a catch/finally clause.
1149
1150 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1151
1152         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1153         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1154         fix 2.95 build. 
1155
1156         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1157
1158 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1159
1160         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1161         marshalled as [In,Out]. Fixes #58325.
1162
1163 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1164
1165         * reflection.c (mono_method_body_get_object): Implement some fields.
1166
1167 2004-10-12  Martin Baulig  <martin@ximian.com>
1168
1169         * reflection.c (mono_reflection_bind_generic_parameters): Small
1170         fix, correctly retrieve our parent from a generic instance.
1171
1172 2004-10-12  Martin Baulig  <martin@ximian.com>
1173
1174         * metadata.c (mono_metadata_generic_param_equal): We always have
1175         an owner.
1176
1177         * class.c
1178         (mono_class_from_generic_parameter): We need to have an owner.
1179         (my_mono_class_from_generic_parameter): Likewise.
1180
1181         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1182         mono_reflection_create_generic_class() and added a new
1183         mono_reflection_setup_generic_class().  
1184         (mono_reflection_initialize_generic_param): If we're a nested
1185         generic type and inherited from the containing class, set our
1186         owner to the outer class.
1187
1188 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1189
1190         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1191
1192         * reflection.c (mono_method_body_get_object): New function to create
1193         a MethodBody object.
1194
1195         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1196
1197 2004-10-11  Martin Baulig  <martin@ximian.com>
1198
1199         * metadata.c (_mono_metadata_type_equal): Renamed to
1200         do_mono_metadata_type_equal() and made static.
1201
1202 2004-10-11  Martin Baulig  <martin@ximian.com>
1203
1204         * appdomain.c: Bump corlib version number to 28.
1205
1206 2004-10-10  Martin Baulig  <martin@ximian.com>
1207
1208         * class-internals.h
1209         (MonoGenericInst): Added `MonoGenericContainer *container'.
1210         (MonoGenericMethod): Likewise.
1211         (MonoGenericContext): Likewise.
1212         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1213
1214         * metadata.c
1215         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1216         (do_mono_metadata_parse_generic_inst): Likewise.
1217         (mono_metadata_parse_type_full): New public method.  This is the actual
1218         mono_metadata_parse_type() implementation - with an additional
1219         `MonoGenericContainer *' argument.
1220         (mono_metadata_parse_array_full): Likewise.
1221         (mono_metadata_parse_signature_full): Likewise.
1222         (mono_metadata_parse_method_signature_full): Likewise.
1223         (mono_metadata_parse_mh_full): Likewise.
1224         (mono_type_create_from_typespec): Likewise.
1225         (mono_metadata_interfaces_from_typedef_full): New public method;
1226         this is similar to the other _full() methods, but we take a
1227         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1228         (mono_metadata_parse_generic_param): Take an additional
1229         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1230         from that container.
1231         (mono_metadata_generic_param_equal): New static method to compare
1232         two type parameters.
1233         (_mono_metadata_type_equal): New static method; takes an
1234         additional `gboolean signature_only' argument - if true, we don't
1235         compare the owners of generic parameters.
1236         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1237         with a TRUE argument - do a signature-only comparision.
1238
1239         * loader.c: Use the new _full() methods and pass the
1240         MonoGenericContainer to them.
1241
1242         * object-internals.h (MonoReflectionTypeBuilder): Added
1243         `MonoGenericContainer *generic_container' field.
1244         (MonoReflectionMethodBuilder): Likewise.
1245
1246 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1247
1248         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1249         case initial images of dynamic assemblies.
1250
1251         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1252
1253         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1254
1255         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1256         length of event->other array.
1257         (typebuilder_setup_events): Ditto.
1258
1259         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1260         'assembly_by_name' and add an 'assemblies' list.
1261
1262         * assembly.h assembly.c: Add a new search hook for determining whenever
1263         an assembly is already loaded. Use this instead of searching in the
1264         loaded_assemblies list.
1265
1266         * domain.c appdomain.c: Implement the new search hook so loaded 
1267         assemblies are now scoped by appdomain. Fixes #67727.
1268
1269 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1270
1271         * threads.c (mono_thread_attach): Initialize synch_lock field so
1272         mono_thread_detach works again.
1273
1274         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1275         'lib' too. Fixes #63130.
1276
1277 2004-10-06  Jackson Harper  <jackson@ximian.com>
1278
1279         * culture-info-tables.h: regenerated.
1280
1281 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1282
1283         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1284         implemented by other interfaces in the result. Fixes #65764.
1285         
1286         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1287         Handle unloadable modules without crashing.
1288
1289         * image.c (load_modules): Revert the previous patch since modules must
1290         have a fixed index inside the array.
1291         
1292         * image.c (load_modules): Don't include native modules in the modules
1293         array.
1294
1295 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1296
1297         * reflection.h: Add param_defaults field.
1298
1299         * reflection.c: Add support for parameter defaults in dynamic methods.
1300         Fixes #64595.
1301
1302         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1303         an empty string when a type has no namespace. Fixes #64230.
1304
1305 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1306
1307         * tabledefs.h: Added "internal" security actions to support non-CAS
1308         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1309         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1310
1311 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1312
1313         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1314         constructor of abstract class. Fixes #61689.
1315
1316 2004-10-04  Martin Baulig  <martin@ximian.com>
1317
1318         * class-internals.h (MonoGenericContainer): New type.
1319         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1320         `MonoGenericContainer *generic_container'.
1321         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1322         `MonoGenericContainer *generic_container'.
1323
1324         * metadata.c (mono_metadata_load_generic_params): Return a
1325         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1326         removed the `num' argument.
1327
1328 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1329
1330         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1331         for dynamic images.
1332
1333         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1334         machine fields.
1335
1336         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1337
1338         * reflection.c: Save pe_kind and machine values into the generated
1339         image file.
1340
1341         * appdomain.c: Bump corlib version number.
1342
1343         * object-internals.h: Reorganize layout of LocalBuilder.
1344
1345         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1346         New helper function.
1347
1348         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1349         created MonoType for dynamic types. Fixes #66180.
1350
1351 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1352
1353         * threadpool.c: the ares hashtable needs a critical section around it.
1354         this prevents some nasty segfaults
1355
1356 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1357
1358         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1359         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1360         bug 67324).
1361         
1362 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1363
1364         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1365         
1366 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1367
1368         * image.c: Always canonicalize image file names, to avoid loading
1369         the same assembly twice when referenced using a relative path.
1370
1371 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1372
1373         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1374
1375         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1376
1377         * marshal.c: Fix warnings.
1378
1379 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1380
1381         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1382         attempting to marshal the delegate_trampoline as the method_addr.
1383         This patch has a static hashtable of marshalled delegates so that 
1384         we can map delegate_trampoline addresses back to delegates.  This
1385         allows a delegate passed to managed code to be passed back into native
1386         code.  Fixes #67039
1387
1388 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1389
1390         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1391
1392         * reflection.c (method_encode_code): Align method headers properly.
1393         Fixes #66025.
1394
1395 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1396
1397         * marshal.c: In the runtime invoke wrapper, reset the abort
1398         exception if it is cached. This avoids the automatic rethrowal of 
1399         the exception after the catch of the wrapper. Also check for pending
1400         interruptions before calling the managed method. This is done using
1401         the new method emit_thread_force_interrupt_checkpoint, since the
1402         normal checkpoint method is ignored when running the invoke wrapper.
1403         * object.c: If the abort exception is rethrown, set the abort_exc
1404         field of the thread, so it will be rethrown aftere every catch.
1405         * threadpool.c: Only run an interruption checkpoint if what has been
1406         requested is a stop of the thread (aborts will be ignored).
1407         * threads.c: By default, a thread will now never be interrumped while
1408         running the runtime invoke wrapper (this ensures that runtime_invoke
1409         will always return to the caller if an exception pointer is provided).
1410         There is a new special method mono_thread_force_interruption_checkpoint()
1411         to force an interruption checkpoint even if running a protected
1412         wrapper, which is used by the same runtime invoke wrapper to do a check
1413         at a safe point.
1414
1415 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1416
1417         * object.c, object-internals.h: Implemented mono_release_type_locks,
1418         which releases the cctor locks held by a thread.
1419         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1420         by a thread. Added mono_thread_exit() method to be used to safely stop
1421         a thread.
1422
1423 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1424
1425         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1426         Move null check before dereference.  Avoid indexing beyond the end
1427         of the 'modules' array.
1428
1429 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1430
1431         * metadata-internals.h (MonoImage): Add module_count field.
1432         * image.c (load_modules): Set image->module_count.
1433         (mono_image_load_file_for_image): Use image->module_count.
1434         * reflection.c (mono_image_load_module): Append to image->modules array 
1435         of dynamic assembly.
1436         (mono_module_get_object): Fix loop to actually increment index.
1437         Use image->module_count.
1438         * assembly.c (mono_assembly_load_references): Use image->module_count.
1439         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1440         Likewise.
1441
1442 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1443
1444         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1445         Avoid assert on generic types.
1446
1447 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1448
1449         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1450
1451         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1452
1453         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1454         function to convert a MarshalSpec structure to its managed counterpart.
1455
1456         * reflection.c: Fix warnings.
1457         
1458         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1459         field.
1460
1461         * icall.c (mono_create_icall_signature): Fix build.
1462
1463 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1464
1465         * icall.c: Add MakePointType icall.
1466
1467         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1468         warnings.
1469
1470 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1471
1472         * threadpool.c: reuse allocated slots in the queue.
1473
1474 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1475
1476         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1477
1478         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1479
1480         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1481         previous change.
1482
1483         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1484         ThrowOnUnmappableChar.
1485
1486         * icall.c (ves_icall_Type_GetPacking): New icall.
1487
1488 2004-09-24  Martin Baulig  <martin@ximian.com>
1489
1490         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1491
1492 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1493
1494         * appdomain.c:
1495         (mono_domain_set): allow setting a domain that is being unloaded.
1496         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1497         being unloaded.
1498
1499 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1500
1501         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1502         the GetCustomAttributes icall.
1503
1504 2004-09-23  Martin Baulig  <martin@ximian.com>
1505
1506         * object-internals.h (MonoReflectionGenericParam): Replaced
1507         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1508         with `guint32 attrs'.
1509
1510 2004-09-23  Martin Baulig  <martin@ximian.com>
1511
1512         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1513
1514 2004-09-23  Martin Baulig  <martin@ximian.com>
1515
1516         * object-internals.h (GenericParameterAttributes): New enum.
1517
1518 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1519
1520         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1521         
1522         * class.c (init_events): Fill out event->other field.
1523
1524         * class.c: Fix warnings.
1525
1526         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1527
1528 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1529
1530         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1531         walk which doesn't supply the IL offset.
1532
1533 2004-09-22  Martin Baulig  <martin@ximian.com>
1534
1535         * reflection.c (mono_reflection_setup_internal_class): If we're
1536         System.ValueType, System.Object or System.Enum, set
1537         `klass->instance_size' and create the vtable.
1538         (mono_reflection_create_internal_class): If we're an enum type,
1539         get the base class from our current corlib.
1540
1541 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1542
1543         * reflection.h (MonoResolveTokenError): New type.
1544
1545         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1546         icall.
1547
1548         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1549
1550 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1551
1552         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1553         Support also calling constructors, but only for already allocated objects.
1554
1555 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1556
1557         * reflection.c (type_get_qualified_name): If the klass is null
1558         return the typename to avoid a NullRefEx.
1559         (encode_cattr_value): Get the qualified name of the boxed type,
1560         not the underlying enumtype.  Fixes #62984.
1561
1562 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1563
1564         * marshal.c: Fix problems with previous checkin.
1565
1566 2004-09-21    <vargaz@freemail.hu>
1567
1568         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1569         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1570
1571         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1572
1573 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1574
1575         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1576         should only return a type for pointers, arrays, and passbyref types.
1577         Fixes bug #63841.
1578
1579 2004-09-21  Martin Baulig  <martin@ximian.com>
1580
1581         * domain.c (mono_debugger_check_runtime_version): New public
1582         function.
1583
1584         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1585
1586 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1587
1588         * reflection.c: Added missing sort to the declarative security 
1589         attributes table. MS implementation stops seeing the attributes if the
1590         token number regress in the table (as shown by ildasm and permview).
1591
1592 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1593
1594         * object-internals.h (MonoReflectionModule): Add 'token' field.
1595         
1596         * reflection.c (mono_reflection_get_token): Add support for Module
1597         and Assembly.
1598         (mono_module_get_object): Set 'token' field.
1599         (mono_module_file_get_object): Set 'token' field.
1600
1601         * icall.c: Add new Assembly and Module icalls.
1602
1603         * appdomain.c: Bump corlib version.
1604
1605 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1606
1607         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1608         tokens of metadata objects.
1609
1610         * reflection.h reflection.c (mono_reflection_get_token): New function
1611         to obtain the token of a metadata object.
1612
1613         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1614
1615 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1616
1617         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1618         
1619         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1620
1621 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1622
1623         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1624         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1625         AssemblyBuilder to access the permissions set in the class lib.
1626         * reflection.c: Added security attributes encoding step in 
1627         mono_image_build_metadata.
1628         * tabledefs.h: Added new security actions defined in 2.0:
1629         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1630
1631 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1632
1633         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1634         macro parameter.
1635
1636 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1637  
1638         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1639           finalized. There where random SIGSEVs at program termination, when
1640           an object being finalized was trying to do a string comparison and
1641           the current culture was already finalized.
1642  
1643 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1644
1645         * threads.c: call thread_cleanup before finishing the thread if we get
1646         there.
1647
1648 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1649
1650         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1651         assemblies from the parent. Fixes #65665.
1652
1653 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1654
1655         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1656         modifiers.
1657
1658 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1659
1660         * reflection.h: add prototype for mono_get_dbnull_object
1661         * reflection.c: add prototypes for get_default_param_value_blobs 
1662         and mono_get_object_from_blob for fussier compilers
1663
1664 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1665  
1666         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1667         false deadlock checks in class initialization.
1668  
1669 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1670
1671         * image.c (mono_image_addref): Fix comment.
1672
1673         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1674         possible.
1675
1676 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1677
1678         * reflection.c (mono_param_get_objects): Modified to return
1679         ParameterInfo.DefaultValue object.
1680
1681         (get_default_param_value_blobs):
1682         (mono_get_object_from_blob):
1683         (mono_get_dbnull_object): New helper routines. 
1684
1685         * object.c (mono_get_constant_value_from_blob): New helper routine
1686         carved out from get_default_field_value ()
1687
1688         * object-internals.h (mono_get_constant_value_from_blob): Added
1689         function declaration.
1690
1691 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1692
1693         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1694         referenced assemblies. Fixes #62135.
1695
1696         * exception.h exception.c (mono_get_exception_file_not_found2): New
1697         helper function.
1698
1699 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1700
1701         * class.h class.c: Add mono_type_get_underlying_type ().
1702
1703 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1704
1705         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1706         Fix GetTypes() to support dynamically created assemblies.
1707
1708 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1709
1710         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1711         
1712         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1713         previous patch.
1714
1715         * reflection.h reflection.c loader.c: Allow dynamic construction of
1716         pinvoke methods. Fixes #65571.
1717         
1718         * reflection.c (mono_reflection_get_type): Revert previous change since
1719         it causes regressions.
1720
1721 2004-09-08  Martin Baulig  <martin@ximian.com>
1722
1723         * class.c (class_compute_field_layout): Don't call
1724         mono_class_layout_fields() for open generic instances.
1725
1726 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1727         * threads.c appdomain.c: fix typo in GC macro
1728
1729 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1730
1731         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1732         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1733
1734 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1735
1736         * image.c (mono_image_close): Applied patch from 
1737         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1738         assembly is loaded multiple times from data.
1739         
1740         * image.c (mono_image_open): Fix warning.
1741
1742 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1743
1744         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1745         once. Fixes #58334.
1746         
1747         * reflection.c (mono_reflection_create_runtime_class): Initialize
1748         klass->nested_classes. Fixes #61224.
1749
1750 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1751
1752         * threads.c: sched_yield() on exit, to allow threads to quit.
1753
1754 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1755
1756         * object.c (mono_unhandled_exception): Remove leftover debug code.
1757
1758 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1759
1760         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1761
1762 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1763
1764         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1765         
1766         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1767
1768 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1769
1770         * marshal.c (emit_marshal_array): Null terminate string arrays.
1771         
1772         * marshal.c (raise_auto_layout_exception): Fix warning.
1773
1774         * reflection.c (mono_param_get_objects): Initialize the default value
1775         with DBNull.Value, not null. Fixes #62123.
1776
1777 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1778
1779         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1780         throw an exception with a cute explanation.
1781
1782 2004-09-06  Dick Porter  <dick@ximian.com>
1783
1784         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1785         Close the new process's thread handle, as we don't use it.  The
1786         handle stays around forever otherwise.
1787
1788 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1789
1790         * object.c (arith_overflow): Fix warning.
1791
1792         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1793         calling conventions in method refs. Fixes #65352.
1794
1795         * reflection.c: Fix warnings.
1796
1797 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1798
1799         * icall.c: Add a new icall for Array.Clear
1800
1801 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1802
1803         * object.c: When allocating an array, we have to throw
1804         an overflow exception if any of the lengths are < 0.
1805
1806 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1807
1808         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1809         properly. Also move implementation of string array marshalling to 
1810         managed code. Fixes #42316.
1811
1812 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1813
1814         * assembly.c: provide more information when loading an assembly fails.
1815
1816 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1817
1818         * filewatcher.c: don't expect the development fam package to be
1819         installed.
1820
1821 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1822
1823         * marshal.c: Make a copy of the signature cookie since it will be
1824         freed by the caller.
1825         
1826         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1827
1828         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1829
1830         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1831         marshal specs.
1832
1833         * marshal.c: More refactoring.
1834         
1835         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1836         smaller functions.
1837
1838 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1839
1840         * object.c: In mono_message_invoke, fill the output parameter array after
1841           calling the managed method (it was done before the call). This fixes
1842           bug #59299.
1843
1844 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1845
1846         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1847         as well.
1848
1849 2004-09-02  Martin Baulig  <martin@ximian.com>
1850
1851         * class.c (mono_class_instance_size): Don't allow generic type
1852         definitions or open generic instances.
1853         (mono_class_array_element_size): If we're a value type, call
1854         mono_class_instance_size() on the original class.
1855
1856         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1857         handle generic instances.
1858
1859         * mono-debug-debugger.c (write_type): Handle generic instances
1860         like classes.
1861
1862 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1863
1864         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
1865         the allocation request fails. Fixes #65089.
1866
1867         * object.c (mono_runtime_free_method): Do not call mono_free_method.
1868         
1869         * object.c (mono_runtime_free_method): New function to free a dynamic
1870         method.
1871
1872         * marshal.c (mono_delegate_free_ftnptr): New function to free the
1873         delegate trampoline.
1874
1875         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
1876         with hasthis as dynamic,
1877
1878         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
1879
1880         * domain.c (mono_jit_info_table_remove): New function to remove an
1881         entry from the jit info table.
1882
1883         * class-internals.h (MonoMethod): Add 'dynamic' field.
1884
1885         * loader.c: Fix warnings.
1886
1887 2004-09-01  Martin Baulig  <martin@ximian.com>
1888
1889         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
1890         instead of mono_debugger_lock() because the latter one is a no-op
1891         unless running in the debugger.
1892
1893 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1894
1895         * class.c (class_compute_field_layout): Classes with auto-layout or
1896         reference fields are not blittable.
1897         
1898 2004-09-01  Dick Porter  <dick@ximian.com>
1899
1900         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
1901         mono_image_get_filename() to get the assembly location.
1902
1903         * icall.c:
1904         * metadata.h: Fix compile warnings
1905
1906 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1907
1908         * class.c (class_compute_field_layout): System.Object is blittable.
1909
1910         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
1911         as in/out. Fixes #59909.
1912
1913 2004-09-01  Martin Baulig  <martin@ximian.com>
1914
1915         * metadata.h (MONO_TYPE_ISREFERENCE): Call
1916         mono_metadata_generic_inst_is_valuetype() if we're a generic
1917         instance to check whether our underlying type is a reference type.
1918
1919 2004-09-01  Martin Baulig  <martin@ximian.com>
1920
1921         * metadata.c (mono_type_size): If we're a generic instance, call
1922         mono_class_value_size() for value types.
1923
1924 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
1925
1926         * marshal.c: Implement more custom marshalling functionality. Fixes
1927         #64915.
1928
1929 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1930
1931         * mono-debug.c, debug-mono-symfile.c: add some locking love.
1932
1933 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
1934
1935         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
1936
1937         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
1938
1939         * icall.c: Fix some warnings.
1940
1941         * threads.c (abort_appdomain_thread): Fix unref errors.
1942         (mono_thread_current): Fix THREAD_DEBUG define.
1943
1944 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
1945
1946         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
1947
1948         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
1949
1950 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
1951
1952         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
1953         string arrays.
1954
1955 2004-08-28  Martin Baulig  <martin@ximian.com>
1956
1957         * metadata.c
1958         (mono_metadata_generic_inst_is_valuetype): New public function.
1959
1960         * metadata.h (MONO_TYPE_ISSTRUCT): Call
1961         mono_metadata_generic_inst_is_valuetype() if we're a generic
1962         instance to check whether our underlying type is a valuetype.
1963
1964 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
1965
1966         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
1967         #63768.
1968
1969 2004-08-25  Martin Baulig  <martin@ximian.com>
1970
1971         * loader.c (mono_get_method_from_token): Abstract methods can also
1972         be generic and thus have type parameters.
1973
1974         * metadata-internals.h
1975         (MonoDynamicImage): Added `GPtrArray *gen_params'.
1976
1977         * reflection.c (mono_image_get_generic_param_info): Don't create a
1978         metadata row, just add an entry to the `gen_params' array.
1979         (build_compressed_metadata): Sort the `gen_params' array and then
1980         actually create the metadata.
1981
1982 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1983
1984         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
1985
1986 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
1987
1988         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
1989
1990 2004-08-24  Martin Baulig  <martin@ximian.com>
1991
1992         * class.cs (mono_class_is_subclass_of): Like an interface, a
1993         generic instance also derives from System.Object.
1994
1995 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
1996
1997         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
1998         custom modifiers to be in any order. Fixes #61990.
1999
2000 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
2001
2002         * object.c: Register mono_object_new_fast icall.
2003         
2004         * object.c (mono_class_get_allocation_ftn): Return to calling
2005         mono_object_new_fast, since it seems faster to compute the object 
2006         size in unmanaged code than passing it as a parameter.
2007
2008         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
2009
2010         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
2011         this function with Boehm as the oom handler, so we don't have to check
2012         the result of GC_malloc.
2013
2014         * object.c: Remove checks for oom.
2015
2016         * object.h object.c (mono_class_get_allocation_ftn): New function to
2017         return the icall which can be used to allocate an instance of a given
2018         class. 
2019
2020         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
2021
2022         * class-internals.h: Add 'enabled' field.
2023
2024 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
2025
2026         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
2027
2028 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
2029         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
2030         value 0x0010.
2031
2032 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
2033
2034         * appdomain.c: use the Tls function for appdomain too,
2035         at Zoltan's request. Actually return in mono_context_get
2036
2037         * appdomain.c, profiler.c, threads.c: use __thread
2038
2039 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
2040
2041         * appdomain.c threads.c: Call GC_CreateThread on windows.
2042
2043         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
2044         multiple libraries since this don't work on windows.
2045
2046 2004-08-18  Martin Baulig  <martin@ximian.com>
2047
2048         * class-internals.h
2049         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
2050         MonoMethodHeader.
2051
2052         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2053         MonoMethodNormal since we also need it for abstract and interface
2054         methods.
2055
2056         * reflection.c
2057         (build_compressed_metadata): Sort the GenericParam table.
2058         (mono_image_create_token): Added `gboolean create_methodspec'
2059         argument; this is false when generating a MethodImpl token.
2060         (reflection_methodbuilder_to_mono_method): Abstract and interface
2061         methods may also have generic parameters.
2062
2063 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2064
2065         * appdomain.c: thread local alloc
2066
2067 2004-08-17  Martin Baulig  <martin@ximian.com>
2068
2069         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2070
2071         * icall.c
2072         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2073         argument.
2074
2075         * class.c (mono_type_get_full_name): New public function.
2076         (mono_type_get_name): Don't include the type arguments.
2077
2078 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2079
2080         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2081         for inclusion into the mono executable.
2082
2083 2004-08-16  Martin Baulig  <martin@ximian.com>
2084
2085         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2086         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2087
2088 2004-08-14  Martin Baulig  <martin@ximian.com>
2089
2090         * class.c (dup_type): Also copy the `byref' field.
2091
2092 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2093
2094         * reflection.c (create_dynamic_mono_image): Revert the last change 
2095         since it breaks bootstrap.
2096
2097 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2098
2099         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2100
2101         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2102         not free them with g_free.
2103
2104 2004-08-11  Martin Baulig  <martin@ximian.com>
2105
2106         * reflection.c (mono_reflection_setup_internal_class): Also call
2107         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2108
2109 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2110
2111         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2112         called during default (first) AppDomain creation. Keep track of
2113         Evidence when loading assemblies.
2114
2115 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2116
2117         * opcodes.c, opcodes.h: reduce runtime relocations.
2118
2119 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2120
2121         * culture-info.h, locales.c: fixes and chages to sue the new
2122         optimized format of the locale data.
2123         * culture-info-tables.h: regenerated.
2124
2125 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2126         
2127         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2128
2129 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2130
2131         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2132         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2133         * domain-internals.h: icall declaration.
2134         * icall.c: icall registration.
2135         * object-internals.h: New fields in MonoAssembly for CAS.
2136
2137 2004-08-05  Duncan Mak  <duncan@ximian.com>
2138
2139         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2140         CEE_LDELEM_ANY.
2141
2142 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2143
2144         * reflection.c: fix to deal with object[] arrays in custom ctors
2145         (bug #62550).
2146
2147 2004-08-05  Martin Baulig  <martin@ximian.com>
2148
2149         * class.c (mono_class_array_element_size): Added support for
2150         generic instances and correctly handle "recursive" types.
2151
2152 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2153
2154         * assembly.c: Fix warnings.
2155
2156 2004-08-04  Martin Baulig  <martin@ximian.com>
2157
2158         * class.c
2159         (mono_type_get_name_recurse): Added `gboolean include_arity'
2160         argument specifying whether or not we should include the generic
2161         arity in the type name.
2162         (_mono_type_get_name): New static function.
2163         (mono_class_setup_vtable): If we're a generic instance, don't
2164         include the generic arity in the names of explicit method
2165         implementations.        
2166
2167 2004-08-03  Martin Baulig  <martin@ximian.com>
2168
2169         * class.c (mono_type_get_name_recurse): Enclose the generic type
2170         arguments in `<', '>'.
2171
2172 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2173
2174         * gc.c: make GC warning messages use the trace API, they are just
2175         noise to most of the users.
2176
2177 2004-08-03  Martin Baulig  <martin@ximian.com>
2178
2179         * debug-mono-symfile.c (read_string): Correctly read the string.
2180
2181 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2182
2183         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2184         
2185         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2186         icalls.
2187         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2188
2189 2004-07-30  Martin Baulig  <martin@ximian.com>
2190
2191         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2192         Reflect latest symbol writer changes.   
2193
2194 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2195
2196         * object.c: always create an object if null is passed
2197         to Invoke() where a valuetype is expected.
2198
2199 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2200
2201         * marshal.c (mono_marshal_init): make managed
2202         signatures match native ones better for 64bits.
2203
2204 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2205
2206         * appdomain.c: hack to build correctly the private bin path on windows.
2207         Fixes bug #61991.
2208
2209 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2210
2211         * assembly.c: Load mscorlib from the correct framework directory
2212           (mono/<version>/mscorlib.dll).
2213         * appdomain.h: Added prototypes for new functions.
2214         * internals.h: Added some prototypes.
2215         * domain.c: When initializing the runtime, get from the executable and
2216           the configuration files the runtime version that the app supports.
2217           Added support methods for reading app.exe.config. Added list of versions
2218           supported by the JIT. Added two new methods: mono_init_from_assembly,
2219           which initializes the runtime and determines the required version from
2220           the provided exe file, and mono_init_version, which initializes
2221           the runtime using the provided version.
2222         * icall.c: Get machine.config from version-specific directory.
2223         * reflection.c: When generating an image, embed the version number
2224           of the current runtime.
2225
2226 2004-07-28  Dick Porter  <dick@ximian.com>
2227
2228         * socket-io.c
2229         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2230         returned sockaddr size before creating the remote address object.
2231         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2232         61608.
2233
2234 2004-07-28  Dick Porter  <dick@ximian.com>
2235
2236         * locales.c (string_invariant_compare_char): Fix invariant char
2237         compares between upper and lower cases.  Fixes bug 61458.
2238
2239 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2240         
2241         * marshal.c: actually cache stelem.ref wrappers.
2242         
2243 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2244
2245         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2246         sections and remove the mono_cli_rva_map () function.
2247
2248 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2249
2250         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2251         by Geoff Norton (<gnorton@customerdna.com>).
2252
2253 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2254
2255         * class.c: fix class loads for pointer types (typeof(int) !=
2256         typeof(int*)).
2257
2258 2004-07-27  Martin Baulig  <martin@ximian.com>
2259
2260         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2261         reading the debugging information from an external ".mdb" file.
2262
2263 2004-07-24  Martin Baulig  <martin@ximian.com>
2264
2265         * reflection.c (mono_image_get_type_info): Only write a class
2266         layout entry if we actually have a size or a packing size.
2267
2268 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2269
2270         * reflection.c (type_get_fully_qualified_name): 
2271         insert cast to get type checking of ?: with non-gcc compilers
2272
2273 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2274
2275         * rand.c: use g_getenv for both lookups of
2276         MONO_EGD_SOCKET
2277
2278 2004-07-17  Martin Baulig  <martin@ximian.com>
2279
2280         * reflection.c (mono_reflection_bind_generic_method_parameters):
2281         Set `gmethod->reflection_info'.
2282
2283 2004-07-17  Martin Baulig  <martin@ximian.com>
2284
2285         * class.c (mono_class_create_from_typedef): Insert the newly
2286         created class into the hash table before computing the interfaces
2287         since we could be called recursively.
2288
2289 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2290
2291         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2292         function to implement stelem.ref in managed code
2293         * class-internals.h, debug-helpers.c: a new wrapper type
2294         for the above.
2295
2296 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2297
2298         * gc.c: allow GC handles to work even when no GC is compiled in.
2299         Fix part of bug #61134 (GetAddrOfPinnedObject).
2300
2301 2004-07-13  Peter Williams  <peter@newton.cx>
2302  
2303         * process.c (complete_path): Make sure we don't attempt to execute
2304         directories.
2305  
2306 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2307
2308         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2309           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2310           and will add/subtract the hour if needed
2311
2312 2004-07-12  Martin Baulig  <martin@ximian.com>
2313
2314         * reflection.c (mono_field_get_object): If we have
2315         `field->generic_info', take the attributes from
2316         `field->generic_info->generic_type'.    
2317
2318 2004-07-12  Martin Baulig  <martin@ximian.com>
2319
2320         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2321         This function must be called before initializing the runtime.
2322         (mono_debug_init_1): New function; call this after initializing
2323         the runtime, but before loading the assembly.  It tells the
2324         debugger to load corlib and the builtin types.
2325
2326         * mono-debug-debugger.c: Did some larger changes in the debugging
2327         code; support recursive class declarations, make sure we actually
2328         add all classes.
2329
2330 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2331
2332         * debug-helpers.c: undo my previous patch and fixed the real issue in
2333         ../mini/exceptions-x86.c
2334
2335 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2336
2337         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2338         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2339         called from other .cctors.
2340
2341 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2342
2343         * loader.c: Removed the mono_loader_wine_init hack now that we are
2344         doing a managed version of Windows.Forms.
2345
2346 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2347
2348         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2349         threadpool.c, threads.c: remove static data from rootset.
2350
2351 2004-07-09  Dick Porter  <dick@ximian.com>
2352
2353         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2354         Don't do any more processing if the matched length was 0.  It was
2355         increasing the size of the string before.  Fixes bug 61167.
2356
2357 2004-07-09  Dick Porter  <dick@ximian.com>
2358
2359         * socket-io.h:
2360         * socket-io.c
2361         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2362         Add support for SO_PEERCRED if its available.
2363
2364 2004-07-09  Peter Bartok <pbartok@novell.com>
2365         * loader.c: winelib.exe.so error message is now only displayed if
2366         MONO_DEBUG is set. To help us avoid questions when people are trying
2367         out the new Managed.Windows.Forms.
2368
2369 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2370
2371         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2372         for isinst and castclass wrappers.
2373
2374         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2375         to libmetadata from the JIT, so they could be used by the marshalling
2376         code and the interpreter.
2377
2378         * marshal.c: Register marshalling related JIT icalls here instead of
2379         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2380         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2381
2382         * metadata.h: Remove unneeded marshalling conversions.
2383
2384         * opcodes.c: Update for new opcodes.
2385         
2386 2004-07-08  Martin Baulig  <martin@ximian.com>
2387
2388         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2389         (mono_debug_get_domain_data): Make this function static.
2390
2391 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2392
2393         * gc.c, object.h: add nice GC handle API for embedders.
2394
2395 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2396
2397         * reflection.c: more changes for the new api
2398
2399         * object.c: When we reflect on a field w/ a constant value, it
2400         will not have a memory location, so we must access metadata. Also,
2401         allow easier reading of strings so that we can read them from
2402         the constant data.
2403
2404         * class.c (mono_class_layout_fields): no need for literal fields here.
2405
2406         * class-internals.h: api changes for const fields
2407
2408         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2409
2410 2004-07-06  Martin Baulig  <martin@ximian.com>
2411
2412         * mono-debug.h: Increment version number to 44.
2413
2414         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2415         now a gpointer, rewrote this whole method.
2416
2417         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2418         function.  Add information about the wrapper in a new "misc table".
2419
2420         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2421         for the new misc table.
2422
2423 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2424
2425         * metadata-internals.h image.c: Add a cache for helper signatures.
2426
2427         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2428
2429 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2430
2431         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2432         delegates from a delegate. Fixes #61033.
2433         
2434         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2435         marshalling of stringbuilder arrays. Fixes #59900.
2436
2437 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2438
2439         * icall.c: Add EnumBuilder:setup_enum_type icall.
2440
2441 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2442
2443         * icall.c: Added a new icall for the property version of
2444         OffsetOfStringData.
2445
2446 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2447
2448         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2449         it has a constant size across platforms.
2450
2451         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2452         stack trace.
2453
2454 2004-06-29  Martin Baulig  <martin@ximian.com>
2455
2456         * mono-debug.c (mono_debug_add_method): Protect the whole function
2457         in mono_debugger_lock(), not just parts of it.
2458
2459 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2460
2461         * reflection.c: make sure padding bytes in heaps are zeroed.
2462
2463 2004-06-24  David Waite  <mass@akuma.org>
2464
2465         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2466         image.c, loader.c, locales.c, marshal.c, metadata.c,
2467         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2468         string-icalls.c, threads.c: change to C90-style comments from C99 /
2469         C++ -style
2470
2471 2004-06-24  Dick Porter  <dick@ximian.com>
2472
2473         * threads.c
2474         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2475         return createdNew.  Fixes bug 60412.
2476
2477         * threads-types.h: 
2478         * icall.c: Add createdNew parameter to CreateMutex icall
2479
2480 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2481
2482         * reflection.c, object-internals.h: save default value in params.
2483
2484 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2485
2486         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2487         no need to build a new path combining that with the application base.
2488         Fixes bug #60442.
2489
2490 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2491
2492         * reflection.c: fixed minor standard compliance issues.
2493
2494 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2495
2496         * reflection.c: fixed issue with encoding some custom attributes
2497         (arrays in properties and fields, bug #60411).
2498
2499 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2500
2501         * reflection.c: fix start address when copying the public key token.
2502
2503 2004-06-23  Martin Baulig  <martin@ximian.com>
2504
2505         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2506         the `exc' object in a static object to put it into the GC's root set.
2507
2508 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2509
2510         * reflection.c: make mono_reflection_setup_internal_class ()
2511         callable a second time to setup a new parent class.
2512
2513 2004-06-23  Dick Porter  <dick@ximian.com>
2514
2515         * threads.c: Check for WAIT_IO_COMPLETION return values.
2516
2517 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2518
2519         * appdomain.c: Removed the g_free on the public key token. Now copy 
2520         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2521         * assembly.c: Added public key token string value when loading 
2522         assemblies. Fix bug #60439.
2523         * icall.c: Added missing informations (like public key) in 
2524         GetReferencedAssemblies. Fix #60519.
2525         * image.h: Changed definition for public key token from const char*
2526         public_tok_value to guchar public_key_token [17];
2527         * reflection.c: Updated for changes to public key token.
2528
2529 2004-06-22  Lluis Sanchez Gual
2530
2531         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2532         for the field in base classes.
2533
2534 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2535
2536         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2537         mark headers as not supported, they are installed only for use by the
2538         debugger.
2539
2540 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2541
2542         * *.c, *.h: avoid namespace pollution in public headers.
2543
2544 2004-06-21  Martin Baulig  <martin@ximian.com>
2545
2546         * exception.c (mono_get_exception_security): It's in
2547         "System.Security", not in "System".
2548
2549         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2550         the exception classes.
2551
2552 2004-06-21  Martin Baulig  <martin@ximian.com>
2553
2554         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2555         Protect the exception object from being finalized.
2556
2557 2004-06-21  Martin Baulig  <martin@ximian.com>
2558
2559         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2560         public function.
2561
2562 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2563
2564         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2565         if it was not loaded before. Fix parts of #60439.
2566
2567 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2568
2569         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2570         code that was broken since Ben's change: wrappers are now
2571         dependent on the method signature only again.
2572
2573 2004-06-21  Martin Baulig  <martin@ximian.com>
2574
2575         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2576         added interface support.
2577
2578 2004-06-21  Martin Baulig  <martin@ximian.com>
2579
2580         * class.c (mono_vtable_get_static_field_data): New public method.
2581
2582 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2583
2584         * filewatcher.c : Windows build fix to be compliant with API changes.
2585
2586 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2587
2588         * class.h, class.c: more accessors.
2589         * metadata.h, metadata.c: prepare for hiding MonoType and
2590         MonoMethodSignature: people should use the accessors from now on
2591         outside of the tree.
2592
2593 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2594
2595         * *.c, *.h: more API cleanups.
2596
2597 2004-06-18  Jackson Harper  <jackson@ximian.com>
2598
2599         * assembly.c: Trace loading assemblies.
2600         * loader.c: Trace loading native libraries.
2601         * mono-config.c: Trace loading config files.
2602         
2603 2004-06-18  Dick Porter  <dick@ximian.com>
2604
2605         * locales.c: Tell ICU the lengths of strings, it can cope with
2606         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2607
2608 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2609
2610         * image.c: swapped name/filename;
2611
2612 2004-06-18  Martin Baulig  <martin@ximian.com>
2613
2614         * mono-debug-debugger.c (write_class): Write the parent class at
2615         the end of the header.
2616
2617 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2618
2619         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2620
2621 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2622
2623         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2624         (bundle_obj): New conditional define.
2625         (BUILT_SOURCES): Remove.
2626         ($(bundle_srcs)): Make parallel-make safe.
2627         (libmonoruntime_la_LIBADD): Make unconditional.
2628         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2629         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2630
2631 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2632
2633         * culture-info-tables.h: It was inconsistent with the latest
2634           supp info files.
2635
2636 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2637
2638         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2639         be loaded.
2640
2641         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2642         with gcc 2.95.
2643
2644 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2645
2646         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2647         cleaned up public header threads.h.
2648
2649 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2650
2651         * Makefile.am, *.c, *.h: more API cleanups.
2652
2653 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2654
2655         * Makefile.am: removed monosn from compilation.
2656         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2657         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2658         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2659         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2660         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2661         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2662
2663 2004-06-15  Jackson Harper  <jackson@ximian.com>
2664
2665         * assembly.c: Make locales lower case when searching the GAC for
2666         assemblies. gacutil will always make locales lowercase when
2667         installing so this effectively makes them case insensitive.
2668         
2669 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2670
2671         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2672         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2673           parameter which allows to choose whether the wait can be interrupted or 
2674           not. Also added the method mono_monitor_enter(), which locks the monitor
2675           using an infinite wait and without allowing interruption.
2676           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2677           interrupted.
2678         * object.h: Added new fields in MonoThread. suspend_event holds the event
2679           used to susped/resume the thread. synch_lock is the lock object to use for
2680           modifying the thread state.
2681         * threads.c: Use the new synch_lock object for locking, instead of "this",
2682           which can generate deadlocks.
2683           Moved thread state change in Thread.Sleep and Thread.Join from managed
2684           to unmanaged code. This avoids a deadlock when the thread was suspended
2685           just after acquiring the thread lock.
2686           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2687           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2688           which is not fully implemented in the io-layer.
2689         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2690
2691 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2692
2693         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2694         threads-types.h: more API cleanups.
2695
2696 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2697
2698         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2699         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2700         threadpool.c, threads.c: first pass at the exported API cleanup.
2701
2702 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2703
2704         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2705
2706 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2707
2708         * icall.c: added internalGetHome.
2709
2710 2004-06-14  Dick Porter  <dick@ximian.com>
2711
2712         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2713         possible to return successfully when '.' or '..' were the only
2714         entries in a directory, but were skipped.  The MonoIOStat was not
2715         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2716         Fixes bug 59574.
2717
2718 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2719
2720         * reflection.c: make binaries run on .Net 1.1 by default.
2721
2722 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2723
2724         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2725
2726 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2727
2728         * marshal.c: keep track of struct size with explicit layout
2729         (bug #59979).
2730
2731 2004-06-12  Martin Baulig  <martin@ximian.com>
2732
2733         * mono-debug-debugger.c: Comment out a debugging g_message().
2734
2735 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2736
2737         * reflection.c, reflection.h: do not free custom attrs that are cached.
2738         * icall.c: use braces to make code clearer.
2739
2740 2004-06-11  Martin Baulig  <martin@ximian.com>
2741
2742         * class.h (MonoInflatedField): New type.
2743         (MonoClassField): Replaced `MonoType *generic_type' with
2744         `MonoInflatedField *generic_info'.
2745
2746         * icall.c
2747         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2748
2749 2004-06-11  Martin Baulig  <martin@ximian.com>
2750
2751         * reflection.c (mono_image_create_method_token): Correctly encode
2752         varargs methods.
2753
2754 2004-06-11  Martin Baulig  <martin@ximian.com>
2755
2756         * metadata.c (mono_metadata_parse_method_signature): When parsing
2757         a MethodDef which has VarArgs, also set sentinelpos if we don't
2758         have any parameters.
2759
2760 2004-06-11  Martin Baulig  <martin@ximian.com>
2761
2762         * verify.c (mono_method_verify): In CEE_CALL, use
2763         mono_method_get_signature() to get the method's signature, unless
2764         we're a PInvoke method.
2765
2766 2004-06-10  Jackson Harper  <jackson@ximian.com>
2767
2768         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2769         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2770         logical name as the supplied path is just a prefix to the gac not
2771         the direct path to it.
2772         
2773 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2774
2775         * reflection.c: make the token for a created method match
2776         the token of the MethodBuilder it was created from
2777         (IKVM requires this behaviour now).
2778
2779 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2780
2781         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2782         reflection.c, socket-io.c: leak fixes.
2783
2784 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2785
2786         * icall.c: handle sentinel pos in vararg methods in position different
2787         from 0.
2788
2789 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2790
2791         * culture-info-tables.h: freshly generated.
2792
2793 2004-06-09  Martin Baulig  <martin@ximian.com>
2794
2795         * loader.c (mono_get_method_constrained): Call `mono_class_init
2796         (constrained_class)'.   
2797
2798 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2799
2800         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2801         any methods. Fixes #59629.
2802
2803 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2804
2805         * culture-info-tables.h: reflecting locale-builder updates.
2806
2807 2004-06-08  Dick Porter  <dick@ximian.com>
2808
2809         * object.h:
2810         * locales.c: Fixed compile warnings, including a real bug in
2811         CompareInfo_internal_compare.
2812         
2813 2004-06-08  Dick Porter  <dick@ximian.com>
2814
2815         * locales.c
2816         (ves_icall_System_Globalization_CompareInfo_internal_index):
2817         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2818         Double-check the resuls of usearches, because ICU currently
2819         ignores most of the collator settings here.  Fixes bug 59720.
2820         
2821 2004-06-08  Dick Porter  <dick@ximian.com>
2822
2823         * locales.c
2824         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2825         Fix memory leak and segfault-causing typo.  No idea how this one
2826         lasted so long without being noticed.
2827
2828 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2829
2830         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2831         any methods. Fixes #59629.
2832
2833 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2834
2835         * assembly.c:
2836         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2837         own the critical section before). Removed dead code (that's done
2838         in the preload hook).
2839
2840         (mono_assembly_load_with_partial_name): call the preload hook.
2841
2842 2004-06-08  Martin Baulig  <martin@ximian.com>
2843
2844         * metadata.c (mono_metadata_signature_alloc): Default
2845         `sentinelpos' to -1.
2846
2847         * reflection.c (mono_image_get_array_token): Likewise.
2848
2849 2004-06-08  Martin Baulig  <martin@ximian.com>
2850
2851         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2852
2853         * metadata.c (mono_metadata_parse_method_signature): When parsing
2854         a MethodDef which has VarArgs, set sentinelpos.
2855
2856         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2857         `gint16' since we're using -1 for non-varargs methods.
2858
2859         * reflection.c
2860         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
2861         (method_encode_signature): Added varargs support.
2862         (method_builder_encode_signature): Likewise.
2863         (mono_image_get_varargs_method_token): New static method.
2864         (mono_image_create_method_token): New public method; this is
2865         called via an icall instead of mono_image_create_token() when
2866         calling a varargs method.       
2867
2868 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
2869
2870         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
2871
2872 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2873
2874         * culture-info-tables.h : Reflecting the latest locale-builder that
2875           fixed empty array representation ({} to {0}).
2876
2877 2004-06-07  Jackson Harper  <jackson@ximian.com>
2878
2879         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
2880         looking up extra gac paths. This allows MONO_GAC_PATH to act
2881         exactly like a prefix.
2882         
2883 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2884
2885         * reflection.c (mono_reflection_type_from_name): Make a copy of the
2886         type name before modifying it. Fixes #59405.
2887
2888 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2889
2890         * culture-info.h: added fields for "all datetime patterns".
2891         * locales.c: (  ves_icall_System_Globalization_CultureInfo
2892           _construct_datetime_format ()): fill xxx_patterns fields.
2893         * object.h: added fields for "all datetime patterns" to
2894           MonoDateTimeFormatInfo.
2895         * culture-info-tables.h: reflecting locale-builder updates.
2896
2897 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2898
2899         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
2900         the event has no add and remove methods. Fixes #59629.
2901
2902 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
2903
2904         * object.c: Fixed possible integer overflow when allocating large
2905         strings.
2906
2907 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2908
2909         * culture-info-tables.h: reflecting locale-builder updates.
2910
2911 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2912
2913         * culture-info-tables.h: reflecting locale-builder updates.
2914
2915 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
2916
2917         * culture-info-tables.h: reflecting locale-builder updates.
2918
2919 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
2920
2921         * threads.c: Made Thread.Sleep abortable.
2922
2923 2004-06-02  Martin Baulig  <martin@ximian.com>
2924
2925         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
2926
2927         * debug-mono-symfile.h: Bumped symbol file version number to 37.
2928
2929 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
2930
2931         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
2932
2933 2004-05-30  Jackson Harper  <jackson@ximian.com>
2934
2935         * reflection.c: Do not hardcode assembly versions or public key
2936         tokens anymore. All of this except the corlib section was dead
2937         code anyways.
2938         
2939 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
2940
2941         * object.c (mono_runtime_invoke_array): Automatically create boxed
2942         objects for byref valuetypes if needed. Fixes #59300.
2943         
2944         * object.c (mono_method_return_message_restore): Handle 
2945         MONO_TYPE_OBJECT as well.
2946
2947 2004-05-28  Jackson Harper  <jackson@ximian.com>
2948
2949         * reflection.c: The modified type encoding was causing build
2950         problems. Reverted for now.
2951         
2952 2004-05-28  Jackson Harper  <jackson@ximian.com>
2953
2954         * reflection.c/h: Take an assembly ref so that we dont create
2955         fully qualified names when encoding types in the same assembly as
2956         the custom attribute being emitted.
2957         * appdomain.c: Increment version number.
2958         
2959 2004-05-26  Duncan Mak  <duncan@ximian.com>
2960
2961         * icall.c
2962         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
2963         Set the full version number (major, minor, build, revision).
2964
2965 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
2966
2967         * marshal.c (emit_struct_conv): increment src/dst after blit
2968         (mono_marshal_get_managed_wrapper,
2969         mono_marshal_get_native_wrapper): make sure we have marshalling
2970         info before marshalling params (info computation affects
2971         blittable)
2972
2973         * class.c (class_compute_field_layout): correctly deal with
2974         blittable
2975         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
2976         value types (as per what windows dows by default)
2977         (mono_class_setup_mono_type): System.ValueType is blittable
2978         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
2979         blittable
2980
2981         * marshal.c (mono_marshal_load_type_info): flag types  as
2982         non-blittable if the native layout doesn't match the managed
2983         layout
2984
2985 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2986
2987         * appdomain.c: don't add stuff in the private search path that is
2988         above the application base. If application base is not set, there's
2989         no private search path.
2990
2991 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
2992
2993         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
2994         byref struct arguments in native->managed marshalling.
2995
2996 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
2997
2998         * marshal.c (mono_marshal_get_runtime_invoke): correctly
2999         cache methods using signature (special case for methods
3000         that are value type or string class)
3001         
3002         * image.c (mono_image_close): clean up allocated GSList's
3003         in runtime_invoke_cache.
3004
3005 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3006
3007         * mono-config.c: set the correct path for mono_cfg_dir on windows when
3008         there's no MONO_CFG_DIR environment variable defined.
3009
3010 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3011
3012         * threads.c: windows version must be >= 0x0500 to include OpenThread.
3013
3014 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
3015
3016         * threadpool.c: Really wait for 500ms after the async call, even if the wait
3017           is interrumped.
3018         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
3019           before waiting for it, and call CloseHandle after the wait to unref it.
3020           This will make sure that handles are not disposed too early.
3021
3022 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3023
3024         * appdomain.c:
3025         * appdomain.h:
3026         * icall.c: removed
3027         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
3028         needed now.
3029
3030         * object.c: se the application_base only for the domain that runs
3031         Main. Fixes bug #59216,
3032
3033 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3034
3035         * appdomain.c:
3036         * object.c: only the domain in which Main is run have
3037         SetupInformation.ConfigurationFile set, so moved a few lines from
3038         appdomain.c to object.c.
3039
3040 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3041
3042         * appdomain.c: we tried to load [name].(dll|exe), but according
3043         to bug #57710, we must also try [culture]/[name].(dll|exe) and
3044         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
3045         There's a test case attached to bug #58922.
3046
3047 2004-05-27  Dick Porter  <dick@ximian.com>
3048
3049         * icall.c:
3050         * file-io.c: Implemented icalls for locking and unlocking regions
3051         in a file.
3052         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3053         FALSE on error (fixes both compiler warning and real bug.)
3054
3055 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
3056
3057         * culture-info-tables.h: reflecting locale-builder updates.
3058
3059           (Added missing ChangeLog entry for 05/26)
3060
3061 2004-05-27  Jackson Harper  <jackson@ximian.com>
3062
3063         * locales.c: Fix some cut and paste errors.
3064         
3065 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3066
3067         * mono-config.c: set the correct path for config. directory on windows.
3068
3069 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3070
3071         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3072           on win32.
3073
3074 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3075
3076         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3077         from pinvoke functions.
3078         
3079         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3080
3081 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3082
3083         * culture-info-tables.h: reflecting locale-builder updates.
3084
3085 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3086
3087         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3088         #59086.
3089
3090 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3091
3092         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3093         * icall.c: Modified icalls for RNG.
3094         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3095         Windows (CryptoAPI).
3096
3097 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3098
3099         * locales.c: Fix build.
3100
3101 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3102
3103         * culture-info-tables.h: reflecting locale-builder updates.
3104
3105 2004-05-25  Jackson Harper  <jackson@ximian.com>
3106
3107         * locales.c: When creating the current culture use the $LANGs
3108         specific culture. So DateTimeFormat and NumberFormat entries are created.
3109         
3110 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3111
3112         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3113         a char array as parameter.
3114
3115 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3116
3117         * image.c: In mono_image_open(), always use an absolute path name to
3118           look for already loaded images.
3119
3120 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3121
3122         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3123         missing in the windows build (like older cygwin include files).
3124
3125 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3126
3127         * icall.c: Fixed check for possible integer overflow in Buffer_
3128         BlockCopy icall. Replaced comments style // by /* */.
3129
3130 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3131
3132         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3133         
3134         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3135         check after MONO_VTADDR. Fixes pinvoke2.exe.
3136
3137         * marshal.h marshal.c metadata.h: Add beginnings of support for
3138         ftnptr -> delegate marshalling.
3139
3140 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3141
3142         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3143         * threads.c: Fix warnings.
3144
3145 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3146
3147         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3148         * icall.c: Registered icalls for Suspend and Resume.
3149         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3150           Thread.Abort.
3151         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3152         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3153         * process.c: Use WaitForSingleObjectEx.
3154         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3155           checkpoints.
3156         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3157           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3158           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3159           background threads. Added basic support for Abort in Windows.
3160           Start new threads using a managed delegate invoke wrapper. This wrapper
3161           has an interruption checkpoint that is needed since an interruption
3162           can be requested before the thread leaves the unmanaged code that starts 
3163           the thread.
3164         * marshal.c: Added interruption checkpoint after every native call, and
3165           also before managed calls for wrappers called from unmanaged code to
3166           go into managed code.
3167         * object.h: Added new field in MonoThread to keep track of interruption
3168           requests.
3169
3170 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3171
3172         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3173         calls.
3174
3175 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3176
3177         * appdomain.c:
3178         * assembly.c:
3179         * gc.c:
3180         * locales.c:
3181         * mono-config.c:
3182         * rand.c: getenv -> g_getenv (windows!)
3183
3184         * process.c: complete_path is also used on non-windows platforms.
3185
3186 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3187
3188         * icall.c: new signature for Process_Start.
3189
3190         * process.[ch]: new signature for Process_Start. If we're on windows
3191         and UseShellExecute is false, we have to search for the program by
3192         ourselves if we don't get a full path.
3193
3194 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3195
3196         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3197         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3198
3199 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3200
3201         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3202         Fixes bug #58373.
3203
3204 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3205
3206         * process.c: use double quotes to quote program name and arguments on
3207         windows. Fixes bug #58575.
3208
3209 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3210
3211         * file-io.c: don't return "." and ".." when using windows Find*File.
3212
3213 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3214
3215         * marshal.c: Don't pass wrappers to message init because method 
3216         addressed used to lookup metadata. part of remoting[2|3] fix.
3217
3218 2004-05-15  Jackson Harper  <jackson@ximian.com>
3219
3220         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3221         path is essentially the same as MONO_PATH except that it points to
3222         GACs instead of lib directories.
3223         * loader.h: The user gac is gone so we dont need function to
3224         enable/disable it.
3225         * mono-config.c: user gac option is now gone.
3226         
3227 2004-05-15  Jackson Harper  <jackson@ximian.com>
3228
3229         * culture-info.h: Make defines more consistent, add calendar data
3230         to the culture info table.
3231         * culture-info-tables.h: Add basic calendar data. Basically
3232         everyone gets default gregorian until all the data is
3233         updated.
3234         * locales.c: Use the new consistent defines. Set calendar data for
3235         culture info objects.
3236         * object.h: add a field for calendar data to CultureInfo
3237         
3238 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3239
3240         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3241         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3242         a signature.
3243         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3244         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3245         an extra param that is the pointer of the method to invoke. The IL for
3246         the invoke method is no longer specific to the method, but to the
3247         signature of the method. Thus, we can share the same code for multiple
3248         methods. This reduces the number of methods that have to be compiled.
3249
3250 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3251
3252         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3253
3254         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3255
3256         * icall.c: Optimize Buffer.BlockCopy.
3257
3258 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3259
3260         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3261         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3262         quote). Changed them to "MMMM yyyy".
3263
3264 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3265
3266         * rand.c
3267         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3268
3269 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3270
3271         * reflection.h: Updated after changes to managed structures.
3272
3273         * appdomain.c: Bump corlib version.
3274
3275 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3276
3277         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3278         windows.
3279
3280 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3281
3282         * Makefile.am: link to ../os/libmonoos.la on windows.
3283
3284         * assembly.c:
3285                 -If MONO_DEBUG, warn about non-existing directories in
3286                 MONO_PATH.
3287                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3288                 compile time variable.
3289                 -Removed init_default_path and call mono_set_rootdir from
3290                 libmonoos.a instead (windows only).
3291
3292         * assembly.h: declare mono_assembly_getrootdir().
3293
3294         * domain.c:
3295         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3296
3297         * loader.c: s/getenv/g_getenv/
3298
3299 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3300
3301         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3302
3303         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3304
3305         * metadata.h: Add new marshalling conversions.
3306
3307         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3308         function.
3309
3310         * reflection.c (mono_reflection_get_type): Lookup the type in all
3311         modules of a multi-module assembly. Fixes #58291.
3312
3313 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3314
3315         * threads.c: Before aborting a background, set the StopRequested
3316         state.  This avoids throwing the Abort exception.
3317         In mono_thread_manage, don't continue with the shutdown until all
3318         aborted threads have actually stopped.
3319
3320 2004-05-10  Jackson Harper  <jackson@ximian.com>
3321
3322         * locales.c: Remove the modifier from culture names.
3323         
3324 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3325
3326         * Makefile.am: monosn is not installed any more. It has been deprecated
3327         in favor of sn.
3328
3329 2004-05-07  Jackson Harper  <jackson@ximian.com>
3330
3331         * locales.c
3332         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3333         Fix array construction, add bailout if the length is 0.
3334
3335 2004-05-07  Dick Porter  <dick@ximian.com>
3336
3337         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3338         machine doesn't have a DNS entry.  Patch by Urs Muff
3339         (umuff@quark.com), fixes bug 57928.
3340
3341 2004-05-06  Jackson Harper  <jackson@ximian.com>
3342
3343         * reflection.c: Handle null PublicTokens properly. alloc mem for
3344         assembly names culture so we dont crash when freeing it.
3345         
3346 2004-05-06  Jackson Harper  <jackson@ximian.com>
3347
3348         * assembly.c: Check the usergac when loading with partial names.
3349         
3350 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3351
3352         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3353         does nothing for now (not required for Linux/Windows) but the class
3354         library can call it (and a newer or modified runtime could need it).
3355         * icall.c: Registred icall.
3356
3357 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3358
3359         * loader.c: prints a message on module loading error we set MONO_DEBUG
3360         environment variable.
3361
3362 2004-05-05  Jackson Harper  <jackson@ximian.com>
3363
3364         * appdomain.c: Handle PublicKeyToken=null properly.
3365         
3366 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3367
3368         * environment.c|h: Added icall ves_icall_System_Environment_
3369         GetOSVersionString to get the current OS version as a string.
3370         * icall.c: Registred icall.
3371
3372 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3373
3374         * object.c: in mono_object_get_virtual_method(), take into account that
3375         non-virtual methods don't have a slot in the vtable. Check needed when
3376         the object is a proxy.
3377
3378 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3379
3380         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3381         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3382
3383         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3384
3385         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3386         passed when a valuetype is expected.
3387
3388         * object.c (mono_unhandled_exception): Only set the exit code if the
3389         exception happens in the main thread. Fixes thread5.exe.
3390
3391         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3392         invalid names. Fixes #58047.
3393
3394 2004-05-03  Jackson Harper  <jackson@ximian.com>
3395
3396         * assembly.c: This line was committed accidently and is unneeded.
3397         
3398 2004-05-03  Jackson Harper  <jackson@ximian.com>
3399
3400         * icall.c: Add new icall for Assembly::LoadWithPartialName
3401         * assembly.c/.h: new function that probes the GAC to load partial
3402         assembly names by Paolo Molaro.
3403         
3404 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3405
3406         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3407         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3408         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3409         full type name.
3410
3411 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3412
3413         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3414         * reflection.c: fix bug when parsing a full type name and Version is not
3415         the last thing in the string.
3416
3417 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3418
3419         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3420         crashes when it is freed.
3421
3422 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3423
3424         * assembly.c: print the compat warning to stderr.
3425
3426 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3427
3428         * assembly.c (mono_assembly_load_references): Add a compatibility
3429         hack to run old applications that might be still referencing the
3430         3300-based assemblies, only do this for System.xxx.
3431
3432 2004-05-01  Jackson Harper  <jackson@ximian.com>
3433
3434         * appdomain.c: If the culture is neutral we set it to "".
3435         
3436 2004-04-29  Jackson Harper  <jackson@ximian.com>
3437
3438         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3439
3440 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3441  
3442         * string-icalls.c: added low overhead function for copying chars
3443         * icall.c: added needed icall for the above function
3444  
3445 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3446
3447         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3448         Environment.GetLogicalDrives.
3449
3450 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3451
3452         * rand.c: try and talk to egd or prngd
3453         for random bytes if opening devices fail.
3454
3455 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3456
3457         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3458         alignment for the type using the native alignment of its members 
3459         instead of using klass->min_align.
3460
3461         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3462
3463 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3464
3465         * file-io.c:
3466         * socket-io.c: added check for sys/aio.h.
3467
3468 2004-04-28  Dick Porter  <dick@ximian.com>
3469
3470         * threads.c: Don't abort a thread thats already aborting, when
3471         terminating everything.
3472
3473 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3474
3475         * icall.c: added 2 new async calls for Socket.
3476
3477         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3478         IO on *nix systems.
3479
3480         * threadpool.c: removed unused variable.
3481
3482 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3483
3484         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3485
3486 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3487
3488         * locales.c: put back string_invariant_tolower () and
3489         string_invariant_toupper ().
3490
3491 2004-04-26 David Waite <mass@akuma.org>
3492
3493         * file-io.h:
3494         * socket-io.h:
3495         * threads.h:
3496         * unicode.h: remove comma from end of enumeration declarations
3497
3498 2004-04-26 David Waite <mass@akuma.org>
3499
3500         * debug-mono-symfile.h:
3501         * decimal.c:
3502         * mono_debug.h:
3503         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3504
3505
3506 2004-04-26  Jackson Harper  <jackson@ximian.com>
3507
3508         * appdomain.c: Increment version number.
3509         
3510 2004-04-26  Jackson Harper  <jackson@ximian.com>
3511
3512         * appdomain.c: Set assembly references public token value when
3513         PublicKeyToken is specified, not the hash_value. Free public token
3514         values when free assembly name data. Previously the public key
3515         token was hex decoded, however we are using hex encoded public key
3516         tokens, so this is not neccasary.
3517         * assembly.c: Lookup assemblies in the gac if their public token
3518         value is set. Add function to allow enabling user gac
3519         lookups. Specify whether or not the assembly was loaded from the
3520         GAC. Compare full assembly names when checking the cache for
3521         assemblies (Temporarily disabled see comment in code). Remove
3522         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3523         specifies trace-loader they get extra info to stdout on the
3524         loading of assemblies.
3525         * image.h: Add a field for an assembly references public token
3526         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3527         whether an assembly has been loaded from the GAC.
3528         * image.c: Remove a corlib -> mscorlib name mapping.
3529         * loader.h: Add function to enable/disable the user gac.
3530         * mono-config.c: Check if the usergac is enabled in the config
3531         file.
3532         * icall.c: New icall to determine whether or not an assembly has
3533         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3534         * tabldefs.h: Add constant for assemblyref flag that specifies a
3535         full public key is used instead of a public token.
3536         * reflection.c: Remove mscorlib -> corlib mappings. Set
3537         PublicTokenValue instead of hash value. This value is a hex
3538         string so it does not need to be expanded.
3539
3540 2004-04-26  Martin Baulig  <martin@ximian.com>
3541
3542         * mono-debug-debugger.c (mono_debugger_initialize): Set
3543         `mono_debugger_initialized' before calling mono_debug_lock().
3544
3545 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3546
3547         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3548           InternalToUpper/InternalToLower.
3549         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3550           removed invariant culture shortcut.  This is now done in managed code.
3551         * locales.c: (string_invariant_toupper/tolower) removed.
3552
3553 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3554
3555         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3556         Added Poll internal call.
3557
3558         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3559         call for Poll. Select was too heavy for polling a single socket.
3560
3561         * threadpool.[ch]: added mono_threadpool_cleanup.
3562         * threads.c: use it. Don't use Thread_Abort on windows.
3563
3564 2004-04-23  Martin Baulig  <martin@ximian.com>
3565
3566         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3567
3568 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3569
3570         * icall.c: Registred new icalls for key pair protection and added an
3571         icall for Environment.GetFolderPath on Windows.
3572         * security.c|h: Added new icalls for key pair protection.
3573
3574 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3575
3576         * socket-io.c: don't display the non-supported family warning for known
3577         families. Now this is not displayed on windows when checking support
3578         for IPv4/IPv6.
3579
3580 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3581
3582         * class.c: don't display the layout warning for static fields.
3583
3584 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3585
3586         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3587         * locales.c, locales.h: Added new icalls for culture-specific
3588         Char.ToLower and Char.ToUpper.
3589
3590 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3591
3592         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3593         by David Waite.
3594
3595 2004-04-20  Martin Baulig  <martin@ximian.com>
3596
3597         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3598         of the type name before passing it to mono_reflection_type_from_name().
3599
3600 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3601
3602         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3603         encodings here. Fixes #56965.
3604
3605 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3606
3607         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3608         fix test on strstr result not that I can see anything that
3609         relies on the result.
3610
3611 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3612
3613         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3614         Fixes #57081.
3615
3616         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3617
3618         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3619         function to determine which marshalling to use for strings. Fixes
3620         #56965.
3621
3622         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3623
3624         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3625
3626 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3627
3628         * icall.c: #include mono-config.h
3629
3630 2004-04-15  Jackson Harper  <jackson@ximian.com>
3631
3632         * culture-info-tables.h: Fix date formats for en-US culture.
3633         
3634 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3635
3636         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3637         ThreadPool.SetMinThreads.
3638         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3639         ThreadPool.SetMinThreads.
3640
3641 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3642
3643         * mono-config.c: also load the .config file in the directory
3644         where the assembly was found.
3645
3646 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3647
3648         * assembly.c: load per-assembly config files.
3649         * icall.c: decrapified code to get the config dir and moved to
3650         mono-config.c.
3651         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3652         per-assembly config files. When doing a dll map lookup give precedence
3653         to the per-assembly data.
3654
3655 2004-04-14  Martin Baulig  <martin@ximian.com>
3656
3657         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3658         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3659         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3660
3661         * mono-debugger-debugger.c: While the debugger is locked, remember
3662         whether the symbol tables have changes and send one single
3663         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3664
3665 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3666
3667         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3668
3669         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3670         function.
3671
3672         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3673         account when marshalling string arrays. Fixes #56965.
3674
3675 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3676
3677         * icall.c: Add new icalls mapping for security.
3678         * security.c|h: Add internal calls for WindowsIdentity,
3679         WindowsImpersonationContext and WindowsPrincipal.
3680
3681 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3682
3683         * class.c: Added comment to ensure the System.MonoDummy class
3684         is removed when no longer necessary
3685
3686 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3687
3688         * appdomain.c: Pass arguments to the bootstraping exceptions to
3689         minimize JITed methods at boot
3690
3691         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3692         second string to be null.
3693
3694         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3695         Change the protocol to minimize the JIT methods at startup.  Now
3696         it Returns the internal codepage, if the value of "int_code_page"
3697         is 1 at entry, and we can not compute a suitable code page
3698         number, returns the code page as a string.
3699
3700 2004-04-13  Jackson Harper  <jackson@ximian.com>
3701
3702         * culture-info-tables.h: Fix number of decimal digits for all
3703         english locales.
3704
3705 2004-04-13  Jackson Harper  <jackson@ximian.com>
3706
3707         * icall.c: Clairfy out of sync error message. It is not always
3708         your corlib that is out of sync.
3709
3710 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3711
3712         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3713         properties when only the set accessor is overriden. Fixes #55874.
3714
3715 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3716
3717         * assembly.c (mono_assembly_load_references): Make this thread safe.
3718         Fixes #56327.
3719
3720 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3721
3722         * monosn.c: Add missing initialization calls.
3723
3724 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3725
3726         * locales.c:
3727         ves_icall_System_Globalization_CultureInfo_construct_number_format
3728         Fix g_assert so it compiles on fussier compilers re int/ptr
3729         mismatch
3730
3731 2004-04-08  Dick Porter  <dick@ximian.com>
3732
3733         * socket-io.h:
3734         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3735         53992.  Also rearrange the code so that the internal calls return
3736         an error value and exceptions are thrown from managed code.
3737
3738         * icall.c: Add type info to the socket icalls.
3739
3740 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3741
3742         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3743         owes me a beer.
3744
3745 2004-04-07  Martin Baulig  <martin@ximian.com>
3746
3747         * class.c (mono_class_from_generic_parameter): Don't default
3748         `klass->parent' to `mono_defaults.object_type'.
3749
3750 2004-04-07  Martin Baulig  <martin@ximian.com>
3751
3752         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3753         `param->pklass->reflection_info'.       
3754
3755 2004-04-07  Jackson Harper  <jackson@ximian.com>
3756
3757         * culture-info-tables.h: Fix date separator symbol.
3758         
3759 2004-04-07  Martin Baulig  <martin@ximian.com>
3760
3761         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3762         from System.Type to System.MonoType.
3763
3764 2004-04-07  Martin Baulig  <martin@ximian.com>
3765
3766         * reflection.h
3767         (MonoReflectionGenericParam): Added `has_reference_type' and
3768         `has_value_type' fields.
3769
3770         * reflection.c (mono_image_get_generic_param_info): Encode the
3771         correct flags if we have the `class' or `struct' constraint.
3772
3773 2004-04-07  Martin Baulig  <martin@ximian.com>
3774
3775         * reflection.h
3776         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3777
3778 2004-04-07  Jackson Harper  <jackson@ximian.com>
3779
3780         * appdomain.c: Revert extra patches, just wanted to bump the
3781         version number.
3782         
3783 2004-04-07  Jackson Harper  <jackson@ximian.com>
3784
3785         * Makefile.am: Add culture-info private headers.
3786         * icall.c: Add new icalls for contructing locales.
3787         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3788         * locales.h: Declare new culture info construction methods.
3789         * object.h: Add new fields used to avoid the CultureMap to
3790         MonoCultureInfo.
3791         * culture-info.h: Definition of structs used in the culture info
3792         tables.
3793         * culture-info-tables.h: Autogenerated tables that contain culture
3794         info data. This file was generated with the locale-builder tool.
3795         * appdomain.c: Incement corlib version number.
3796         
3797 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3798
3799         * appdomain.c: (mono_runtime_init) move mono_thread_init
3800         to before mono_object_new calls so critical sections
3801         are initialized before use.
3802
3803 2004-04-07  Martin Baulig  <martin@ximian.com>
3804
3805         * icall.c
3806         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3807         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3808         (ves_icall_MonoGenericParam_initialize): Removed.
3809         (monogenericparam_icalls): Removed.
3810         (generictypeparambuilder_icalls): Added new table for
3811         System.Reflection.Emit.GenericTypeParameterBuilder.
3812
3813         * reflection.c
3814         (mono_reflection_define_generic_parameter): Removed.
3815         (mono_reflection_initialize_generic_parameter): This is now called
3816         from GenericTypeParameterBuilder's .ctor.
3817
3818 2004-04-06  Martin Baulig  <martin@ximian.com>
3819
3820         * class.c (mono_class_init): Don't inflate nested classes in a
3821         generic instance.
3822         (mono_type_get_name_recurse): Include the generic arguments for
3823         generic instances and generic type declarations.
3824         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3825         (_mono_class_get_instantiation_name): Removed.
3826         (mono_class_create_generic): Always use `gklass->name' as our name.
3827
3828         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3829
3830         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3831         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3832         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3833         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3834         closed generic methods here.
3835
3836         * reflection.c
3837         (mono_reflection_generic_inst_get_nested_types): Removed.
3838         (inflate_mono_method): Copy the generic parameters from the
3839         MonoMethodHeader into out MonoGenericMethod.
3840
3841 2004-04-06  Martin Baulig  <martin@ximian.com>
3842
3843         * row-indexes.h
3844         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3845
3846         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3847
3848         * reflection.c (build_compressed_metadata): If we have any entries
3849         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3850         set the header version to 1.1.
3851
3852 2004-04-06  Martin Baulig  <martin@ximian.com>
3853
3854         * class.c (mono_class_init): If we're a generic instance,
3855         initialize our nested classes, too.
3856         (_mono_class_get_instantiation_name): Deal with the new `!%d'
3857         suffix. 
3858
3859 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3860
3861         * process.c: quote the argument passed to the shell on windows.
3862
3863 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
3864
3865         * threads.c (mono_alloc_special_static_data): Allow this to be
3866         called during startup.
3867
3868 2004-04-02  Martin Baulig  <martin@ximian.com>
3869
3870         * icall.c
3871         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
3872
3873 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
3874
3875         * icall.c: Fix build.
3876
3877 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
3878
3879         * Makefile.am: Added security.c|h.
3880         * icall.c: Added icall for get_UserName;
3881         * security.c: New file for security related icalls. Added function
3882         get_UserName for System.Environment (fix #56144).
3883         * security.h: New. Header file for security.c
3884
3885 2004-04-02  Dick Porter  <dick@ximian.com>
3886
3887         * icall.c: Deleted the icalls that were obsoleted some time ago
3888         by the ICU string code, and which were mixed into the icall
3889         rearranging.  Fixes bug 55969.
3890
3891         * string-icalls.h: 
3892         * string-icalls.c: Deleted the code that those icalls reference.
3893
3894 2004-04-01  Martin Baulig  <martin@ximian.com>
3895
3896         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
3897
3898         * class.c (mono_class_from_generic_parameter): Don't set 
3899         TYPE_ATTRIBUTE_INTERFACE.
3900         (my_mono_class_from_generic_parameter): Likewise.
3901
3902 2004-04-01  Martin Baulig  <martin@ximian.com>
3903
3904         * loader.c (find_method): Added an optional `MonoClass *ic'
3905         argument to search in a specific interface.
3906         (mono_get_method_constrained): New public function.
3907
3908 2004-04-01  Martin Baulig  <martin@ximian.com>
3909
3910         * reflection.c (mono_image_get_generic_field_token): Use the
3911         `handleref' cache here.
3912
3913 2004-04-01  Martin Baulig  <martin@ximian.com>
3914
3915         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
3916
3917         * reflection.c (create_generic_typespec): Use the `typespec' hash
3918         here, not the `typeref' one.    
3919
3920 2004-04-01  Martin Baulig  <martin@ximian.com>
3921
3922         * class.c (mono_class_inflate_generic_type): Moved the
3923         functionality into a new static inflate_generic_type() which
3924         returns NULL if it didn't do anything.  Only increment the
3925         `mono_stats.inflated_type_count' if we actually inflated
3926         something.
3927         (mono_class_get_full): Check the classes type to see whether we
3928         need to inflate it; also inflate MONO_TYPE_(M)VAR.
3929
3930 2004-04-01  Jackson Harper  <jackson@ximian.com>
3931
3932         * reflection.c: Set culture for assembly references.
3933         
3934 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
3935
3936         * reflection.[ch], icall.[ch], Fix support for pinning variables.
3937
3938 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3939
3940         * assembly.c:
3941         (do_mono_assembly_open): the critical section also covers
3942         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
3943
3944 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3945
3946         * threads.c:
3947         (mono_manage_threads): abort the background threads when finishing.
3948         Fixes bug #47232.
3949
3950 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3951
3952         * gc.c: only close the done_event handle if there was no timeout.
3953         C-ified comments.
3954
3955 2004-03-30  Martin Baulig  <martin@ximian.com>
3956
3957         * icall.c (icall_entries): It's called "System.Activator", not
3958         "System.Activation".    
3959
3960 2004-03-30  Martin Baulig  <martin@ximian.com>
3961
3962         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
3963         (mono_class_create_from_typespec): Likewise.
3964
3965 2004-03-30  Martin Baulig  <martin@ximian.com>
3966
3967         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
3968         `has_ctor_constraint' and `initialized'.
3969
3970 2004-03-30  Martin Baulig  <martin@ximian.com>
3971
3972         * reflection.c (encode_new_constraint): New static function to add
3973         the constructor constraint attribute to a type parameter.
3974         (encode_constraints): Call encode_new_constraint() if necessary.
3975
3976         * reflection.h
3977         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
3978
3979         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
3980         
3981 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
3982
3983         * reflection.c, icall.c: add support for pinning variables. 
3984
3985 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
3986
3987         * marshal.c (mono_marshal_get_managed_wrapper):
3988         init bool local with zero rather than null.
3989
3990 2004-03-29  Martin Baulig  <martin@ximian.com>
3991
3992         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
3993         the "official" behavior here.
3994         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
3995
3996 2004-03-29  Martin Baulig  <martin@ximian.com>
3997
3998         * icall.c: Reflect latest API changes.
3999
4000 2004-03-29  Martin Baulig  <martin@ximian.com>
4001
4002         * loader.c (mono_get_method_from_token): Also call
4003         mono_metadata_load_generic_params () for abstract and interface
4004         methods; replace the type arguments in the method signature with
4005         the ones which are loaded from the metadata.
4006
4007 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
4008
4009         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
4010         of the lock is not the current thread. MS.NET don't do it, in spite of
4011         what the documentation says. See bug #56157.
4012
4013 2004-03-28  Martin Baulig  <martin@ximian.com>
4014
4015         * class.c (mono_class_init): Don't call init_properties() and
4016         init_events() for generic instances; set `prop->parent' when
4017         inflating properties.
4018
4019         * reflection.c (mono_generic_inst_get_object): Call
4020         `mono_class_init (ginst->klass)'.
4021         (mono_type_get_object): Only create a MonoGenericInst if your
4022         generic type is a TypeBuilder.
4023         (do_mono_reflection_bind_generic_parameters): Only set
4024         `ginst->is_dynamic' if our generic type is a TypeBuilder.
4025
4026 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
4027
4028         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
4029         Fixes #56091.
4030
4031 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4032
4033         * icall.c: added Kill_internal icall.
4034         * process.[ch]: added Kill_internal icall.
4035
4036 2004-03-25  Martin Baulig  <martin@ximian.com>
4037
4038         * class.h (MonoStats): Added `generic_instance_count',
4039         `inflated_method_count', `inflated_type_count' and
4040         `generics_metadata_size'.       
4041
4042 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4043
4044         * reflection.c: no warnings now.
4045
4046 2004-03-25  Martin Baulig  <martin@ximian.com>
4047
4048         * class.c (mono_class_get_full): New public function; does a
4049         mono_class_get(), but also takes a `MonoGenericContext *'.
4050
4051         * loader.c (mono_field_from_memberref): Renamed to
4052         `field_from_memberref', made static and added `MonoGenericContext *'
4053         argument.
4054         (mono_field_from_token): Added `MonoGenericInst *' argument.
4055         (method_from_memberef): Likewise.
4056         (mono_get_method_from_token): Likewise.
4057         (mono_get_method_full): New public function; does a
4058         mono_get_method(), but also takes a `MonoGenericContext *'.
4059
4060         * verify.c (mono_method_verify): Get the method's generic context
4061         and pass it to mono_field_from_token(), mono_get_method_full() and
4062         mono_class_get_full().
4063
4064 2004-03-25  Martin Baulig  <martin@ximian.com>
4065
4066         * class.c (mono_class_inflate_generic_type): Take a
4067         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4068         `MonoGenericMethod *'.
4069
4070 2004-03-25  Martin Baulig  <martin@ximian.com>
4071
4072         * loader.h (MonoMethodInflated): Store the MonoGenericContext
4073         instead of the MonoGenericMethod here.
4074
4075 2004-03-25  Martin Baulig  <martin@ximian.com>
4076
4077         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4078         each time we create a new MonoGenericInst, we also create a new
4079         context which points back to us.
4080
4081         * class.c (inflate_method): Use `ginst->context' instead of
4082         creating a new context.
4083
4084         * loader.c (method_from_memberref): Use
4085         `klass->generic_inst->context' instead of creating a new context.
4086
4087 2004-03-25  Martin Baulig  <martin@ximian.com>
4088
4089         * class.h (MonoGenericContext): New struct.
4090         (MonoGenericMethod): Removed `generic_inst'.
4091
4092         * class.c (mono_class_inflate_generic_method): Take a
4093         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4094
4095 2004-03-25  Martin Baulig  <martin@ximian.com>
4096
4097         * loader.h (MonoMethodInflated): New typedef.
4098
4099         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4100         `generic_param_count' consume just 30 bits, added `is_inflated'
4101         and `has_type_parameters' flags (one bit each).
4102
4103         * class.c (mono_class_inflate_generic_method): Create a
4104         MonoMethodInflated instead of a MonoMethodNormal and set
4105         `is_inflated' in the method signature.
4106
4107         * class.h (MonoGenericMethod): Removed `generic_method'.
4108
4109 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4110
4111         * image.c: Make sure the name of a MonoImage is always an absolute path.
4112           This fixes bug #54415.
4113
4114 2004-03-24  Martin Baulig  <martin@ximian.com>
4115
4116         * class.c (mono_class_setup_vtable): If we're a generic instance,
4117         use our generic type's vtable size.
4118
4119 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4120
4121         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4122         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4123         problems.
4124
4125 2004-03-23  Martin Baulig  <martin@ximian.com>
4126
4127         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4128         `MonoEvent *events'.
4129
4130         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4131         (typebuilder_icalls): Added "get_event_info"; calls
4132         mono_reflection_event_builder_get_event_info(). 
4133
4134         * reflection.c (mono_reflection_generic_inst_initialize): Added
4135         `MonoArray *events'.
4136         (mono_reflection_event_builder_get_event_info): New function.
4137
4138 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4139
4140         * object.h: add mono_type_initialization_init
4141
4142         * object.c (mono_runtime_class_init): 
4143         implement class constructor synchronization rules
4144         to cope with threading issues.  
4145         add mono_type_initialization_init
4146
4147         * appdomain.c (mono_runtime_init): call 
4148         mono_type_initialization_init
4149
4150         * class.h: removing initializing field from MonoVTable
4151
4152 2004-03-23  Martin Baulig  <martin@ximian.com>
4153
4154         * class.c (my_mono_class_from_generic_parameter): Use
4155         `param->name' if it's not NULL. 
4156
4157 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4158
4159         * class.c: do not insert non-virtual methods in the vtable.
4160         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4161         that means the method is non-virtual. This never would have
4162         happened before.
4163
4164 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4165
4166         * profiler.c: Added lock for accessing coverage_hash.
4167
4168 2004-03-22  Martin Baulig  <martin@ximian.com>
4169
4170         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4171         `method->method->signature->generic_param_count != 0' to make it
4172         work for interface methods.
4173
4174 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4175
4176         * process.c: quote the string passed to the shell using g_shell_quote.
4177
4178 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4179
4180         * threads.c:
4181         (mono_threads_manage): don't remove the finalizer thread and self
4182         from the threads hash table so that mono_thread_manage can be called
4183         more than once.
4184
4185 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4186
4187         * process.c: quote the arguments when UseShellExecute is true. Fixes
4188         bug #55790.
4189
4190 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4191
4192         * threads.c: set mono_thread_detach as a cleanup routine for every
4193         thread. This way it's always executed upon thread termination, either
4194         aborted or finished normally. No more xsp hangs!
4195
4196 2004-03-17  Martin Baulig  <martin@ximian.com>
4197
4198         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4199         `int count_nested' and a `MonoType **nested'.
4200
4201         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4202         most of the functionality into a new static
4203         do_mono_reflection_bind_generic_parameters() and don't take a
4204         `MonoType *nested_in' argument any more.  Don't compute nested
4205         types here.
4206         (mono_reflection_generic_inst_get_nested_types): New public method
4207         to get nested types.
4208
4209         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4210         we're a nested class.
4211
4212         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4213         mono_reflection_generic_inst_get_nested_types() to compute the
4214         nested types.
4215
4216 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4217
4218         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4219         descriptive error message under windows.
4220         
4221 2004-03-17  Martin Baulig  <martin@ximian.com>
4222
4223         * class.c (dup_type): Added `const MonoType *original' argument;
4224         copy the attrs from the original type.
4225
4226 2004-03-17  Martin Baulig  <martin@ximian.com>
4227
4228         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4229         `m->generic_inst_cache' here.
4230
4231 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4232
4233         * exception.h exception.c: Add stack_overflow_exception.
4234
4235 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4236
4237         * threadpool.c:
4238         (overlapped_callback): call SetEvent *after* invoking the callback.
4239         No need to call CloseHandle.
4240
4241 2004-03-16  Martin Baulig  <martin@ximian.com>
4242
4243         * reflection.c (mono_image_get_fieldref_token): Take a
4244         `MonoReflectionField *' instead of a `MonoClassField *' and a
4245         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4246
4247 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4248
4249         * appdomain.c: don't add the culture to the filename we're looking for
4250         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4251
4252 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4253
4254         * locales.c: don't ignore symbols when doing case insensitive compares.
4255         Thanks Dick! Fixes bug #54046.
4256
4257         * threads.c: surround 'threads' usage with enter/leave in
4258         mono_thread_manage.
4259
4260 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4261
4262         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4263         implicitly marshalled as [Out]. Fixes #55450.
4264
4265         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4266         an exception.
4267
4268 2004-03-16  Martin Baulig  <martin@ximian.com>
4269
4270         * class.c (mono_class_from_generic_parameter): Use the actual
4271         parameter name. 
4272
4273 2004-03-16  Martin Baulig  <martin@ximian.com>
4274
4275         * reflection.c (type_get_signature_size): New static function.
4276         Compues the size of the type in a method signature.
4277         (method_get_signature_size): New static function; calls
4278         type_get_signature_size() to compute the actual size of the
4279         method's signature.
4280         (method_encode_signature): Use method_get_signature_size() to get
4281         the signature's size rather than using `nparams * 10'.
4282
4283 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4284
4285         * file-io.h: define here WapiOverlapped on windows. I don't want the
4286         regular OVERLAPPED one.
4287
4288         * file-io.c:
4289         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4290         Disabling AIO on windows.
4291
4292 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4293
4294         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4295         bug #55385.
4296
4297 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4298
4299         * appdomain.c: upgraded corlib version.
4300
4301         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4302         and BeginWrite. Allow opening files for asynchrnous operations.
4303
4304         * file-io.h: new struct that maps FileStreamAsyncResult.
4305         * icall.c: added new icalls.
4306         * process.[ch]: support setting child process environment variables
4307         and use the SHELL or COMSPEC when UseShellExecute is true.
4308
4309         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4310         callback for async. IO is here and also BindHandle.
4311
4312         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4313         from here.
4314
4315 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4316
4317         * reflection.c (create_custom_attr): Allow len == 0.
4318
4319         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4320         computation on big-endian machines.
4321
4322 2004-03-13  Martin Baulig  <martin@ximian.com>
4323
4324         * class.h (MonoGenericInst): Added `int count_ifaces'.
4325
4326         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4327         `ginst->count_ifaces' instead `klass->interface_count' since we
4328         may get called before the vtable is created.
4329
4330         * loader.c (mono_method_get_param_names): If we're a generic
4331         instance, return and don't initialize the class.
4332
4333         * reflection.c (mono_reflection_setup_generic_class): Don't call
4334         ensure_runtime_vtable().
4335         (mono_reflection_bind_generic_parameters): Set
4336         `ginst->count_ifaces'.
4337
4338 2004-03-11  Jackson Harper <jackson@ximian.com>
4339
4340         * icall.c:
4341         * unicode.c:
4342         * unicode.h: Remove unused System.Char icalls.
4343         
4344 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4345
4346         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4347         code when we P/Invoke the first library in Windows.Forms, instead
4348         of when we first open the assembly.
4349
4350         * assembly.c: Drop the lookup from here.
4351
4352 2004-03-10  Martin Baulig  <martin@ximian.com>
4353
4354         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4355         class for properties, fields and events.  Finally fixes #54945.
4356
4357 2004-03-10  Martin Baulig  <martin@ximian.com>
4358
4359         * metadata.c (mono_metadata_class_equal): New static function;
4360         checks whether two generic instances or two generic parameters are
4361         equal.
4362         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4363         compare classes.        
4364
4365 2004-03-10  Martin Baulig  <martin@ximian.com>
4366
4367         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4368
4369         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4370         argument and write it into the `reflection_info' field.
4371
4372         * icall.c
4373         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4374         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4375
4376 2004-03-09  Jackson Harper  <jackson@ximian.com>
4377
4378         * char-conversions.h: use 8 bits for numeric data its all we need
4379         * icall.c: numeric data is only 8 bits now.
4380
4381 2004-03-09  Martin Baulig  <martin@ximian.com>
4382
4383         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4384
4385         * class.c (init_properties, init_events): Initialize the new
4386         `parent' field.
4387
4388         * reflection.c (typebuilder_setup_properties): Likewise.
4389         (typebuilder_setup_events): Likewise.
4390
4391         * reflection.h (MonoEventInfo): Replaced `parent with
4392         `declaring_type' and `reflected_type'.
4393
4394         * icall.c (ves_icall_get_property_info): Distinguish between
4395         declaring and reflected type.
4396         (ves_icall_get_event_info): Likewise.
4397
4398 2004-03-09  Martin Baulig  <martin@ximian.com>
4399
4400         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4401         (ves_icall_Type_GetField): Correctly set field->klass.
4402
4403 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4404
4405         * loader.h: Fix warning.
4406
4407 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4408
4409         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4410         library routine if present.  Notice that it will still continue
4411         executing even if its missing, for those working on the Gtk#
4412         edition of Windows.Forms.
4413
4414         * assembly.c (do_mono_assembly_open): If loading the
4415         System.Windows.Forms call mono_loader_wini_init.
4416
4417 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4418
4419         * class.h: Added MonoRemoteClass struct.
4420         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4421         function for MonoStrings.
4422         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4423         Added internal call for getting the proxy type.
4424         * marshal.c: Get the type of transparent proxies from its remote_class.
4425         Added methods that generate the IL for type checks and casts:
4426         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4427         mono_marshal_get_proxy_cancast.
4428         * marshal.h: Declaration of the previous new methods.
4429         * object.c: Added new moethods for creating and updating MonoRemoteClass
4430         instances: mono_remote_class, mono_upgrade_remote_class, 
4431         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4432         * verify.c: FIx transparent_proxy_fields layout.
4433         * appdomain.c: Bump corlib version.
4434
4435 2004-03-04  Jackson Harper  <jackson@ximian.com>
4436
4437         * icall.c: Add icall to access char conversion tables.
4438         * char-conversions.h: Character conversion tables.
4439         * Makefile.am: Add char-conversions.h private header file.
4440         
4441 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4442
4443         * appdomain.c (unload_thread_main): Increase unloading timeout to
4444         10 sec as a temporary workaround for Nant problems.
4445
4446 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4447
4448         * gc.c: Add checks for GC_enable and GC_disable.
4449
4450         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4451         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4452         (bug #54988).
4453         
4454 2004-02-27  Martin Baulig  <martin@ximian.com>
4455
4456         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4457         `MonoReflectionType *' instead of a `MonoType *'.
4458
4459 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4460
4461         * gc.c (run_finalize): Avoid finalizing the object representing the
4462         finalizer thread.
4463         (finalizer_thread): Fix warning.
4464
4465 2004-02-25  Martin Baulig  <martin@ximian.com>
4466
4467         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4468         argument for nested types.
4469         (mono_class_create_generic): Added support for nested generictypes.
4470
4471         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4472         `GList *nested'.
4473
4474         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4475
4476         * reflection.c (method_encode_signature): Increase the minimum
4477         value of `size' from 10 to 11.
4478         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4479         and `MonoType **types' arguments instead of the `MonoArray
4480         *types'; added `MonoType *nested_in'.  Recursively instantiate
4481         nested classes. 
4482
4483 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4484
4485         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4486         stack_overflow_ex members which are used by exception handling.
4487
4488         * appdomain.c (mono_runtime_init): Initialize the new members.
4489
4490         * gc.c (mono_gc_enable): New helper function.
4491         * gc.c (mono_gc_disable): New helper function.
4492
4493 2004-02-23  Martin Baulig  <martin@ximian.com>
4494
4495         * icall.c: I must have been really stupid - make it actually work
4496         this time ;-)
4497
4498 2004-02-23  Martin Baulig  <martin@ximian.com>
4499
4500         * loader.c (method_from_memberref): Only inflate the method if
4501         it's in another klass.
4502
4503 2004-02-23  Martin Baulig  <martin@ximian.com>
4504
4505         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4506         (mono_class_init): If we're a generic instance and an interface,
4507         compute `class->interface_id'; also create `class->interfaces'
4508         here and inflate them.
4509
4510         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4511         `ginst->is_open'.
4512         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4513
4514         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4515
4516 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4517
4518         * reflection.c (method_encode_code): Improved the error message
4519         generated by the exception.
4520
4521 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4522
4523         * icall.c: Martin did not do what he said in the ChangeLog for
4524         2004-02-18, but put back the changes for properties and events.
4525         Commenting those changes out again and adding comment to bug #54518.
4526         
4527         * process.c: removed warning.
4528
4529 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4530
4531         * marshal.c (emit_struct_conv): Print an error message instead of
4532         asserting when a type does not have the StructLayout attribute.
4533
4534 2004-02-20  Martin Baulig  <martin@ximian.com>
4535
4536         * reflection.c (mono_type_get_object): Also use the cache for
4537         generic instances.
4538         (mono_reflection_bind_generic_parameters): Always compute
4539         `ginst->ifaces'.        
4540
4541 2004-02-20  Martin Baulig  <martin@ximian.com>
4542
4543         * class.h (MonoGenericMethod): Removed `klass'.
4544
4545         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4546         *klass' argument.
4547
4548 2004-02-20  Martin Baulig  <martin@ximian.com>
4549
4550         * reflection.c (method_encode_methodspec): Actually use the
4551         uninflated signature for the memberref.
4552
4553 2004-02-20  Martin Baulig  <martin@ximian.com>
4554
4555         * class.h (MonoGenericMethod): Removed `declaring'.
4556
4557         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4558         is NULL, compute it here.
4559
4560 2004-02-20  Martin Baulig  <martin@ximian.com>
4561
4562         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4563
4564         * metadata.c (mono_metadata_generic_inst_hash): New method.
4565         (mono_metadata_generic_inst_equal): New method.
4566
4567         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4568         `klass->image->generic_inst_cache' cache to avoid creating
4569         duplicate MonoGenericInst's.
4570
4571         * class.c (mono_class_inflate_generic_type): Use the cache.
4572
4573 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4574
4575         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4576
4577 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4578
4579         * icall.c: added Socket.WSAIoctl icall.
4580
4581         * socket-io.[ch]: implemented
4582         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4583
4584 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4585
4586         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4587
4588 2004-02-18  Urs C Muff  <umuff@quark.com>
4589
4590         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4591         this work on PPC and other big-endian architectures.
4592
4593         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4594         fields with an underscore to make sure they're only accessed by
4595         the read32() macro.
4596
4597 2004-02-18  Martin Baulig  <martin@ximian.com>
4598
4599         * icall.c: Put the klass->refclass changes back for methods and
4600         fields, but not for properties and events.  We're currently not
4601         distinguishing between DeclaringType and ReflectedType for
4602         properties and events, that's what caused the regressions.
4603
4604 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4605
4606         * object.c:
4607         (mono_async_result_new): the handle can be NULL.
4608
4609         * threadpool.c: Use an event instead of a semaphore, don't initialize
4610         it until needed. This saves quite a few semaphores from being created
4611         when using the threadpool.
4612
4613 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4614
4615         * object.c (mono_string_is_interned_lookup): Fix interning of long
4616         strings. Fixes #54473.
4617
4618         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4619
4620         * icall.c: Revert the klass->refclass changes since they introduce
4621         regressions (bug #54518).
4622
4623 2004-02-18  Martin Baulig  <martin@ximian.com>
4624
4625         * class.c (mono_class_init): If we're a generic instance and don't
4626         come from a TypeBuilder, inflate our members here.
4627         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4628         (mono_class_create_generic): New public method.
4629         (mono_class_initialize_generic): Removed.
4630         (get_instantiation_name): Renamed to
4631         _mono_class_get_instantiation_name() and made it public.
4632
4633 2004-02-18  Martin Baulig  <martin@ximian.com>
4634
4635         * class.c (mono_class_inflate_generic_type): Clear the new
4636         instance's `nginst->klass' when inflating a generic instance.
4637         (mono_class_is_subclass_of): Added (basic) support for generic
4638         instances.
4639
4640 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4641
4642         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4643         MonoMempool to hold compiled native code.
4644
4645 2004-02-17  Martin Baulig  <martin@ximian.com>
4646
4647         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4648         `properties'.
4649
4650         * reflection.c (mono_reflection_generic_inst_initialize): Added
4651         `MonoArray *properties' argument.
4652
4653         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4654
4655 2004-02-17  Martin Baulig  <martin@ximian.com>
4656
4657         * icall.c (ves_icall_Type_GetFields): Renamed to
4658         ves_icall_Type_GetFields_internal() and added a
4659         `MonoReflectionType *rtype' argument; pass it to
4660         mono_field_get_object() to set the field's "reflected" type.
4661         (ves_icall_Type_GetConstructors): Likewise.
4662         (ves_icall_Type_GetEvents): Likewise.
4663         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4664         argument; pass it to mono_method_get_object() to set the method's
4665         "reflected" type.       
4666
4667 2004-02-17  Martin Baulig  <martin@ximian.com>
4668
4669         * class.h (MonoDynamicGenericInst): New type.
4670         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4671
4672         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4673         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4674         (ves_icall_MonoGenericInst_GetFields): New interncall.
4675
4676         * class.c (mono_class_from_generic): Don't call
4677         mono_class_initialize_generic() if this is a dynamic instance;
4678         ie. it's being created from a TypeBuilder.
4679         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4680         `class->byval_arg.type'.
4681
4682         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4683         to `inflate_method' and made static.
4684         (mono_reflection_inflate_field): Removed.
4685         (mono_reflection_generic_inst_initialize): New public method.
4686
4687         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4688         `ctors' and `fields'; added `initialized'.
4689
4690 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4691
4692         * debug-helpers.c (mono_method_full_name): Fix output for empty
4693         namespaces.
4694
4695 2004-02-12  Martin Baulig  <martin@ximian.com>
4696
4697         * class.h (MonoClassField): Added `MonoType *generic_type'.
4698
4699         * reflection.c (mono_image_get_fieldref_token): Added support for
4700         instantiated generic types.
4701         (field_encode_inflated_field): Removed.
4702         (mono_image_get_inflated_field_token): Removed.
4703         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4704
4705         * reflection.h (MonoReflectionInflatedField): Removed.
4706
4707 2004-02-12  Martin Baulig  <martin@ximian.com>
4708
4709         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4710         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4711
4712         * reflection.c (mono_image_get_methodspec_token): Take a
4713         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4714         (mono_image_create_token): Check whether we have a
4715         `method->signature->gen_method' and call
4716         mono_image_get_methodspec_token() if appropriate.
4717         (inflated_method_get_object): Removed.
4718         (mono_reflection_bind_generic_method_parameters): Return a
4719         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4720         (mono_reflection_inflate_method_or_ctor): Likewise.
4721
4722         * reflection.h (MonoReflectionInflatedMethod): Removed.
4723
4724 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4725
4726         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4727         for custom valuetype marshalling.
4728
4729         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4730
4731 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4732
4733         * icall.c: fixed WSAGetLastError_internal name.
4734
4735 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4736
4737         * threads.c (mono_thread_attach): Allow this to be called multiple
4738         times for a thread.
4739         
4740         * threads.c (build_wait_tids): Do not wait for ourselves.
4741
4742         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4743         appdomain list is empty.
4744
4745         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4746         memory returned by mono_string_builder_to_utf16, since it points into
4747         managed memory. Thanks to Bernie Solomon for noticing this.
4748
4749         * icall.c: Add AppDomainSetup icalls.
4750
4751         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4752
4753         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4754         types.
4755
4756         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4757         custom attributes to the method_aux struct. Also fix array indexes etc.
4758
4759         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4760         
4761 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4762
4763         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4764         (both static and runtime) and reduce startup time.
4765
4766 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4767
4768         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4769         AsAny marshalling conversion instead of crashing.
4770
4771         * marshal.c: Fix warnings.
4772
4773 2004-02-09  Martin Baulig  <martin@ximian.com>
4774
4775         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4776
4777         * reflection.h (MonoReflectionInflatedMethod): Removed the
4778         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4779
4780         * reflection.c (method_encode_methodspec): Removed the `method'
4781         argument; we get it from `gmethod->declaring'.
4782         (inflated_method_get_object): Removed the `declaring' argument.
4783
4784 2004-02-09  Martin Baulig  <martin@ximian.com>
4785
4786         * class.h (MonoGenericMethod): New type.
4787         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4788         `generic_method'.
4789
4790         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4791         a `MonoGenericMethod *gen_method' one.
4792
4793         * class.c (mono_class_inflate_generic_type): Take an additional
4794         `MonoGenericMethod * argument.  This is only non-NULL if we're
4795         inflating types for a generic method.   
4796         (mono_class_inflate_generic_signature): Renamed to
4797         inflate_generic_signature() and made static; take a
4798         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4799         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4800         instead of a `MonoGenericInst *' one.
4801         (mono_class_inflate_generic_method): Likewise.
4802
4803         * reflection.c (encode_generic_method_sig): Take a
4804         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4805         (method_encode_methodspec): Likewise.
4806         (inflated_method_get_object): Likewise. 
4807
4808         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4809         field with a `MonoGenericMethod *gmethod' one.  
4810
4811 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4812
4813         * class.h (mono_class_has_parent): add parens to expansion
4814         so you can ! this.
4815
4816 2004-02-08  Martin Baulig  <martin@ximian.com>
4817
4818         * image.h (MonoImage): Removed `generics_cache'.
4819
4820         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4821         instead of a `MonoType *' argument; removed the `inflate_methods'
4822         argument.  Don't inflate methods here.
4823
4824         * loader.c (find_method): If it's a generic instance, call
4825         mono_class_init() on the `sclass->generic_inst->generic_type'.
4826
4827         * metadata.c (mono_type_size): Make this work on uninitialized
4828         generic instances; call it on the `ginst->generic_type's class.
4829
4830         * reflection.c (mono_reflection_bind_generic_parameters): Call
4831         mono_class_from_generic() to create the `ginst->klass'.
4832
4833 2004-02-08  Martin Baulig  <martin@ximian.com>
4834
4835         * class.h (MonoClass): Changed type of `generic_inst' from
4836         `MonoType *' to `MonoGenericInst *'.
4837
4838 2004-02-08  Martin Baulig  <martin@ximian.com>
4839
4840         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4841         mono_type_get_object(), this is now creating a `MonoGenericInst'
4842         for MONO_TYPE_GENERICINST.
4843         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4844         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4845
4846         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4847         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4848         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4849         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4850         and reflected type.
4851
4852         * reflection.h (MonoReflectionInflatedMethod): Removed
4853         `declaring_type' and `reflected_type'.
4854
4855 2004-02-08  Martin Baulig  <martin@ximian.com>
4856
4857         * class.h (MonoGenericInst): Added `MonoType *parent' and
4858         `MonoType **ifaces'.
4859
4860         * reflection.h (MonoReflectionGenericInst): Removed `klass',
4861         `parent' and `interfaces'.
4862
4863         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4864         `MonoType *' argument and return a `MonoType *'.
4865
4866         * icall.c
4867         (ves_icall_MonoGenericInst_GetParentType): New interncall.
4868         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
4869
4870 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4871
4872         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
4873         valuetype marshalling.
4874
4875 2004-02-06  Martin Baulig  <martin@ximian.com>
4876
4877         * class.c
4878         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
4879         (my_mono_class_from_generic_parameter): Likewise.
4880
4881 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4882
4883         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
4884         contents of the symbol files lazily.
4885
4886         * object.h (MonoThread): Add 'name' and 'name_len' fields.
4887
4888         * threads.h threads.c icall.c: New icalls for getting and setting the
4889         threads name.
4890
4891 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
4892
4893         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
4894         Raise an exception when the domain is not found.
4895
4896 2004-02-03  Martin Baulig  <martin@ximian.com>
4897
4898         * reflection.c (mono_image_get_methodspec_token): Use the
4899         uninflated signature; fixes gen-33.
4900
4901 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
4902
4903         * gc.c threads.c: Make the finalizer thread a normal managed thread so
4904         the finalizer code can use thread functionality.
4905
4906         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
4907         the finalizer thread.
4908
4909         * threads.c: Make some functions more robust.
4910
4911         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
4912
4913         * metadata.h: Add new marshalling conventions.
4914
4915         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
4916         stringbuilder marshalling. Fixes #53700.
4917
4918         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
4919
4920         * reflection.c (mono_image_get_type_info): Save declarative security
4921         info.
4922
4923         * reflection.c (mono_image_get_field_info): Handle uninitialized 
4924         unmanaged fields as well.
4925
4926         * appdomain.c: Bump corlib version.
4927
4928 2004-02-01  Martin Baulig  <martin@ximian.com>
4929
4930         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
4931         method type arguments.  
4932
4933 2004-01-30  Duncan Mak  <duncan@ximian.com>
4934
4935         * marshal.h: Add prototype for
4936         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
4937         and
4938         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
4939         fix the build.
4940
4941 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
4942
4943         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
4944         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
4945
4946 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4947
4948         * marshal.c (mono_marshal_get_native_wrapper): Add support for
4949         custom marshalling of valuetypes.
4950
4951         * marshal.c: Fix some warnings.
4952
4953 2004-01-29  Martin Baulig  <martin@ximian.com>
4954
4955         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
4956         for generic method parameters.
4957
4958         * reflection.c (method_encode_methodspec): Write the uninflated
4959         signature into the methodspec table.
4960         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
4961         is always the uninflated method.
4962         (reflection_methodbuilder_to_mono_method): Copy the generic
4963         parameters from the MethodBuilder into `header->gen_params'.
4964
4965 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4966
4967         * class.c (mono_class_from_generic_parameter): Fix warning.
4968
4969 2004-01-27  Martin Baulig  <martin@ximian.com>
4970
4971         * class.c (mono_class_from_generic_parameter): Don't create
4972         `klass->methods' here.  
4973
4974 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
4975
4976         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
4977         extension since it does not work with libraries named lib<FOO>.dll.so.
4978
4979 2004-01-25  Martin Baulig  <martin@ximian.com>
4980
4981         * class.c (mono_class_inflate_generic_type): Added support for
4982         MONO_TYPE_GENERICINST.
4983
4984         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
4985         inflate methods on open constructed types.      
4986
4987 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4988
4989         * object.c: fire ProcessExit event in the root AppDomain after running
4990         Main. Fixes bug #53299.
4991
4992 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
4993
4994         * socket-io.c: include the new socket-wrappers.h header.
4995         Use the wrappers instead of the unix socket functions to make the code
4996         more clear.
4997
4998 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
4999
5000         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
5001
5002         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5003         Fixes #22532.
5004
5005 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
5006
5007         * reflection.c (mono_image_create_pefile): Handle the case when the
5008         entry point is not a MethodBuilder.
5009
5010         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5011         field to ReflectionMethod since it is not allways a builder.
5012
5013         * reflection.c (type_get_fully_qualified_name): New helper function to
5014         return the fully qualified name of a type.
5015
5016         * reflection.c (encode_marshal_blob): Always emit the fully qualified
5017         type name for custom marshallers.
5018
5019         * reflection.c (mono_marshal_spec_from_builder): Ditto.
5020
5021         * class.c (mono_class_setup_vtable): If a parent class already 
5022         implements an interface, use the implementing methods from that class.
5023         Fixes #53148.
5024
5025 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5026
5027         * threadpool.c: just return instead of ExitThread to allow for thread
5028         clean up earlier.
5029
5030 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
5031
5032         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
5033         when closing resource modules.
5034
5035         * reflection.c (mono_image_create_pefile): Handle the case when the
5036         entry point is not a MethodBuilder.
5037
5038         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5039         field to ReflectionMethod since it is not allways a builder.
5040
5041 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5042
5043         * marshal.c (mono_marshal_get_managed_wrapper): 
5044         mono_marshal_alloc takes native int so CONV_I
5045         the arg for 64bits.
5046
5047 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
5048
5049         * reflection.c (fixup_cattrs): New function to fixup the methoddef
5050         tokens in the cattr table. Fixes #53108.
5051
5052 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5053
5054         * loader.c: don't trim ".dll" before looking up in the config file.
5055         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5056
5057 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5058
5059         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
5060         Return the module which contains the resource as well.
5061         (ves_icall_System_Reflection_Module_Close): New icall.
5062
5063         * appdomain.c: Bump corlib version number.
5064
5065         * image.c (mono_image_addref): New public function.
5066
5067         * assembly.c: Call mono_image_addref.
5068
5069         * reflection.c (mono_module_get_object): Increase reference count of 
5070         the image.
5071
5072         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5073         Fixes #22532.
5074
5075         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5076         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5077         proper exceptions on DllImport problems.
5078
5079 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5080
5081         * class.c, metadata.c: eliminate CSIZE macro.
5082
5083 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5084
5085         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5086         * object.h: Added async_callback field in MonoAsyncResult.
5087         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5088         * verify.c: Added async_callback in MonoAsyncResult layout.
5089
5090 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5091
5092         * reflection.c (mono_reflection_get_custom_attrs): Add support
5093         for Modules.
5094
5095 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5096
5097         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5098         marshalling.
5099         (mono_marshal_method_from_wrapper): Add null pointer check.
5100
5101 2004-01-16  Martin Baulig  <martin@ximian.com>
5102
5103         * debug-mono-symfile.h: Set version number to 36 and reflect
5104         latest symbol writer changes.
5105
5106 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5107
5108         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5109         multi-dimensional arrays.
5110         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5111         (mono_class_from_mono_type): Use bounded_array_class_get.
5112         
5113         * class.c (mono_bounded_array_class_get): New function which takes
5114         a 'bounded' bool argument to distinguish vectors from one dimensional
5115         arrays.
5116
5117         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5118         bounded_array_class_get if the array has bounds.
5119
5120         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5121         Search modules loaded using AssemblyBuilder:AddModule as well.
5122
5123 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5124
5125         * appdomain.c: increased corlib version.
5126         * filewatcher.c: removed g_print.
5127         * icall.c:
5128         (get_property_info): only allocate what is actually requested.
5129         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5130
5131 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5132
5133         * Makefile.am: added filewatcher.[ch]
5134         * filewatcher.[ch]: FileSystemWatcher runtime support.
5135         * icall.c: added new FSW icalls.
5136
5137 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5138
5139         * string-icalls.c: fix stringbuilder regression as suggested by
5140         Iain McCoy <iain@mccoy.id.au>.
5141
5142 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5143
5144         * process.c (process_read_stringtable_block): Recognize '007f' as
5145         a language neutral stringtable block.
5146
5147 2004-01-12  Patrik Torstensson
5148
5149         * object.h (MonoStringBuilder) : Changed layout to support our
5150         new stringbuilder class.
5151         * marshal.c: Change marshalling to support the new layout of 
5152         string builder.
5153         * appdomain.c: increased version number because new layout of
5154         string builder.
5155
5156 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5157
5158         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5159         assembly name as an string instead of an AssemblyName, since it is
5160         easier to extract info from it.
5161
5162         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5163         the culture subdirectories too. Fixes #52231.
5164
5165 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5166
5167         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5168         It takes 2 new parameters with an optional name for the method to look
5169         for and case ignoring info.
5170
5171         * threadpool.c: removed unused variable.
5172
5173 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5174
5175         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5176         It takes 2 new parameters with an optional name for the property to look
5177         for and case ignoring info.
5178         Fixes bug #52753.
5179
5180 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5181
5182         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5183         Fix #52451.
5184
5185 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5186
5187         * appdomain.c:
5188         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5189         Fixes bug #52630.
5190
5191 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5192
5193         * reflection.c: Add support for more than one unmanaged resource.
5194
5195         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5196         in field->def_value, as done in all other cases.
5197
5198         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5199         TypeBuilders.
5200
5201         * reflection.c (mono_reflection_create_runtime_class): Remove 
5202         errorneous assignment to klass->element_class, since it is already
5203         done in mono_reflection_setup_internal_class.
5204
5205 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5206
5207         * gc.c: added missing LeaveCriticalSection.
5208         * icall.c: indented a couple of lines.
5209         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5210         if we call EndInvoke inside a callback. Fixes bug #52601.
5211
5212 2004-01-07  Martin Baulig  <martin@ximian.com>
5213
5214         * mono-debug-debugger.h
5215         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5216
5217 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5218
5219         * appdomain.c: Use messages in NotImplementedException.
5220
5221         * exception.c (mono_get_exception_not_implemented): Now this takes
5222         a message argument.
5223
5224         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5225         exception instead of g_asserting an aborting when something is not
5226         implemented.
5227
5228         Add some inline docs.
5229
5230 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5231
5232         * reflection.h: Update after changes to object layout.
5233
5234         * reflection.c: Implement saving of unmanaged aka win32 resources.
5235
5236         * appdomain.c: Bump version number.
5237
5238         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5239         Handle missing domains gracefully.
5240
5241 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5242
5243         * file-io.c : On Windows, there are much more invalid_path_chars.
5244
5245 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5246
5247         * class.h, object.c: prepare for GetType () speedup.
5248
5249 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5250
5251         * profiler.c: workaround for --profile null reference exception on
5252           cygwin. Patch by Patrik Torstensson.
5253
5254 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5255
5256         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5257         make work for unaligned access.
5258
5259 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5260
5261         * class.c: small cleanup (class->fields [i] -> field).
5262         * image.c: check address of metadata is valid.
5263
5264 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5265
5266         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5267         search the list of loaded assemblies.
5268
5269         * reflection.c (mono_reflection_type_from_name): Use 
5270         mono_assembly_loaded instead of mono_image_loaded.
5271
5272         * reflection.c: Fix warnings.
5273
5274 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5275
5276         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5277         is dynamic. This is needed since an assembly can contain both dynamic and
5278         non-dynamic images.
5279
5280         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5281         assembly->dynamic.
5282
5283         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5284
5285         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5286         to store modules loaded using AddModule.
5287
5288         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5289         on Modules.
5290
5291         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5292
5293         * reflection.c (mono_image_fill_export_table_from_module): New function to
5294         fill out the EXPORTEDTYPES table from a module.
5295
5296         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5297         into a separate function. Also handle loaded non-dynamic modules.
5298
5299         * reflection.c (mono_image_basic_init): Fix memory allocation.
5300
5301         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5302
5303         * assembly.c (mono_assembly_load_references): Make this public.
5304
5305 2003-12-19  Martin Baulig  <martin@ximian.com>
5306
5307         * class.c (mono_class_initialize_generic): Made this static, take
5308         a `MonoGenericInst *' instead of a `MonoClass *'.
5309         (mono_class_from_generic): Call mono_class_initialize_generic()
5310         unless we're already initialized or being called from
5311         do_mono_metadata_parse_generic_inst().
5312
5313         * class.h (MonoGenericInst): Added `initialized' and
5314         `init_pending' flags.
5315
5316         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5317         `mono_class_init (gklass)' or mono_class_initialize_generic()
5318         here; set `generic_inst->init_pending' while parsing the
5319         `type_argv'.
5320
5321 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5322
5323         * locales.c: include string.h for memxxx prototypes
5324
5325 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5326
5327         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5328         constructor when accessing literal fields.
5329
5330 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5331
5332         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5333
5334         * reflection.c (assembly_add_resource_manifest): New function to fill
5335         the MANIFESTRESOURCE table.
5336
5337         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5338
5339         * reflection.h: Update to changes in class layout.
5340
5341         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5342         Reenable call to mono_runtime_is_shutting_down ().
5343
5344         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5345         determine if the runtime is shutting down.
5346
5347 2003-12-16  Jackson Harper <jackson@ximian.com>
5348
5349         * icall.c: comment out call to mono_runtime_is_shutting_down to
5350         fix build.
5351         
5352 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5353
5354         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5355         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5356
5357 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5358
5359         * reflection.c: move definition of swap_with_size
5360         to before its first call
5361
5362 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5363
5364         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5365
5366         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5367         icall.
5368
5369         * object.c: Fix warnings.
5370
5371         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5372         members if FlattenHierarchy is set.
5373
5374         * reflection.c (mono_image_add_decl_security): New function to emit
5375         declarative security.
5376
5377         * reflection.h reflection.c: Add support for declarative security.
5378
5379         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5380         
5381 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5382
5383         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5384         
5385         * appdomain.c verify.c: Moved corlib version checking into its own
5386         function in appdomain.c since it needs to create vtables etc.
5387
5388 2003-12-13  Patrik Torstensson <p@rxc.se>
5389
5390         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5391         instead of unwrapped server.
5392
5393 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5394
5395         * verify.c (check_corlib): Fix field index.
5396
5397 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5398
5399         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5400         GetGacPath icall.
5401
5402 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5403
5404         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5405         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5406         cope with sizeof(size_t) != sizeof(guint32).
5407
5408 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5409
5410         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5411         in case of failure.
5412
5413 2003-12-10  Mark Crichton <crichton@gimp.org>
5414
5415         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5416         in managed code.
5417
5418         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5419
5420 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5421
5422         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5423         marked as deleted.
5424
5425 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5426
5427         * verify.c (check_corlib): Handle the case when the version field is 
5428         initialized by a static constructor.
5429
5430 2003-12-08  Patrik Torstensson  <p@rxc.se>
5431
5432     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5433
5434 2003-12-08  Martin Baulig  <martin@ximian.com>
5435
5436         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5437         a MonoReflectionGenericParameter, also take the parameter index
5438         and name as arguments.
5439         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5440         (ves_icall_MonoGenericParam_initialize): New interncall.
5441         (ves_icall_Type_make_byref_type): New interncall.
5442
5443         * reflection.h (MonoReflectionGenericParam): Derive from
5444         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5445         `index' fields.
5446
5447         * reflection.c (mono_reflection_define_generic_parameter): Create
5448         and return a new MonoReflectionGenericParam; don't initialize the
5449         constraints here.
5450         (mono_reflection_initialize_generic_parameter): New public method;
5451         initializes the constraints and creates the `param->pklass'.
5452
5453 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5454
5455         * reflection.h reflection.c: Use the new fields 'num_types', 
5456         'num_fields' and 'num_methods' to track the number of types etc.
5457
5458         * verify.c (check_corlib): Check corlib version number.
5459
5460 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5461
5462         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5463         function works on all methods.
5464
5465 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5466
5467         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5468         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5469         the custom_type_info flag of the transparent proxy.
5470         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5471         objects that supports IRemotingTypeInfo.
5472         * object.h: Added custom_type_info field in transparent proxy.
5473
5474 2003-12-06  Martin Baulig  <martin@ximian.com>
5475
5476         * class.c (mono_class_create_from_generic): Removed.
5477         (mono_class_from_generic): Check `ginst->klass' before doing
5478         anything else.  This is important to fully support "recursive"
5479         generic types.
5480
5481         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5482         empty `generic_inst->klass' before doing anything else.
5483
5484 2003-12-06  Dick Porter  <dick@ximian.com>
5485
5486         * verify.c: 
5487         * object.h:
5488         * icall.c:
5489         * locales.c: Use C structs to access class fields.  Don't do a
5490         conversion between MonoString and UChar because both are
5491         platform-endian UTF-16.  Compare now takes startindex and count
5492         parameters.  Add a char overload for IndexOf.  Speed up the
5493         invariant string IndexOf.
5494
5495 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5496
5497         * Makefile.am (monosn_LDADD): Fix parallel build.
5498
5499 2003-12-04  Martin Baulig  <martin@ximian.com>
5500
5501         * icall.c
5502         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5503         (ves_icall_Type_make_array_type): New interncall.       
5504
5505 2003-12-04  Martin Baulig  <martin@ximian.com>
5506
5507         * locales.c: also change it in the !HAVE_ICU case.
5508
5509 2003-12-04  Dick Porter  <dick@ximian.com>
5510
5511         * icall.c:
5512         * locales.c: construct_compareinfo is now in CompareInfo, not
5513         CultureInfo.
5514
5515 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5516
5517         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5518         image->files array.
5519
5520         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5521         table as well.
5522
5523         * assembly.c (mono_assembly_load_references): Only load references
5524         once.
5525
5526         * class.c (mono_class_from_name): Avoid linear search of the 
5527         EXPORTEDTYPE table.
5528
5529         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5530
5531 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5532
5533         * image.h (MonoImage): Add 'field_cache' field.
5534
5535         * loader.c (mono_field_from_token): Cache field lookups.
5536         
5537         * reflection.c (mono_module_get_object): Fix name property.
5538
5539         * icall.c (ves_icall_get_enum_info): Update after changes to 
5540         mono_metadata_get_constant_index ().
5541
5542         * icall.c: Get rid of get_type_info icall, use a separate icall for
5543         each type property to avoid needless memory allocations. Fixes #51514.
5544
5545         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5546         to avoid needless binary searches.
5547
5548         * class.c (class_compute_field_layout): Move the initialization of
5549         field->def_value to mono_class_vtable ().
5550
5551         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5552         non-corlib types.
5553
5554         * object.c (mono_object_allocate): Make it inline.
5555
5556         * object.c (mono_object_allocate_spec): Make it inline.
5557         
5558 2003-12-02  Dick Porter  <dick@ximian.com>
5559
5560         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5561         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5562
5563 2003-12-01  Dick Porter  <dick@ximian.com>
5564
5565         * threads.c: Fix signature and call in CreateMutex and
5566         CreateEvent.
5567
5568 2003-12-01  Dick Porter  <dick@ximian.com>
5569
5570         * icall.c: 
5571         * locales.c: Implement string compares and searching
5572
5573         * object.h: Add extra Thread field
5574
5575 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5576
5577         * reflection.c (fixup_method): Add support for MonoCMethod.
5578
5579 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5580
5581         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5582
5583         * reflection.c (assembly_name_to_aname): Allow extra characters in
5584         assembly names. Fixes #51468.
5585
5586 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5587
5588         * exception.c (mono_exception_from_name_domain): New helper function.
5589
5590         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5591         exception object in the correct domain.
5592
5593         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5594         formatting + make a copy a the input data.
5595
5596         * loader.c (mono_get_method_from_token): Methods which contain
5597         native code do not have entries in the ImplMap.
5598
5599         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5600         Thanks to Gonzalo for spotting this.
5601         
5602         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5603         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5604
5605         * assembly.h (mono_assembly_load_from): Split the second part of 
5606         assembly loading into a new public function.
5607
5608         * exception.h (mono_get_exception_bad_image_format): New function.
5609
5610 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5611
5612         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5613         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5614         
5615         * icall.c: Add new icall for creating dynamic methods.
5616
5617         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5618
5619         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5620
5621         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5622         create a dynamic method.
5623
5624         * reflection.c (resolve_object): New helper function.
5625
5626         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5627         which manipulate it so they can also work on dynamic methods.
5628
5629         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5630         creating the MonoReflectionMethodAux structure if it is not needed.
5631         
5632         * reflection.h verify.c: Update after changes to object layout.
5633
5634         * reflection.c (method_builder_encode_signature): Fix compilation on
5635         gcc 2.95.x.
5636
5637 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5638
5639         * appdomain.h: Added support for context static fields. Added static_data
5640           field to MonoAppContext and renamed thread_static_fields to a more
5641           generic special_static_fields in MonoAppDomain, since it can now contain
5642           context static fields.
5643         * domain.c: Updated hashtable name.
5644         * object.c: Replaced field_is_thread_static() for a more generic
5645           field_is_special_static() which also checks for context static attribute.
5646           In mono_class_vtable(), added support for static context fields.
5647         * threads.c: Changed methods that manage thread static fields to more
5648           generic methods so they can be reused both for thread and context static
5649           data.
5650         * threads.h: Declared some new methods.
5651
5652 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5653
5654         * reflection.h: Update after changes to the managed types.
5655
5656         * reflection.c (encode_custom_modifiers): New helper function.
5657
5658         * reflection.c (method_encode_signature): Emit custom modifiers.
5659
5660         * reflection.c (field_encode_signature): Emit custom modifiers.
5661
5662 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5663
5664         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5665
5666         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5667         implementation.
5668
5669         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5670         icall.
5671
5672         * object.c (mono_field_get_value_object): New function.
5673
5674         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5675         specific.
5676
5677 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5678
5679         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5680         return a preallocated out-of-memory exception instance.
5681
5682         * object.c (out_of_memory): Use the new function.
5683
5684         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5685         flag is before the custom modifiers. Fixes #49802.
5686
5687 2003-11-16  Martin Baulig  <martin@ximian.com>
5688
5689         * class.c (mono_class_is_open_constructed_type): Implemented the
5690         MONO_TYPE_GENERICINST case.
5691
5692 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5693
5694         * assembly.c (mono_assembly_fill_assembly_name): New function to
5695         fill out the MonoAssemblyName structure.
5696         (mono_assembly_open): Use the new function.
5697
5698         * icall.c (fill_reflection_assembly_name): New helper function.
5699
5700         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5701         new function.
5702
5703         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5704
5705 2003-11-15  Martin Baulig  <martin@ximian.com>
5706
5707         * class.c (mono_class_is_open_constructed_type): New public
5708         function; checks whether a type is an open constructed type,
5709         ie. whether it still contains type parameters.
5710         (mono_class_inflate_generic_type): If we're a type parameter and
5711         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5712         type.
5713
5714         * class.h (MonoGenericInst): Added `guint32 is_open'.
5715
5716         * loader.c (method_from_methodspec): Check whether we're an open
5717         or closed constructed type and set `ginst->is_open'.
5718
5719         * reflection.c (mono_reflection_bind_generic_parameters): Check
5720         whether we're an open or closed constructed type and set
5721         `ginst->is_open'.
5722         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5723         from open constructed types.
5724
5725 2003-11-15  Martin Baulig  <martin@ximian.com>
5726
5727         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5728         a generic instance (instead of a generic type declaration) with
5729         unbound generic parameters, bind them to our actual types.
5730
5731 2003-11-14  Martin Baulig  <martin@ximian.com>
5732
5733         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5734
5735         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5736         an interface type, populate `res->interfaces' with instantiated
5737         versions of all the interfaces we inherit.
5738
5739 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5740
5741         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5742         when MONO_PATH is set but doesn't contain the install dir.
5743
5744 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5745
5746         * icall.c:
5747         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5748         it's also implemented in base classes. Fixes bug #50927.
5749
5750 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5751
5752         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5753         if this method is called from a finalizer. Fixes #50913.
5754
5755 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5756
5757         * threads.c: Implement VolatileRead/VolatileWrite
5758
5759         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5760
5761 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5762
5763         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5764         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5765         2.95.3.
5766
5767         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5768         from Peter Ross (pro@missioncriticalit.com).
5769         
5770 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5771
5772         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5773
5774 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5775
5776         * assembly.c (mono_assembly_load_references): Disable check because it
5777         triggers on older corlibs which lots of people have.
5778
5779 2003-11-12  Jackson Harper  <jackson@ximian.com>
5780
5781         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5782         load corlib.dll if mscorlib.dll is not found.
5783         * assembly.h: Remove corlib name define.
5784         * class.c:
5785         * domain.c:
5786         * image.c: Change corlib name to mscorlib.
5787         
5788 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5789
5790         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5791
5792 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5793
5794         * appdomain.h: Added loader_optimization here to sync with the C#
5795         code, and add disallow_binding_redirects field.
5796
5797 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5798
5799         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5800
5801         * reflection.c (mono_image_build_metadata): Fix crash on modules
5802         with no types.
5803
5804         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5805
5806         * icall.c (ves_icall_get_method_info): Return callingConvention as
5807         well.
5808
5809         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5810         namespaces from the EXPORTEDTYPE table as well.
5811
5812         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5813         from all modules inside the assembly.
5814         
5815 2003-11-11  Martin Baulig  <martin@ximian.com>
5816
5817         * reflection.c (mono_reflection_bind_generic_parameters): Make
5818         this work for interfaces.
5819
5820 2003-11-11  Martin Baulig  <martin@ximian.com>
5821
5822         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5823
5824 2003-11-11  Martin Baulig  <martin@ximian.com>
5825
5826         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5827         "MonoInflatedMethod" and "MonoInflatedCtor".
5828
5829 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5830
5831         * reflection.c (resolution_scope_from_image): Use the assembly table
5832         from the manifest module, since other modules don't have it.
5833
5834         * debug-helpers.c (mono_type_full_name): New helper function.
5835
5836         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5837
5838         * image.c (mono_image_load_file_for_image): New public function which
5839         is a replacement for the load_file_for_image in class.c.
5840
5841         * assembly.c (mono_assembly_load_module): A wrapper for the function
5842         above which does assembly association and reference loading too.
5843
5844         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5845
5846 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5847
5848         * appdomain.c: not all of the attributes for the full assembly name
5849         are required and the order doesn't matter. Fixes bug #50787.
5850
5851 2003-11-10  Dick Porter  <dick@ximian.com>
5852
5853         * locales.c: Use platform-endian UTF16
5854
5855 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5856
5857         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5858         
5859 2003-11-10  Martin Baulig  <martin@ximian.com>
5860
5861         * metadata.c
5862         (mono_metadata_load_generic_params): Make this actually work.
5863
5864         * reflection.c (mono_reflection_bind_generic_parameters): If our
5865         parent is a generic instance, pass all the `types' to it, no
5866         matter whether it has the same number of type parameters or not.
5867
5868 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5869
5870         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5871
5872         * assembly.c (mono_assembly_load_references): Move the image<->assembly
5873         assignment code to this function so it gets called recursively for all
5874         modules.
5875
5876         * image.c (load_modules): Remove the assembly assignment since it is
5877         now done by mono_assembly_load_references.
5878         
5879         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5880         Add 'module' argument.
5881         (mono_module_get_types): New helper function.
5882         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
5883
5884 2003-11-08  Martin Baulig  <martin@ximian.com>
5885
5886         * class.c (mono_class_inflate_generic_method): Interface method
5887         don't have a header.
5888
5889         * reflection.c (mono_image_get_methodspec_token): Take an
5890         additional `MonoGenericInst *' argument instead of reading it from
5891         the header; this is necessary to support interfaces.
5892         (mono_image_create_token): Pass the `MonoGenericInst *' from the
5893         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
5894         (inflated_method_get_object): Take an additional `MonoGenericInst *'
5895         argument.
5896
5897         * reflection.h (MonoReflectionInflatedMethod): Added
5898         `MonoGenericInst *ginst'.
5899
5900 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
5901
5902         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
5903
5904 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
5905
5906         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
5907
5908 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
5909
5910         * reflection.c 
5911         (reflection_methodbuilder_from_method_builder):
5912         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
5913         initialize a ReflectionMethodBuilder structure.
5914         (mono_image_get_methodbuilder_token):
5915         (mono_image_get_ctorbuilder_token): New functions to emit memberref
5916         tokens which point to types in another module inside the same assembly.
5917
5918         * reflection.c: Use the new helper functions.
5919         
5920         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
5921
5922         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
5923         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
5924
5925         * reflection.c (resolution_scope_from_image): Emit a moduleref if
5926         neccesary.
5927
5928         * reflection.c (mono_image_build_metadata): Emit metadata only for the
5929         current module. Emit the manifest only for the main module.
5930
5931         * reflection.c (mono_image_create_token): Add assertion when a 
5932         memberref needs to be created.
5933
5934         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
5935
5936         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
5937         larger buffer for the custom attribute blob. Fixes #50637.
5938         
5939 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5940
5941         * threadpool.c: notify listener on async processing handles after
5942         invoking the async callback. Thanks to Zoltan.
5943
5944 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5945
5946         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
5947         avoid code duplication.
5948
5949         * reflection.h (MonoDynamicImage): New type which is currently unused,
5950         but will be used through the ref.emit code in place of 
5951         MonoDynamicAssembly.
5952
5953         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5954         object layout.
5955
5956         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
5957         a MonoDynamicImage instead of just a MonoImage.
5958         
5959         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
5960         icalls to ModuleBuilder but keep their semantics, so they will work
5961         with moduleb->assemblyb. This will change later.
5962         
5963 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5964
5965         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5966         object layout.
5967
5968         * reflection.c (mono_image_build_metadata): Avoid creation of a default
5969         main module, since it is now done by the managed code.
5970
5971 2003-11-03  Martin Baulig  <martin@ximian.com>
5972
5973         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
5974         `ginst->klass' here.
5975         (method_encode_methodspec): Don't use the `ginst->generic_method's
5976         klass if it's a generic instance, use `ginst->klass' in this case.
5977
5978 2003-11-03  Martin Baulig  <martin@ximian.com>
5979
5980         * reflection.c (mono_image_get_generic_method_param_info):
5981         Removed, use mono_image_get_generic_param_info() instead.
5982         (mono_image_get_type_info): Write the GenericParam table before
5983         the Method table.  This is neccessary because in the GenericParam
5984         table, type parameters of the class (ie. '!0' etc.) must come
5985         before the ones from its generic methods (ie. '!!0' etc).
5986
5987 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5988
5989         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
5990
5991 2003-11-02  Martin Baulig  <martin@ximian.com>
5992
5993         * reflection.c (create_generic_typespec): Take a
5994         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
5995         the generic parameters from it.
5996
5997 2003-11-02  Martin Baulig  <martin@ximian.com>
5998
5999         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
6000         instead of a `MonoClassField *' since we just need the type.
6001         (create_generic_typespec): New static function.  Creates a
6002         TypeSpec token for a generic type declaration.
6003         (mono_image_get_generic_field_token): New static function.
6004         (mono_image_create_token): If we're a FieldBuilder in a generic
6005         type declaration, call mono_image_get_generic_field_token() to get
6006         the token.
6007
6008 2003-11-02  Martin Baulig  <martin@ximian.com>
6009
6010         * reflection.h
6011         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
6012         `MonoReflectionGenericInst *declaring_type' and
6013         `MonoReflectionGenericInst *reflected_type' fields.
6014
6015         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
6016         `MonoReflectionGenericInst *declaring_type' and a
6017         `MonoReflectionGenericInst *reflected_type' argument instead of a
6018         single `MonoReflectionGenericInst *type' one.  Set
6019         `res->declaring_type' and `res->reflected_type' from them.
6020         (mono_reflection_inflate_field): Likewise.      
6021
6022 2003-11-02  Martin Baulig  <martin@ximian.com>
6023
6024         * class.c (mono_class_setup_vtable): Don't store generic methods
6025         in the vtable.  
6026
6027 2003-11-02  Martin Baulig  <martin@ximian.com>
6028
6029         * reflection.h (MonoReflectionGenericInst): Added
6030         `MonoReflectionType *declaring_type'.
6031
6032         * reflection.c (mono_reflection_bind_generic_parameters): Use
6033         `if (tb->parent)' instead of `klass->parent'.
6034
6035 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
6036
6037         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
6038         with an empty ASSEMBLY table.
6039
6040         * reflection.c (mono_image_build_metadata): Avoid using the same loop
6041         variable in the inner and outer loops.
6042
6043 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
6044
6045         * metadata.h (mono_metadata_make_token): Put parentheses around macro
6046         argument.
6047
6048         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
6049         
6050         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
6051         icalls. Instead, do everything in managed code. This is needed since
6052         it is hard to restore the original domain etc. in unmanaged code in the
6053         presence of undeniable exceptions.
6054
6055         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
6056         New icalls to push and pop appdomain refs.
6057
6058 2003-10-31  Martin Baulig  <martin@ximian.com>
6059
6060         * class.c (inflate_generic_type): Renamed to
6061         mono_class_inflate_generic_type() and made it public.
6062
6063         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6064         New interncall.
6065
6066         * loader.c (mono_field_from_memberref): Also set the retklass for
6067         typespecs.
6068
6069         * fielder.c (mono_image_get_inflated_field_token): New static
6070         method; creates a metadata token for an inflated field.
6071         (mono_image_create_token, fixup_method): Added support for
6072         "MonoInflatedField".
6073         (fieldbuilder_to_mono_class_field): New static function.
6074         (mono_reflection_inflate_field): New public function.
6075
6076         * reflection.h
6077         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6078         (MonoReflectionInflatedField): New typedef.     
6079
6080 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6081
6082         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6083         for Solaris and other platforms without s6_addr16
6084
6085 2003-10-30  Martin Baulig  <martin@ximian.com>
6086
6087         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6088         argument instead of two.
6089         (mono_class_inflate_generic_signature): Likewise.
6090         (inflate_generic_header): Likewise.
6091         (mono_class_inflate_generic_method): Likewise.  In addition, if
6092         `ginst->klass' is set, it becomes the new `method->klass'.
6093
6094         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6095         field.
6096
6097         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6098         first byte. [FIXME]
6099         (method_encode_methodspec): If we have generic parameters, create
6100         a MethodSpec instead of a MethodRef.
6101         (fixup_method): Added support for "MonoInflatedMethod" and
6102         "MonoInflatedCtor".
6103         (mono_image_create_token): Added support for "MonoInflatedMethod"
6104         and "MonoInflatedCtor".
6105         (inflated_method_get_object): New static function; returns a
6106         managed "System.Reflection.MonoInflatedMethod" object.
6107         (mono_reflection_bind_generic_method_parameters): Return a
6108         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6109         (mono_reflection_inflate_method_or_ctor): Likewise.
6110         (mono_image_get_generic_method_param_info): Initialize unused
6111         fields to zero.
6112         (mono_image_get_generic_param_info): Likewise.
6113
6114         * reflection.h (MonoReflectionInflatedMethod): New public
6115         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6116         "S.R.MonoInflatedCtor" classes.
6117
6118         * loader.c (method_from_memberref): If we're a TypeSpec and it
6119         resolves to a generic instance, inflate the method.
6120
6121 2003-10-28  Dick Porter  <dick@ximian.com>
6122
6123         * object.c (mono_runtime_run_main): Convert command-line arguments
6124         into utf8, falling back to the user's locale encoding to do so.
6125
6126 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6127
6128         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6129         at this time.
6130
6131         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6132
6133         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6134         up icalls at method definition time. Partially fixes #33569.
6135
6136 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6137
6138         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6139         marshalling of arrays. Fixes #50116.
6140
6141         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6142
6143         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6144         points to a vtable in the dying appdomain.
6145
6146         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6147         listeners into unmanaged code inside the lock.
6148
6149         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6150         domains and add some comments.
6151
6152 2003-10-25  Martin Baulig  <martin@ximian.com>
6153
6154         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6155
6156         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6157
6158         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6159         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6160         currently parsing.  Create the generic class and store it in
6161         `generic_inst->klass' before parsing the type arguments.  This is
6162         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6163         for an example.
6164         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6165         to support recursive typespec entries.
6166
6167         * class.c (mono_class_setup_parent): If our parent is a generic
6168         instance, we may get called before it has its name set.
6169         (mono_class_from_generic): Splitted into
6170         mono_class_create_from_generic() and mono_class_initialize_generic().
6171
6172 2003-10-25  Martin Baulig  <martin@ximian.com>
6173
6174         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6175         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6176         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6177         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6178
6179         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6180         (create_typespec): Likewise.
6181         (mono_reflection_bind_generic_parameters): Return a
6182         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6183         (mono_reflection_inflate_method_or_ctor): New public function.
6184
6185         * reflection.h (MonoReflectionGenericInst): New typedef.        
6186
6187 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6188
6189         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6190         inside the domain lock. Fixes #49993.
6191         
6192         * object.c (mono_class_vtable): When typed allocation is used, 
6193         allocate vtables in the GC heap instead of in the mempool, since the
6194         vtables contain GC descriptors which are used by the collector even
6195         after the domain owning the mempool is unloaded.
6196
6197         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6198
6199         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6200         reflect what it does. Also invalidate mempools instead of freeing
6201         them if a define is set.
6202
6203         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6204         of the appdomain.
6205         
6206         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6207         hold the finalizable objects in this domain.
6208
6209         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6210         appdomain.
6211
6212         * appdomain.c (mono_domain_set): New function to set the current
6213         appdomain, but only if it is not being unloaded.
6214
6215         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6216         appdomain which is being unloaded.
6217         
6218         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6219         unloading of the root appdomain.
6220
6221         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6222         icall to execute a method in another appdomain. Intended as a 
6223         replacement for InternalSetDomain, which can confuse the code 
6224         generation in the JIT.
6225
6226         * appdomain.c (mono_domain_is_unloading): New function to determine
6227         whenever an appdomain is unloading.
6228
6229         * appdomain.c (mono_domain_unload): New function to correctly unload
6230         an appdomain.
6231
6232         * assembly.c (mono_assembly_load_references): Check that an assembly
6233         does not references itself.
6234
6235         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6236         domain manually, it asks the finalizer thread to do it, then waits for
6237         the result. Also added a timeout.
6238
6239         * icall.c: Register the new icalls.
6240
6241         * threads.h threads.c: Export the mono_gc_stop_world and 
6242         mono_gc_start_world functions.
6243         
6244         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6245         function to fill out the mempool with 0x2a.
6246
6247 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6248
6249         * reflection.h (MonoReflectionMethodAux): New structure to store
6250         information which is rarely used, thus is not in the MonoMethod
6251         structure.
6252
6253         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6254         store the aux info.
6255
6256         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6257         and marshalling info into the aux structure.
6258
6259         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6260         from the aux structure.
6261
6262         * loader.c (mono_method_get_param_names): Retrieve the param names from
6263         the aux structure.
6264         
6265 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6266
6267         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6268         warning.
6269
6270 2003-10-21  Dick Porter  <dick@ximian.com>
6271
6272         * socket-io.c
6273         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6274         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6275
6276 2003-10-21  Martin Baulig  <martin@ximian.com>
6277
6278         * reflection.c (mono_reflection_bind_generic_parameters):
6279         `klass->parent' is NULL for interfaces.
6280
6281 2003-10-21  Martin Baulig  <martin@ximian.com>
6282
6283         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6284
6285 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6286
6287         * exception.c (mono_exception_from_name_msg): New helper function for
6288         creating exceptions and initializing their message field.
6289
6290         * exception.c: Simplify functions using the new helper.
6291
6292         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6293         New function.
6294
6295         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6296         mono_raise_exception, since otherwise gcc doesn't generate the function
6297         epilog for raise_exception, confusing the stack unwinding in the JIT.
6298         Fixes #45043.
6299
6300         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6301         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6302         Fixes #49499.
6303
6304 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6305
6306         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6307         utf8.
6308
6309 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6310
6311         * icall.c: Removed GetUninitializedObject method because
6312           AllocateUninitializedClassInstance does the same.
6313
6314 2003-10-18  Martin Baulig  <martin@ximian.com>
6315
6316         * class.c (inflate_generic_signature): Renamed to
6317         mono_class_inflate_generic_signature() and made it public.
6318         (my_mono_class_from_generic_parameter): New static function; if we
6319         don't already have the generic parameter's MonoClass, create a
6320         very simple one which is just used internally in the runtime and
6321         not passed back to managed code.
6322
6323         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6324
6325         * metadata.h (MonoMethodSignature): Moved the
6326         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6327         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6328
6329         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6330         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6331         interncall on the MonoMethod class, not on MethodInfo.
6332         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6333         calling mono_reflection_bind_generic_method_parameters() directly.
6334
6335         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6336         return the already computed `method->signature'.
6337         (method_from_methodspec): New static function to load a method
6338         from a MethodSpec entry.
6339         (mono_get_method_from_token): Call the new method_from_methodspec()
6340         for MethodSpec tokens.  
6341         (mono_get_method_from_token): If we're a generic method, load the
6342         type parameters.
6343
6344         * reflection.c (mono_image_get_memberref_token): Allow
6345         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6346         table.
6347         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6348         (mono_image_create_token): First check whether it's a generic
6349         method (so we'd need to create a MethodSpec), then do the other
6350         two alternatives.
6351         (mono_reflection_bind_generic_method_parameters): Return a
6352         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6353         called directly from the interncall.
6354
6355 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6356
6357         * reflection.c (load_public_key): Move loading of the public key
6358         into managed code.
6359
6360         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6361
6362         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6363         fields.
6364
6365         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6366         culture, hash_alg and public_key. Fixes #49555.
6367
6368 2003-10-17  Martin Baulig  <martin@ximian.com>
6369
6370         * class.h (MonoGenericInst): Moved this declaration here and added
6371         `MonoMethod *generic_method'.
6372
6373         * icall.c
6374         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6375         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6376
6377         * metadata.c (mono_metadata_type_equal): Two types of
6378         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6379         index; ie. don't compare the address of the `MonoGenericParam'
6380         structure.
6381         (mono_metadata_load_generic_params): Removed the `MonoMethod
6382         *method' argument.
6383
6384         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6385         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6386
6387         * reflection.c (method_encode_signature): Encode the number of
6388         generic parameters.
6389         (encode_generic_method_sig): New static function.
6390         (method_encode_methodspec): New static function; creates an entry
6391         in the MethodSpec table for a generic method.
6392         (mono_image_get_methodspec_token): New static function.
6393         (mono_image_create_token): Call mono_image_get_methodspec_token()
6394         for generic methods.
6395         (mono_reflection_bind_generic_method_parameters): New public
6396         function.  Instantiates a generic method.
6397
6398 2003-10-16  Martin Baulig  <martin@ximian.com>
6399
6400         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6401         *gen_params' here from MonoMethodHeader.
6402
6403         * metadata.c (mono_metadata_parse_method_signature): If we have
6404         generic parameters, initialize `method->gen_params' and then set
6405         the correct `type->data.generic_param' in all the parameters.
6406
6407 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6408
6409         * threads.c (mono_threads_get_default_stacksize): New function to 
6410         return the default stacksize.
6411
6412         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6413         termination of the finalizer thread, since the previous method had
6414         race conditions. Fixes #49628.
6415
6416         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6417         as for the other managed threads.
6418
6419 2003-10-16  Martin Baulig  <martin@ximian.com>
6420
6421         * class.c (inflate_generic_signature): Copy `generic_param_count'
6422         and `gen_params'.
6423
6424         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6425         New interncall.
6426
6427         * metadata.c (mono_metadata_parse_method_signature): Actually set
6428         the `method->generic_param_count' here.
6429         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6430
6431 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6432
6433         * object.h: Add a new field to TypedRef to simplify the implementation
6434         of the REFANY opcodes in the JIT.
6435
6436         * icall.c: Make use of the new field.
6437
6438         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6439         dynamically.
6440
6441 2003-10-15  Martin Baulig  <martin@ximian.com>
6442
6443         * class.c (mono_class_from_gen_param): Renamed to
6444         mono_class_from_generic_parameter() and moved most of the
6445         functionality from mono_reflection_define_generic_parameter()
6446         here; ie. we create a "real" class here.
6447         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6448         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6449         previously been called.
6450
6451         * class.h (MonoGenericParam): Moved the declaration of this struct
6452         here from metadata.h and added `MonoMethod *method'.
6453
6454         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6455         interncall.
6456
6457         * loader.c (mono_get_method_from_token): If we have any generic
6458         parameters, call mono_metadata_load_generic_params() to read them
6459         from the MONO_TABLE_GENERICPAR.
6460
6461         * metadata.c (mono_metadata_load_generic_params): Added
6462         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6463
6464         * metadata.h (MonoMethodSignature): Replaced
6465         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6466         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6467
6468         * reflection.c (mono_reflection_define_generic_parameter): Moved
6469         most of the functionality into the new
6470         mono_class_from_generic_parameter(); set the `method' field if
6471         we're a method parameter.       
6472
6473 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6474
6475         * marshal.c (emit_struct_conv): if native size is 0
6476         emit no code.
6477
6478 2003-10-14  Martin Baulig  <martin@ximian.com>
6479
6480         * icall.c: The generics API has changed in the spec since it was
6481         added to System.Type; these modifications make it match the spec
6482         again.
6483         (ves_icall_Type_GetGenericParameters): Renamed to
6484         `ves_icall_Type_GetGenericArguments'.
6485         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6486         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6487         `ves_icall_MonoType_get_HasGenericArguments'.
6488         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6489         `ves_icall_MonoType_get_IsGenericParameter'.
6490         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6491         this is no interncall anymore.
6492         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6493         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6494
6495 2003-10-14  Martin Baulig  <martin@ximian.com>
6496
6497         * reflection.c (mono_reflection_bind_generic_parameters): Also
6498         inflate generic methods if we're reading the class from IL.
6499
6500 2003-10-13  Martin Baulig  <martin@ximian.com>
6501
6502         * reflection.c (mono_reflection_define_generic_parameter): This
6503         method isn't called directly from the icall anymore; take a
6504         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6505         method generic parameters.
6506         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6507         (method_builder_encode_signature): Encode generic parameters.
6508         (mono_image_get_method_info): Write generic params to the
6509         MONO_TABLE_GENERICPARAM table.
6510
6511         * reflection.h (MonoReflectionMethodBuilder): Added
6512         `MonoArray *generic_params'.
6513
6514         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6515
6516         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6517         wrapper for mono_reflection_define_generic_parameter().
6518         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6519
6520 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6521
6522         * marshal.h: Add missing function to fix build.
6523
6524         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6525         the SetLastError pinvoke attribute.
6526
6527         * marshal.c (mono_marshal_set_last_error): New helper function called
6528         by the generated code.
6529         
6530         * marshal.c (mono_mb_emit_branch): New helper function.
6531
6532         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6533
6534         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6535         classes as parameters and return values of delegates. Fixes #29256. 
6536
6537 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6538
6539         * locales.c: use gint32 in non HAVE_ICU case
6540
6541 2003-10-11  Martin Baulig  <martin@ximian.com>
6542
6543         * mono-debug.c (mono_debug_add_method): Added a workaround for
6544         bug #48591.
6545
6546 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6547
6548         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6549         delegates passed to native code must use the STDCALL calling 
6550         convention. Fixes #35987.
6551
6552 2003-10-10  Martin Baulig  <martin@ximian.com>
6553
6554         * class.c (inflate_generic_type): If we're inflating for a generic
6555         type instance (and not for a generic method), return
6556         MONO_TYPE_MVAR unchanged.
6557
6558 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6559
6560         * string-icalls.c: Join ignores null strings in the source array.
6561         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6562         * threads.c: GetAvailableTheads is slightly more accurate.
6563
6564 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6565
6566         * threads.h threads.c : add mono_threads_set_default_stacksize
6567         and pass default to CreateThread calls.
6568
6569 2003-10-09  Dick Porter  <dick@ximian.com>
6570
6571         * icall.c:
6572         * locales.h:
6573         * locales.c: Internal calls for constructing CultureInfo and
6574         related objects from libicu (if its available.)
6575
6576 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6577
6578         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6579
6580 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6581
6582         * threadpool.c: added an argument to async_invoke_thread that is the
6583         item to process, pass the MonoAsyncResult to the thread start function
6584         when creating a new thread. This way we don't need to acquire any lock
6585         when we're creating a new thread. Readded a semaphore for faster
6586         response times (instead of that Sleep i added).
6587
6588 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6589
6590         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6591         get daylight change dates better on Windows, fix handling
6592         of platforms without tm_gmtoff.
6593
6594 2003-10-06  Martin Baulig  <martin@ximian.com>
6595
6596         * class.c (inflate_generic_method): Renamed to
6597         mono_class_inflate_generic_method() and made public.
6598         (mono_class_init): Don't inflate the generic methods here.
6599         (mono_class_from_generic): Added `gboolean inflate_methods'
6600         argument.  Inflate the methods here.
6601
6602         * loader.c (mono_method_get_param_names): Ignore instances of
6603         generic types for the moment.
6604
6605         * reflection.c (fixup_method): Added support for inflated methods.
6606         (mono_image_create_token): Use mono_image_get_methodref_token()
6607         for inflated methods.
6608         (mono_custom_attrs_from_param): Ignore instances of generic types
6609         for the moment.
6610         (mono_reflection_bind_generic_parameters): New public function.
6611         Moved all the functionality from
6612         ves_icall_Type_BindGenericParameters() here and added support for
6613         dynamic types.
6614         (mono_reflection_define_generic_parameter): Initialize
6615         `klass->methods' here.
6616
6617         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6618         functionality into mono_reflection_define_generic_parameter().
6619         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6620         TypeBuilder, return that TypeBuilder.
6621
6622 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6623
6624         * appdomain.c: removed mono_delegate_semaphore.
6625
6626         * threadpool.c:
6627         (mono_thread_pool_add): moved hash table creation inside and the thread 
6628         creation outside of the critical region.
6629         (mono_thread_pool_finish): removed obsolete code.
6630         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6631         continue or exit the thread depending on the queue.
6632
6633 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6634
6635         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6636         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6637         handle more bool marshalling options
6638
6639 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6640
6641         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6642         arrays of structs. Also add a more descriptive error message when
6643         a structure member is marshalled as LPArray.
6644
6645 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6646
6647         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6648         marshalling arrays of complex types. Fixes #29098. Also remove an
6649         usused and incomplete function.
6650
6651 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6652
6653         * gc.c: report heap_size - free_bytes as total memory allocated
6654         (bug#49362).
6655
6656 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6657
6658         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6659         fix timezone handling problems on Windows.
6660         
6661         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6662         asserts when the year is outside the range handled by ms the functions.
6663
6664         * class.c (setup_interface_offsets): If the class is an interface,
6665         fill out its interface_offsets slot.
6666
6667 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6668
6669         * threadpool.c: mark threadpool threads as background.
6670
6671 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6672
6673         * decimal.c - define DECINLINE to nothing if not using GCC
6674
6675 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6676
6677         * assembly.c: More refcount fixes.
6678
6679 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6680
6681         * string-icalls.c: if we're not trimming, return the same string.
6682         When not splitting, don't create a new string.
6683
6684 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6685
6686         * image.c:
6687         (mono_image_open): increment the ref_count inside the critical section.
6688
6689 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6690
6691         * image.c (mono_image_open): Fix reference counting bug.
6692
6693 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6694
6695         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6696         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6697         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6698         mono_lookup_pinvoke_call throws.        
6699
6700 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6701
6702         * reflection.c (mono_reflection_parse_type): Fix #49114.
6703
6704         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6705         temporary workaround for cygwin header problem.
6706
6707         * object.c (mono_object_isinst): Synchronize this with the code
6708         generated by the JIT for casts.
6709
6710 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6711
6712         * reflection.c (encode_type): Fix #38332.
6713
6714 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6715
6716         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6717         the original method from the wrapper method.
6718
6719 2003-09-25  Martin Baulig  <martin@ximian.com>
6720
6721         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6722         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6723         (ves_icall_Type_get_IsGenericInstance): New interncall.
6724
6725 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6726
6727         * object.c: fix cast warning in big endian code.
6728
6729 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6730
6731         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6732         
6733 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6734
6735         * assembly.c: don't call check_env from mono_assembly_load. It's
6736         already done once in mono_assemblies_init and may cause headaches when
6737         multiple threads are loading assemblies.
6738
6739 2003-09-19  Martin Baulig  <martin@ximian.com>
6740
6741         * reflection.c (mono_reflection_define_generic_parameter): Don't
6742         allocate `klass->methods', set `klass->flags' to
6743         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6744
6745 2003-09-18  Martin Baulig  <martin@ximian.com>
6746
6747         * class.c (mono_class_init): Don't create `class->methods' if it's
6748         already initialized.
6749
6750         * metadata.c (mono_metadata_load_generic_params): Make this
6751         actually work.
6752
6753         * reflection.c (mono_reflection_define_generic_parameter): Set
6754         parent class and interfaces from the constraints.
6755
6756         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6757         to keep this struct in sync with the declaration in TypeBuilder.cs.
6758
6759 2003-09-17  Martin Baulig  <martin@ximian.com>
6760
6761         * metadata.h (MonoType): Replaced the data's `int type_param'
6762         field with `MonoGenericParam *generic_param'.
6763         (MonoGenericParam): Added `MonoClass *klass'.
6764
6765         * class.c (mono_class_from_gen_param): Removed the
6766         `MonoImage *image' and `int type_num' arguments.
6767
6768         * metadata.c (mono_metadata_parse_generic_param): New static
6769         method; creates a MonoGenericParam which just contains the index.
6770         (do_mono_metadata_parse_type): Call
6771         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6772         MONO_TYPE_MVAR.
6773
6774         * reflection.c (mono_image_typedef_or_ref): Generic type
6775         parameters may be in the same assembly, but never use a typedef
6776         for them.
6777         (mono_reflection_define_generic_parameter): We're now creating a
6778         "real" class for the type parameter; it's now safe to call
6779         mono_class_from_mono_type() on the class'es type, it'll do the
6780         right thing.
6781
6782 2003-09-16  Martin Baulig  <martin@ximian.com>
6783
6784         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6785         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6786         the `symfile' data structure must be fully initialized before it
6787         gets added to the table.
6788
6789 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6790
6791         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6792
6793         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6794         class init trampolines.
6795
6796 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6797
6798         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6799         to the built-in profiler to turn off time and allocation profiling
6800         respectively.
6801
6802 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6803
6804         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6805         g_direct_equal.
6806
6807         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6808         in human readable form.
6809
6810 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6811
6812         * reflection.c icall.c: Fixed warnings.
6813
6814         * image.c (load_class_names): Use a temporary hash table to hold the
6815         namespaces in order to avoid doing many string comparisons.
6816
6817         * image.h: Fix typo.
6818
6819         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6820         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6821         since the NULL case is short-circuited inside g_hash_table_lookup, 
6822         leading to better performance.  
6823
6824         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6825         obtain the first custom attribute for a given index. Depends on the
6826         CustomAttribute table being sorted by the parent field.
6827
6828         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6829         for better performance.
6830
6831 2003-09-07  Martin Baulig  <martin@ximian.com>
6832
6833         * class.c (mono_class_init): If we're a generic instance, inflate
6834         all our methods instead of loading them from the image.
6835         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6836
6837 2003-09-07  Martin Baulig  <martin@ximian.com>
6838
6839         * mono-debug-debugger.c: Added support for constructors.
6840
6841 2003-09-06  Martin Baulig  <martin@ximian.com>
6842
6843         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6844         New interncall.
6845
6846         * reflection.c (mono_reflection_setup_generic_class): Call
6847         ensure_runtime_vtable() to create the vtable.
6848
6849 2003-09-05  Martin Baulig  <martin@ximian.com>
6850
6851         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6852         MONO_TYPE_MVAR.
6853
6854 2003-09-04  Martin Baulig  <martin@ximian.com>
6855
6856         * reflection.c (mono_reflection_define_generic_parameter): Generic
6857         parameters start with zero.
6858
6859 2003-09-04  Martin Baulig  <martin@ximian.com>
6860
6861         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6862
6863         * reflection.h (MonoReflectionGenericParam): New typedef.
6864         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
6865         the generic parameters from the managed TypeBuilder.
6866
6867         * reflection.c (mono_reflection_define_generic_parameter): New function.
6868         (mono_reflection_create_runtime_class): Encode generic parameters.
6869         (mono_reflection_setup_generic_class): New function; this is
6870         called after adding adding all generic params to the TypeBuilder.
6871         (encode_type): Added MONO_TYPE_VAR.
6872
6873 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
6874
6875         * class.h class.c (mono_class_needs_cctor_run): Moved this method
6876         here from the JIT.
6877
6878         * assembly.h assembly.c: Moved the AOT loading code into an assembly
6879         load hook.
6880
6881 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
6882
6883         * reflection.h reflection.c class.h class.c: Delete duplicate 
6884         definition of mono_type_get_name () from reflection.c and export the
6885         one in class.c.
6886
6887         * class.c: Class loading fixes from Bernie Solomon 
6888         (bernard@ugsolutions.com).
6889
6890         * reflection.c: Endianness fixes from Bernie Solomon 
6891         (bernard@ugsolutions.com).
6892         
6893 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
6894
6895         * assembly.h assembly.c: Define a file format version for AOT
6896         libraries.
6897         
6898         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
6899
6900         * appdomain.h (MonoJitInfo): New field to determine whenever the
6901         code is domain neutral.
6902         
6903 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
6904
6905         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
6906
6907 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
6908
6909         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
6910         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
6911         Avoid caching the result since strings must be domain specific. Fixes
6912         #48050.
6913
6914 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
6915
6916         * marshal.c (mono_marshal_init): Make this callable multiple times
6917         since it is hard to find a correct place to call it.
6918
6919         * object.c (mono_runtime_class_init): Execute static constructors in
6920         the correct appdomain.
6921
6922         * image.c (build_guid_table): Handle the case when multiple images have
6923         the same GUID.
6924
6925 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6926
6927         * icall.c: added a couple of icalls for System.Web.
6928
6929 2003-08-28  Martin Baulig  <martin@ximian.com>
6930
6931         * icall.c (ves_icall_Type_BindGenericParameters): Use
6932         `klass->generic_inst' instead of `&klass->byval_arg' in the
6933         mono_type_get_object() call.  The returned type must be
6934         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
6935
6936 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
6937
6938         * NOTES: New file.
6939
6940         * object.c (mono_class_proxy_vtable): Make it thread safe.
6941
6942         * pedump.c: Fix warning.
6943
6944         * object.c appdomain.h: Get rid of metadata_section. 
6945         It is no longer needed and it was causing deadlocks with domain->lock.
6946
6947         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
6948
6949 2003-08-26  Martin Baulig  <martin@ximian.com>
6950
6951         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
6952
6953 2003-08-26  Martin Baulig  <martin@ximian.com>
6954
6955         * pedump.c (main): Call mono_metadata_init(),
6956         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
6957         and mono_loader_init().
6958
6959 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
6960
6961         * loader.h: Add missing include to fix build.
6962
6963         * image.h: mono_image_load_references is no more.
6964
6965         * assembly.c: Reworked assembly loading to make it really thread safe.
6966         After these changes, the assembly returned by mono_assembly_open is
6967         fully initialized, i.e. all its references assemblies are loaded.
6968
6969         * assembly.c (mono_image_load_references): Renamed to 
6970         mono_assembly_load_references, and made private, since clients no
6971         longer need to call it.
6972
6973         * class.c: Removed calls to mono_assembly_load_references, since it was
6974         a source of deadlocks.
6975
6976         * loader.h loader.c class.h class.c: Protect data structures using a 
6977         new lock, the loader lock.
6978
6979         * class.c (mono_class_setup_vtable): Create temporary hash tables and
6980         GPtrArrays only when needed.
6981
6982         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
6983         into empty structures by mcs. Fixes pinvoke7.cs.
6984         
6985         * domain.c (mono_init): Call a new initialization function.
6986
6987         * appdomain.c (mono_runtime_init): Call the new initializer function
6988         of the marshal module.
6989
6990         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
6991         inserted into empty structures by mcs. Fixes pinvoke7.cs.
6992
6993         * marshal.h marshal.c: Added locks around the wrapper caches to make
6994         this module thread safe.
6995
6996         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
6997         this argument. Fixes pinvoke1.exe.
6998
6999 2003-08-25  Lluis Sanchez <lluis@ximian.com>
7000
7001         * object.h: Added call_type field to MonoMethodMessage and the corresponding
7002         enumeration of values. Removed fields to store remote call output values in
7003         MonoAsyncResult. Not needed any more.
7004         * object.c: Initialize call_type and async_result fields in mono_message_init.
7005         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
7006         dispatching the message.
7007         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
7008         async call to finish. To do it use a message with EndInvoke call type.
7009
7010 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
7011
7012         * loader.h loader.c (mono_method_hash_marhal_info): New function which
7013         determines whenever a method has marshalling info.
7014
7015 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7016
7017         * assembly.c: fix the build on windows.
7018
7019 2003-08-22 Lluis Sanchez <lluis@ximian.com>
7020
7021         * object.cs: Fixed bug #47785.
7022
7023 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
7024
7025         * string-icalls.c (StringReplace): If their are no occurances of
7026         the old string found return a reference to the supplied
7027         string. This saves some memory and matches MS behavoir.
7028         
7029 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7030
7031         * socket-io.c: fixed compilation for systems that define AF_INET6
7032         and don't define SOL_IP/SOL_IPV6.
7033
7034 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
7035
7036         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
7037         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
7038
7039         * rawbuffer.c rawbuffer.h: Make this module thread safe.
7040
7041         * domain.c: Make this module thread safe.
7042
7043         * domain.c (mono_init): Call new initialization function.
7044
7045         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
7046         reference types too. Fixes #38812.
7047
7048         * image.c (mono_image_init): Fixed warnings.
7049
7050         * class.c (mono_class_from_typeref): Handle assembly load failure
7051         correctly.
7052
7053         * appdomain.c (add_assemblies_to_domain): Handle the case when
7054         the references of an assembly are not yet loaded.
7055
7056         * metadata.c image.c assembly.c: Moved initialization of global
7057         variables to a separate function called at startup since lazy 
7058         initialization of these variables is not thread safe.
7059         
7060         * image.c assembly.c: Made this module thread safe by adding locks in 
7061         the appropriate places.
7062
7063         * domain.c (mono_init): Call the new initialization functions of the
7064         three modules.
7065
7066 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
7067
7068         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7069           make a direct call. It is proxy's work to make the call asynchronous.
7070           mono_delegate_end_invoke(): If the targe is a proxy, just collect
7071           the return values.
7072         * object.cs: mono_method_call_message_new(): read AsyncResult and
7073           state object from parameters list, if this info is requested.
7074         * object.h: Added fields to store remote call output values in
7075           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7076
7077 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7078
7079         * object.h: add needed fields to MonoThread.
7080         * threads.c, threads.h: allow registering a function to cleanup data
7081         allocated per thread by the JIT.
7082
7083 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7084
7085         * loader.h: portability fix by Bernie Solomon
7086         * <bernard@ugsolutions.com>.
7087
7088 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7089
7090         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7091         return a MonoArray. This simplifies the code and also ensures that
7092         the cache allways contains an object reference as a value.
7093
7094         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7095         function.
7096
7097 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7098
7099         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7100         fixes a problem with byte ordering when getting the address family for
7101         a socket.
7102
7103 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7104
7105         * .cvsignore: Added monosn.
7106
7107         * reflection.h reflection.c loader.c: Added support for parameter
7108         marshalling to dynamically created types. Fixes #47295.
7109
7110 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7111
7112         * rand.c: remove useless warnings.
7113
7114 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7115
7116         * class.c: implemented ldtoken for methods and fieldrefs.
7117
7118 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7119
7120         * threadpool.c: when mono_async_invoke was called, no one took care of
7121         monitoring the queue. So if the method invoked took some time and we
7122         got new async invoke requests after 500 ms (the thread created waited
7123         that long in WaitForSingleObject), the new async invoke was not called
7124         until the previous one finished.
7125
7126         This is fixed now. Thanks to Totte for helping with it.
7127
7128 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7129
7130         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7131
7132 2003-08-11  Martin Baulig  <martin@ximian.com>
7133
7134         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7135
7136 2003-08-06  Martin Baulig  <martin@ximian.com>
7137
7138         * mono-debug-debugger.c: Added support for static fields,
7139         properties and methods.
7140
7141 2003-08-06  Martin Baulig  <martin@ximian.com>
7142
7143         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7144         make this work for applications with multiple application domains.
7145
7146 2003-08-04  Martin Baulig  <martin@ximian.com>
7147
7148         * mono-debug-debugger.c: Completely reworked the type support; the
7149         most important thing is that we're now just using one single
7150         `MonoType' instance per type.
7151
7152 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7153
7154         * mono-endian.h, mono-endian.c, icall.c: Added icall
7155         ves_icall_System_Double_AssertEndianity to assert double word endianity
7156         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7157
7158 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7159
7160         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7161         support, icalls and fixes.
7162
7163 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7164
7165         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7166         classes that are a punctuation character in .NET is not the same a
7167         g_unichar_ispunct.
7168
7169 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7170
7171         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7172
7173 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7174
7175         * icall.c: Add new MemCopy internalcall.
7176         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7177         Simplified code; It is not necessary to handle all the cases here,
7178         as the C# code takes care of it.  Only handle the case of the name
7179         resource embedded into the assembly.
7180
7181         Changed signature to return the data pointer and the size of the
7182         data. 
7183
7184 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7185
7186         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7187         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7188
7189 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7190
7191         * socket-io.c: ignore EINTR error in select.
7192
7193 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7194
7195         * class.h, class.c: removed unused subclasses field in MonoClass.
7196
7197 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7198
7199         * icall.c: improve fix of get_base_definition(). If the parent class
7200           doesn't have the mehod, look at the parent of the parent.
7201         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7202           to check if a parameter is an in or out parameter
7203           (PARAM_ATTRIBUTE_IN is not set by default).
7204           mono_method_return_message_restore(): Use mono_class_value_size to
7205           get the size of a value type. mono_type_stack_size (parameterType)
7206           does not return the correct value if parameterType is byRef.
7207           mono_load_remote_field(), mono_load_remote_field_new(),
7208           mono_store_remote_field(), mono_store_remote_field_new():
7209           raise exception if the remote call returns an exception.
7210
7211 2003-07-28  Martin Baulig  <martin@ximian.com>
7212
7213         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7214         method.  This is a wrapper around mono_runtime_invoke() which
7215         boxes the instance object if neccessary.
7216
7217 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7218
7219         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7220         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7221
7222 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7223
7224         * icall.c: disable mcs bug workaround.
7225
7226 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7227
7228         * object.c (mono_runtime_class_init): Take the metadata_section
7229         mutex before obtaining the domain mutex.
7230
7231         * appdomain.h: Added definition of metadata_section mutex here. 
7232
7233         * object.c: define metadata_mutex here.
7234
7235 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7236
7237         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7238         fixed.
7239
7240 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7241
7242         * reflection.c: Fix bug #46669
7243
7244 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7245
7246         * exception.c:
7247         * exception.h:
7248         * icall.c:
7249         * object.h: fill in the type name for TypeLoadException.
7250
7251 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7252
7253         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7254         relationship between TypeBuilders while compiling corlib) and bug
7255         45993 (Array types returned from the runtime while compiling
7256         corlib were from the loaded corlib).
7257
7258 2003-07-22  Martin Baulig  <martin@ximian.com>
7259
7260         * mono-debug-debugger.c: Reworked the type support a bit more;
7261         distinguish between types and classes.
7262
7263 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7264
7265         * icall.c: add IsArrayImpl icall.
7266
7267 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7268
7269         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7270         initializing real_size only once. Also fix bug #46602.
7271
7272 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7273
7274         * object.c: Renamed mono_metadata_section to metadata_section.
7275
7276 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7277
7278         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7279           empty array if the type is an array. Fixed.
7280           ves_icall_MonoMethod_get_base_definition: if the base method
7281           is abstract, get the MethodInfo from the list of methods of
7282           the class.
7283         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7284           and it was 1-based. Fixed in mono_param_get_objects.
7285
7286 2003-07-20  Martin Baulig  <martin@ximian.com>
7287
7288         * mono-debug.h: Set version number to 31.
7289         (mono_debug_init): Added `MonoDomain *' argument.
7290
7291         * mono-debug-debugger.c: Reworked the type support; explicitly
7292         tell the debugger about builtin types; pass the `klass' address to
7293         the debugger.
7294
7295 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7296
7297         * image.c: Allow new metadata tables to be loaded without a
7298         warning. Also update the warning message to give the new constant value.
7299                 
7300 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7301
7302         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7303         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7304         array type representation changes.
7305
7306 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7307
7308         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7309         on Environment.Exit () call.
7310
7311 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7312
7313         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7314         requires a matching corlib.
7315
7316 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7317
7318         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7319           Committed again without the CRs.
7320         
7321 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7322
7323         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7324           getting it from the "this" socket instance. Did not work
7325           if the socket is a subclass of Socket.
7326           Also fixed bug #35371.
7327
7328 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7329
7330         * metadata.c: fixed size for TypedByRef.
7331         * loader.c: when searching for a method, consider the vararg amrker.
7332         * unicode.c, decimal.c: constify some arrays.
7333
7334 2003-07-15  Dick Porter  <dick@ximian.com>
7335
7336         * socket-io.c: Fixed compilation for gcc < 3.2.
7337
7338         Fixed compilation for machines that don't have AF_INET6 (thanks to
7339         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7340
7341         Fixed compile warnings.
7342         
7343         Fixed formatting and line endings.
7344
7345 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7346
7347         * socket-io.h:
7348         * socket-io.c: Added IPv6 support.
7349
7350 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7351
7352         * class.c (mono_class_is_assignable_from): New function to implement
7353         the is_assignable_from logic. Used by mono_object_isinst, 
7354         Type::IsAssignableFrom () and the interpreter.
7355
7356         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7357         Object, even interfaces.
7358         
7359         * object.c (mono_object_isinst): Implement in terms of 
7360         is_assignable_from.
7361
7362         * icall.c (ves_icall_type_is_assignable_from): New icall.
7363
7364 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7365
7366         * domain.c (foreach_domain): fix compiler warning.
7367
7368 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7369
7370         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7371         not available on all plattforms
7372
7373 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7374
7375         * image.h image.c: Store the metadata version string in MonoImage.
7376         * icall.c: New icall to retrieve the image version.
7377         * reflection.c (create_dynamic_image): Fill in the image version field
7378         * reflection.c (build_compressed_metadata): Use the image version
7379         from the image structure.
7380
7381 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7382
7383         * appdomain.c: modified comment.
7384         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7385         That will be its last iteration when mono_gc_cleanup is called from
7386         mono_runtime_cleanup and before the domain is unloaded.
7387
7388         Fixes bug #45962.
7389
7390 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7391
7392         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7393         attributes.
7394
7395 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7396
7397         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7398         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7399         Bernie Solomon <bernard@ugsolutions.com>.
7400
7401 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7402
7403         * object.c, object.h: provide mono_object_new_fast() for faster
7404         allocation in some special cases.
7405
7406 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7407
7408         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7409         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7410
7411 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7412
7413         * threadpool.c: fix leaks.
7414
7415 2003-07-01  Dick Porter  <dick@ximian.com>
7416
7417         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7418         using MonoGHashTables.  Fixes threadpool bug posted to list.
7419
7420 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7421
7422         * image.h, image.c: added support to load an assembly from a byte array.
7423         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7424         assembly bundle support.
7425
7426 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7427
7428         * threadpool.c (mono_thread_pool_add): keep a reference to the
7429         AsyncResult to prevent GC
7430
7431 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7432
7433         * class.c: leak fix.
7434
7435 2003-06-25  Dick Porter  <dick@ximian.com>
7436
7437         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7438         for the async object, the WaitHandle object will close the handle.
7439         Fixes bug 45321.
7440
7441 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7442
7443         * class.c: in mono_array_class_get (), lookup from the hash with the
7444         same type we insert: this works around a bug in
7445         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7446         lluis. The real fix will have to wait for after the release.
7447
7448 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7449
7450         * icall.c: fix memory leak when getting type members.
7451
7452 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7453
7454         * reflection.c: added more pubtoken special cases.
7455
7456 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7457
7458         * class.c: handle field offset correctly when class size
7459         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7460
7461 2003-06-20  Martin Baulig  <martin@ximian.com>
7462
7463         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7464         *image' field.
7465
7466 2003-06-20  Martin Baulig  <martin@ximian.com>
7467
7468         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7469
7470 2003-06-20  Martin Baulig  <martin@ximian.com>
7471
7472         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7473         just distinguish between variables in registers and variables at
7474         an offset relative to a register.
7475
7476 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7477
7478         * icall.c: #ifdef out latest changes until mcs is fixed.
7479
7480 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7481
7482         * icall.c: return members in metadata order.
7483
7484 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7485
7486         * icall.c: avoid infinite loop in GetTimeZoneData.
7487
7488 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7489
7490         * icall.c: added Marshal.Prelink/All icalls.
7491
7492 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7493
7494         * object.c, object.h: fix warnings and do some overflow checking
7495         when creating arrays.
7496
7497 2003-06-17  Dick Porter  <dick@ximian.com>
7498
7499         * file-io.h:
7500         * file-io.c: File attributes need to be tweaked slightly when
7501         passed from the managed to the w32 world.
7502
7503 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7504         * profiler.h profiler-private.h profiler.c: Rework last patch
7505         based on suggestion by Paolo.
7506         
7507 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7508
7509         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7510         instruction level coverage data collection.
7511         * profiler.h profiler.c (: Added new callback function which can be
7512         used by the profiler to limit which functions should have coverage
7513         instrumentation.
7514         * profiler.c (mono_profiler_load): Call g_module_build_path to
7515         generate the file name of the profiler library.
7516
7517 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7518
7519         * profiler.c, profiler.h, profiler-private.h: added basic block 
7520         coverage profiling API.
7521
7522 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7523
7524         * reflection.c (mono_reflection_create_runtime_class): Add support
7525         for events in dynamically generated code.
7526
7527         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7528         not allocated.
7529
7530 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7531
7532         * icall.c: when getting timezone info, return reasonable values if we
7533         can't get the actual data.
7534
7535 2003-06-14  Dick Porter  <dick@ximian.com>
7536
7537         * threads.c (start_wrapper): Remove the reference to the thread
7538         object in the TLS data, so the thread object can be finalized.
7539         This won't be reached if the thread threw an uncaught exception,
7540         so those thread handles will stay referenced :-( (This is due to
7541         missing support for scanning thread-specific data in the Boehm GC
7542         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7543
7544 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7545
7546         * reflection.c: ensure streams and tables are first allocated with
7547         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7548
7549 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7550
7551         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7552
7553 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7554
7555         * reflection.c (mono_reflection_create_runtime_class): Add support for
7556         properties to dynamically created classes.
7557         * reflection.c: Fix a few places where non-MonoObjects were inserted
7558         into the tokens hashtable.
7559
7560 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7561
7562         * object.c: some support to handle out of memory exceptions.
7563
7564 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7565
7566         * marshal.c (mono_marshal_get_native_wrapper): support reference
7567         return types
7568
7569 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7570
7571         * object.h, object.c: more portability stuff from Bernie Solomon.
7572         Unexport mono_object_allocate(). Added mono_object_unbox ().
7573         Set exitcode when an unhandled exception is thrown.
7574
7575 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7576
7577         * marshal.c (mono_marshal_get_native_wrapper): use custom
7578         marshaler for return types.
7579
7580 2003-06-10  Dick Porter  <dick@ximian.com>
7581
7582         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7583         ip_mreq is available
7584
7585 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7586
7587         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7588         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7589         by Bernie Solomon <bernard@ugsolutions.com>.
7590
7591 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7592
7593         * gc.c (mono_gc_init): Avoid error message on shutdown when
7594         GC_DONT_GC=1 is used.
7595
7596         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7597         New icall to return the GUID of a module.
7598
7599 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7600
7601         * class.c: ensure instance size always includes the parent's size
7602         even whem class size is set explicitly (fixes bug#44294).
7603
7604 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7605
7606         * profiler.h, profiler.c: made the simple profiler thread-safe,
7607         get more accurate timing info. Allow the loading of an
7608         externally-developed profiler module.
7609
7610 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7611
7612         * marshal.c (mono_marshal_get_native_wrapper): improved
7613         class/byref arguments.
7614         (mono_marshal_get_native_wrapper): better string marshaling support.
7615
7616 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7617
7618         * class.c: ensure .pack and .size are handled correctly and
7619         simplified layout of static fields.
7620
7621 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7622
7623         * appdomain.c
7624         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7625
7626         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7627         current directory (fix bug 44008)
7628
7629 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7630
7631         * marshal.c (mono_marshal_get_native_wrapper): started support for
7632         custom marshalers.
7633         (mono_delegate_to_ftnptr): consider marshalling specifications
7634
7635 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7636
7637         * reflection.c, reflection.h: emit custom marshal info.
7638
7639 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7640
7641         * object.c: free the GError.
7642         * icall.c: added CloseEvent_internal.
7643         * threads.[ch]:
7644         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7645         call.
7646
7647 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7648
7649         * loader.c (mono_method_get_signature): Add support for dynamic
7650         assemblies.
7651
7652 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7653
7654         * reflection.c: fixed bug #43905.
7655
7656 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7657
7658         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7659         handling TypedReference and ArgIterator.
7660         * loader.c, loader.h: added function to get signature at call site.
7661
7662 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7663
7664         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7665         data readonly. Buglets and warning fixes. Some MethodSpec support.
7666
7667 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7668
7669         * class.h, class.c, object.c: remove relative numbering support.
7670
7671 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7672
7673         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7674         free the string, until we get a chance to fix Gtk#
7675
7676 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7677
7678         * marshal.c: revert last patch.
7679
7680 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7681
7682         * icall.c: updates for new mono_class_vtable() not calling
7683         the type constructor anymore.
7684
7685 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7686
7687         * object.h, object.c: separate vtable creation from type
7688         initialization. Make running the .cctor thread safe.
7689
7690 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7691
7692         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7693
7694 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7695
7696         * loader.c (mono_get_method): consider calling convention
7697
7698 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7699
7700         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7701         to return the invisible global type for a module.
7702
7703         * reflection.c (mono_image_build_metadata): Emit global fields too.
7704
7705 2003-05-20  Peter Williams  <peterw@ximian.com>
7706
7707         * loader.c (mono_lookup_internal_call): Add a few newlines.
7708
7709 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7710
7711         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7712         literal strings.
7713
7714         * appdomain.c (set_domain_search_path): Recalculate search path when
7715         AppDomainSetup.PrivateBinPath changes.
7716
7717         * object.c (mono_class_compute_gc_descriptor): It turns out some
7718         parts of the class libs (like System.Thread) holds pointers to
7719         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7720         to treat native int a pointer type here.
7721         
7722 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7723
7724         * appdomain.h, domain.c: add hashtable for jump target resolution.
7725
7726 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7727
7728         * reflection.h reflection.c icall.c: Added new icalls 
7729         GetManifestResourceInfoInternal, GetModulesInternal and support
7730         infrastructure.
7731
7732 2003-05-16  Dick Porter  <dick@ximian.com>
7733
7734         * icall.c:
7735         * file-io.h:
7736         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7737
7738 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7739
7740         * object.c: mono_store_remote_field: little fix to previous patch.
7741
7742 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7743
7744         * class.c: add constructors to array classes.
7745         * icall.c: special case array construction for InternalInvoke (),
7746
7747 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7748
7749         * class.h class.c reflection.c object.c: Added support for field
7750         defaults in dynamically generated classes.
7751
7752 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7753
7754         * reflection.c: properly encode charset for ddlimport.
7755
7756 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7757
7758         * threads.c: allow compiling without GC.
7759
7760 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7761
7762         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7763         handling of thread static data.
7764
7765 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7766
7767         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7768
7769 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7770
7771         * class.c (mono_array_class_get): always set the serializable flags
7772         (mono_array_class_get): always set the SEALED attribute for array types
7773
7774 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7775
7776         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7777         attributes (fix for bug 42021).
7778
7779 2003-05-12  Dick Porter  <dick@ximian.com>
7780
7781         * gc.c: Don't run finalizers when the finalizer thread is
7782         finishing up, because the default domain has already been
7783         destroyed.
7784
7785 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7786
7787         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7788         value is null, we should throw an exception.   This is slightly
7789         different than the other conventions used for the constructor.
7790
7791 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7792
7793         * socket-io.c: fixed windows build.
7794
7795 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7796
7797         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7798
7799 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7800
7801         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7802         compilers.
7803
7804 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7805
7806         * class.c (mono_class_layout_fields): Add experimental GC aware
7807         auto layout facility. Requires class library changes to work correctly.
7808
7809         (mono_class_setup_vtable): Avoid overriding explicit interface
7810         method implementations. Fixes iface3.exe test.
7811
7812         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7813         object reference.
7814         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7815         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7816
7817         * metadata.h: Add new type classification macro which determines
7818         whenever the type holds an object reference.
7819
7820 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7821
7822         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7823
7824 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7825
7826         * gc.c (finalizer_thread): Work around a GC bug.
7827
7828 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7829
7830         * marshal.c (emit_struct_conv): allow unions
7831
7832         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7833
7834 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7835
7836         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7837
7838 2003-05-06  Martin Baulig  <martin@ximian.com>
7839
7840         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7841
7842 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7843
7844         * socket-io.c:
7845         (Select_internal): allow NULLs, don't create arrays if not needed.
7846         Coupled with Socket.cs changes.
7847
7848         * threadpool.c:
7849         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7850         register a finalizer for it that will close the semaphore handle. This
7851         fixes the leak and make Lupus' test run with > 4080 loops.
7852
7853 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7854
7855         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7856         Jerome Laban (bug #42287)
7857
7858 2003-05-02  Martin Baulig  <martin@ximian.com>
7859
7860         * debug-mono-symfile.h
7861         (MonoSymbolFile): Moved declaration into mono-debug.h.
7862         (MonoDebugMethodJitInfo): Likewise.
7863         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
7864         argument.
7865         (_mono_debug_address_from_il_offset): Take a
7866         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
7867
7868         * mono-debug.h
7869         (MonoDebugDomainData): New struct.
7870         (mono_debug_get_domain_data): New function.
7871         (mono_debug_add_method): Take an additional `MonoDomain *'
7872         argument.
7873         (mono_debug_source_location_from_address): Likewise.
7874         (mono_debug_il_offset_from_address): Likewise.
7875         (mono_debug_address_from_il_offset): Likewise.
7876
7877 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
7878
7879         * reflection.c: one more check for null type in custom attrs.
7880
7881 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7882
7883         * reflection.c: avoid warning (comparison is always false due to limited
7884         range of data type).
7885
7886 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7887
7888         * icall.c: throw an exception in Type.GetField if the argument 'name'
7889         is NULL.
7890
7891 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
7892
7893         * reflection.c: fixed handling of enums in named arguments to custom
7894         attributes (bug #42123).
7895
7896 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
7897
7898         * reflection.c: use the right array element type and handle
7899         a null for a Type argument, too.
7900
7901 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
7902
7903         * reflection.c: handle arrays as arguments to custom attributes.
7904
7905 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7906
7907         * reflection.c: handle a string value in a custom attr
7908         ctor that takes an object.
7909
7910 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
7911
7912         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
7913         (fix bug #42063)
7914
7915 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
7916
7917         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
7918
7919 2003-04-27  Martin Baulig  <martin@ximian.com>
7920
7921         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
7922         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
7923         MONO_DEBUGGER_EVENT_BREAKPOINT.
7924         (mono_breakpoint_trampoline_code): Removed.
7925         (mono_debugger_event_handler): The last argument is now a
7926         `guint32'.
7927         (mono_debugger_insert_breakpoint_full): Removed the
7928         `use_trampoline' argument.
7929         (mono_debugger_method_has_breakpoint): Likewise.
7930         (mono_debugger_trampoline_breakpoint_callback): Renamed to
7931         mono_debugger_breakpoint_callback(); take the method and
7932         breakpoint number as arguments.
7933
7934 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
7935
7936         * metadata.c: fix off by one when loading parameters attributes.
7937
7938 2003-04-24  Martin Baulig  <martin@ximian.com>
7939
7940         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
7941
7942 2003-04-24  Martin Baulig  <martin@ximian.com>
7943
7944         * mono-debug-debugger.c: Moved all code which interacts with the
7945         Mono Debugger here.
7946
7947         * debug-mono-symfile.c: This code now just deals with the symbol
7948         file itself, the debugger code is now in mono-debug-debugger.c.
7949
7950 2003-04-23  Martin Baulig  <martin@ximian.com>
7951
7952         * mono-debug.c (mono_debug_source_location_from_il_offset):
7953         New method; like mono_debug_source_location_from_address(), but
7954         takes an IL offset instead of a machine address.
7955
7956 2003-04-23  Martin Baulig  <martin@ximian.com>
7957
7958         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
7959         `line' field; this is now computed by the debugger.
7960
7961 2003-04-23  Martin Baulig  <martin@ximian.com>
7962
7963         * mono-debug.[ch]: New files.  This is the new debugging interface.
7964
7965         * mono-debug-debugger.[ch]: New files.  Moved all code which
7966         interacts with the Mono Debugger here.
7967
7968 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
7969
7970         * domain.c (mono_init): initialize mono_defaults.monitor_class
7971
7972 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
7973
7974         * reflection.c (method_encode_code): Add a spicy exception to help
7975         future compiler authors.
7976
7977 2003-04-21  Martin Baulig  <martin@ximian.com>
7978
7979         * icall.c
7980         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7981         Make this work with relative pathnames; g_filename_to_uri() needs
7982         an absolute filename.
7983
7984 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
7985
7986         * icall.c: Track name changes in Object and ValueType.
7987
7988 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
7989
7990         * metadata.c (mono_type_stack_size): size should be a multiple of
7991         sizeof (gpointer)
7992
7993 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7994
7995         * gc.c:
7996         (internal_domain_finalize): moved into mono_domain_finalize. No need
7997         to create another thread because the finalizers will be run in the
7998         finalizer thread.
7999         
8000         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
8001         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
8002         to be run (MS does this too).
8003
8004 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
8005
8006         * object.c (mono_class_compute_gc_descriptor): Update comment.
8007
8008         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
8009
8010         * image.h: Add synchronized wrapper cache.
8011
8012         * image.c (do_mono_image_open): Initialize cache.
8013
8014         * reflection.c (create_dynamic_mono_image): Initialize cache.
8015
8016 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8017
8018         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
8019         ves_icall_System_Buffer_ByteLengthInternal.
8020
8021 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
8022
8023         * reflection.c: setup klass->nested_in earlier. Allow
8024         a dash in the assembly name.
8025
8026 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
8027
8028         * metadata.c (mono_type_to_unmanaged): dont access
8029         type->data.klass for MONO_TYPE_OBJECT
8030         (mono_type_to_unmanaged): consider System.Delegate class
8031
8032 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
8033
8034         * class.c: just setup supertypes in the proper place instead of
8035         initializing the full element class for arrays.
8036
8037 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
8038
8039         * class.c: ensure the element class of arrays is initialized.
8040         Setup the supertype info for array classes, too.
8041
8042 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
8043
8044         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
8045
8046 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8047
8048         * Makefile.am: re-added -m option when running cygpath. This way,
8049         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
8050         separator.
8051         * mono-config.c: same codepath for locating mono config file for WIN32
8052         and the rest.
8053         * assembly.c: if mono_assembly_setrootdir is called, don't override
8054         the value set.
8055
8056 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8057
8058         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8059         MONO_ASSEMBLIES variable.
8060
8061 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8062
8063         * icall.c: added Assembly::GetNamespaces() icall.
8064
8065 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8066
8067         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8068
8069 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
8070
8071         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8072         * object.c: fixed bug in the construction of vtable for proxies
8073
8074 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8075
8076         * object.c (mono_array_new): Mark mono_array_new as an icall.
8077
8078 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8079
8080         * class.c: fixed test for public method when overriding interfaces.
8081         Closes bug #40970.
8082
8083 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8084
8085         * appdomain.h, domain.c: added mono_domain_foreach() to
8086         be able to access the currently loaded appdomains.
8087         * object.c: make string interning work across sppdomains.
8088         Mark some functions for use as icalls.
8089
8090 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8091
8092         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8093
8094         * reflection.h reflection.c: Allocate long living data using 
8095         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8096
8097         * reflection.c: Double the allocation size in streams instead of
8098         increasing it, to prevent unneccesary copying on large assemblies.
8099         
8100         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8101         creation if the assembly does not have the Run flag set.
8102
8103 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8104
8105         * class.h: avoid the C++ keywords in header files (Jerome Laban
8106         spotted and fixed this).
8107
8108 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8109
8110         * object.c:
8111         (mono_unhandled_exception): fill in the arguments for the
8112         UnhandledException event. Only trigger that event for the default
8113         domain (as MS does).
8114
8115 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8116
8117         * object.c: Improve typed allocation stuff based on suggestions from
8118         Paolo. Also turn it on if the GC library supports it.
8119
8120 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8121
8122         * object.c object.h class.h: Added experimental typed allocation
8123         facility using the interfaces in gc_gcj.h.
8124
8125         * os/gc_wrapper.h: Added new include files.
8126         
8127 2003-04-03  Martin Baulig  <martin@ximian.com>
8128
8129         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8130         which is not yet enabled by default.
8131
8132         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8133         functions.
8134         (mono_gc_lock, mono_gc_unlock): New static functions.
8135
8136         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8137         functions; stop/start the world for the garbage collector.  This
8138         is using the windows API; we need to complete the SuspendThread()/
8139         ResumeThread() implementation in the io-layer to make this work on Unix.
8140         (mono_gc_push_all_stacks): New public function; tells the garbage
8141         collector about the stack pointers from all managed threads.
8142
8143 2003-04-03  Martin Baulig  <martin@ximian.com>
8144
8145         * object.h (MonoThread): Added `gpointer stack_ptr'.
8146
8147         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8148
8149 2003-04-03  Martin Baulig  <martin@ximian.com>
8150
8151         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8152
8153 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8154
8155         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8156         field.last.
8157
8158 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8159
8160         * loader.c (mono_lookup_internal_call): Report the corlib that is
8161         out of sync.
8162
8163 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8164
8165         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8166         System.DBNull (it's class not valuetype).
8167
8168 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8169
8170         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8171         if the array method was already assigned a token (fixes bug#40646).
8172
8173 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8174
8175         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8176         if no assembly is given.
8177
8178 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8179
8180         * metadata.h: Added the new tables.
8181
8182         * row-indexes.h: Added definitions for new tables.
8183
8184         * metadata.c: Add schemas for new tables, and add support for
8185         computing the sizes of them.
8186
8187         * class.c: Update for handling the new type cases.
8188
8189 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8190
8191         * metadata.h (MONO_TYPE_IS_VOID): new macro
8192
8193 2003-03-31  Martin Baulig  <martin@ximian.com>
8194
8195         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8196
8197         * threads.c (mono_thread_new_init): Call `thread_created' in the
8198         mono_thread_callbacks.
8199
8200 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8201
8202         * loader.h: added marshalbyrefobject_class to mono_defaults
8203         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8204         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8205           generation of output parameters.
8206           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8207         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8208           contextbound and the target object belongs to the context of the caller.
8209         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8210         * object.c: Implemented support for interfaces and abstract classes
8211           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8212           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8213
8214 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8215
8216         * class.h class.c (mono_class_is_subclass_of): New function.
8217         
8218         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8219         routines for most common case (calls from ArrayList::ToArray).
8220
8221         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8222         routine so programs which call Environment::Exit() can be profiled.
8223
8224         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8225         Added MONO_ARCH_SAVE_REGS.
8226
8227         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8228
8229 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8230
8231         * blob.h: Add a couple of new MonoType types definitions.
8232
8233         * tabledefs.h: Add a couple of new call convs.
8234
8235 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8236
8237         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8238         the layout of the class.
8239
8240         * reflection.c (alloc_table): double the size on overflow to avoid
8241         unnecessary copying.
8242
8243         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8244         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8245         null so it can be garbage collected.
8246         
8247 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8248
8249         * reflection.c (mono_reflection_get_type): Return the resolved type
8250         only if it is in the assembly we searched.
8251
8252         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8253
8254         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8255         method.
8256
8257 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8258
8259         * appdomain.c:
8260         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8261         the right one is 'file:///blah', but MS allows it.
8262         * assembly.c:
8263         (mono_assembly_open): allow 'file://blah'
8264
8265         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8266
8267 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8268
8269         * socket-io.c: fixes bug #40310.
8270
8271 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8272
8273         * reflection.c (mono_reflection_parse_type): handle deeply nested
8274         types correctly.
8275
8276         * reflection.c (mono_image_create_token): Use unique token values
8277         since they will be put into a hash table.
8278
8279         * class.c (mono_class_setup_vtable): If a method occurs in more than
8280         one place in the vtable, and it gets overriden, then change the
8281         other occurances too.
8282
8283         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8284         object as return type.
8285
8286 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8287
8288         * icall.c: Deleted "ToString" implementation for double and float
8289         because they are full implemented in managed code.
8290
8291 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8292
8293         * reflection.c, reflection.h: implemented and exported functions
8294         to retrieve info about custom attributes.
8295
8296 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8297
8298         * appdomain.c: moved Uri handling to assembly.c
8299         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8300         work when using a file Uri in *nix and windows.
8301
8302         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8303         GetReferencedAssemblies.
8304
8305 2003-03-18  Dick Porter  <dick@ximian.com>
8306
8307         * icall.c: Rename a couple of internal calls
8308
8309         * threads.c: Set the thread state to Stopped when a thread exits.
8310         Fixes bug 39377.
8311
8312 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8313
8314         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8315         New icall.
8316
8317         * object.c (mono_class_vtable): fix warning.
8318
8319 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8320
8321         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8322
8323         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8324         memory.
8325         (method_encode_clauses): Create exception info structures in the right
8326         order.
8327         (mono_reflection_setup_internal_class): Initialize supertypes field.
8328
8329         * class.c object.c: Handle interfaces which implement other interfaces 
8330         correctly.
8331
8332         * class.h class.c: Move the supertypes array initialization code into 
8333         a separate function so it can be used for dynamic types too. Also call
8334         it earlier, in mono_class_init(), since it can be used before the
8335         type is initialized.
8336
8337 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8338
8339         * Makefile.am:
8340         * assembly.c:
8341         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8342
8343         * appdomain.c:
8344         * appdomain.h:
8345         * marshal.c:
8346         * object.c: remove warnings.
8347
8348 2003-03-13  Martin Baulig  <martin@ximian.com>
8349
8350         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8351         (MonoDebugLexicalBlockEntry): New types.
8352
8353         * debug-mono-symfile.c
8354         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8355
8356 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8357
8358         * process.c: ret can be any non-zero value accroding to MS doc.
8359
8360 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8361
8362         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8363         fixing a warning for a miss-used prototype, would have cause
8364         random memory corruption.
8365
8366 2003-03-07  Martin Baulig  <martin@ximian.com>
8367
8368         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8369         getting really annoying ....
8370
8371 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8372
8373         * reflection.c (fixup_method): added support for array methods.
8374
8375 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8376
8377         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8378         (pointed out by Michael Adams).
8379
8380 2003-03-04  Dick Porter  <dick@ximian.com>
8381
8382         * icall.c: Temporarily reverted the Double and Single ToString()
8383         change, because it broke nunit.
8384
8385 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8386
8387         * object.h, threads.h: make include files compatible with C++
8388         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8389
8390 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8391
8392         * icall.c: Erased ToString helper functions for Double and Single.
8393         Now, that implementations ar all in managed code (Double and Single
8394         Formatters).
8395
8396 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8397
8398         * appdomain.c: Added method for initializing the default context of
8399         a domain. Added internal call for getting the default context.
8400         * appdomain.h: Added context variable in MonoDomain struct.
8401         * domain.c: mono_domain_set also sets the default context of the domain
8402         * icall.c: Mapped internal method InternalGetDefaultContext.
8403         * object.c: mono_object_get_virtual_method returns always a remoting
8404         wrapper if the object is a transparent proxy.
8405         mono_runtime_invoke_array: when creating an object by calling the
8406         constructor, if the created object is a proxy, then the constructor should
8407         be called using the a remoting wrapper.
8408
8409 2003-03-03  Dick Porter  <dick@ximian.com>
8410
8411         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8412         variable so it compiles on solaris.  Problem spotted by
8413         Christopher Taylor <ct@cs.clemson.edu>
8414
8415 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8416
8417         * appdomain.c:
8418         (get_info_from_assembly_name): don't leak value.
8419
8420         * icall.c:
8421         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8422         result.
8423
8424 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8425
8426         * assembly.c: export mono_image_load_references ().
8427         * class.c: handle function pointers. mono_class_from_name() now
8428         supports nested type names directly.
8429
8430 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8431
8432         * reflection.h reflection.c: Encode already created dynamic methods 
8433         and fields correctly as a DEF instead of a REF.
8434
8435         * reflection.c: Get rid of the force_ref argument to 
8436         mono_image_typedef_or_ref since it was wrong in the first place.
8437
8438         * string-icalls.c: add error checking to string constructors according
8439         to the MSDN docs.
8440
8441         * reflection.c: Emit types in the order their TypeBuilders were 
8442         created. Previously, a new table index was assigned to each type before
8443         the tables were emitted. This was wrong because the signature blob
8444         might already refer to a type by its original table index.
8445
8446 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8447
8448         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8449         change.
8450         
8451 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8452
8453         * Makefile.am: make assemblies dir have \ instead of / on windows.
8454
8455 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8456
8457         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8458         iterate over the NESTEDCLASS table using a linear search since the
8459         table is not guaranteed to be sorted by the secondary key.
8460
8461         * class.c (mono_class_create_from_typedef): fixed up call to
8462         mono_metadata_nesting_typedef.
8463         
8464 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8465
8466         * marshal.c (mono_string_to_byvalstr): clear the memory as
8467         suggested by Jerome Laban <jlaban@wanadoo.fr>
8468
8469 2003-02-26  Dick Porter  <dick@ximian.com>
8470
8471         * process.c: Cope with padding in .rsrc blocks
8472
8473 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8474
8475         * metadata.h: reverted the filter_len change, it breaks reflection
8476         
8477 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8478
8479         * metadata.h: added a new field to store the filter_len
8480         
8481
8482 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8483
8484         * reflection.c: handle custom attributes for types and members
8485         created with Reflection.Emit (bug#38422).
8486
8487 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8488
8489         * reflection.c: define RTSpecialName automatically for constructors for
8490         compatibility with MS.NET.
8491
8492         * reflection.c (mono_reflection_create_runtime_class): initialize
8493         nested_in field of dynamically created classes.
8494
8495 2003-02-22  Martin Baulig  <martin@ximian.com>
8496
8497         * debug-mono-symfile.h: Incremented version number.
8498
8499 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8500
8501         * object.h icall.c process.c: fix warnings.
8502
8503 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8504
8505         * appdomain.h appdomain.c:
8506         (mono_domain_try_type_resolve): split the 
8507         name_or_tb argument into a name and a tb argument.
8508         (mono_domain_has_type_resolve): new function to check whenever the
8509         application has registered a TypeResolve event handler.
8510         
8511         * icall.c reflection.h reflection.c: move the type resolve logic into
8512         mono_reflection_get_type () so it will be invoked when 
8513         Assembly::GetType () is called.
8514
8515         * reflection.c:
8516         (mono_reflection_get_type): renamed to get_type_internal.
8517         (mono_reflection_get_type): fixed type name generation so it works 
8518         for nested types too.
8519         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8520         costly type name generation if there is no resolve event handler.
8521
8522 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8523
8524         * class.c, image.c: load exported types from file references.
8525
8526 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8527
8528         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8529           used to cache the managed methods used to create proxies and make 
8530           remote invocation of methods.
8531         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8532           to be remotely created.
8533         * object.c: Modified the method mono_class_vtable(). It now initializes 
8534           the remote flag of the vtable. Modified mono_object_new_specific(), 
8535           so now it checks the remote flag.
8536         * icall.c: Added a couple of internal methods, one for enabling instance 
8537           creation interception for a type, and one for creating objects bypassing
8538           the remote check.
8539
8540 2003-02-18  Martin Baulig  <martin@ximian.com>
8541
8542         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8543         New interncall to get a method's metadata token.
8544
8545         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8546         New interncall for the debugger.
8547
8548 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8549
8550         * class.c (mono_class_setup_vtable): allocate supertype array
8551
8552 2003-02-18  Martin Baulig  <martin@ximian.com>
8553
8554         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8555
8556 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8557
8558         * reflection.c:
8559         (assembly_name_to_aname): jump over unknown properties (i've found
8560         something like: 'type, assembly, version=xxx, custom=null, public...',
8561         so now will ignore custom=null and still get the rest of the values).
8562
8563 2003-02-17  Dick Porter  <dick@ximian.com>
8564
8565         * threads.c: Have Thread.Start() wait for a semaphore to signal
8566         that the thread has set up all its local data.  This fixes bug
8567         34323, where Abort() raced the new thread's TLS data.
8568
8569         Also removes the handle_store() call from start_wrapper, because
8570         threads are now always created suspended and there is no longer a
8571         race between the parent and child threads to store the info.
8572
8573 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8574
8575         * image.c: explain the #- heap issue in a message, hopefully
8576         avoiding FAQs on mono-list.
8577
8578 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8579
8580         * icall.c:
8581         (GetEntryAssembly): if the domain has not invoked
8582         AppDomain.ExecuteAssembly yet, return the assembly of the default
8583         AppDomain.
8584
8585 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8586
8587         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8588
8589 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8590
8591         * metadata.c, reflection.c: simple speedup to type hash
8592         and equals code.
8593
8594 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8595
8596         * image.c, image.h, class.c, assembly.c: move module loading
8597         to MonoImage. When loading metadata, consider alignemnet from
8598         the start of metadata, not from the metadata address in memory.
8599
8600 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8601
8602         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8603         AssemblyBuilder objects. Factored out custom attribute creation into
8604         a separate function.
8605         (create_custom_attr): new function to create custom attributes.
8606
8607 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8608
8609         * Makefile.am: Got tired of typing the full pathname to pedump.
8610         Until there is another option, am installing this.
8611
8612 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8613
8614         * class.c (class_compute_field_layout): always set field->parent 
8615         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8616
8617 2003-02-11  Dick Porter  <dick@ximian.com>
8618
8619         * threads-types.h:
8620         * monitor.c: Rewrote Monitor, making lock much faster and
8621         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8622         creates them as needed.
8623
8624         * exception.c: Added SynchronizationLockException
8625
8626         * threads.c: Deleted old Monitor implementation.  The new one is
8627         in a new file.
8628
8629 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8630
8631         * class.c: handled TypedReference type code. Set the correct size for
8632         class data. Setup interface_offsets for interface classes, too.
8633
8634 2003-02-09  Martin Baulig  <martin@ximian.com>
8635
8636         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8637
8638 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8639
8640         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8641         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8642         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8643         * verify.c: check for code that runs after the end of the method.
8644
8645 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8646
8647         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8648         "System.Math::Round2".
8649         * sysmath.h: Added Floor, Round and Round2 definitions.
8650         * sysmath.c: Modified certain functions that were not 100% compliant
8651         with MS.NET (math precision) and added the implementation of Floor,
8652         Round and Round2.
8653
8654 2003-02-07  Martin Baulig  <martin@ximian.com>
8655
8656         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8657
8658 2003-02-07  Martin Baulig  <martin@ximian.com>
8659
8660         * debug-mono-symfile.c: Reflected latest symwriter changes.
8661         (mono_debug_create_mono_symbol_file): Removed.
8662         (mono_debug_open_mono_symbol_file): Take an argument which
8663         specifies whether to create a dynamic symbol file.
8664
8665 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8666
8667         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8668
8669 2003-02-05  Martin Baulig  <martin@ximian.com>
8670
8671         * reflection.c (mono_image_build_metadata): Make this public,
8672         protect it against being called multiple times, don't create
8673         resources and don't build the compressed metadata here.
8674         (mono_image_create_pefile): Do this here.
8675
8676         * icall.c
8677         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8678
8679 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8680
8681         * socket-io.c: fixed bug #36322.
8682
8683 2003-02-06  Piers Haken <piersh@friskit.com>
8684
8685         * appdomain.[ch]:
8686         * class.h:
8687         * debug-mono-symfile.c:
8688         * icall.c:
8689         * loader.c:
8690         * mono-config.c:
8691         * monosn.c:
8692         * reflection.c:
8693         * socket-io.c: warning cleanups
8694
8695 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8696
8697         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8698         function. works like remoting invoke, but does a check for the Proxy first.
8699
8700 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8701
8702         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8703
8704 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8705
8706         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8707         array of pointers.
8708         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8709         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8710
8711         * object.c (mono_store_remote_field_new): used by the new jit
8712         instead of mono_store_remote_field
8713         (mono_load_remote_field_new): used by the new jit
8714         instead of mono_load_remote_field
8715
8716 2003-02-05  Patrik Torstensson
8717
8718         * appdomain.c: changed unload to take the domain id instead
8719         of domain
8720         
8721         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8722
8723
8724 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8725
8726         * appdomain.c: don't look for assemblies in ApplicationBase if
8727         PrivateBinPathProbe is set.
8728
8729 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8730
8731         * object.c: make the first argument in main_args contain the absolute
8732         path to the assembly. Fixes bug #37511.
8733
8734 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8735
8736         * icall.c: get correct UTC offset for countries not using daylight
8737         time saving. Fixes bug #30030.
8738
8739 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8740
8741         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8742         and 1 are the family).
8743
8744 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8745
8746         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8747
8748         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8749
8750 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8751
8752         * reflection.c: added support for SignatureHelper tokens, which is
8753         needed by the Calli opcode.
8754
8755         * reflection.h: track changes to SignatureHelper class.
8756
8757         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8758
8759 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8760
8761         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8762
8763 2003-02-03  Patrik Torstensson
8764         * appdomain.[c|h], domain.c : 
8765          - Added support for getting a domain via domain id
8766          - Support for setting and getting domain from System.AppDomain 
8767            (used in cross appdomain channel)
8768          - Added support for get/set for a MonoAppContext on a thread 
8769            (Context class in System.Runtime.Remoting.Contexts),
8770          - Removed hack in Get/SetData and ExecuteAssembly.
8771         
8772         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8773         the managed world to get control when a proxy is created.
8774
8775         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8776         
8777 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8778
8779         * icall.c
8780         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8781         Populate the codebase field as well.
8782
8783 2003-02-02  Martin Baulig  <martin@ximian.com>
8784
8785         * debug-mono-symfile.c
8786         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8787         (mono_debug_symfile_add_method): Allow interncalls.
8788
8789 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8790
8791         * icall.c: throw parse exception if strtod fails or the string is empty.
8792
8793 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8794
8795         * marshal.c: handle object type separately from defined
8796         class types.
8797
8798 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8799
8800         * marshal.c: handle NATIVE_LPSTR for strings when it's
8801         explicitly specified.
8802
8803 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8804
8805         * reflection.c, reflection.h, icall.c: setup the reflection
8806         handle cache for ModuleBuilders and AssemblyBuilders.
8807
8808 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8809
8810         * reflection.c (reflection_methodbuilder_to_mono_method): set
8811         pinvoke flag
8812
8813 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8814
8815         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8816
8817 2003-01-29  Dick Porter  <dick@ximian.com>
8818
8819         * threads.c: No need for the fake_thread kludge now that Thread
8820         doesn't run a class constructor
8821         
8822 2003-01-29  Dick Porter  <dick@ximian.com>
8823
8824         * threads.c: Use g_direct_hash instead of the rather bogus
8825         g_int_hash
8826
8827 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8828
8829         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8830         (fix pinvoke12.exe)
8831         (mono_marshal_get_struct_to_ptr): generate valid IL code
8832         (mono_marshal_get_ptr_to_struct): generate valid IL code
8833         (*): correctly set sig->pinvoke, we need to memdup the signature
8834         to do that
8835
8836 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8837
8838         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8839         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8840
8841 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8842
8843         * profiler.c: provide more callers information.
8844
8845 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8846
8847         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8848
8849         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8850
8851         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8852
8853 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8854
8855         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8856         exception instead of going into an infinite loop on dates which it 
8857         can't yet handle.
8858
8859         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
8860         out-of-range exception if needed.
8861
8862         * class.c (mono_class_setup_vtable): allow a virtual method to provide
8863         an implementation for an interface method and to override an inherited
8864         method at the same time. 
8865         Imagine a scenario when a virtual method is used to override a
8866         virtual abstract method in a parent class, and this same method 
8867         provides an implementation for an method inherited from an interface. 
8868         In this case, the interface resolution code will set im->slot, which 
8869         means that the virtual method override pass will skip this method 
8870         which means a pointer to the abstract method inherited from the parent
8871         will remain in the vtable of this non-abstract class.
8872
8873         * class.c: (mono_class_setup_vtable): continue search for a real 
8874         method if only an abstract method is found.     
8875
8876 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8877
8878         * reflection.c: add size to encoding for ByValStr and ByValArray
8879         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
8880
8881 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8882
8883         * class.c (mono_class_setup_vtable): pass the override info as an
8884         argument.
8885
8886         * class.c (mono_class_setup_vtable): set the slot of overriding methods
8887         correctly.
8888         
8889         * reflection.c (ensure_runtime_vtable); add support for method 
8890         overrides.
8891         
8892 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8893
8894         * reflection.c (resolution_scope_from_image): Hack to work to work with
8895         dynamic assemblies.
8896
8897         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
8898         added a 'force_ref' argument to force this function to allways return 
8899         a TypeRef. This is needed by mono_image_get_memberref_token ().
8900         
8901 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8902
8903         * reflection.c (mono_image_get_type_info): interfaces really don't have
8904         a parent.
8905
8906         * reflection.c (mono_image_basic_init): fill out missing fields of
8907         image structure.
8908
8909         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
8910         dynamic assemblies. This is required so dynamic assemblies show up in
8911         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
8912         Type::GetType() etc. This is consistent with MS behaviour.
8913
8914         * image.c image.h reflection.c: add newly created classes to the name 
8915         cache so mono_class_get () will find them.      
8916
8917 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8918
8919         First part of changes to get IKVM.NET running under mono.
8920         
8921         * appdomain.h, appdomain.c: added new function 
8922         mono_domain_try_type_resolve() which will emit TypeResolve events. 
8923         This function will call AppDomain::DoTypeResolve to do the actual work.
8924
8925         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
8926         moved existing code dealing with dynamic tokens to a new function 
8927         called mono_reflection_lookup_dynamic_token (). This function will 
8928         raise TypeResolve events when appropriate. Since reflection.c is not 
8929         part of libmetadata, a new hook function called 
8930         mono_lookup_dynamic_token() is added to class.c which will call this.
8931
8932         * assembly.h assembly.c: make the invoke_load_hook function public,
8933         so it can be called for dynamic assemblies.
8934
8935         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
8936
8937         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
8938         type isn't found.
8939
8940         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
8941         MonoGHashTable, since it contains pointers to objects which the GC 
8942         needs to track.
8943
8944         * assembly.c (search_loaded): remove unused variable.
8945         
8946 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
8947
8948         * object.c: fixed issue exposed by gcc-generated IL programs
8949         that use RVA data for pointers.
8950
8951 2003-01-25  Martin Baulig  <martin@ximian.com>
8952
8953         * threads.c (start_wrapper): Moved the initialization of
8954         `start_func' above the mono_new_thread_init() call to which we
8955         pass it as argument.
8956
8957 2003-01-24  Martin Baulig  <martin@ximian.com>
8958
8959         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
8960         the MonoThread pointer.
8961
8962 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
8963
8964         * icall.c: Rename `PowImpl' to Pow.
8965
8966 2003-01-23  Dick Porter  <dick@ximian.com>
8967
8968         * threads.c (start_wrapper): Create a Thread object if needed, so
8969         the Main() thread can do the class initialisation in a subthread
8970         that has been set up to allow managed code execution.
8971
8972         Pass the thread ID instead of the MonoThread pointer to the thread
8973         start and attach callbacks.  This change is required, because the
8974         jit thread start callback must be called _before_ the Thread
8975         object can be created.
8976         
8977         (mono_thread_init): Removed much object creation code that is no
8978         longer needed.  No managed code is called from here now.
8979
8980         * object.c (mono_runtime_exec_managed_code): Create a subthread
8981         for Main, and call back to the runtime to use it.
8982         Set the exit code when Main exits.
8983
8984         * gc.c: Make sure domain finalisation happens in a subthread.
8985         Re-enable threaded GC, fixing bug 31333 (again).
8986
8987         * environment.c: System.Environment internall calls (so far just
8988         ExitCode is here, the others are still in icall.c)
8989
8990         * appdomain.c (mono_runtime_cleanup): All threads running managed
8991         code should have finished before mono_runtime_cleanup() is
8992         reached, so no need to clean up threads.
8993
8994 2003-01-22  Martin Baulig  <martin@ximian.com>
8995
8996         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
8997         `gpointer func' arguments.      
8998         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
8999         but added `MonoThread *thread' argument.
9000         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
9001
9002         * threads.c (mono_new_thread_init): Added `gpointer func' argument
9003         and pass it to the mono_thread_start_cb callback.
9004         (mono_install_thread_callbacks): New public function to install a
9005         set of callbacks which are set by the debugger.
9006         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
9007
9008 2003-01-22  Martin Baulig  <martin@ximian.com>
9009
9010         * Makefile.am: Install debug-mono-symfile.h.
9011
9012 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
9013
9014         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
9015
9016 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
9017
9018         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
9019         * class.c (mono_ptr_class_get): correctly set access levels of pointers
9020         (mono_array_class_get): correctly set access levels of arrays
9021
9022 2003-01-20      Patrik Torstensson
9023         * image.h (MonoAssemblyName): changed major, minor, build, revision
9024         from signed to unsigned.
9025
9026 2003-01-20  sean kasun <skasun@azstarnet.com>
9027
9028         * reflection.c (load_cattr_value): Now this handles
9029         MONO_TYPE_SZARRAY.  Fixes bug #35629
9030
9031 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
9032
9033         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
9034         integer value
9035
9036 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9037
9038         * decimal.c: fixed bug #26056.
9039
9040 2003-01-17  Martin Baulig  <martin@ximian.com>
9041
9042         * gc.c: Raise an ExecutionEngineException instead of using g_error().
9043
9044 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9045
9046         * exception.[ch]:
9047         (mono_get_exception_type_initialization): new function.
9048
9049         * object.c: throw a TypeInitializationException when an exception is
9050         thrown invoking the class constructor.
9051
9052 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9053
9054         * reflection.c: fixed attribute reading.
9055
9056 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9057
9058         * icall.c:
9059         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9060         provided, look for the type in the calling assembly and then in
9061         mscorlib; if the assembly name is provided, only try that one.
9062
9063 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9064
9065         * object.c: register the vtable before there is a chance it's
9066         queried again recursively.
9067
9068 2003-01-13  Duncan Mak  <duncan@ximian.com>
9069
9070         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9071         gc-internal.h. 
9072         
9073 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9074
9075         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9076
9077 2003-01-11  Martin Baulig  <martin@ximian.com>
9078
9079         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9080         this to 20 for the release.
9081
9082 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9083
9084         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9085
9086         * loader.c (mono_method_get_marshal_info): bug fix
9087
9088         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9089         structures with explicit layout
9090
9091 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9092
9093         * profiler.c: made the output more readable (and sorted). 
9094         Added caller information for the allocation profiler.
9095
9096 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9097
9098         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9099
9100 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9101
9102         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9103         to get value types.
9104         
9105 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9106
9107         * object.c, profiler.h, profiler.c, profiler-private.h:
9108         Added object allocation profiler.
9109
9110 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9111
9112         * reflection.h, reflection.c: handle global methods.
9113         Compress blob entries.
9114
9115 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9116
9117         * marshal.c: fix compilation.
9118
9119 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9120
9121         * loader.c (mono_method_get_marshal_info): impl.
9122
9123         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9124
9125 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9126
9127         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9128         for reference types.
9129
9130 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9131
9132         * loader.c: fixed off by one error in loaded parameter names.
9133
9134 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9135
9136         * marshal.c (mono_marshal_get_icall_wrapper): like
9137         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9138         instead of a MonoMethod.
9139
9140 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9141
9142         * decimal.c: fixed bug #36537.
9143
9144 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9145
9146         * marshal.c: throw a missing method exception if a
9147         P/Invoke method is not found.
9148
9149 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9150
9151         * icall.c: allow a null this for constructors.
9152
9153 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9154
9155         * icall.c: raise the proper exceptions if the arguments to the
9156         internal Invoke are incorrect.
9157
9158 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9159
9160         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9161
9162 2003-01-03  Martin Baulig  <martin@ximian.com>
9163
9164         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9165
9166 2002-12-31  Martin Baulig  <martin@ximian.com>
9167
9168         * debug-mono-symfile.c: Completely rewrote the type section.
9169         Instead of using individual malloc()ed fields, we use one big
9170         continuous memory area and offsets into this area.
9171         See the comments in the source code for details.
9172
9173 2002-12-30  Martin Baulig  <martin@ximian.com>
9174
9175         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9176
9177 2002-12-30  Martin Baulig  <martin@ximian.com>
9178
9179         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9180         line number table in this data blob instead of using an external
9181         pointer.
9182
9183 2002-12-28  Martin Baulig  <martin@ximian.com>
9184
9185         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9186
9187 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9188
9189         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9190         as a boxed return type.
9191
9192 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9193
9194         * appdomain.c
9195         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9196         g_build_filename to properly get separators on the filename created.
9197
9198         * object.h: Small change, introduce MonoMarshalByRefObject to
9199         track the layout of that structure in the C# universe as we make
9200         changes there.
9201
9202 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9203
9204         * object.c: removed assert to allow static fields on interfaces.
9205         * loader.c: a TypeSpec may be used for any type, not just arrays.
9206
9207 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9208
9209         * class.c, class.h: added mono_class_array_element_size ().
9210         Ignore static methods in interfaces.
9211
9212 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9213
9214         * threads.c: fixed the build under cygwin.
9215
9216 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9217
9218         * reflection.c: handle nullref constants. Allocate keys for
9219         reflection handles with the GC.
9220
9221 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9222
9223         * threads.c, threads.h: added mono_thread_get_abort_signal()
9224         to get a suitable signal for thread abort.
9225
9226 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9227
9228         * metadata.c: fix handling of ExportedType table.
9229
9230 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9231
9232         * icall.c: added WriteWindowsDebugString internal call.
9233
9234 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9235
9236         * reflection.h: added fields to match C# implementation.
9237
9238 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9239
9240         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9241
9242 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9243
9244         * gc.h, gc-internal.h: Rename header for GC internal calls to
9245         gc-internal.h from gc.h as to not clash with Boehm GC having its
9246         header installed as <gc.h> in outside include paths.
9247         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9248         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9249
9250 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9251
9252         * icall.c: assign minor, build and revision in FillName.
9253
9254 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9255
9256         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9257         Added support for running code generated by Reflection.Emit.
9258
9259 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9260
9261         * appdomain.c: check for NULL argument in LoadFrom.
9262
9263 2002-12-10  Dick Porter  <dick@ximian.com>
9264
9265         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9266
9267 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9268
9269         * appdomain.c: fix buglet when building exe file name.  Handle full
9270         assembly name (needed after latest changes to AssemblyName).
9271         * image.c:
9272         (mono_image_close): free some hashtables.
9273
9274 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9275
9276         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9277         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9278         on some systems (redhat 7.3) 
9279
9280 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9281
9282         * threads.c: delete the critical section of a sync block,
9283         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9284
9285 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9286
9287         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9288
9289 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9290
9291         * appdomain.[ch]: handle the assembly preload event to try loading the
9292         assemblies using the paths we have in the current domain.
9293
9294         * assembly.[ch]: created an assembly preload hook that is called to try
9295         loading the assembly by other means that the ones provided here.
9296
9297         * domain.c: initialize the domain search path.
9298
9299         From now on, assemblies (TODO: except corlib and System) are loaded
9300         according to these rules when using mono_assembly_load ():
9301
9302                 1. It tries to load the assembly from the ApplicationBase
9303                 of the current domain appending .dll and .exe (TODO: have to
9304                 try loading from name/name.dll and name/name.exe).
9305
9306                 2. It tries the search path specified in PrivateBinPath for the
9307                 current domain (if any).
9308
9309                 3. Previous behavior.
9310
9311 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9312
9313         * icall.c: implemented GetInterfaceMap() related icall.
9314         * domain.c, loader.h: load MethodInfo in mono_defaults.
9315
9316 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9317
9318         * gc.c: disable the finalizer thread for now, untill all the issues
9319         with it are resolved.
9320
9321 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9322
9323         * string-icalls.c: handle embedded nulls in string ctor when the
9324         length is specified.
9325
9326 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9327
9328         * class.c: look for explicit interface implementation in parent
9329         classes, too.
9330
9331 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9332
9333         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9334
9335 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9336
9337         * gc.c: protect handles with a critical section.
9338
9339 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9340
9341         * icall.c:
9342         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9343         parameters. If no assembly specified, try getting the type from all
9344         the assemblies in the current domain, else, load the assembly and get
9345         the type from it.
9346
9347 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9348
9349         * marshal.c: applied patch from Aleksey Demakov that fixes
9350         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9351
9352 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9353
9354         * icall.c: fixed get_location.
9355
9356 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9357
9358         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9359         declarations to make it work with older gcc. 
9360
9361         * loader.c (mono_get_method): set signature->pinvoke for native calls
9362
9363 2002-11-20  Dick Porter  <dick@ximian.com>
9364
9365         * threads.c (mono_thread_init): Set the main thread's handle
9366
9367 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9368
9369         * gc.c: allow compilation without GC support. Changed to match the
9370         mono coding style.
9371
9372 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9373
9374         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9375
9376 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9377
9378         * reflection.c: set a public key token on the core assemblies.
9379
9380 2002-11-18  Dick Porter  <dick@ximian.com>
9381
9382         * threads.c: Split out some thread initialisation so that other
9383         files can set the start callback function.
9384
9385         * gc.c: Run finalisers in a separate thread, to avoid stack
9386         overflow.  Fixes bug 31333.
9387
9388         * appdomain.c: Set up GC finalisation thread.
9389
9390         * reflection.c: 
9391         * object.c: 
9392         * domain.c: Use gc.h macros for GC_malloc
9393         
9394 2002-11-15  Dick Porter  <dick@ximian.com>
9395
9396         * threadpool.c: 
9397         * threads.c:
9398         * appdomain.c: Removed mono_runtime_init_with_attach(),
9399         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9400         merging the extra parameter with the existing function.  Removed
9401         unneeded code in mono_thread_attach().
9402
9403 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9404
9405         * image.c (mono_image_loaded_by_guid): a method to get loaded
9406         images by guid. 
9407         (load_metadata_ptrs): we store the guid as string.
9408
9409 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9410
9411         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9412
9413         * metadata.c (mono_guid_to_string): imported method form Zoltan
9414         Varga (slightly modified)
9415
9416         * assembly.c (mono_assembly_open): load precompiled code
9417
9418         * loader.h (MonoMethod): we store the method token for use in the
9419         aot compiler. 
9420
9421 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9422
9423         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9424         the hook function called when an assembly is loaded.
9425         
9426         * domain.c: Modified file.
9427         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9428
9429         Fixes bug #33196.
9430
9431 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9432
9433         * reflection.c: Map PEFileKind to the value expected by the WinNT
9434         image loader. 
9435
9436 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9437
9438         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9439         Read until the buffer is filled completely.
9440
9441 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9442
9443         * icall.c: implemented MonoType.InternalGetEvent ().
9444
9445 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9446
9447         * appdomain.c: implemented InitAppDomainSetup. Delayed
9448         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9449         the entry_assembly.
9450
9451         * assembly.c: base_dir is now an absolute path ending with
9452         G_DIR_SEPARATOR.
9453
9454         * icall.c: modified get_location according to the above changes.
9455
9456         * object.c: init AppDomain.SetupInformation for the default domain after
9457         we have the entry assembly.
9458
9459         * domain.c: when unloading a domain, setup = NULL.
9460
9461 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9462
9463         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9464
9465 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9466
9467         * object.h, object.c: introduced mono_object_get_virtual_method ()
9468         to lookup the method invoked on an object when a callvirt is done on
9469         a method.
9470         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9471
9472 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9473
9474         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9475         current domain when loaded an assembly and failed to load it.
9476
9477         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9478
9479 2002-10-31  Dick Porter  <dick@ximian.com>
9480
9481         * icall.c: 
9482         * file-io.h: 
9483         * file-io.c: Return the error status in a parameter, as the
9484         GetLastError() value has long since been blown away if we try and
9485         look it up in a subsequent internal call invocation.  Delete the
9486         GetLastError() internal call, because it's useless.
9487
9488 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9489
9490         * class.[ch]: added cast_class to fix bug 29517
9491
9492 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9493
9494         * marshal.c: create valid IL code in the filter clause:
9495         the new JIT is less forgiving:-)
9496
9497 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9498
9499         * icall.c: removed get_property internal call.
9500
9501 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9502
9503         * appdomain.h domain.c: Added an ID to appdomains.
9504         
9505         * threads.c threads.h icall.c: Implement icall
9506         Thread:GetDomainID(), and remove unused icall 
9507         CurrentThreadDomain_internal.
9508
9509 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9510
9511         * icall.c: Don't recurse through the base types in GetConstructor.
9512         Fixes bug #32063. 
9513
9514 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9515
9516         * mempool.h, mempool.c: added mono_mempool_empty() and
9517         mono_mempool_stats().
9518
9519 2002-10-23  Dick Porter  <dick@ximian.com>
9520
9521         * file-io.c: 
9522         * file-io.h: 
9523         * icall.c: Added MonoIO.GetFileType internal call
9524
9525 2002-10-17  Dick Porter  <dick@ximian.com>
9526
9527         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9528         delegate semaphore before waiting for all threads to finish,
9529         because new threads can also call async delegates.  Fixes bug
9530         32004.
9531
9532         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9533         of 3 seconds, in case another async job is queued.  (This part is
9534         needed because the bug fix reintroduced the 3s exit lag.)  This
9535         makes the mono_runtime_shutdown flag superfluous.
9536
9537 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9538
9539         * reflection.c: include ehader size in method section headers.
9540         Really check for suplicated modules entries.
9541
9542 2002-10-17  Martin Baulig  <martin@gnome.org>
9543
9544         * debug-mono-symfile.c: Added back support for locals.
9545
9546 2002-10-14  Martin Baulig  <martin@gnome.org>
9547
9548         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9549         MONO_TYPE_VOID.
9550
9551 2002-10-14  Martin Baulig  <martin@gnome.org>
9552
9553         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9554         mono_class_get() instead of looking in the class cache. 
9555
9556 2002-10-13  Martin Baulig  <martin@gnome.org>
9557
9558         * debug-mono-symfile.c: Set version number to 28, include the
9559         signature in method names.
9560
9561 2002-10-13  Martin Baulig  <martin@gnome.org>
9562
9563         * debug-mono-symfile.h: Set version number to 27.
9564
9565 2002-10-11  Martin Baulig  <martin@gnome.org>
9566
9567         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9568
9569 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9570
9571         * metadata.c, metadata.h: added helper function to allocate signatures.
9572
9573 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9574
9575         * icall.c: added internal call to get the location of machine.config.
9576
9577 2002-10-08  Martin Baulig  <martin@gnome.org>
9578
9579         * debug-mono-symfile.c: Ignore classes with a pending init for the
9580         moment.
9581
9582 2002-10-03  Dick Porter  <dick@ximian.com>
9583
9584         * threads.c: Freebsd pthread_t is a pointer
9585
9586 2002-10-03  Dick Porter  <dick@ximian.com>
9587
9588         * socket-io.c: Implemented GetHostName_internal
9589
9590 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9591
9592         * mono-config.c:
9593         (mono_config_parse_file): don't leak the text.
9594
9595 2002-10-02  Martin Baulig  <martin@gnome.org>
9596
9597         * debug-mono-symfile.c: Added support for methods.
9598
9599 2002-10-01  Martin Baulig  <martin@gnome.org>
9600
9601         * debug-mono-symfile.c: Don't emit methods and line numbers for
9602         the dynamic symbol file, just write the type table.  We can easily
9603         have an external helper program which creates a symbol file for an
9604         IL file.        
9605
9606 2002-10-01  Dick Porter  <dick@ximian.com>
9607
9608         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9609         Only add the handle to the cleanup array when we're about to
9610         launch the thread.  Bug 31425 deadlocked when the test was run on
9611         mono under w32.
9612
9613 2002-10-01  Martin Baulig  <martin@gnome.org>
9614
9615         * debug-mono-symfile.c: Added support for properties.
9616
9617 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9618
9619         * reflection.c: unaligned store fix from Mark Crichton
9620         <crichton@gimp.org>.
9621
9622 2002-09-27  Martin Baulig  <martin@gnome.org>
9623
9624         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9625         New interncall.
9626
9627 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9628
9629         * assembly.h, assembly.c: use a sane API to hook into the assembly
9630         loading process instead of a useless special-purpouse hack
9631         (ngen needs a hook, too, for example).
9632
9633 2002-09-27  Dick Porter  <dick@ximian.com>
9634
9635         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9636         io-layer can set up some process handle info.  Not needed on w32,
9637         but doesn't hurt either.
9638
9639         * process.c: Pass the program name in the second parameter to
9640         CreateProcess, so the path is searched.  Include the working
9641         directory. Implemented process name, process enumeration, and some
9642         process detail internal calls.
9643         
9644         * icall.c: Added internal calls for process lookup, and some
9645         process details
9646
9647 2002-09-26  Martin Baulig  <martin@gnome.org>
9648
9649         * assembly.c (mono_install_open_assembly_hook): New global
9650         function to install a function to be invoked each time a new
9651         assembly is loaded.
9652         (mono_assembly_open): Run this callback function if set.
9653
9654         * debug-mono-symfile.c: Put back line numbers for the dynamic
9655         symbol file and also record the .il file as source file.  This
9656         allows us to install the temporary symbol file as `file.dbg' just
9657         like a compiler-generated one.
9658
9659 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9660
9661         * Corrected typo in gc.c (BOHEM vs BOEHM).
9662
9663 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9664
9665         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9666         GetProperties. Also avoid calling g_slist_length in GetProperties and
9667         GetMethods.
9668
9669 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9670
9671         * reflection.c: avoid unaligned stores (bug spotted by
9672         Mark Crichton  <crichton@gimp.org>).
9673
9674 2002-09-25  Martin Baulig  <martin@gnome.org>
9675
9676         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9677         instead of guint64 for addresses and added prologue/epilogue info.
9678
9679 2002-09-25  Martin Baulig  <martin@gnome.org>
9680
9681         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9682         store line number info.  For the dynamic symbol file, we only need
9683         to provide the JIT generated dynamic line number info for the dynamic
9684         symbol file.
9685
9686 2002-09-25  Martin Baulig  <martin@gnome.org>
9687
9688         * debug-mono-symfile.h: Incremented version number.
9689
9690 2002-09-24  Martin Baulig  <martin@gnome.org>
9691
9692         * class.c (mono_debugger_class_init_func): New global function
9693         pointer variable.
9694         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9695         call it.
9696
9697         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9698         function.  This is called via the mono_debugger_class_init_func
9699         hook to add all types to the dynamic type table.
9700         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9701         from its metadata token.
9702
9703         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9704         New interncall for the debugger.
9705
9706 2002-09-24  Nick Drochak <ndrochak@gol.com>
9707
9708         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9709         before using it in case it is null.
9710         
9711 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9712
9713         * metadata.c: allow custom modifiers in local var signatures
9714         (bug spotted by Zoltan Varga).
9715
9716 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9717
9718         * class.c: deal with the <Module> class that may have a NULL vtable.
9719         Eliminate warnings.
9720
9721 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9722
9723         * image.c, image.h: more strong name helpers.
9724         * monosn.c: more work: convert pem keys to cryptoapi format.
9725
9726 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9727
9728         * string-icalls.c: speedup IndexOf.
9729
9730 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9731
9732         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9733
9734 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9735
9736         * icall.c: cleanup: use mono_object_domain ().
9737
9738 2002-09-23  Martin Baulig  <martin@gnome.org>
9739
9740         * debug-mono-symfile.c: Improved type support.
9741
9742 2002-09-22  Martin Baulig  <martin@gnome.org>
9743
9744         * debug-mono-symfile.c: Added support for reference types and strings.
9745
9746 2002-09-22  Martin Baulig  <martin@gnome.org>
9747
9748         * debug-mono-symfile.c: Started to work on the type table.
9749
9750 2002-09-21  Martin Baulig  <martin@gnome.org>
9751
9752         * debug-mono-symfile.c: Largely reworked the symbol table format.
9753         The symbol table is now incrementally updated each time a new
9754         method is added.  We're now also using our own magic and version
9755         so that you don't need to recompile all your classes if the
9756         dynamic table changes.
9757         (mono_debug_update_mono_symbol_file): Removed.
9758         (mono_debug_symfile_add_method): New function to add a method.
9759
9760 2002-09-21  Martin Baulig  <martin@gnome.org>
9761
9762         * icall.c
9763         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9764         New interncall.
9765
9766         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9767         New interncall to get a method from its metadata token.
9768
9769 2002-09-21  Martin Baulig  <martin@gnome.org>
9770
9771         * debug-mono-symfile.c: Create type table.
9772
9773 2002-09-20  Martin Baulig  <martin@gnome.org>
9774
9775         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9776
9777 2002-09-20  Martin Baulig  <martin@gnome.org>
9778
9779         * debug-mono-symfile.c: Provide information about params and locals.
9780
9781 2002-09-20  Martin Baulig  <martin@gnome.org>
9782
9783         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9784         New interncall.
9785
9786         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9787         interncall to get a method from its metadata token.
9788
9789 2002-09-20  Martin Baulig  <martin@gnome.org>
9790
9791         * debug-mono-symfile.c: Added a few checks for method->header
9792         being non-NULL.  This should never happen, but for the moment
9793         let's use a g_warning() rather than a g_assert().
9794
9795 2002-09-19  Mark Crichton  <crichton@gimp.org>
9796
9797         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9798         even if support for it isn't present.  Added an #ifdef to fix this.
9799
9800         * socket-io.c: Added checks back for Solaris support.
9801
9802 2002-09-19  Martin Baulig  <martin@gnome.org>
9803
9804         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9805         changes in the symbol file format.
9806
9807 2002-09-18  Martin Baulig  <martin@gnome.org>
9808
9809         * debug-mono-symfile.c: Set version number to 21.
9810
9811 2002-09-18  Dick Porter  <dick@ximian.com>
9812
9813         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9814         on netbsd.  Fixes bug 30051.
9815
9816 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9817
9818         * reflection.c:
9819         (set_version_from_string): little fix.
9820
9821 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9822
9823         * monosn.c, Makefile.am: added strong name utility.
9824         * reflection.h, reflection.c: implemented delayed signing,
9825         locale, version and hash id assembly attributes.
9826
9827 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9828
9829         * loader.c, metadata.c: load param attributes in signatures.
9830
9831 2002-09-16  Martin Baulig  <martin@gnome.org>
9832
9833         * debug-mono-symfile.c: Added string table with all method names.
9834
9835 2002-09-14  Martin Baulig  <martin@gnome.org>
9836
9837         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9838         fast method lookup.
9839
9840 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9841
9842         * reflection.c: record the public key token of referenced assemblies.
9843
9844 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9845
9846         * image.c, image.h: added functions to get the strong name and the
9847         public key of an assembly.
9848         * pedump.c: use them.
9849
9850 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9851
9852         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9853
9854 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9855
9856         * marshal.c (mono_marshal_get_managed_wrapper): Added
9857         MONO_TYPE_BOOLEAN 
9858
9859 2002-09-11  Martin Baulig  <martin@gnome.org>
9860
9861         * gc.c: Call GC_unregister_disappearing_link() on all links when
9862         finalizing them, this is necessary to aviod a crash in boehm's
9863         finalize handler.
9864
9865 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9866
9867         * gc.c: handle GetTarget for finalized objects spotted and fixed by
9868         nick@chemlab.org.
9869
9870 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9871
9872         * icall.c: implemented MonoType::Module.
9873         * reflection.c, reflection.h: mono_module_get_object () from
9874         Tomi Pakarinen <tomi.pakarinen@welho.com>.
9875
9876 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9877
9878         * icall.c: ignore overridden methods in GetMethods ().
9879         Fix for FieldInfo::SetValue().
9880         * object.c: handle float/double in runtime invoke.
9881
9882 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9883
9884         * object.c: allow a constructor to be called again on an object.
9885
9886 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9887
9888         * class.h, class.c: move field layout code to it's own function and
9889         export it. Get an interface id earlier. Move fields in MonoClass
9890         so they are more cache friendly and align the bitfields.
9891         * loader.c: temporary handle get_param_names() for a runtime method.
9892         * reflection.c, reflection.h: more code to handle runtime creation of
9893         types.
9894
9895 2002-09-09  Martin Baulig  <martin@gnome.org>
9896
9897         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
9898         signature with the pinvoke field being set for the actual call.
9899
9900 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9901
9902         * icall.c: removed some unused icalls. Start of map of glib charsets
9903         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
9904
9905 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9906
9907         * debug-helpers.c: break infinite loop (found and fixed by
9908         Holger Arnold <harnold@gmx.de>).
9909
9910 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9911
9912         * icall.c: target may be null in create_delegate.
9913
9914 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9915
9916         * marshal.c: handle a boolean return type.
9917
9918 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9919
9920         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
9921
9922 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9923
9924         * gc.c: fix weakreferences.
9925
9926 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9927
9928         * icall.c: added icall to get default codepage.
9929
9930 2002-09-03  Dick Porter  <dick@ximian.com>
9931
9932         * threads.h: 
9933         * threads.c: Use MonoThread instead of MonoObject where
9934         apropriate.
9935
9936         Store running thread objects in a hash table, so that we have all
9937         the info to hand when waiting for them to finish
9938         (means we don't need OpenThread() any more, so mingw builds should
9939         be fully functional again.)
9940
9941         * verify.c:
9942         * object.h: Added thread ID to MonoThread
9943
9944 2002-09-03  Martin Baulig  <martin@gnome.org>
9945
9946         * icall.c (System.Reflection.Assembly::get_location): New interncall.
9947
9948 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9949
9950         * icall.c: fixed leak in get_temp_path. Thanks lupus.
9951
9952 2002-09-03  Martin Baulig  <martin@gnome.org>
9953
9954         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
9955         argument to store the end address of the disassembled instruction.
9956
9957         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
9958         here from debug-symfile.h.
9959         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
9960         JIT into this struct.
9961         (MonoSymbolFile): Added `char *image_file' field.
9962         (MonoDebugGetMethodFunc): Removed.
9963         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
9964         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
9965         (mono_debug_find_method): New method.
9966
9967         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
9968         create a full symbol file.
9969         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
9970         and static symbol files.
9971         (mono_debug_find_method): The symbol file keeps an internal method hash,
9972         call this to get a MonoDebugMethodInfo from a MonoMethod.
9973
9974         * debug-symfile.[ch]: Removed.
9975
9976 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
9977
9978         * image.c (do_mono_image_open): Remove linker version check.
9979
9980 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
9981
9982         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
9983         wrappers for instance methods.
9984         
9985 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9986
9987         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
9988
9989 2002-08-28  Dick Porter  <dick@ximian.com>
9990
9991         * Makefile.am: Export HOST_CC for w32 builds
9992
9993 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9994
9995         * file-io.c process.c: MonoString are null terminated, no
9996         need for mono_string_to_utf16() anymore.
9997
9998 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9999
10000         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
10001
10002 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
10003
10004         * icall.c, reflection.h: speedup System.MonoType.
10005
10006 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10007
10008         * reflection.c: allow null as the value of a string argument in
10009         custom attributes constructors.
10010
10011 2002-08-27  Martin Baulig  <martin@gnome.org>
10012
10013         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
10014         `trampoline_address' field.
10015
10016 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
10017
10018         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
10019         check (fixes bug #29486) 
10020
10021 2002-08-27  Martin Baulig  <martin@gnome.org>
10022
10023         * debug-mono-symfile.c: Changed the file format in a way that allows us
10024         open it read-only and to use a specially malloced area for all the
10025         dynamic data.  We can now also generate a symbol file on-the-fly if we're
10026         debugging IL code and there is no MCS generated symbol file for it.
10027
10028 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10029
10030         * object.c: added a define for a good string and array
10031         creation speedup (not enabled by default because we need to deal with
10032         the synch stuff).
10033
10034 2002-08-26  Martin Baulig  <martin@gnome.org>
10035
10036         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
10037         function to create a dynamic symbol file.  This is used by the
10038         debugger to create a symbol file for IL code on-the-fly.
10039
10040 2002-08-26  Martin Baulig  <martin@gnome.org>
10041
10042         * loader.c (mono_lookup_pinvoke_call): Include the error message
10043         from g_module_error() in the error message.
10044
10045 2002-08-24  Martin Baulig  <martin@gnome.org>
10046
10047         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
10048         function to update the symbol file.  The symbol file is mmap()ed
10049         writable, but private.  This allows us to install the symbol file
10050         together with the assembly.
10051
10052 2002-08-24  Martin Baulig  <martin@gnome.org>
10053
10054         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
10055         but they can read the new symbol file format which mcs is now creating.
10056
10057         * debug-symfile.c (mono_debug_find_source_location): Moved to
10058         debug-mono-symfile.c; this is now operating on the new symbol file.
10059
10060 2002-08-23  Martin Baulig  <martin@gnome.org>
10061
10062         * debug-helpers.c (mono_method_desc_from_method): New function to get
10063         a MonoMethodDesc from a MonoMethod.
10064
10065 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10066
10067         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10068         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10069
10070 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10071
10072         * string-icalls.[ch]: make helper methods static.
10073
10074 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10075
10076         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10077         types to it and to SetValueInternal.
10078
10079         * object.c: Moved handle_enum label to its proper place. This was the
10080         f... bug! ;-)
10081
10082         This time i compiled mcs and gtk-sharp and they both work.
10083
10084 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10085
10086         * icall.c: reverted partially my previous patch until 
10087         object.c:set_value handles enums correcly.
10088
10089 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10090
10091         * icall.c:
10092         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10093         (ves_icall_System_Environment_get_MachineName): removed warning when
10094         compiling under cygwin.
10095
10096 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10097
10098         * object.c: fixed field_get_value() for reference types.
10099
10100 2002-08-22  Dick Porter  <dick@ximian.com>
10101
10102         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10103         Don't free a buffer while it's still needed.  Patch from Jonathan
10104         Liger <Jonathan.liger@wanadoo.fr>
10105
10106 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10107
10108         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10109         internal call.
10110
10111 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10112
10113         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10114         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10115
10116         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10117         we call unmanaged code which throws exceptions.
10118
10119 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10120
10121         * appdomain.h: added per-domain entry_assembly.
10122         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10123         arguments.
10124         * icall.c: Assembly::GetEntryAssembly icall.
10125         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10126         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10127
10128 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10129
10130         * appdomain.h, gc.c: added mono_domain_finalize ().
10131
10132 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10133
10134         * object.c:
10135         (mono_print_unhandled_exception): changed g_warning by g_printerr
10136         because g_log has a 1024 characters limit (yeah, i got a big stack
10137         trace). Don't print exception name, that should be in ToString 
10138         returned string.
10139
10140 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10141
10142         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10143         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10144
10145 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10146
10147         * object.c:
10148         (mono_print_unhandled_exception): after previous commit, i realized
10149         that MS calls ToString on the exception. I changed this function to
10150         do that. This way we get stack_trace for free.
10151
10152 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10153
10154         * object.c:
10155         (mono_print_unhandled_exception): invoke Message property instead of
10156         getting 'message' field from Exception. Don't allocate memory for
10157         'trace' and 'message' if not needed.
10158
10159 2002-08-18  Dick Porter  <dick@ximian.com>
10160
10161         * unicode.c: Fix asserts to match Encoder.cs checks
10162
10163 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10164
10165         * marshal.c: fix unaligned store issue and a few wrong
10166         opcode argument types.
10167
10168 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10169
10170         * icall.c: added GetUninitializedObjectInternal internal call.
10171
10172 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10173
10174         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10175         to the right domain.
10176
10177 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10178
10179         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10180
10181         * class.c (class_compute_field_layout): set blittable to false for Strings
10182
10183         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10184
10185 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10186
10187         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10188         first chunk of code to create types at runtime. Code to
10189         handle ReflectedType/DeclaringType. Make reflection handles
10190         domain specific.
10191
10192 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10193
10194         * class.c: set correct name in arrays.
10195
10196 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10197
10198         * appdomain.c (mono_domain_transfer_object): make it work with
10199         valuetypes. bug fixes.
10200
10201 2002-08-12  Dick Porter  <dick@ximian.com>
10202
10203         * object.h: Rename some parameters to avoid c++ keywords (Patch
10204         from Joseph Wenninger <kde@jowenn.at>)
10205
10206 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10207
10208         * icall.c: added icall to implement Assembly.GetFile*.
10209
10210 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10211
10212         * reflection.h, reflection.c: code to embed managed resources.
10213
10214 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10215
10216         * class.c: move all the type size stuff into
10217         class_compute_field_layout().
10218
10219 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10220
10221         * class.c: ensure enums have always the correct instance size.
10222         * unicode.c: remove wrong assert.
10223
10224 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10225
10226         * assembly.c: fix mem corruption issue.
10227         * image.h, image.c: added mono_image_get_resource () to access
10228         managed resources.
10229         * icall.c: implemented Assembly.EntryPoint property and some
10230         Managed Resources related internalcalls.
10231
10232
10233 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10234
10235         * image.c, image.h: impemented mono_image_get_entry_point ().
10236         * appdomain.c: use mono_image_get_entry_point.
10237
10238 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10239
10240         * reflection.c: support the object type argument when loading
10241         custom attributes.
10242
10243 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10244
10245         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10246         String as return type.
10247
10248 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10249
10250         * reflection.c: fix encoding of named args for custom attrs to match
10251         the ms implementation. Read them back when instantiating custom
10252         attributes.
10253
10254 2002-08-02  Radek Doulik  <rodo@ximian.com>
10255
10256         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10257         by Dietmar as quick fix
10258         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10259         16 as stack size, used on more places as quick fix before Dietmar
10260         will fix it properly
10261
10262 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10263
10264         * object.h, object.c: added accessors for fields and properties.
10265
10266 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10267
10268         * class.c, class.h: made mono_class_get_field_from_name ()
10269         loop on parent types.
10270         Added mono_class_get_property_from_name ().
10271
10272 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10273
10274         * class.c, class.h: move the code to setup the type vtable in its own
10275         function so that it can be reused also for types created at runtime.
10276         Eliminate the "class" identifier from the header file.
10277         * reflection.c: setup the vtable for enums so that we can create
10278         objects for use in SetConstant ().
10279
10280 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10281
10282         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10283         instead of the delegate itself as this pointer (bug #28383)
10284
10285 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10286
10287         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10288         conversions.
10289
10290 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10291
10292         * loader.c: don't set the pinvoke bit on icalls.
10293
10294 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10295
10296         * debug-helpers.c (mono_method_full_name): only print a number to
10297         indicate wrapper type (so that the output is more readable in traces).
10298
10299 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10300
10301         * class.c (mono_class_init): include method override patch from Paolo
10302
10303 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10304
10305         * icall.c: fixed GetTypeCode().
10306
10307 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10308
10309         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10310         use real delegate invoke function to make it work with multicast
10311         delegates (fix bug# 28291).
10312
10313 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10314
10315         * object.c: load constant strings.
10316
10317 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10318
10319         * reflection.c: no magic numbers.
10320         * tabledefs.h: security action enum.
10321
10322 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10323
10324         * assembly.c: fix possible memory corruption.
10325
10326 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10327
10328         * reflection.h, reflection.c: added support for linking resources.
10329         * verify.c: check we have an updated corlib.
10330
10331 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10332
10333         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10334         string arrays.
10335         (mono_marshal_string_array): null terminate unmanaged string arrays.
10336         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10337
10338 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10339
10340         * icall.c: Type.GetType () can now return also types from the
10341         calling assembly.
10342
10343 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10344
10345         * loader.h, loader.c: stack walking support.
10346         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10347         GetCallingAssembly.
10348
10349 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10350
10351         * marshal.c: added optimisations for blittable types 
10352
10353         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10354         (mono_class_setup_mono_type): set blittable attribute for single
10355         and double.
10356
10357         * marshal.c (mono_string_utf8_to_builder): impl.
10358         (mono_string_builder_to_utf8): impl.
10359         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10360
10361 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10362
10363         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10364         (mono_marshal_get_managed_wrapper): impl. byref types
10365
10366 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10367
10368         * icall.c:
10369         (search_method): don't display debug message. 
10370
10371 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10372
10373         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10374
10375 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10376
10377         * appdomain.c: set the missing filename when throwing exception.
10378
10379 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10380
10381         * metadata.c (mono_type_size): code cleanup
10382         (mono_type_stack_size): removed some test code
10383
10384 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10385
10386         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10387         mono_get_exception_file_not_found now.
10388
10389         * exception.c (mono_exception_from_name_two_strings): New version
10390         that will call a constructor with two string arguments. 
10391         (mono_get_exception_file_not_found): New helper routine, used to
10392         report file-not-found errors.
10393
10394 2002-07-20  Dick Porter  <dick@ximian.com>
10395
10396         * process.h:
10397         * process.c: Pass file handles to CreateProcess
10398         
10399         * icall.c:
10400         * file-io.h:
10401         * file-io.c: Implemented CreatePipe
10402
10403 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10404
10405         * metadata.c (mono_get_param_info): set alignment for value types
10406
10407 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10408
10409         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10410         Constify mono_domain_assembly_open().
10411         * loader.c: handle null namespace in icalls.
10412
10413 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10414
10415         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10416         (emit_str_to_ptr_conv): marshal object as structs
10417
10418         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10419
10420         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10421
10422 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10423
10424         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10425         (mono_marshal_get_native_wrapper): we an now return value types
10426
10427 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10428
10429         * verify.c: more checks implemented.
10430
10431 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10432
10433         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10434         (fix bug #27695)
10435         (mono_marshal_get_native_wrapper): allow byref arguments
10436         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10437         impl. PtrToStringXXX methods
10438         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10439         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10440         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10441         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10442         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10443
10444 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10445
10446         * reflection.c: fix buglet in parsing an assembly name.
10447
10448 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10449
10450         * marshal.c (emit_ptr_to_str_conv): first impl.
10451
10452 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10453
10454         * object.c, class.h: cache the vtable in the class as suggested by
10455         vargaz@freemail.hu (Zoltan Varga).
10456
10457 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10458
10459         * class.h, loader.c: added mono_field_from_token().
10460         * verify.c: first cut of type checking code.
10461
10462 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10463
10464         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10465
10466 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10467
10468         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10469         (fix bug #27782)
10470         (mono_marshal_get_remoting_invoke): impl.
10471         (mono_delegate_begin_invoke): impl.
10472         (mono_mb_emit_save_args): impl.
10473         (mono_delegate_end_invoke): impl.
10474         (mono_marshal_get_delegate_begin_invoke):
10475         (mono_marshal_get_delegate_end_invoke):
10476         (mono_marshal_get_delegate_invoke): generate a special name for
10477         those methods (including the signature) and associate them whith
10478         the delegate class. 
10479
10480 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10481
10482         * reflection.[ch]: 
10483         (mono_reflection_type_from_name): now it has a MonoImage parameter
10484         which is used as the default image to search the type in. If the image
10485         is NULL or getting the type from it fails, it defaults to corlib.
10486
10487         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10488         new parameter.
10489
10490 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10491
10492         * reflection.c: update the parameter table index.
10493
10494 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10495
10496         * domain.c: don't include the mark byte in the string hash.
10497
10498 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10499
10500         * icall.cs: icall for Type.GetTypeCode ().
10501         * verify: a couple of fixes and disabled local initialization checks.
10502
10503 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10504
10505         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10506
10507         * debug-helpers.c (mono_method_full_name): print the type of the
10508         runtime wrapper
10509
10510         * metadata.c (mono_signature_hash): a hash function for signatures
10511         (mono_signature_hash): better hash algorithm
10512
10513         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10514
10515         * debug-helpers.c (mono_method_full_name): this can now generate
10516         method names with signatures
10517
10518         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10519         method dont have this pointers.
10520
10521 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10522
10523         * reflection.c: fixup typebuilder tokens.
10524         * image.c: fix buglet.
10525         * marshal.h: remove whitespace.
10526         * metadata.h, metadata.c: reinstate code that was removed.
10527         * verify.c: handle catch directives and fix another couple of bugs.
10528
10529 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10530
10531         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10532         (mono_marshal_get_native_wrapper): make it comp. with the old code
10533         (mono_marshal_get_native_wrapper): support boolean
10534         (mono_marshal_get_managed_wrapper): support more types
10535
10536 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10537
10538         * class.c (class_compute_field_layout): compute class->blittable attribute.
10539
10540 2002-07-09  Dick Porter  <dick@ximian.com>
10541
10542         * threads.c: Make the thread cleaning up cope with threads that
10543         call ExitThread()
10544
10545 2002-07-08  Radek Doulik  <rodo@ximian.com>
10546
10547         * reflection.c (method_encode_code): use non-translated values to
10548         compute finally_start, this fixes exception handling on ppc, yay!
10549
10550         * decimal.h (struct signscale): fix endianess
10551
10552 2002-07-07  Radek Doulik  <rodo@ximian.com>
10553
10554         * reflection.c: swap box_val and not val
10555
10556 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10557
10558         * reflection.c, reflection.h: handle full assembly info in type name.
10559         Handle Type arguments when loading custom attributes.
10560         * icall.c: updated to use new mono_reflection_type_from_name () method.
10561
10562 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10563
10564         * loader.c:
10565         (method_from_memberref): also print assembly name when method not found.
10566
10567 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10568
10569         * icall.c:
10570         (ves_icall_TypeGetProperties): fixed bug #27473. 
10571
10572 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10573
10574         * reflection.c: display image name and token when cannot find the
10575         .ctor for an attribute.
10576
10577 2002-07-05  Martin Baulig  <martin@gnome.org>
10578
10579         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10580
10581 2002-07-04  Dick Porter  <dick@ximian.com>
10582
10583         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10584         compile on mingw.  This will cause mingw builds to not wait for
10585         subthreads to terminate after the main thread does.  I've lodged a
10586         bug with the mingw developers for them to wrap OpenThread().
10587
10588 2002-07-03  Dick Porter  <dick@ximian.com>
10589
10590         * threads.c: Store thread IDs instead of handles, because
10591         GetCurrentThread() returns a pseudohandle and therefore stores
10592         useless values.  mono_thread_cleanup() continues checking the
10593         array of threads until it is empty, to cope with subthreads
10594         spawning new threads after the main thread has finished.
10595
10596         * profiler.h:
10597         * profiler.c:
10598         * profiler-private.h: Pass the thread ID to thread profiler
10599         functions, instead of a handle
10600
10601 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10602
10603         * verify.c: fixes to make it more usable.
10604         * pedump.c: added --verify code to verify IL code in an assembly.
10605
10606 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10607
10608         * reflection.c: turn errors into warnings to allow compiling corlib.
10609
10610 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10611
10612         * reflection.c: add special cases to compile corlib.
10613
10614 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10615
10616         * reflection.c: handle properties with only a set method.
10617
10618 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10619
10620         * opcodes.h: add enum with opcodes in opval order.
10621
10622 2002-07-01  Dick Porter  <dick@ximian.com>
10623         
10624         * object.h:
10625         * object.c (mono_runtime_run_main): Removed unneeded argument
10626
10627 2002-06-28  Martin Baulig  <martin@gnome.org>
10628
10629         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10630
10631 2002-06-27  Dick Porter  <dick@ximian.com>
10632
10633         * threads.c: Store the handle in both the parent thread and in the
10634         subthread, to minimise the time between starting a new thread and
10635         storing its ID.
10636
10637 2002-06-26  Dick Porter  <dick@ximian.com>
10638
10639         * appdomain.c (mono_runtime_cleanup): Close the socket library
10640         after all the threads have finished, not before
10641
10642 2002-06-26  Martin Baulig  <martin@gnome.org>
10643
10644         * debug-symfile.c (mono_debug_find_source_location): Added
10645         `guint32 *line_number' argument.  If it's not NULL, store the line number
10646         there and return the file name without the line number.
10647
10648 2002-06-25  Dick Porter  <dick@ximian.com>
10649
10650         * icall.c:
10651         * process.h:
10652         * process.c: Process forking and other support functions
10653
10654 2002-06-25  Dick Porter  <dick@ximian.com>
10655
10656         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10657         things dont happen when the image is closed.
10658         (mono_image_lookup_resource): Walk the resource section looking
10659         for a particular entry
10660
10661         * cil-coff.h: PE resource section decoding
10662
10663 2002-06-25  Dick Porter  <dick@ximian.com>
10664         
10665         * assembly.h:
10666         * assembly.c: 
10667         (mono_assembly_foreach): Accessor functions to walk the list of
10668         loaded assemblies
10669         (mono_assembly_set_main):
10670         (mono_assembly_get_main): Process methods need to know which
10671         assembly is the "main" one
10672
10673         * object.c (mono_runtime_run_main): Record the main assembly
10674
10675         * debug-helpers.c: Fix typo
10676
10677 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10678
10679         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10680         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10681
10682 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10683
10684         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10685
10686 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10687
10688         * image.c (do_mono_image_open): Initialize reference count,
10689         otherwise we leak the MonoImage.
10690
10691 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10692
10693         * reflection.c: small tweak to handle self-hosting.
10694
10695 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10696
10697         * reflection.c: fix type name parse code.
10698
10699 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10700
10701         * reflection.c: break out of the loop.
10702         * image.c: special case corlib.
10703
10704 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10705
10706         * reflection.c: add all the custom attrs at the end to ensure the
10707         ctors have been properly initialized when the attributes are defined
10708         in the current assembly.
10709
10710 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10711
10712         * reflection.c: handle correctly multiple-nested types.
10713
10714 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10715
10716         * row-indexes.h: fix typos.
10717         * reflection.c: adjust for typos and fix method_def_or_ref
10718         encoding in MethodImpl table.
10719
10720 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10721
10722         * reflection.c: fix entry point patching (thanks Serge!).
10723
10724 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10725
10726         * verify.c: add check for System.Exception
10727
10728 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10729
10730         * image.c, class.c: minifix for code just c&p'ed.
10731         * reflection.c: warning fix.
10732         * object.h, loader.h, domain.c: load also StringBuilder.
10733
10734 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10735
10736         * marshal.h, marshal.c: some support code to handle complex marshaling.
10737
10738 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10739
10740         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10741         Better signatures with vtable error dump.
10742
10743 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10744
10745         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10746
10747 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10748
10749         * icall.c (ves_icall_Type_GetField): impl.
10750
10751 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10752
10753         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10754         to retrieve a marshal description blob for a field or param.
10755
10756 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10757
10758         * reflection.h, reflection.c: change order of nested type emission
10759         to avoid table corruption. The NestedTypes table is sorted.
10760         * icall.c: change order of GetConstructor results to workaround mcs bug.
10761
10762 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10763
10764         * reflection.h, reflection.c: handle field and param marshal
10765         information.
10766
10767 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10768
10769         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10770
10771 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10772
10773         * reflection.c: fix call convention.
10774
10775 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10776
10777         * reflection.h, reflection.c: mono_image_get_memberref_token()
10778         takes a type instead of a class, now. Added
10779         mono_image_get_array_token() to create tokens for the special
10780         multi-dim array methods.
10781
10782 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10783
10784         * assembly.c: handle modules (no assembly table). Split
10785         loading references in its own function.
10786         * class.c: handle moduleref resolution scope.
10787         * image.c, image.h: cache module name in image.
10788
10789 2002-06-07  Martin Baulig  <martin@gnome.org>
10790
10791         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10792         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10793
10794 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10795
10796         * icall.c: more signature fixes that used uint instead of int.
10797
10798 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10799
10800         * reflection.c: fixed signature of field refs.
10801
10802 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10803
10804         * class.c, reflection.c: handle typerefs of nested types
10805         (both on read and when writing files).
10806
10807 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10808
10809         * icall.c: fix method signatures that tried to workaround the previous
10810         typo, d'oh!
10811
10812 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10813
10814         * debug-helpers.c: fix typo.
10815
10816 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10817
10818         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10819         rewrote the PE/COFF writing code (our programs are understood by the
10820         ms runtime, now).
10821
10822 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10823
10824         * gc.c, gc.h, icall.c: weakreference support.
10825
10826 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10827
10828         * Makefile.am, mono-config.c: use $(sysconfdir).
10829
10830 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10831
10832         * icall.c: changed default precision of Double.ToString() to 15.
10833         Fixed memory leak. Unified with Single.ToString.
10834
10835 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10836
10837         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10838
10839 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10840
10841         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10842         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10843         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10844         and myself.
10845
10846 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10847
10848         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10849
10850 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10851
10852         * reflection.c, socket-io.c: more compilation fixes.
10853
10854 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10855
10856         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10857         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10858         unicode.c: warning and compiler compatibility fixes.
10859
10860 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10861
10862         * class.h, metadata.c: fixed warnings/compilation errors.
10863
10864 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10865
10866         * Makefile.am, mono-config.c, mono-config.h: configuration file
10867         support routines.
10868         * loader.c, loader.h: make Dll mapping configurable at runtime in the
10869         config file. Export methods to insert and lookup mappings.
10870
10871 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10872
10873         * reflection.c: handle types and boxed objects in custom attr
10874         constructors.
10875
10876 2002-05-30  Martin Baulig  <martin@gnome.org>
10877
10878         * debug-symfile.c
10879         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
10880
10881 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
10882
10883         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
10884         to lookup the implmap row for a P/Invoke method.
10885         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
10886         P/Invoke method from the runtime on an as needed basis.
10887
10888 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
10889
10890         * metadata.c (mono_metadata_parse_signature): impl.
10891
10892 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10893
10894         * class.c: handle .pack directive.
10895
10896 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10897
10898         * object.c: initialize static fields with RVA data.
10899
10900 2002-05-25  Martin Baulig  <martin@gnome.org>
10901
10902         * debug-symfile.c
10903         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
10904
10905 2002-05-24  Martin Baulig  <martin@gnome.org>
10906
10907         * debug-symfile.c
10908         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
10909         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
10910         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
10911
10912 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10913
10914         * object.c: special case string ctros in invoke.
10915         * gc.c: silly whitespace changes.
10916
10917 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
10918
10919         * threadpool.[ch]: impl. a threadpool that can
10920         be used by mint and mono.
10921
10922 2002-05-22  Martin Baulig  <martin@gnome.org>
10923
10924         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
10925         The first argument is now a `MonoReflectionModuleBuilder *', the return
10926         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
10927         `methods' field to get the method builder.  The `token' argument is the
10928         unfixed token.
10929
10930         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
10931         invalid characters instead of g_assert_not_reached()ing.  This seems
10932         to be the behaviour of mscorlib.
10933
10934 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
10935
10936         * object.c (mono_runtime_invoke_array): applied patch from Rachel
10937         Hestilow to fix bug #25104
10938
10939 2002-05-21  Martin Baulig  <martin@gnome.org>
10940
10941         * debug-symfile.c (mono_debug_find_source_location): New function.
10942         Looks up an IL offset in the line number table and returns the source
10943         location as a string.
10944
10945 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10946
10947         * icall.c:
10948         (mono_double_ToStringImpl): changed %f by %g until we have something
10949         better.
10950
10951 2002-05-21  Nick Drochak  <ndrochak@gol.com>
10952
10953         * icall.c : Use different name for Math.Pow's icall.  Needed to check
10954         parameters first in C#.
10955
10956 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10957
10958         * icall.c, reflection.h: added icall to get info about an event.
10959
10960 2002-05-20  Radek Doulik  <rodo@ximian.com>
10961
10962         * object.c (mono_value_box): don't use memcpy for boxing on BIG
10963         endian
10964         (mono_value_box): don't use memcpy for small sizes on
10965         architectures with unaligned access
10966
10967 2002-05-20  Martin Baulig  <martin@gnome.org>
10968
10969         * reflection.c (mono_reflection_setup_internal_class): Don't crash
10970         if `tb->parent == NULL'.
10971         (mono_reflection_create_internal_class): New function.  This is
10972         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
10973         for enum types.
10974
10975         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
10976         New interncall.
10977
10978 2002-05-19  Martin Baulig  <martin@gnome.org>
10979
10980         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
10981         argument to get the length, don't default to the array length.
10982
10983 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
10984
10985         * assembly.c (mono_assembly_setrootdir): New function used to
10986         override the MONO_ASSEMBLIES directory.
10987
10988 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10989
10990         * icall.c: ValueType_GetHashCode() initialize local var.
10991
10992 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10993
10994         * reflection.c: sort custom attributes table.
10995
10996 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10997
10998         * reflection.c: support named args in custom attributes (write support).
10999
11000 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
11001
11002         * reflection.c: fix finally position calculation.
11003
11004 2002-05-15  Radek Doulik  <rodo@ximian.com>
11005
11006         * reflection.c: fixed endianess at many places
11007
11008         * icall.c (ves_icall_InitializeArray): comment out debug msg
11009
11010 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
11011
11012         * object.c (mono_unhandled_exception): new function to handle
11013         unhandled exceptions.
11014         (mono_unhandled_exception): call the UnhandledException event.
11015         (mono_runtime_delegate_invoke): impl.
11016
11017 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
11018
11019         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
11020         returns the RVA, not the direct pointer to the data. Handle the case
11021         when the class size is fixed.
11022
11023 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11024
11025         * reflection.c: fix some endianess issues.
11026
11027 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
11028
11029         * object.c (mono_runtime_invoke): is now able to catch exceptions.
11030
11031         * threads.c (mono_thread_init): added a callback which is invoked
11032         at thread start.
11033
11034 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11035         
11036         * icall.c: make GetHashCode return non-negative values.
11037
11038 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11039
11040         * object.c, icall.c, gc.c: revert to address-based hashcode.
11041
11042 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
11043
11044         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
11045
11046 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11047
11048         * icall.c, class.c: special case <Module>.
11049
11050 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
11051
11052         * icall.c: fix bug in GetNow().
11053
11054 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
11055
11056         * object.c (mono_runtime_class_init): make sure that we call all
11057         static class constructors.
11058
11059 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11060
11061         * reflection.c: sort methodsemantics table.
11062
11063 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11064
11065         * reflection.h, reflection.c: honour init locals setting.
11066
11067 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11068
11069         * icall.c: copied Double ToStringImpl for Single ToStringImpl
11070
11071 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11072
11073         * reflection.c: support ContructorBuilders in attribute blob creation.
11074
11075 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11076
11077         * reflection.c: some changes to build a binary that can be run
11078         directly in windows.
11079
11080 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11081
11082         * loader.c: print a big message when an icall can't be found.
11083
11084 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11085
11086         * string-icalls.c: fix bug 24248.
11087
11088 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11089
11090         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11091         icall.c, reflection.h: separate assembly loading by pathname and by
11092         assembly name. Use the MONO_PATH env var to search for assemblies.
11093
11094 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11095
11096         * assembly.c, image.h: add some support for assemblies
11097         with multiple modules.
11098         * class.c, class.h: export mono_class_from_typeref().
11099         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11100         instead.
11101
11102 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11103
11104         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11105         documentation says (the ECMA one is correct).
11106
11107 2002-05-02  Dick Porter  <dick@ximian.com>
11108
11109         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11110         Don't name the synchronisation mutex.
11111
11112 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11113
11114         * rand.c
11115         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11116         Make the prototypes match.
11117         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11118         Same.
11119
11120         * icall.c
11121         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11122         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11123         all systems have tm.tm_zone, so use strftime() with %Z to print
11124         the timezone abreviation into a temp string.
11125
11126         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11127         rather than mono_array_addr() on a MonoString on Big Endian
11128         machines.
11129
11130 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11131
11132         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11133         fix bug 24041
11134
11135 2002-04-30  Dick Porter  <dick@ximian.com>
11136
11137         * socket-io.c: Cope with SOCKET being an integer rather than a
11138         pointer now.
11139
11140         * threads.c: Added Thread_free_internal, to deal with thread
11141         handle cleanup.  Moved calls to handle_store() and handle_remove()
11142         to start_wrapper(), so each can only be called once.  Allocate
11143         synchronisation blocks with GC_malloc(), and use GC finalisation
11144         to close the handles.
11145
11146         * icall.c: added System.Threading.Thread::Thread_free_internal
11147
11148 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11149
11150         * icall.c: support Environment.Exit, CommandLineArgs().
11151
11152 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11153
11154         * object.c, object.h: added mono_runtime_run_main () and
11155         mono_runtime_get_main_args () for use in System.Environment.
11156
11157 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11158
11159         * gc.c: fix thinko, enable actual finalization since the jit is now
11160         fixed.
11161
11162 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11163
11164         * gc.c, object.c: take into account that an object may be offset wrt the address
11165         returned by GC_malloc().
11166
11167 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11168
11169         * image.c: handle files without entries in the assembly table (modules).
11170
11171 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11172
11173         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11174         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11175         allowed to be null when it's System.Object class setup.
11176
11177 2002-04-27  Martin Baulig  <martin@gnome.org>
11178
11179         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11180         if `tb->parent == NULL' rather than crashing.
11181
11182 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11183
11184         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11185         calling acos() where asin() should have been called.
11186
11187 2002-04-26  Martin Baulig  <martin@gnome.org>
11188
11189         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11190         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11191         there's a subdirectory called `System', but we don't want to read that
11192         subdirectory as an assembly.
11193
11194 2002-04-25  Martin Baulig  <martin@gnome.org>
11195
11196         * debug-symfile.c: Reflect latest MonoString changes.
11197
11198 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11199
11200         * rand.c, rand.h: instance method icalls need to have an explicit
11201         this pointer as first argument in the C implementation.
11202
11203 2002-04-25  Nick Drochak <ndrochak@gol.com>
11204
11205         * icall.c: Fix typo in map for GetNonZeroBytes
11206
11207 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11208
11209         * string-icalls.c : String does now passes unit tests without any 
11210         errors, the following changes has been made:
11211         
11212         Implemented replace methods.
11213         Renaming of methods to (try) follow the standard.
11214         Fixed compare ordinal
11215         Made all memory allocated directly to function instead of via icall function.
11216         Small performance fix in is_in_array function
11217                         
11218  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11219
11220         c (mono_string_Internal_ctor_charp_int_int):
11221         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11222         sindex < 0, throw ArgumentOutOfRangeException instead of
11223         ArgumentNullException.
11224
11225         Added new check for length == 0, however
11226         I need to make it return String.Empty from the C code.
11227         
11228         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11229         that calculate the length for us here.
11230         
11231         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11232         mono_string_new_utf16 with mono_string_new, since value is utf8.
11233
11234 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11235
11236         * object.c: register the object for finalization if needed.
11237         Allocate one more char in the string for the terminating 0 char.
11238
11239 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11240
11241         * class.c, class.h, image.c: check if a type implemenst a destructor.
11242         Use the proper key for array class lookups.
11243         * icall.c: register the icalls in the System.GC class.
11244         * gc.c, gc.h: GC-related functions and icalls.
11245
11246 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11247
11248         * icall.c:
11249         * socket-io.c:
11250         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11251         changed a couple of free () by g_free ().
11252
11253         * decimal.c: one-liner in the comments for decimal2string ().
11254
11255 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11256
11257         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11258
11259 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11260
11261         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11262         * object.c (mono_runtime_invoke_array) : handle null in params
11263
11264 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11265
11266         * string-icalls.c: fixed bug in split (one off bug)
11267
11268 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11269
11270         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11271         * icalls.c: added String::Equals as internal method
11272
11273 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11274
11275         * threads.c: fixed bug in the double interlocked functions
11276
11277 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11278
11279         * threads.c: implemented all of the new interlocked icalls.
11280         * string-icalls.c: fix a bug in insert.
11281         * icalls.c: added the icalls for interlocked, removed old string functions.
11282         
11283 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11284
11285         * loader.c: fix off-by-one error when reading argument names.
11286
11287 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11288
11289         * profiler.c: win32 counter implementation (untested).
11290         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11291         (the latter needs testing and more complete impl. from win32 folks).
11292
11293 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11294
11295         * object.c: mono_array_new_full workaround mono_array_class_get
11296         problem.
11297
11298 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11299
11300         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11301         * object.h (mono_string_chars): Changed casting type.
11302
11303 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11304
11305         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11306                            method signatures to use gunichar2 instead of gint16.
11307
11308 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11309
11310         * object.h, object.c: domain-specific versions of mono_object_new and
11311         mono_array_new.
11312
11313 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11314
11315         * object.c: changed String layout
11316
11317         * string-icalls.c (mono_string_Internal_ctor_chara): added
11318         internal string constructors.
11319
11320 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11321
11322         * threads.c: pass 'this' to the thread start routine.
11323
11324 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11325
11326         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11327         InternalCompareStr don't call twice mono_string_cmp_char for the last
11328         character. Improved performance in mono_string_cmp_char.
11329
11330 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11331
11332         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11333         code into its own library: libmonoruntime.
11334
11335 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11336
11337         * object.h, object.c: changed array format so that szarrays do not
11338         require a bounds structure.
11339         * icall.c, appdomain.c: support for new szarray format.
11340
11341 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11342
11343         * metadata.c: compare also the retuns type when comparing signatures:
11344         we didn't do this as an optimization since really overloaded methods
11345         must differ also in the arguments, but this doesn't work with
11346         low-level IL code (or when using explicit conversion operators: see
11347         bug#23498 for an example).
11348
11349 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11350
11351         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11352
11353 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11354
11355         * icall.c: make MonoType::GetElementType its own icall.
11356
11357 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11358
11359         * icall.c: remove MonoMethod_get_Name().
11360         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11361         object.
11362
11363 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11364
11365         * string-icalls.c: optimized a few methods.
11366
11367 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11368
11369         * icall.c: added all new string internal calls
11370         * string-icalls.c: added, new string internal call implementation.
11371         * object.c: added mono_string_new_size for allocating a string a size
11372
11373 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11374
11375         * object.c (mono_object_isinst): use the same code as in the
11376         optimized x86 version.
11377
11378 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11379
11380         * profiler.c: TSC-based timer code (faster and more accurate).
11381         Not hooked up in configure, yet (set USE_X86TSC to 1).
11382
11383 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11384
11385         * profiler.c, profiler.h: track time spent compiling methods.
11386         * threads.c: track thread creation/destruction.
11387
11388 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11389
11390         * profiler.c, profiler.h, profiler-private.h: profiling interface
11391         and sample implementation. Moved here so that it can be used also by
11392         the jit.
11393
11394 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11395
11396         * reflection.c, reflection.h: keep types and other handles separate in
11397         the hash tables for referred tokens. Add guid for modules.
11398
11399 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11400
11401         * assembly.c: fix bugs found with valgrind.
11402         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11403
11404 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11405
11406         * threads: added icall support for getting current domain for
11407                    the thread.
11408  
11409 2002-04-13  Martin Baulig  <martin@gnome.org>
11410
11411         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11412         (MonoDebugVarInfo): Added `index' field for register based addresses.
11413         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11414         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11415         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11416         `MonoDebugVarInfo *this_var'.
11417
11418         * debug-symfile.c (relocate_variable): New static function to write
11419         a location description for a local variable or method parameter.
11420
11421 2002-04-12  Martin Baulig  <martin@gnome.org>
11422
11423         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11424         stack offset and begin/end scope address of a local variable.
11425         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11426         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11427         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11428
11429         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11430         Added new relocation types for start/end scope of a local variable.
11431
11432 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11433
11434         * object.h: add mono_object_domain() macro.
11435         * reflection.c: handle typespecs.
11436         * icall.c: MonoMethod::get_Name() implementation.
11437
11438 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11439
11440         * icall.c: String::GetHashCode() icall implementation.
11441
11442 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11443
11444         * icall.c: String::IndexOfAny icall.
11445         * object.c, object.h: make array->max_length more useful.
11446         Intrduced mono_object_class() and mono_string_length() macros.
11447
11448 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11449
11450         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11451         instead of g_unichar_isdigit.
11452
11453 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11454
11455         * icall.c: Implement a simple Double.ToString().
11456
11457 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11458
11459         * appdomain.h: only io-layer.h is supposed to be included.
11460         * icall.c: explicitly import environ. Fix warning.
11461
11462 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11463
11464         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11465                 return true even if it's not Daylight Savings time.
11466                 Only return false for the case where the function isn't
11467                 implemented for a plaform (read Windows).
11468
11469 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11470
11471         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11472         data with a mutex.
11473
11474 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11475
11476         * mempool.c (mono_mempool_alloc): only use g_malloc when
11477         absolutely necessary.
11478
11479 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11480
11481         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11482
11483         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11484         (mono_class_proxy_vtable): use domain mempool
11485
11486 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11487
11488         * appdomain.h, appdomain.c: split initialization that requires the
11489         execution engine support into mono_runtime_init().
11490
11491 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11492
11493         * class.c (mono_class_init): don't include vtable inside MonoClass
11494         to save some memory, gather some statistics.
11495         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11496
11497 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11498
11499         * icall.c: internalcall implementation for ValueType.Equals().
11500
11501 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11502
11503         * object.c (mono_message_init): moved 
11504         (mono_runtime_exec_main): new arch. independent impl.
11505         (mono_runtime_invoke_array): new method - like
11506         mono_runtime_invoke, but you can pass an array of objects.
11507         (mono_remoting_invoke): new arch. independent impl.
11508         (mono_message_invoke): new arch. independent impl.
11509         (mono_runtime_class_init): new arch. independent impl.
11510         (mono_runtime_object_init): new arch. independent impl.
11511
11512 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11513
11514         * metadata.c, object.c, reflection.c: documented the exported
11515         functions.
11516
11517 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11518
11519         * icall.c: simpler code to pass the assembly builder data to corlib.
11520         Implement GetNestedTypes() internalcall.
11521
11522 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11523
11524         * class.c: warn if a type can't be loaded.
11525
11526 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11527
11528         * image.h: typedef MonoImageOpenStatus
11529         * types.h: removed unused file
11530         
11531 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11532
11533         * icall.c: Enum_ToObject accepts enum value arguments.
11534
11535 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11536
11537         * class.c: move initialization of properties, events and nested
11538         classes, so that they happen for interfaces, too.
11539
11540 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11541
11542         * icall.c: cleanup some ugly casts in Array_SetValue*.
11543
11544 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11545
11546         * icall.c: the values array fro enums is of the correct type, now.
11547         Implement (correctly) getFullName instead of assQualifiedName for
11548         MonoType.
11549         * reflection.h, reflection.c: added mono_type_get_name ().
11550
11551 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11552
11553         * assembly.c, image.h: for each MonoImage, record from wich assembly
11554         it was loaded.
11555         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11556         Make Type.Assembly work.
11557
11558 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11559
11560         * debug-symfile.h: use char* instead of gpointer to avoid
11561         unnecessary casts.
11562
11563         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11564
11565         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11566         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11567
11568 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11569
11570         * icall.c (mono_message_init): impl. (code cleanup)
11571         (ves_icall_InternalExecute): impl. FieldGetter
11572
11573         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11574         defined we call all (non-static)methods through the vtable. 
11575
11576 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11577
11578         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11579         finalizer even though the memory is still referenced (and the chunk of
11580         memory is not freed).
11581
11582 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11583
11584         * assembly.c: fix brokeness.
11585
11586 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11587
11588         * class.c: kill some warnings. Check explicit interface method
11589         implementation also without considering the namespace.
11590         Load also literal strings in static class data.
11591
11592 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11593
11594         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11595         (default_assembly_name_resolver): Make the resolver take the
11596         "base" directory where the assembly was originally defined, so we
11597         can load DLLs that are in the same directory as the assembly that
11598         is being referenced.
11599
11600 2002-03-28  Dick Porter  <dick@ximian.com>
11601
11602         * file-io.h: 
11603         * file-io.c:
11604         * socket-io.c: 
11605         * unicode.h: 
11606         * unicode.c: Warning cleanups
11607
11608 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11609
11610         * object.h, reflection.h: use the correct type instead of MonoObject.
11611
11612 2002-03-28  Martin Baulig  <martin@gnome.org>
11613
11614         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11615         (mono_debug_update_symbol_file): Initialize classes if necessary.
11616
11617 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11618
11619         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11620         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11621
11622 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11623
11624         * assembly.h: fix function prototype.
11625         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11626         * mono-endian.h: use const cast.
11627
11628 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11629
11630         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11631
11632 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11633
11634         * loader.c: don't assert when a typeref can't be loaded, give
11635         a chance to the runtime to trow an exception instead.
11636         * loader.h: fix warning.
11637
11638 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11639
11640         * class.c (mono_class_proxy_vtable): added proxy support
11641
11642 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11643
11644         * icall.c: removed last of PAL calls, added System.Environment
11645         * file-io.h, file-io.c: MonoIO implementation
11646         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11647
11648 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11649
11650         * appdomain.c: do not use the byte marker in ldstr table lookup.
11651         * debug-helpers.c: allow two ':' to separate class and method name.
11652         * object.c: allocate arrays bounds with the GC, too.
11653         * verify: add a few more checks.
11654
11655 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11656
11657         * reflection.c: output also literal strings. Allocate parameter data
11658         with GC_malloc() (thanks, Martin, for catching this!).
11659
11660 2002-03-26  Martin Baulig  <martin@gnome.org>
11661
11662         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11663         include the `this' offset in the `param_offsets'.
11664
11665 2002-03-25  Martin Baulig  <martin@gnome.org>
11666
11667         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11668         mono_debug_get_class() function to get the classes. Added new
11669         relocation types for arrays and strings.
11670         (mono_debug_get_class): New static function to search in all
11671         referenced assemblies for a metadata token.
11672
11673         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11674
11675 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11676
11677         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11678         hold gc-allocated objects. Make the string heap a stream like the
11679         others. Removed duplicated code when writing stream info.
11680         Added asserts to catch possible buffer overflows. Set the sorted map
11681         for tables that need sorting. Added some documentation.
11682
11683 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11684
11685         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11686         for interned strings and vtables.
11687
11688 2002-03-24  Martin Baulig  <martin@gnome.org>
11689
11690         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11691         it in the array since it was created with g_slist_prepend().
11692
11693 2002-03-24  Martin Baulig  <martin@gnome.org>
11694
11695         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11696         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11697         (mono_debug_method_from_token): Renamed to
11698         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11699         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11700
11701         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11702         relocation types.
11703
11704         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11705
11706 2002-03-24  Martin Baulig  <martin@gnome.org>
11707
11708         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11709         (mono_debug_method_from_token): New func.
11710
11711         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11712         New interncall, calls mono_debug_local_type_from_signature().
11713         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11714         calls mono_debug_method_from_token().
11715
11716 2002-03-23  Martin Baulig  <martin@gnome.org>
11717
11718         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11719         specifies the number of bytes to be converted, not the array size.
11720         Return the number of chars, not the number of bytes.
11721         (ves_icall_iconv_get_chars): The `byteCount' argument
11722         specifies the number of bytes to be converted, not the array size.
11723
11724 2002-03-23  Martin Baulig  <martin@gnome.org>
11725
11726         * reflection.h (MonoReflectionSigHelper): New type.
11727
11728         * reflection.c (mono_reflection_sighelper_get_signature_local),
11729         (mono_reflection_sighelper_get_signature_local): New functions.
11730
11731         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11732         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11733         interncalls.
11734
11735 2002-03-23  Martin Baulig  <martin@gnome.org>
11736
11737         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11738         is_writeable is set.
11739         (mono_raw_buffer_update): New function to write the modified map
11740         back to disk.
11741
11742         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11743
11744         * debug-symfile.c (mono_debug_update_symbol_file): Call
11745         mono_raw_buffer_update() when done writing.
11746
11747 2002-03-23  Martin Baulig  <martin@gnome.org>
11748
11749         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11750
11751         * debug-symfile.c: Added support for arguments and local variables.
11752
11753 2002-03-23  Dick Porter  <dick@ximian.com>
11754
11755         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11756         protected by ifdefs, hence breaking the w32 build.
11757
11758 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11759
11760         * object.c: implement is_interned() the right way.
11761
11762 2002-03-21  Martin Baulig  <martin@gnome.org>
11763
11764         * debug-symfile.[ch]: New files to handle debugging information
11765         files. There's also support to dynamically update these symbol
11766         files to include machine dependent information.
11767
11768 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11769
11770         * threads.c (mono_thread_create): new function to create thread
11771         from C
11772
11773 2002-03-20  Martin Baulig  <martin@gnome.org>
11774
11775         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11776         method is a constructor.
11777         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11778         points to ves_icall_InternalInvoke().
11779
11780 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11781
11782         * file-io.c: Flush shouldn't throw exceptions.
11783
11784 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11785
11786         * file-io.c: FileStream flush support; FileSetLength now
11787         restores file pointer.
11788
11789 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11790
11791         * class.c: set image for pointer classes.
11792
11793 2002/03/19  Nick Drochak <ndrochak@gol.com>
11794
11795         * sysmath.c: Forgot one.
11796
11797 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11798
11799         * sysmath.c: Avoid redefining existing names.
11800
11801 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11802
11803         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11804         handled by runtime as icall rather than dllimport from libm.so
11805         * file-io.c, file-io.h: fixed handle argument type.
11806
11807 2002-03-18  Dick Porter  <dick@ximian.com>
11808
11809         * reflection.c (mono_image_get_type_info): rename interface to
11810         iface, because of "#define interface struct" on windows.
11811
11812 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11813
11814         * class.c, class.h: rename and export mono_ptr_class_get().
11815         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11816         * reflection.c, reflection.h, icall.c: better/saner type name
11817         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11818         method signatures.
11819
11820 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11821
11822         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11823
11824         * icall.c (ves_icall_InternalInvoke): impl.
11825
11826 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11827
11828         * reflection.c: output the interface map table, too.
11829
11830 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11831
11832         * class.c (class_compute_field_layout): separate computation of 
11833         static field layout
11834
11835 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11836
11837         * icall.c: added System.Buffer support.
11838         * file-io.c: moved file icalls from PAL to FileStream.
11839
11840 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11841
11842         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11843
11844 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11845
11846         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11847
11848 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11849
11850         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11851
11852 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11853
11854         * debug-helpers.{c,h}: moved here from monograph some useful functions
11855         to locate a method by name/signature in a class or image. Included
11856         also a small and flexible IL disassembler.
11857
11858 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11859
11860         * reflection.c: fixup tokens in methods with small header size, too.
11861
11862 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
11863
11864         * object.c (mono_string_to_utf8): remove assert(!error), instead
11865         print a warning. 
11866
11867 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
11868
11869         * icall.c: update to the new mono_Array_class_get interface.
11870
11871 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11872
11873         * appdomain.c, object.c: Boehm-GC enable.
11874         * icall.c: make get_data_chunk() support split data requests.
11875         Ensure a class is initialized in more cases. Return only the first
11876         property found in GetProperties() or the compiler gets confused. 
11877         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
11878         * reflection.h, reflection.c: add fixup mechanism for field and method
11879         tokens. Initialize assembly->typeref in a single place. Output
11880         properties after events. Support custom attributes for events, too.
11881         Typo fix for paramter custom attrs.
11882
11883 2002-03-07  Martin Baulig  <martin@gnome.org>
11884
11885         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
11886
11887 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
11888
11889         * class.c (mono_array_class_get): fix. for multi. dim. arrays
11890
11891 2002-03-06  Martin Baulig  <martin@gnome.org>
11892
11893         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
11894         non-zero lower bounds. See testcases #F10-#F13.
11895
11896 2002-03-05  Martin Baulig  <martin@gnome.org>
11897
11898         * exception.c (mono_get_exception_argument_out_of_range): New exception.
11899
11900         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
11901         ves_icall_System_Array_GetValue(), only calculate the absolute array position
11902         here.
11903         (ves_icall_System_Array_SetValue): Likewise.
11904         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
11905         as argument and does the actual work. This function is used when copying a
11906         multi-dimensional array.
11907         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
11908         now do all the widening conversions of value types.
11909         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
11910
11911 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11912
11913         * class.c: remove some magic numbers and use the smbolic names,
11914         instead. Added init_events() to load event info at class init time.
11915         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
11916         and mono_metadata_methods_from_event().
11917         * reflection.h, reflection.c: added support for writing out the evnets
11918         related information.
11919
11920 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11921
11922         * reflection.h, icall.c: use a different method (GetInterfaces)
11923         to gather interface info and add isbyref, isprimitive and
11924         ispointer to the ves_icall_get_type_info() return value.
11925
11926 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11927
11928         * class.h: stared adding support for events.
11929         * icall.c: split find_members implementation. Added debug icall to get
11930         the address of an object.
11931         * reflection.c: handle TypeBuilders in mono_type_get_object().
11932
11933 2002-03-01  Martin Baulig  <martin@gnome.org>
11934
11935         * icall.c (ves_icall_System_Array_GetLength): This must throw an
11936         ArgumentOutOfRangeException(), not an ArgumentException().
11937         (ves_icall_System_Array_GetLowerBound): Likewise.
11938         (ves_icall_System_Array_GetValue): Improved argument checking.
11939         (ves_icall_System_Array_SetValue): Improved argument checking.
11940
11941 2002-03-01  Martin Baulig  <martin@gnome.org>
11942
11943         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
11944         called with invalid arguments rather than just dying with g_assert().
11945         (ves_icall_System_Array_SetValue): Likewise.
11946         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
11947         raise a NotImplementedException instead.
11948         (ves_icall_System_Array_GetLength): Added argument checking.
11949         (ves_icall_System_Array_GetLowerBound): Added argument checking.
11950
11951 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
11952
11953         * object.h (mono_assert): new macros mono_assert and
11954         mono_assert_not_reached
11955
11956 2002-02-28  Martin Baulig  <martin@gnome.org>
11957
11958         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
11959         and "System::String::IsInterned" to "System::String::_IsInterned".
11960
11961 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
11962
11963         * icall.c: remove hacks for typebuilder. Added icall to create a
11964         modified type from a tybebuilder.
11965         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
11966         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
11967         to create a backing MonoClass for a TypeBuilder.
11968
11969 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11970
11971         * class.c, class.h: more refactoring of class init.
11972         Export mono_class_setup_mono_type() and mono_class_setup_parent().
11973
11974 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
11975
11976         * marshal.c, marshal.h: start of marshaling interface.
11977
11978 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
11979
11980         * icall.c: fix order in assembly qualified name icall.
11981
11982 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
11983
11984         * class.c: do not free str, since we store it in the hash table.
11985         * reflection.h: add label field to MonoILExceptionInfo.
11986         * reflection.c: handle references to more than one assembly. Handle
11987         case when there isn't a module created in the assembly.
11988
11989 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11990
11991         * class.c: Fix typo. Start refactoring of class init code.
11992
11993 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11994
11995         * appdomain.c: exit with 1 on error.
11996         * class.c: we already have the name in MonoClassField.
11997         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
11998         MonoStreamHeader instead of an offset of image->raw_metadata.
11999
12000 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
12001
12002         * appdomain.c (mono_init): Be even more descriptive about the error.
12003
12004 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
12005
12006         * appdomain.c: give the user an informative message when corlib can't
12007         be loaded.
12008
12009 2002-02-26  Martin Baulig  <martin@gnome.org>
12010
12011         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12012         New icall to get the time zone data.
12013
12014 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12015
12016         * reflection.c: set virtual and raw size of section correctly.
12017         * threads.c: transfer domain information to newly created threads.
12018
12019 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12020
12021         * class.c: when instancing a class in a domain, load the default
12022         vaules for static fields from the constant table. Fix System.Enum to
12023         not be an enum.
12024         * icall.c: implement Object::GetType() internalcall. Implemented
12025         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
12026         Fixed checking of binding flags in find_members().
12027         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
12028         * reflection.c: handle enumerations when writing to the constant
12029         table. Use a different object cache for types.
12030
12031
12032 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
12033
12034         * object.c (mono_object_isinst): fix for arrays
12035
12036         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
12037
12038 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12039
12040         * object.c: don't use mprotect ()  and fix intern pool hash table
12041         lookup for big endian systems.
12042
12043 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12044
12045         * icall.c: change type_is_subtype_of () signature.
12046
12047 2002-02-21  Mark Crichton  <crichton@gimp.org>
12048
12049         * rand.c, rand.h: Added random number generator for
12050         System.Security.Cryptography classes.
12051
12052         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12053
12054         * icall.c: Added System.Security.Cryptography calls.
12055
12056 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12057
12058         * class.c, icall.c, metadata.c: better support for pointer types.
12059         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12060         * reflection.c: Add support for getting custom attrs for properties
12061         and simplify some code.
12062
12063 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12064
12065         * icall.c: change getToken () and add custom attribute GetBlob()helper
12066         method.
12067         * reflection.h: add custom attrs array to the reflection builder structures.
12068         * reflection.c: encode and emit custom attributes for all the relevant
12069         reflection objects. Cache fieldref and methodref tokens. Change
12070         mono_image_create_token() interface to take a MonoDynamicAssembly.
12071         More complete custom attributes decoder. Load custom attributes for
12072         Assembly, Field, Method and Constructor objects, too. Make the
12073         returned array an Attribute[] one, not object[]. Added
12074         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12075         custom attribute constructor.
12076
12077 2002-02-20  Dick Porter  <dick@ximian.com>
12078
12079         * icall.c:
12080         * rawbuffer.c:
12081         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12082         problem code out for now).
12083
12084 2002-02-19  Radek Doulik  <rodo@ximian.com>
12085
12086         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12087
12088 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12089
12090         * icall.c: register the GetCustomAttributes method.
12091         * object.c, object.h: add mono_string_new_len ().
12092         * reflection.h, reflection.c: added mono_runtime_invoke(),
12093         mono_install_runtime_invoke(). Added
12094         mono_reflection_get_custom_attrs () to load custom attributes and
12095         create the attribute objects.
12096
12097 2002-02-19  Dick Porter  <dick@ximian.com>
12098         * threads-dummy-types.c:
12099         * threads-dummy-types.h:
12100         * threads-dummy.c:
12101         * threads-dummy.h:
12102         * threads-pthread-types.c:
12103         * threads-pthread-types.h:
12104         * threads-pthread.c:
12105         * threads-pthread.h:  Deleted obsolete files
12106
12107 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12108
12109         * class.c (mono_class_vtable): runtime init the class when we
12110         allocate static class data.
12111
12112         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12113
12114         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12115         and String - but we will need generic marshalling support in the
12116         future. 
12117         (mono_init): set the domain name in a ms compatible way
12118
12119         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12120         String[].
12121
12122 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12123
12124         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12125         for sizes
12126
12127         * appdomain.c (mono_domain_unload): impl.
12128
12129 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12130
12131         * appdomain.c, object.c: fix intern pool implementation.
12132         * class.c: fix alignment code.
12133
12134 2002-02-16  Radek Doulik  <rodo@ximian.com>
12135
12136         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12137         and s2 > s1, just copy lower bytes to be compatible with little
12138         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12139         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12140
12141         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12142         force big_endian to be 1 for big endian machines 
12143         (ves_icall_iconv_new_decoder): ditto
12144
12145 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12146
12147         * socket-io.c (convert_sockopt_level_and_name): If the system
12148         doesn't define SOL_IP or SOL_TCP, get them by hand using
12149         getprotobyname() and caching the values (because this could be a
12150         slow operation).
12151         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12152         Use the appropriate struct when the system does support it. Ie,
12153         not all systems have struct ip_mreqn so use struct ip_mreq when
12154         appropriate.
12155
12156 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12157
12158         * reflection.c: handle finally clauses.
12159
12160 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12161
12162         * socket-io.c: use g_snprintf() instead of snprintf.
12163
12164 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12165
12166         * reflection.c (mono_param_get_objects): Cast second argument to
12167         mono_method_get_param_names to a const char** to silence the
12168         compiler warning.
12169
12170         * appdomain.c (mono_domain_assembly_open): Put parens around the
12171         truth statement in the for-loop.
12172
12173         * unicode.c (iconv_convert): Got rid of a compiler warning about
12174         int i being unused when the system has a new iconv.
12175         (iconv_get_length): Same.
12176
12177         * image.c (load_class_names): Cast the second argument to
12178         g_hash_table_insert() to char* to hush compiler warnings about the
12179         arg being a const.
12180         (mono_image_open): Same here.
12181
12182         * socket-io.c: Don't conditionally include sys/filio.h or
12183         sys/sockio.h here anymore since we now get them from
12184         io-layer/io-layer.h
12185         (inet_pton): If the system doesn't support inet_aton, implement
12186         using inet_addr and also #define INADDR_NONE if it isn't defined
12187         by the system.
12188
12189 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12190
12191         * metadata.c, metadata.h: added function to get packing and size info
12192         of a typedef.
12193         * reflection.h, reflection.c: handle field RVA data. Save info about
12194         the table layout if needed. Assign typedef indexes to all the types
12195         before dumping the info about them to avoid forward reference problems.
12196
12197 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12198
12199         * socket-io.c (convert_sockopt_level_and_name): ifdef
12200         SO_ACCEPTCONN because it is not defined on my system (old debian)
12201
12202 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12203
12204         * opcode.c: use stddef.h to get NULL.
12205
12206 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12207
12208         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12209         for FIONBIO, FIONREAD and SIOCATMARK.
12210         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12211         define INADDR_NONE and besides, inet_addr() is deprecated and
12212         should not be used. Use inet_pton() instead - it also has the
12213         added bonus that it can easily handle IPv6 addresses as well.
12214         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12215
12216 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12217
12218         * decimal.c: remove _MSC_VER conditional.
12219
12220 2002-02-13  Dick Porter  <dick@ximian.com>
12221
12222         * socket-io.c: 
12223         * icall.c: Internal calls for Blocking, Select, Shutdown,
12224         GetSocketOption and SetSocketOption
12225
12226 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12227
12228         * assembly.cs: better resolver: use it instead of some kludgy
12229         code.
12230
12231 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12232
12233         * reflection.c: the best way to speed-up the compiler is to avoid
12234         infinite loops.
12235
12236 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12237
12238         * class.c (mono_class_vtable): changed the object layout
12239         (obj->vtable->class). 
12240         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12241
12242 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12243
12244         * assembly.c: look for assemblies in the assembly dir, too.
12245
12246 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12247
12248         * class.c: fix thinko in mono_class_from_type().
12249
12250 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12251
12252         * exception.h, exception.c: added TypeLoadException.
12253         * object.h, object.c: added mono_array_clone ().
12254         * icall.c: handle throwOnError in AssemblyGetType().
12255         Added Array.Clone().
12256         * opcode.h, opcode.c: use a single value for the opcode val.
12257         Compile fix for non-gcc compilers.
12258
12259 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12260
12261         * opcodes.c, opcodes.h: export interesting info about opcodes.
12262
12263 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12264
12265         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12266         icalls. 
12267
12268         * class.c (class_compute_field_layout): set element_class for enums
12269         (mono_class_create_from_typedef): set element_class for normal classes
12270
12271         * icall.c (ves_icall_System_Enum_get_value): impl.
12272
12273         * class.c (mono_class_create_from_typedef): do not set valuetype
12274         flag for System.ValueType and System.Enum
12275
12276 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12277
12278         * unicode.c (iconv_convert): fix big endian problem.
12279
12280 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12281
12282         * class.c: add asserts if we are ever going to scribble over memory.
12283         * socket-io.c: not all systems have AF_IRDA defined.
12284
12285 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12286
12287         * class.c (class_compute_field_layout): do not consider static
12288         fields to compute alignment
12289
12290 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12291
12292         * appdomain.c (mono_appdomain_get): impl.
12293         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12294
12295 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12296
12297         * icall.c: ignore "file://" prefix when loading an assembly.
12298
12299 2002-01-23  Dick Porter  <dick@ximian.com>
12300
12301         * socket-io.c:
12302         * icall.c:
12303         * Makefile.am: Added socket support
12304
12305 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12306
12307         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12308         code back.  This should return the assemblies that are loaded by
12309         the runtime on behalf of an application domain. 
12310
12311         The current implementation is still broken, it just returns every
12312         assembly loaded, but until we get real applications domain this
12313         will do.
12314
12315 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12316
12317         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12318         AppDomain object.
12319
12320 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12321
12322         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12323         the mono_class_from_name lookup.
12324         (ves_icall_get_parameter_info): ditto.
12325         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12326         method.
12327         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12328
12329 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12330
12331         * class.c: load also nested classes on class init.
12332         System.ValueType instance methods gets passed boxed
12333         values, unless methods in derived classed that get a pointer to the
12334         data.
12335         * icall.c: use better name parsing code in GetType().
12336         * image.c, image.h: add mono_image_loaded ().
12337         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12338         * reflection.c, reflection.h: added mono_reflection_parse_type().
12339
12340 2002-01-22  Veronica De Santis <veron78@interfree.it>
12341
12342         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12343         * threads.c : Added the implementation of internal calls for events
12344         * threads.h : Added prototypes of internal calls for events
12345         
12346 2002-01-21  Radek Doulik  <rodo@ximian.com>
12347
12348         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12349
12350 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12351
12352         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12353         (mono_class_value_size): use min_align
12354
12355 2002-01-20  Dick Porter  <dick@ximian.com>
12356
12357         * threads.h:
12358         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12359         so it compiles on w32.
12360
12361 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12362
12363         * metadata.c (mono_type_stack_size): impl.
12364
12365         * class.c (mono_class_get_field): impl. memberref token
12366
12367 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12368
12369         * icall.h : Added the internal calls mapping for CreateMutex_internal
12370                     and ReleaseMutex_internal.
12371         * threads.h : Added the prototype of mutexes internal calls.
12372         * threads.c : Added the implementations of mutexes internal calls.
12373
12374 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12375
12376         * metaparse.h: removed unused file.
12377         * reflection.c, reflection.h: added stream_data_align () function 
12378         to align data in streams and keep stream aligned. Add support for
12379         exception support in method headers.
12380
12381 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12382
12383         * unicode.c: make iconv_convert () return the number of bytess written
12384         in the output buffer.
12385
12386 2002-01-15  Dick Porter  <dick@ximian.com>
12387         * threads.c: Make the runtime's idea of infinite timeouts coincide
12388         with the class library's
12389
12390         Fix a particularly egregious bug in mono_thread_cleanup(). That
12391         code was so utterly bogus it must have been written on a Monday.
12392
12393 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12394
12395         * reflection.h: add subtypes field to TypeBuilder.
12396         * reflection.c: encode constants for literal fields.
12397         Handle subtypes. Fix user string token (and add a zero byte)
12398         at the end.
12399         
12400 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12401
12402         * class.c (mono_class_init): bug fix: assign slot numbers for
12403         abstract methods.
12404
12405 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12406
12407         * reflection.c: don't try to output a code RVA for abstract methods.
12408         Small fixes for method header format. Output parameter info to the
12409         ParamDef table. Save method overriding info to MethodImpl table.
12410         Fix property support. Allow typedef.extends to be a type in the
12411         building assembly.
12412         * verify.c: fix off-by-one error.
12413
12414 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12415
12416         * class.c: fix mono_class_from_mono_type () for szarray types.
12417         Remove unused cache check in mono_class_from_type_spec().
12418         * icall.c: *type_from_name () functions handle simple arrays and byref.
12419         * reflection.c: handle byref and szarray types. Handle methods without
12420         body (gets P/Invoke compilation working). Handle types and fields in
12421         get_token ().
12422         * reflection.h: add rank to MonoTypeInfo.
12423
12424 2002-01-10  Dick Porter  <dick@ximian.com>
12425
12426         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12427         internal calls
12428
12429 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12430
12431         * icall.c: initialize class in type_from_handle ().
12432         Loop also in parent classes for get_method ().
12433         * reflection.c: properly encode class and valuetype types.
12434         Start on encoding TypeBuilder types. Handle fieldrefs.
12435         Use correct length when registering a user string.
12436         Handle ConstructorBuilder and MonoMethod in get_token ().
12437         Make mono_type_get_object () aware of cached types.
12438         * object.c: back out change to mono_string_new ().
12439
12440 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12441         * object.c: mono_string_new should return a NULL when the string 
12442         passed in is NULL -- not try to deference it.
12443         
12444 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12445
12446         * icall.c: hack to make IsSubType work for TypeBuilders.
12447         * reflection.c: emit constructors before methods.
12448         Retrieve param names in mono_param_get_objects().
12449
12450 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12451
12452         * Makefile.am: fix list of headers and sources so automake 1.5
12453         doesn't complain. Removed \# at end of list.
12454
12455 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12456
12457         * reflection.c: get token for a method ref. Set return type of
12458         constructor to void.
12459         * loader.c: debug message.
12460         * class.c: typo fix.
12461
12462 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12463
12464         * icall.c: fix array init with rank > 1. FindMembers
12465         loops in parent class as well.
12466         * image.c: do not insert nested types in name cache.
12467         * reflection.c: warning fix.
12468         * reflection.h: add override method (for interface impl).
12469
12470 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12471
12472         * metadata.c: fix customattr decoding.
12473
12474 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12475
12476         * rawbuffer.cs: Added native Win32 implementation, avoids using
12477         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12478
12479 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12480
12481         * class.c: make the low-level routines handle the cache.
12482
12483 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12484
12485         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12486
12487 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12488
12489         * class.c: fix mono_array_element_size() for objects.
12490         * class.h, class.c: add properties to MonoClass and load them
12491         at init time.
12492         * icall.c: check with isinst() when assigning a value to an array
12493         instead of requiring the classes to match exactly.
12494         Implemented icall for System.Type::GetType().
12495         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12496         enums. Handle bindingflags when looking for methods and fields.
12497         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12498         and mono_metadata_methods_from_property().
12499         * reflection.h, reflection.c: added structures for propreties,
12500         parameters and enums. Implemented mono_property_get_object() and
12501         mono_param_get_objects().
12502
12503 2001-12-18  Dick Porter  <dick@ximian.com>
12504
12505         * file-io.c: Use mono_string_to_utf16() instead of
12506         mono_string_chars()
12507
12508         * object.c: Added mono_string_to_utf16(), which copies the non
12509         NULL-terminated MonoString into a new double-null-terminated
12510         buffer.
12511
12512 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12513
12514         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12515
12516 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12517
12518         * file-io.c: raise exceptions if handle is invalid.
12519
12520 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12521
12522         * assembly.c: yet another check for mscorlib.
12523         * class.c, class.h: load nesting info for classes.
12524         * icall.c: many new functions to support the Reflection classes.
12525         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12526         * reflection.h, reflection.c: mono_image_create_token(),
12527         mono_assembly_get_object(), mono_type_get_object(),
12528         mono_method_get_object(), mono_field_get_object(): methods to return
12529         objects that parallel the C representation of assemblies, types,
12530         methods, fields.
12531
12532 2001-12-11  Dick Porter  <dick@ximian.com>
12533
12534         * icall.c:
12535         * file-io.c: Internal calls for file IO.
12536
12537 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12538
12539         * tabledefs.h: missing FileAttributes.
12540         * verify.h, verify.c: use is_valid_string () to simplify and check for
12541         valid strings more correctly. Fix warnings and speeling.
12542         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12543         Check code: branches, maxstack, method calls.
12544
12545 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12546
12547         * object.c (mono_object_allocate): removed static, so that the jit
12548         can allocate value types.
12549
12550         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12551
12552 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12553
12554         * class.c: init enum types right away and register the
12555         token->MonoClass map in mono_class_create_from_typedef ().
12556         * verify.h, verify.c: first cut of the verifier.
12557         * pedump.c: add --verify switch to verify metadata tables.
12558         * tabledefs.h: add some missing enums.
12559
12560 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12561
12562         * class.c (mono_install_runtime_class_init): impl.
12563         (mono_class_init): renamed mono_class_metadata_init to
12564         mono_class_init, also removed the metadata_inited flag
12565
12566         * object.c (mono_object_isinst): use faster algorithm
12567
12568 2001-11-30  Radek Doulik  <rodo@ximian.com>
12569
12570         * mono-endian.h: reverted last change
12571         added function prototypes
12572
12573         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12574         add mono-endian.c back
12575
12576         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12577         for unaligned access, I've mistaked it with endianess. I am
12578         sorry.
12579         (mono_read16): fix reverted endianess
12580         (mono_read64): ditto
12581         (mono_read32): ditto
12582
12583 2001-11-30  Dick Porter  <dick@ximian.com>
12584
12585         * exception.c: Implement mono_exception_from_name()
12586
12587 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12588
12589         * metadata.h, metadata.c: remove params_size and locals_size and their
12590         calculation from the metadata code: they are only usefult to the
12591         interp.
12592
12593 2001-11-29  Radek Doulik  <rodo@ximian.com>
12594
12595         * object.c (mono_ldstr): swap bytes here, it's probably not the
12596         best place, but works for me now, I'll redo it once I know mono
12597         better, also note that I add PROT_WRITE and don't reset back, also
12598         note that it's only affects big endians, so x86 should be OK
12599
12600         * mono-endian.h (read16): use just glib macros for both endians
12601
12602         * mono-endian.c: removed as glib macros are used in in
12603         mono-endian.h so we don't need to care about endianess for read
12604         macros as glib does that for us already
12605
12606 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12607
12608         * class.h, class.h: take minimum alignment into consideration so
12609         that the fields of a class remain aligned also when in an array.
12610
12611 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12612
12613         * loader.h, loader.c: add mono_method_get_param_names().
12614         * class.c: 0-init class fields.
12615
12616 2001-11-26  Dick Porter  <dick@ximian.com>
12617
12618         * icall.c:
12619         * threads-types.h:
12620         * threads.c: New file that handles System.Threading on all platforms
12621
12622         * object.c: 
12623         * object.h: Remove the synchronisation struct from MonoObject,
12624         replace it with a pointer that gets initialised on demand
12625
12626         * Makefile.am: Replace all the system-specific threading code with
12627         a single file that uses the new wrapper library
12628
12629 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12630
12631         * class.c, class.h: add mono_install_trampoline() so that the runtime
12632         can register a function to create a trampoline: removes the ugly
12633         requirement that a runtime needed to export arch_create_jit_trampoline.
12634         * object.h, object.c: added mono_install_handler() so that the runtime
12635         can install an handler for exceptions generated in C code (with
12636         mono_raise_exception()). Added C struct for System.Delegate.
12637         * pedump.c: removed arch_create_jit_trampoline.
12638         * reflection.c: some cleanups to allow registering user strings and
12639         later getting a token for methodrefs and fieldrefs before the assembly
12640         is built.
12641         * row-indexes.h: updates and fixes from the new ECMA specs.
12642
12643 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12644
12645         * class.h, class.c: add enum_basetype field to MonoClass.
12646         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12647         to get index in the constant table reated to a field, param or
12648         property.
12649         * reflection.h, reflection.c: handle constructors. Set public-key and
12650         version number of the built assembly to 0.
12651         * row-indexes.h: update from new ECMA spec.
12652
12653 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12654
12655         * class.h, class.c: add a max_interface_id to MonoClass.
12656         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12657         since it's used to do that. Added mono_type_type_from_obj().
12658         Make GetType() return NULL instead of segfaulting if the type was not
12659         found. Handle simple arrays in assQualifiedName.
12660         * object.h: add a struct to represent an Exception.
12661         * reflection.c: output call convention in method signature.
12662         Add code to support P/Invoke methods and fixed offsets for fields.
12663
12664 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12665
12666         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12667         the value.
12668         * icall.c: use mono_array_addr instead of array->vector: fixes the
12669         reflection image writing.
12670         * reflection.c: init call convention byte to 0 in method signature.
12671         Encode the property signature. Don't output property-related methods
12672         twice. Really process the properties for a type (don't cast a field to
12673         a property, my mom always told me that).
12674         Fix 64 bit issues in pointer alignment in a different and more
12675         readable way.
12676
12677 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12678
12679         * loader.h: Removed type class from MonoDefaults, added monotype
12680
12681         * loader.c: Loaded MonoType, removed loading of Type
12682
12683         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12684         and fills in System.Type._impl with a RuntimeTypeHandle rather
12685         than the actual MonoClass *
12686
12687         (ves_icall_type_from_handle): change from type_class to
12688         monotype_class
12689
12690         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12691         implemented
12692
12693         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12694         implemented
12695
12696         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12697
12698         (ves_icall_System_Reflection_Assembly_GetType): implemented
12699
12700         (ves_icall_System_MonoType_assQualifiedName): implemented
12701
12702         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12703
12704 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12705
12706         * assembly.c (mono_assembly_open): Implement a cache for the
12707         assemblies. 
12708
12709         (mono_assembly_close): only destroy the assembly when the last
12710         reference is gone.
12711         
12712 2001-11-09  Dick Porter  <dick@ximian.com>
12713
12714         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12715
12716 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12717
12718         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12719
12720 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12721
12722         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12723         from Martin Weindel.
12724         * object.h: add mono_string_chars ().
12725
12726 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12727
12728         * reflection.c (build_compressed_metadata): Eliminates warnings
12729         and uses 64-bit clean code.
12730
12731         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12732         (mono_type_equal): Change signature to eliminate warnings.
12733
12734 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12735
12736         * icall.c, loader.c: remove the internalcall array constructors.
12737         Changes to match the new MonoArray structure.
12738         * object.h, object.c: an array object doesn't allocate an extra
12739         vector. Add mono_array_new_full () to create jagged arrays easily.
12740
12741 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12742
12743         * metadata.h, metadata.c: add mono_metadata_field_info () to
12744         retreive all the info about a field from vairous tables.
12745         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12746         * class.h, class.c: augment MonoClassField with more info.
12747         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12748         policy and load a field's RVA if needed.
12749
12750 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12751
12752         * class.c (mono_class_metadata_init): create a trampoline for all
12753         virtual functions instead of actually compiling them.
12754
12755 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12756
12757         * class.h, class.c: include name in MonoClassField.
12758         * class.c: fix fundamental type of System.Object and System.String.
12759         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12760         tokens in ldtoken.
12761         * icall.c: remove internalcalls for the Reflection stuff that is now
12762         done in C# code.
12763         * loader.c: mono_field_from_memberref () implementation.
12764         * mono-endian.c: thinko (s/struct/union/g).
12765         * object.c, object.h: make the mono_string_* prototypes actually use
12766         MonoString instead of MonoObject.
12767         * reflection.c, reflection.h: updates for changes in the reflection
12768         code in corlib: we use C structures that map to the actual C# classes.
12769         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12770         fat method header if needed and use the info from the ILGenerator for
12771         methods. Handle fields in types. Misc fixes.
12772
12773 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12774
12775         * class.c (mono_class_metadata_init): bug fix: always allocate
12776         space for static class data
12777
12778 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12779
12780         * class.c (mono_compute_relative_numbering): use relative
12781         numbering to support fast runtime type checks.
12782
12783 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12784
12785         * class.c (mono_class_create_from_typeref): added debugging output
12786         to print class name when MonoDummy is returned instead of real class
12787
12788 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12789
12790         * class.c (mono_class_metadata_init): interface offset table now
12791         contains pointers into the vtable - this is more efficient for the jit
12792
12793 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12794
12795         * class.c (mono_class_metadata_init): use a temporary vtable (the
12796         old algorithm only worked for the interpreter, but not for the jit)
12797
12798 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12799
12800         * loader.c (method_from_memberref): use mono_class_get to get the
12801         class of an array instead of using System.Array directly.
12802         (mono_get_method): also add MEMBERREF methods to the method cache
12803         which usefull for arrays.
12804
12805 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12806
12807         * pedump.c (arch_compile_method): added to compute vtable entry
12808
12809         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12810         number of interfaces.
12811         
12812         * class.h: merged MonoArrayClass into MonoClass
12813
12814         * class.c (mono_class_create_from_typedef): compute the vtable size and
12815         allocate space to include the vtable inside MonoClass
12816         (mono_class_metadata_init): initialize the vtable
12817
12818 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12819
12820         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12821         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12822         * image.c: endian fixes by Laurent Rioux.
12823         * object.h, object.c: rename MonoStringObject to MonoString and
12824         MonoArrayObject to MonoArray. Change some function names to conform to
12825         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12826         guint16* as first argument, so don't use char*.
12827         Provide macros to do the interesting things on arrays in a portable way.
12828         * threads-pthread.c: updates for the API changes and #include <sched.h>
12829         (required for sched_yield()).
12830         * icall.c: updates for the API changes above.
12831         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12832         platforms that need them.
12833
12834 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12835
12836         * class.c: set the correct type for all the fundamental
12837         type when loading the class.
12838
12839 2001-10-05  Dick Porter  <dick@ximian.com>
12840
12841         * threads-pthread.c (pthread_mutex_timedlock): Simple
12842         compatibility version for C libraries that lack this call.
12843
12844 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12845
12846         * class.c: MonoTypes stored in MonoClass are stored as
12847         fundamental MonoTypes when the class represents a
12848         fundamental type (System.Int32, ...).
12849         The TypeHandle return by ldtoken is a MonoType*.
12850         * icall.c: ves_icall_get_data_chunk () write out all the
12851         PE/COFF stuff. Implement ves_icall_define_method (),
12852         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12853         * image.c: properly skip unknown streams.
12854         * loader.h, loader.c: add type_class to mono_defaults.
12855         * metadata.c, metadata.h: export compute_size () as
12856         mono_metadata_compute_size () with a better interface.
12857         Typo and C&P fixes.
12858         * pedump.c: don't try to print the entry point RVA if there is no entry point.
12859         * reflection.c, reflection.h: many cleanups, fixes, output method
12860         signatures and headers, typedef and typeref info, compress the metadata
12861         tables, output all the heap streams, cli header etc.
12862         * row-indexes.h: typo fixes.
12863
12864 2001-10-04  Dick Porter  <dick@ximian.com>
12865
12866         * object.h: Add a synchronisation mutex struct to MonoObject
12867
12868         * object.c (mono_new_object): Initialise the object
12869         synchronisation mutexes
12870
12871         * icall.c: System.Threading.Monitor internal calls
12872         
12873         * threads-pthread.h:
12874         * threads-pthread.c: System.Threading.Monitor internal calls
12875
12876         * threads-types.h: New file, includes the system-specific thread
12877         structures
12878         
12879         * threads-pthread-types.h:
12880         * threads-pthread-types.c: New files, handle pthread-specific
12881         synchronisation types
12882
12883         * threads-dummy-types.h: 
12884         * threads-dummy-types.c: New files of dummy support for
12885         thread-specific types
12886
12887         * metadata.c:
12888         * image.c:
12889         * pedump.c: include mono-endian.h not endian.h
12890         
12891         * Makefile.am: More threads files.
12892         Name mono-endian.h not endian.h
12893
12894 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
12895
12896         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
12897         stuff and implement a few more bits.
12898         * icall.c: a field needs to be dereferenced twice. Do not use the same
12899         name for two variables in the same scope.
12900         * image.c, image.h: cleanups.
12901
12902 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
12903
12904         * class.c (mono_class_metadata_init): bug fix: compute the right size
12905
12906 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
12907
12908         * icall.c: implemented some of the Reflection internalcalls.
12909         * image.c, image.h: start writing out the PE/COFF image.
12910         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
12911         that does the reverse than decode_blob_size ().
12912         * object.c: use mono_metadata_encode_value (). Move here
12913         temporary implementation of mono_string_to_utf8 ().
12914         * rawbuffer.c: make malloc_map static.
12915
12916 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12917
12918         * metadata.c: fix type comparison for arrays.
12919         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
12920         Added a couple of new classes to monodefaults.
12921         * icall.c: added a couple of Reflection-related internalcalls.
12922         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
12923         Added a byval_arg MonoType to MonoClass.
12924
12925 2001-09-28  Dick Porter  <dick@ximian.com>
12926
12927         * icall.c:
12928         * threads-pthread.h: 
12929         * threads-pthread.c: Implemented internal calls for
12930         LocalDataStoreSlot operations.  Applied mutexes around all shared
12931         data.  Reworked the thread creation and Start() operations to
12932         avoid a race condition.
12933         
12934         * threads-dummy.h:
12935         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
12936
12937 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
12938
12939         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
12940
12941 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
12942
12943         * class.c, loader.c: warn and return NULL instead of erroring out.
12944         * icall.c: added System.AppDomain::getCurDomain().
12945         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
12946
12947 2001-09-25  Dick Porter  <dick@ximian.com>
12948
12949         * threads-pthread.h:
12950         * threads-pthread.c: Implemented timed thread joining and added
12951         System.Threading.Thread::Join_internal internal call
12952
12953         * icall.c: Added System.Threading.Thread::Join_internal internal call
12954
12955         * threads-dummy.h:
12956         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
12957
12958 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
12959
12960         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
12961         mono_string_intern () to implement the semantics of the ldstr opcode
12962         and the interning of System.Strings.
12963         * icall.c: provide hooks to make String::IsIntern and String::Intern
12964         internalcalls.
12965
12966 2001-09-23  Dick Porter  <dick@ximian.com>
12967
12968         * threads-dummy.c: 
12969         * threads-dummy.h: New files of dummy threading routines
12970
12971         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
12972         support code based on system specifics
12973
12974         Rename PTHREAD_LIBS to THREAD_LIBS
12975         
12976 2001-09-23  Dick Porter  <dick@ximian.com>
12977
12978         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
12979         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
12980         internal calls.
12981         (mono_thread_init): Set up a Thread object instance to return when
12982         the main thread calls Thread.CurrentThread
12983         (mono_thread_cleanup): Wait for all subthreads to exit
12984
12985         * icall.c: New internal calls for System.Threading.Thread::Sleep
12986         (including Schedule) and CurrentThread
12987
12988         * threads.h: New file, to insulate thread-specific stuff from the
12989         rest of the code
12990
12991 2001-09-21  Dick Porter  <dick@ximian.com>
12992
12993         * threads-pthread.h: 
12994         * threads-pthread.c: New file, for handling pthreads-style
12995         threading support.  Start() now starts a new thread and executes
12996         the ThreadStart delegate instance.
12997
12998         * icall.c: Added the internalcall for
12999         System.Threading.Thread::Start_internal
13000
13001         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
13002
13003 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
13004
13005         * loader.c: work around the different signatures for delegates
13006         constructors csc generates in compiled code vs the ones compiled in mscorlib.
13007
13008 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13009
13010         * class.h, class.c: add mono_class_get_field_from_name ().
13011         * *: Fix C comments and other ANSI C issues.
13012
13013 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
13014
13015         * endian.h, assembly.c: fix some endianness issues.
13016
13017 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
13018
13019         * loader.h, load.c: add delegate_class to mono_defaults.
13020         Handle runtime provided methods in mono_get_method ().
13021
13022 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
13023
13024         * loader.c (mono_get_method): use pinvoke for internal call
13025
13026         * icall.c: use pinvoke for internal call
13027
13028         * loader.c (method_from_memberref): set the method name
13029
13030 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
13031
13032         * metadata.c: help the compiler generate better code for
13033         mono_class_from_mono_type ().
13034
13035 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
13036
13037         * class.c (mono_class_metadata_init): delayed computing of the
13038         class size to mono_class_metadata_init ()
13039
13040 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
13041
13042         * class.c, class.h: add an interfaces member to MonoClass.
13043         * image.c, image.h: add assembly_name field to MonoImage
13044         from the assembly table.
13045         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
13046
13047 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13048
13049         * class.c: Handle Array in mono_class_from_mono_type ().
13050         * metadata.c, pedump.c: some endian fixes.
13051
13052 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13053
13054         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13055         * metadata.c: fix small problem introduced with the latest commit.
13056
13057 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13058
13059         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13060         We don't need a MonoMetadata pointer anymore to compare signatures in
13061         mono_metadata_signature_equal (), update callers.
13062         Reduced memory usage an number of allocations for MonoMethodHeader and
13063         MonoMethodSignature.
13064
13065 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13066
13067         * metadata.c: added compare for szarray.
13068
13069 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13070
13071         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13072         and add a couple more types to it and mono_defaults. Give an hint on
13073         classes that need implementing in our corlib and are referenced
13074         in mscorlib.
13075
13076 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13077
13078         * class.h, class.c: keep track if a class is also an Enum.
13079         * loader.c: Implement a couple more types for use in libffi
13080         marshalling. Gives better diagnostics when failing to dlopen
13081         a library. Set method->klass for P/Invoke methods, too.
13082
13083 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13084
13085         * class.c, class.h: add a MonoType this_arg to MonoClass that
13086         represents a pointer to an object of the class' type that
13087         can be used by the interpreter and later the type cache.
13088         Add best guess alignment info for valuetype objects.
13089
13090 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13091
13092         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13093         into MonoType: one less level of indirection and allocation and
13094         simplifies quite a bit of code. Added cache for MonoTypes that are
13095         used frequently, so that we don't need to allocate them all the time.
13096
13097 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13098
13099         * class.c (mono_class_create_from_typedef): System.Enum is also a
13100         value type, although it does not derive from System.ValueType
13101         (maybe a bug in the ms compiler?)
13102
13103         * metadata.c (mono_type_size): return the right size for value types
13104
13105         * loader.c (mono_get_method): only initialize method header if not abstract
13106
13107         * class.c (mono_class_from_mono_type): use mono_default values. 
13108
13109 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13110
13111         * *: use MonoClass pointers instead of <type_tokens>
13112         
13113         * class.h: new flag: metadata_inited.
13114
13115         * class.c (mono_class_metadata_init): impl.
13116         (mono_class_instance_size): impl.
13117         (mono_class_data_size): impl.
13118
13119 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13120
13121         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13122         MonoClass now has the name and name_space fields. 
13123         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13124         mono_get_method () takes and optional MonoClass as argument.
13125         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13126         instead that takes advantage of a map from class names to typedef
13127         tokens in MonoImage.
13128
13129 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13130
13131         * metadata.c: zero is not a valid alignment boundary.
13132         Merge MONO_TYPE_VOID in default decoding code.
13133
13134 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13135
13136         * image.h: merged MonoMetadata into MonoImage
13137
13138         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13139         identify the type of elements.
13140
13141 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13142
13143         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13144         * cil-coff.h: split MonoMSDOSHeader and add size info.
13145         * image.c: add some consistency checks.
13146         * metadata.c: fix row size computation: one programmer
13147         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13148         add explanation for the locator routine.
13149         Fix decoding of size in method header.
13150         
13151 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13152
13153         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13154         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13155         function from gnome-libs.  This uses the right path separator
13156         based on the OS, and also works around a bug in some systems where
13157         a double slash is not allowed. 
13158         (default_assembly_name_resolver): Use g_concat_dir_and_file
13159         (mono_assembly_open): ditto.
13160
13161 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13162
13163         * metadata.c (mono_metadata_signature_equal): impl.
13164
13165         * *: void is now a realy MonoType (instead of using NULL)
13166         
13167         * metadata.c (do_mono_metadata_parse_type): use
13168         mono_metadata_parse_type to parse void value.
13169
13170 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13171
13172         * metadata.c, metadata.h: in the signature and method header store
13173         only the space required for holding the loca vars and incoming arguments.
13174
13175 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13176
13177         * metadata.c (do_mono_metadata_parse_type): treat void like any
13178         other type (instead of assigning NULL);
13179
13180 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13181
13182         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13183
13184 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13185
13186         * image.c (do_mono_image_open): added a cache for arrays.
13187
13188 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13189
13190         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13191         decode a single column from a row in a metadata table and changes
13192         to take advantage of it in the typedef locator (gives a nice speed up).
13193         Store offset info for function params.
13194
13195 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13196
13197         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13198
13199 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13200
13201         * assembly.c: how could mono_assembly_close () had ever worked?
13202         * metadata.c, metadata.h: provide offset info for local vars.
13203         Implement mono_type_size () to take care of alignment as well
13204         as size (it was mono_field_type_size in cli/class.c before).
13205
13206 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13207
13208         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13209
13210         * assembly.h (CORLIB_NAME): set to corlib.dll
13211
13212         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13213
13214 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13215
13216         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13217         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13218         tokentype.h: massive namespace cleanup.
13219
13220 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13221
13222         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13223
13224 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13225
13226         * metadata.c (mono_metadata_free_type): added check for type !=
13227         NULL (void) before calling mono_metadata_free_type()
13228
13229 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13230
13231         * metadata.h, row_indexes.h: added header with enumerations to use
13232         to index in the columns from tables in metadata and to decode coded
13233         tokens: we should start using this instead of embedding magic numbers
13234         all over the code.
13235
13236 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13237
13238         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13239         Move metadata_t info from cli_image_info_t to MonoImage, where
13240         it's easily accessible. Changed all the uses accordingly.
13241         Added the method and class caches to MonoImage.
13242         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13243         and mono_metadata_decode_value () signature to be more consistent
13244         with the other parse functions (and simplify code). Taken advantage
13245         of zero-length array allocation with GCC. Removed reduntant (and
13246         wrong) MonoFieldType struct and use MonoParam instead. Changed
13247         mono_metadata_parse_field_type () to use common code for parsing.
13248         Added mono_metadata_typedef_from_field () and
13249         mono_metadata_typedef_from_method () to lookup a typedef index from a
13250         field or method token.
13251         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13252
13253 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13254
13255         * metadata.c (mono_metadata_parse_field_type): Implement. 
13256         (do_mono_metadata_parse_type): Split engine from
13257         mono_metadata_parse_type, so that we can create smaller structures
13258         for things that just have one pointer to the MonoType (look at
13259         the MonoFieldType)
13260
13261 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13262
13263         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13264         as Jan Gray found out, it is incorrect. 
13265
13266 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13267
13268         * assembly.c: Implement asssembly loading.  This loads an image
13269         and loads all the referenced assemblies.  Come to think of it, we
13270         could always do lazy loading of the assemblies. 
13271
13272         * image.c (mono_image_open): Keep loaded images in a hashtable.
13273
13274         * image.h (MonoImage): Add reference count.
13275
13276 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13277
13278         * assembly.c (mono_assembly_open): Keep track of the file name in
13279         case the assembly has no ASSEMBLY table.
13280
13281         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13282         from get.c here.
13283
13284 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13285
13286         * metadata.c, metadata.h: decode local vars in method header
13287         parse function. Change callers accordingly.
13288
13289 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13290
13291         * metadata.h, cil-coff.h: protect against multiple inclusion.
13292         Added some new structures to hold information decoded from metadata:
13293         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13294         and relevant decoding/free functions.
13295         * metadata.c: implement decoding functions. Add warning for out of bounds
13296         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13297         all the info about a method signature and invocation. Remove check on
13298         uninitialized local var in parse_mh() and fix memory leak.
13299
13300 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13301
13302         * metadata.h: More macros.
13303
13304         * tokentype.h: New file.
13305
13306 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13307
13308         * assembly.c: added a consistency check and initialize
13309         some structures with g_new0().
13310         * metadata.c: fixed a couple more bugs in table size computation
13311         and add other checks for out-of bound access to metadata.
13312
13313 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13314
13315         * metatada.c: fix bugs computing table sizes. Spew a
13316         warning when index in string heap is out of bounds.
13317
13318 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13319
13320         * metadata.h: Add a couple of macros to manipulate tokens. 
13321
13322 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13323
13324         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13325         cli_section_tables).
13326
13327 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13328
13329         * metadata.c (mono_metadata_user_string): New function, provides
13330         access to the UserString heap. 
13331
13332 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13333
13334         * metadata.c: Add inline documentation.
13335
13336 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13337
13338         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13339         files. 
13340
13341 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13342
13343         * typeattr.h: New file, TypeAttribute flags. 
13344
13345 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13346
13347         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13348         mono_assembly_ensure_section): Section loading code.
13349         (load_section_tables): Load the sections.
13350
13351         * mono/metadata/metadata.c (mono_metadata_locate_token,
13352         mono_metadata_locate): Functions to locate the information
13353         definition given a token or a table and an index.
13354         (mono_metadata_compute_table_bases): New.
13355         (compute_size): New function to compute the sizes of the various
13356         tables.
13357
13358         * mono/metadata/metadata.h: Finish listing the different index
13359         types. 
13360
13361         * mono/metadata/pedump.c: Improve to dump new information.
13362
13363 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13364
13365         * mono/metadata/metadata.c: Entered all the tables matching
13366         Beta2. 
13367
13368         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13369