551ae8e05c3ac2231c9556c9118abb2e34f8849c
[mono.git] / mono / metadata / ChangeLog
1 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
2
3         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4         trampoline.
5
6         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
7         
8         * object.c (mono_delegate_ctor): Replace the original function address with
9         a delegate trampoline.
10
11 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
12
13         * icall.c: add boolean argument to base64_to_byte_array and 
14         InternalFromBase64String to control whether a whitespace-only string
15         is allowed (or should casue a FormatException to be thrown). We need
16         this as the behavior has changed between MS.NET 1.x and 2.0, and we
17         to match the MS behaviour in both profiles.
18         * appdomain.c: Bump corlib version.
19
20 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21
22         This patch implements a big portion of publisher policy
23         support, used to bind assembly versions and redirect
24         one assembly from version A to version B.
25
26         * assembly.c:
27         New GSList loaded_assembly_bindings, for storing the cached
28         assembly bindings.
29         (assembly_binding_maps_name): New static function for checking if a 
30         assembly binding information maps an assembly name.
31         (mono_assembly_binding_info_free): New function for freeing
32         assembly binding information resources.
33         (get_publisher_policy_info): New static function for retrieving 
34         assembly binding information from a MonoImage.
35         (compare_versions): New static function for comparing an assembly
36         binding information data and the version of an assembly name.
37         (check_policy_versions): New static function for checking if an
38         assembly binding info mapping an assembly name is valid for it.
39         (mono_assembly_load_publisher_policy): New static function for
40         loading the 'policy.major.minor.MyAssembly' image for an assembly
41         with an assembly name 'aname'.
42         (mono_assembly_bind_version): New static function for updating
43         assembly redirection.
44         (mono_assembly_apply_binding): New static function for applying
45         assembly binding.
46         (search_binding_loaded): New static function for searching 
47         loaded assembly binding infos in the cache domain.
48         (mono_assembly_load_full): Don't apply assembly binding for
49         reflection only assemblies.
50
51         * metadata-internals.h: Add MonoAssemblyBindingInfo,
52         which contains information about assembly binding. Also
53         declare signature for mono_config_parse_publisher_policy ()
54         function, used to retrieve pub policy info.
55         
56         * mono-config.c:
57         (publisher_policy_start): New static function used to parse publisher 
58         policy config files.
59         (publisher_policy_parser): New static MonoParseHandler containing 
60         the functions used when parsing config files.
61         (mono_config_parse_publisher_policy): New function for parsing
62         publisher policy files.
63         
64 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
65
66         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
67
68         * marshal.c (mono_delegate_free_ftnptr): Ditto.
69
70         * object.c (mono_get_addr_from_ftnptr): New helper function.
71
72         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
73
74         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
75
76 2005-08-19  Dick Porter  <dick@ximian.com>
77
78         * threads.c, threads.h, appdomain.c, appdomain.h,
79         profiler-private.h, monitor.c, object.c, object-internals.h,
80         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
81         store the thread ID, so it can hold a 64 bit value if needed.
82
83 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
84
85         * reflection.c (mono_reflection_create_dynamic_method): Store the
86         handle class into the method references as well so ldtoken works in
87         dynamic methods.
88
89         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
90         types.
91
92 2005-08-19  Ankit Jain <jankit@novell.com>
93
94         Fix #75847.
95         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
96           here rather than using the method signature of a arbitrary function
97           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
98           two arguments.
99           Hack done with Harinath.
100
101 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
102
103         * threadpool.c: disable printing stack traces when we get a exception
104         in a threadpool thread. I need to do more testing to figure out which
105         cases actually print this. Fixes bug #75828.
106
107 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
108
109         * icall.c: there might be ignored whitespace after the last '='. This
110         fixes length computation and bug #75840.
111
112 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
113
114         * assembly.c (mono_assembly_load_full): Consider .exe extension as
115         well. Fixes #75809.
116
117         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
118         #75784.
119         
120         * reflection.c (create_custom_attr_data): Ditto.
121
122 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
123
124         * locales.c, culture-info.h : removed RegionLCIDMap.
125         * culture-info-tables.h : regenerated.
126
127 2005-08-16  Martin Baulig  <martin@ximian.com>
128
129         * class.c (mono_type_get_name_recurse): Small fix.
130
131 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
132
133         * locales.c : indentation fixie.
134
135 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
136
137         * object-internals.h,
138           locales.h,
139           locales.c,
140           culture-info.h,
141           icall.c : added RegionInfo table support.
142         * culture-info-table.h : regenerated for region support.
143
144 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
145
146         * reflection.c (resolve_object): handle all kinds of MonoMethod
147         including generic ones
148
149 2005-08-12  Ankit Jain <jankit@novell.com>
150
151         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
152           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
153
154 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
155
156         * process.c: Don't close a thread handle when it's NULL. This is a
157         workaround for bug #75733.
158
159 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
160
161         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
162
163 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
164
165         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
166
167 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
168
169         * threadpool.c: if a work item in the thread pool has a callback that
170         catches a exception, don't propagate it after invoking the callback.
171         Fixes bug #75336.
172
173 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
174
175         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
176
177         * class-internals.h (MonoCachedClassInfo): Add some new fields.
178
179         * class.c (mono_class_init): Load field info lazily in the AOT case.    
180
181         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
182
183 2005-08-03  Ankit Jain  <jankit@novell.com>
184
185         Fix #75683.
186         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
187           PInvoke calling convention is 0.
188
189 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
190
191         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
192         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
193
194 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
195
196         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
197         to handle threads not started by the GC (patch by Michael Meeks
198         <michael.meeks@novell.com>).
199
200 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
201
202         * reflection.c: Make buffer used in emitting types larger for some
203         big generic types (patch by Michal Moskal).
204
205 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
206
207         * mono-debug.c: Fix some (not all) alignment problems.
208
209 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
210
211         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
212         Invoke mono_image_load_from_data_full passing the refonly
213         parameter.
214
215         * assembly.c
216         (mono_assembly_open_from_bundle): Add the refonly argument, 
217         in order to pass it to other methods it calls to.
218         (do_mono_assembly_open): Add the refonly argument, in order 
219         to pass it to other methods it calls to.
220         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
221         the refonly parameter to it.
222
223         * image.c: Add loaded_images_refonly_hash and
224         loaded_images_refonly_guid_hash to cache the reflection
225         only loaded images.
226         (mono_images_init): Initialize the hash tables used for
227         caching the reflection only images.
228         (load_modules): Invoke mono_image_open_full passing the refonly
229         parameter to load the modules the correct way.
230         (build_guid_table): Add the refonly argument, to re-build the 
231         correct hash table.
232         (do_mono_image_open): Added the refonly argument, in order to
233         define it for the loaded image.
234         (mono_image_loaded_full): New function, which receives an
235         additional parameter to look for the image in the refonly or
236         non-refonly section.
237         (mono_image_loaded): Updated, using mono_image_loaded_full.
238         (mono_image_loaded_by_guid_full): The same case that happens
239         with mono_image_loaded_full.
240         (mono_image_loaded_by_guid): Likewise.
241         (register_image): Use the ref_only variable inside MonoImage
242         to decide in which hash table store the current image.
243         (mono_image_open_from_data_full): Rename
244         mono_image_open_from_data to mono_image_open_from_data_full,
245         adding the refonly argument, to define the ref_only variable 
246         inside MonoImage.
247         (mono_image_open_from_data): Return 
248         mono_image_open_from_data_full.
249         (mono_image_open_full): Rename mono_image_open to
250         mono_image_open_full, receiving the new refonly argument,
251         to pass it to inner methods.
252         (mono_pe_file_open): Update this function, to open
253         a MonoImage as a non-refonly image.
254         (mono_image_close): Use the refonly variable inside
255         MonoImage to remove the image from the correct caches.
256
257         * image.h: Add the signatures of mono_image_open_full,
258         mono_image_open_from_data_full, mono_image_loaded_full,
259         mono_image_loaded_by_guid_full.
260
261         * metadata-internals.h: Add the ref_only field to 
262         MonoImage.
263         
264 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
265
266         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
267         Fix the last behavior, which used to load the assemblies and
268         extract MonoReflectionAssemblyName information, instead of
269         extract it from the metadata tables. Needed for Reflection
270         Only assemblies.
271         
272 2005-07-29  Martin Baulig  <martin@ximian.com>
273
274         * mono-debug-debugger.c
275         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
276         not initialized.
277
278         * mono-debug.c
279         (mono_debug_address_from_il_offset): Check whether we have
280         debugging support before attempting to take the lock.
281         (mono_debug_source_location_from_address): Likewise.
282         (mono_debug_source_location_from_il_offset): Likewise.
283         (mono_debug_il_offset_from_address): Likewise.
284         (mono_debug_address_from_il_offset): Likewise.
285
286 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
287
288         * class.c (mono_class_from_name_case): Add support for dynamic images.
289         Fixes #75650.
290
291         * object.c (mono_class_compute_gc_descriptor): Add a workaround
292         for #75479.
293
294 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
295         
296         * reflection.c (mono_method_get_object): Fix warning.
297
298 2005-07-28  Martin Baulig  <martin@ximian.com>
299
300         * mono-debug.c
301         (mono_debug_add_wrapper): Also write the wrapper type.
302
303 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
304
305         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
306         
307         * class.c (mono_class_init): Avoid reading nested classes if the AOT
308         data indicates the class has none.
309
310 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
311
312         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
313         loader lock with the debugger lock. Prevents deadlocks for beagle.
314
315         Beagle can now run on an smp box for a weekend without any
316         issues. Woohoo!
317
318 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
319
320         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
321         in a module. Fixes #75629.
322
323 2005-07-26  Martin Baulig  <martin@ximian.com>
324
325         * mono-debug.c (mono_debug_add_wrapper): New static method.
326         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
327         interncall or a wrapper.
328
329         * mono-debug.h (MonoDebugWrapperData): New public typedef.
330         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
331         (MONO_DEBUGGER_VERSION): Bump to 51.
332
333         * mono-debug-debugger.c
334         (mono_debugger_add_type): Removed this empty function.
335         (mono_debugger_add_method): Likewise.
336
337 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
338
339         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
340         before accessing method->slot.
341
342 2005-07-21  Jb Evain  <jbevain@gmail.com>
343
344         * reflection.c (method_encode_clauses/class): Handle filters clauses.
345         Fixes #75010.
346
347 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
348
349         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
350         #75587.
351
352 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
353
354         * image.h image.c: Add mono_image_get_guid () API function.
355
356 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
357
358         There were issues when multiple threads tried to load
359         assemblies. A deadlock was created between assemblies_mutex and
360         mono_domain_assemblies_lock. This fixes the issue by making the
361         assembly ref counting be lock free. See bug 75586.
362         
363         * image.c (mono_image_close): The add ref function here was using
364         Interlocked operations while the unref was using a mutex and a
365         --. I don't think this was ever a bug that would be exposed in a
366         non-pendantic way (ie, by an embedder doing a ref on one thread
367         and an unref on another), but for the sake of correctness, this is
368         now Interlocked.
369
370         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
371         (mono_assembly_load_reference): Call mono_assembly_addref rather
372         than touching the refcount ourselves.
373         (mono_assembly_close): Use InterlockedDecrement to unref the
374         assembly. Don't acquire the lock unless it is actually needed.
375
376 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
377
378         * class.c (mono_class_layout_fields): Fix calculation of has_references
379         for generic types.
380
381 2005-07-12  Martin Baulig  <martin@ximian.com>
382
383         Applying a patch from Michal Moskal <malekith@nemerle.org>.
384
385         * metadata.c
386         (mono_type_hash): Provide better hashing for generic instances.
387         (mono_generic_inst_hash): Improve hashing.
388         (mono_generic_class_hash): Likewise.
389
390         * reflection.c (mymono_metadata_type_hash): Improve hashing for
391         generic instances.
392
393 2005-07-12  Martin Baulig  <martin@ximian.com>
394
395         * reflection.c (mono_reflection_create_runtime_class): Remove the
396         hack for generic type definitions and non-`Run' assemblies.
397         (mono_reflection_bind_generic_parameters): Also use
398         `klass->wastypebuilder' to check for TypeBuilders.
399
400 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
401
402         * class.c (mono_class_layout_fields): Fix calculation of has_references
403         for generic types.
404
405         * class.c (inflate_generic_class): Fix a leak.
406         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
407         for generic types.
408
409 2005-07-11  Martin Baulig  <martin@ximian.com>
410
411         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
412         on error.
413
414 2005-07-11  Martin Baulig  <martin@ximian.com>
415
416         * loader.c (find_method): Also lookup in
417         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
418
419 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
420
421         * appdomain.c (mono_domain_unload): Don't free the error message
422         before passing it to mono_get_exception_...
423
424         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
425         
426 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
427
428         * threads.c: try to better guess an available RT signal (bug #75387).
429
430 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
431
432         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
433         and CACHE_OBJECT.
434
435 2005-07-07  Martin Baulig  <martin@ximian.com>
436
437         * class.c (mono_type_get_name_full): Return NULL for
438         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
439         fixes #75408.
440
441 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
442
443         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
444         exit the appdomain as well being aborted.
445
446         * threadpool.c: Create all threadpool threads inside the root appdomain, and
447         change back to the root domain after calling managed code. This enables
448         appdomains using threadpools to be unloaded.
449
450 2005-07-07  Martin Baulig  <martin@ximian.com>
451
452         * class-internals.h
453         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
454         into `MonoDynamicGenericClass' since we only need it for dynamic
455         types.
456
457         * reflection.c (mono_class_bind_generic_parameters): We don't need
458         to compute the `parent' here.
459
460 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
461
462         * culture-info-table.h : regenerated.
463
464 2005-07-06  Martin Baulig  <martin@ximian.com>
465
466         * icall.c
467         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
468
469         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
470
471 2005-07-06  Martin Baulig  <martin@ximian.com>
472
473         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
474         we're doing a signature-only comparision; fixes #74945.
475
476 2005-07-06  Martin Baulig  <martin@ximian.com>
477
478         * class-internals.h (MonoGenericClass): Moved some things out into
479         a new `MonoInflatedGenericClass' type.  
480         (MonoInflatedGenericClass): New type; the `klass' of a
481         `MonoGenericClass' is now computed lazyly in
482         mono_get_inflated_generic_class().      
483
484         * class.c (mono_get_inflated_generic_class): New public function.
485         (mono_class_inflate_generic_method): Removed the unused
486         `MonoClass *' argument.
487         (setup_generic_vtable): Don't call mono_get_inflated_method() on
488         all the methods.
489         (mono_class_create_generic): Make this static and merge it with
490         mono_class_create_generic_2(); we're now called automatically from
491         mono_get_inflated_generic_class().
492
493         * loader.c (mono_method_signature): Call
494         mono_get_inflated_method() here.
495
496 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
497
498         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
499         type of fields with RVA.
500
501         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
502         for this pseudo class.
503         (my_mono_class_from_generic_parameter): Likewise.
504         (mono_class_init): Allow interfaces to have cctors.
505
506 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
507
508         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
509         lazily for AOT methods.
510
511 2005-07-05  Martin Baulig  <martin@ximian.com>
512
513         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
514         returns FALSE for a successful match, not TRUE.
515
516 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
517
518         * loader.c (mono_method_get_index): Optimize this a bit.
519
520 2005-07-04  Martin Baulig  <martin@ximian.com>
521
522         * class.c
523         (class_compute_field_layout): Move the check for generic type
524         definitions into mono_class_layout_fields().  Fixes #74684.
525         (mono_class_from_generic_parameter): Correctly compute
526         `klass->parent'; fixes #75457.
527
528         * reflection.c (register_assembly, register_module): Make sure
529         `domain->rejobject_hash' is already created.
530
531 2005-07-02  Martin Baulig  <martin@ximian.com>
532
533         * class-internals.h
534         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
535         `MonoDynamicGenericClass'.      
536
537 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
538
539         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
540         returned by a field getter is null, since null is a valid value.
541
542 2005-07-01  Martin Baulig  <martin@ximian.com>
543
544         * reflection.c (mono_reflection_generic_class_initialize): Update
545         the `dgclass->fields [i].parent' to the correct class.
546         (mono_image_get_fieldref_token): Use the declaring type, not the
547         reflected type.
548
549 2005-07-01  Martin Baulig  <martin@ximian.com>
550
551         * loader.c (find_method): Also look in the interfaces; fixes #75429.
552
553 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
554
555         * threads.c (thread_cleanup): assert that thread != NULL
556         (wait_for_tids_or_state_change): We were using the wrong variable
557         when accessing wait->threads. `i' was always out of the bounds of
558         the array.
559
560 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
561
562         * loader.c: map user32 and kernel32 to libMonoSupportW
563
564 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
565
566         * appdomain.c (unload_thread_main): Mark this as WINAPI.
567
568 2005-06-28  Martin Baulig  <martin@ximian.com>
569
570         * loader.c (method_from_methodspec): Fix #75334.
571
572 2005-06-28  Martin Baulig  <martin@ximian.com>
573
574         Fix #74953 - Arrays now implement the generic IList<T> interface
575         on the 2.0 platform.
576
577         * class-internals.h (MonoDefaults): Added `generic_array_class'.
578
579         * reflection.c (mono_class_bind_generic_parameters): New public
580         function; similar to mono_reflection_bind_generic_parameters(),
581         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
582
583         * domain.c (mono_init_internal): Try to initialize.
584         `mono_defaults.generic_array_class' here; this'll only succeed if
585         we're using the 2.0 corlib.
586
587         * icall.c
588         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
589         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
590         (mono_lookup_internal_call): Added support for nested classes.
591
592         * loader.c
593         (mono_get_method_from_token): Set `result->signature->pinvoke' if
594         we're an interncall and have generic arguments.
595
596         * class.c
597         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
598         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
599         instance of System.Array.InternalArray<T> for arrays, so they
600         implement the generic IList<T> interface.
601
602 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
603
604         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
605         (chastamar@yahoo.com). Fixes #75374.    
606
607 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
608
609         * culture-info-table.h: regenerated.
610
611 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
612
613         * icall.c: handle spaces correctly for base64 strings.
614
615 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
616
617         * *.c: Kill some warnings.
618
619 2005-06-23  Duncan Mak  <duncan@novell.com>
620
621         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
622         that this builds on Solaris 10 (x86).
623
624 2005-06-23  Martin Baulig  <martin@ximian.com>
625
626         * class.c
627         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
628         generic type definitions.
629
630 2005-06-23  Martin Baulig  <martin@ximian.com>
631
632         Fix #75331.
633
634         * metadata.c (mono_class_get_overrides): Renamed to
635         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
636         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
637         pass it to mono_get_method_full().
638
639 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
640
641         * reflection.c (mono_reflection_create_runtime_class): take the
642         mono_domain_lock in this method. Prevents deadlocks
643
644 2005-06-22  Martin Baulig  <martin@ximian.com>
645
646         * loader.c (method_from_methodspec): Fix #75330.
647
648 2005-06-22  Martin Baulig  <martin@ximian.com>
649
650         * reflection.c (type_get_qualified_name): Use
651         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
652         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
653         argument; use it if we don't have an assembly name.
654
655 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
656
657         * object.c: In mono_message_init, set "copy out" flag for in
658         parameters with the [Out] flag.
659
660 2005-06-21  Martin Baulig  <martin@ximian.com>
661
662         * class.c
663         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
664         and MONO_TYPE_PTR.
665
666 2005-06-21  Martin Baulig  <martin@ximian.com>
667
668         * class.c (mono_class_init): Don't initialize `class->fields' for
669         generic instances since they're initialized again in
670         compute_field_layout(). 
671         (compute_field_layout): Set the field's `generic_info' here; fix
672         #75320. 
673
674 2005-06-21  Martin Baulig  <martin@ximian.com>
675
676         * class-internals.h
677         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
678
679         * metadata.c (mono_metadata_generic_method_equal): Also
680         distinguish the `generic_class'; fixes #75334.
681
682 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
683
684         * domain.c:
685         * appdomain.c:
686         * domain-internals.h:
687         * reflection.c: 'domain_assemblies' field is now protected by its own
688         lock. Don't call into managed code to run the AssemblyLoad event if we
689         now there are no registered delegates for it.
690
691 2005-06-20  Martin Baulig  <martin@ximian.com>
692
693         * class.c (mono_class_is_assignable_from): Use a custom version of
694         mono_class_has_parent() to make things work for generic instances;
695         fix #75300.
696
697 2005-06-20  Martin Baulig  <martin@ximian.com>
698
699         * loader.c (method_from_methodspec): Apply a patch from
700         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
701
702 2005-06-20  Martin Baulig  <martin@ximian.com>
703
704         * class.c (mono_class_init): Reverted Zoltan's last change; it
705         breaks generics.
706
707 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
708
709         * threads.c (wait_for_tids_or_state_change): Add missing locking.
710
711 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
712
713         * socket-io.c: fix the index in the socket array for writable/error
714         sockets. Fixes bug #75306.
715
716 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
717
718         * class.c (mono_class_init): Allow interfaces to have static ctors.
719
720 2005-06-17  Martin Baulig  <martin@ximian.com>
721
722         * loader.c (method_from_methodspec): Use `context->container' when
723         parsing the `gmethod->inst'.
724
725 2005-06-17  Martin Baulig  <martin@ximian.com>
726
727         * class.c (mono_type_get_name_recurse): Don't add the assembly
728         name for type arguments.
729
730 2005-06-15  Martin Baulig  <martin@ximian.com>
731
732         * reflection.c (mono_image_get_inflated_method_token): Encode
733         correct klass; fixes #75260.
734
735 2005-06-13 Michal Moskal <malekith@nemerle.org>
736
737         * icall.c: Make GetCorrespondingMethod/Constructor take
738         MonoReflectionMethod method not MonoMethod. Removed
739         MonoType.GetCorrespondingField, and make
740         MonoGenericType.GetCorrespondingField take name not
741         MonoClassField.
742
743 2005-06-13  Michal Moskal <malekith@nemerle.org>
744
745         * reflection.c (field_encode_signature, encode_locals):
746          Make sizes of buffers for types larger (for big generic types).
747          (create_generic_typespec,
748          mono_reflection_sighelper_get_signature_local,
749          mono_reflection_sighelper_get_signature_field):
750          Add asserts for too small buffers.
751
752 2005-06-15  Martin Baulig  <martin@ximian.com>
753
754         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
755         if our parent is not a dynamic type.
756
757 2005-06-15  Martin Baulig  <martin@ximian.com>
758
759         * class-internals.h (MonoTypeNameFormat): New enum.
760
761         * class.c
762         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
763         (mono_type_get_full_name): Removed.
764         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
765         argument instead of the boolean's.
766
767         * icall.c (ves_icall_System_MonoType_getFullName):
768         Added `gboolean assembly_qualified'.    
769
770         * reflection.h
771         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
772
773         * reflection.c (mono_reflection_parse_type): Parse the new type
774         name format.
775
776 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
777
778         * icall.c: no need to convert from utf16 to utf8 and then back again
779         after the call to GetLogicalDrives.
780
781 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
782
783         * icall.c: frombase64. Fix problems exposed by new tests.
784
785 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
786
787         * icall.c: added internal calls for converting char [] and strings in
788         base64 into byte [].
789
790 2005-06-10  Martin Baulig  <martin@ximian.com>
791
792         * class.c (mono_class_create_generic_2): Read the nested classes
793         from the metadata rather than from `gklass->nested_classes' since
794         `gklass' might not be initialized yet.
795
796 2005-06-09  Duncan Mak  <duncan@novell.com>
797
798         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
799         all public headers. Fixes #74919.
800
801 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
802
803         * domain.c: The key for proxy_vtable_hash is now a pointer
804         array. Added new GHashFunc and GCompareFunc functions for this.
805
806         * class.h: The list of interfaces in MonoRemoteClass is known in
807         advance and can't grow (we create a new MonoRemoteClass if needed),
808         so now the interface array can be allocated together with
809         MonoRemoteClass.
810         
811         * object.c: Added a new method create_remote_class_key.
812         Fixed mono_remote_class so it does not depend on
813         mono_upgrade_remote_class.
814         Removed extend_interface_array.
815         Added new method clone_remote_class(), which makes a copy of a remote
816         class and adds a new interface or class to it.
817         mono_upgrade_remote_class() now creates a new remote class (or gets
818         it from the cache) if an vtable upgrade is needed. In this way
819         we make sure that other objects sharing the same remote class
820         don't get the new vtable with unwanted interfaces.
821         
822         * object-internals.h:
823         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
824         
825         * marshal.c: Track changes in mono_upgrade_remote_class().
826
827 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
828         * icall.c: Add runtime methods for obtaining members of inflated
829         class, which were created from supplied non-inflated members. It
830         is used in internal Get{Method,Constructor,Field} methods in
831         System.Type
832
833 2005-06-09  Martin Baulig  <martin@ximian.com>
834
835         * reflection.c
836         (mono_reflection_bind_generic_method_parameters): Fix #75169.
837
838 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
839         * reflection.c (mono_image_basic_init): Define
840         Version in MonoDynamicAssembly. 
841         
842 2005-06-08  Martin Baulig  <martin@ximian.com>
843
844         Fix #75136.
845
846         * loader.c
847         (mono_method_signature_full): New public method; takes a
848         `MonoGenericContext *'.
849         (find_method): Use mono_method_signature_full() and pass the
850         klass'es context to it.
851
852         * class.c (mono_class_is_inflated_method): Use
853         mono_method_signature_full() and pass the context to it.
854
855 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
856
857         * object.c: add proper locking in mono_remote_class_vtable(),
858         fixes possible memory corruption.
859
860 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
861
862         * marshal.c (mono_remoting_marshal_init): set
863         initialized after initialization.
864
865 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
866
867         * locales.c : hush.
868
869 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
870
871         * object.c (extend_interface_array): fix really silly
872         memory corrupting / comparison bug.
873
874 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
875
876         * reflection.c: Functions added to support the creation
877         of CustomAttributeData, which includes Attribute data
878         used by ReflectionOnly methods.
879
880         * reflection.h:  mono_reflection_get_custom_attrs_data and
881          mono_custom_attrs_data_construct added (functions exposed).
882
883          * icall.c: Added mono_reflection_get_custom_attrs_data
884          as icall.
885         
886 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
887
888         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
889         lupus's request.
890
891 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
892
893         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
894
895         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
896         dynamic DllImportAttribute.
897
898         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
899         dynamic DllImportAttribute.
900
901         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
902         Fixes #75162.
903
904 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
905
906         * threads.c: avoid segfault when an unstarted thread is aborted.
907
908 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
909
910         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
911         Returns the name and version of the runtime for reporting.
912
913 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
914
915         * appdomain.c: bump corlib version.
916         * object-internals.h: new field in MonoReflectionAssembly.
917
918 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
919
920         * object-internals.h: Carlos forgot to add this field.
921
922 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
923
924         * icall.c: Added create_version to create instances
925         of Version of MonoReflectionAssemblyName. This change helps
926         the AssemblyName tests to keep running fine.
927         
928 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
929   
930         * object.c (mono_method_return_message_restore): A somehow less
931         intrusive fix for #75138.
932
933 2005-06-03  Raja R Harinath  <rharinath@novell.com>
934
935         * object.c (mono_method_return_message_restore): Fix computation
936         of expected number of out args.
937
938 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
939
940         * reflection.c (mono_image_get_method_info): Fix the case when the
941         charset is empty.
942
943 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
944
945         * object.c: Added missing null check in
946           mono_method_return_message_restore.
947
948 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
949
950         * reflection.c (mono_image_get_method_info): Handle the case when
951         dllentry is empty.
952
953 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
954
955         * object.c: When creating the vtable for a proxy, take into account
956         all inherited interfaces, not only the ones registered in
957         iclass->interfaces. This fixs bug #74996.
958         Also, in mono_method_return_message_restore, verify that the array
959         of out args has the expected lengh.
960
961 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
962
963         * socket-io.c: update the timeout in Poll when the call is interrupte.
964
965 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
966
967         * socket-io.c: support abort/suspend in Select_internal after last
968         change.
969
970 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
971
972         * threadpool.c: remove warning.
973
974 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
975
976         * icall.c:
977         * socket-io.[ch]: Select_internal uses poll() now when available, thus
978         removing the 1024 limit from select(). Runtime part of the fix for
979         bug #71203.
980
981 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
982
983         * socket-io.c: when resolving the addresses for the same
984         host returned by gethostname(), get the local IPs from the interface
985         list. Loopback addresses are discarded if the are interfaces up with
986         non-loopback ones. Fixes bug #63265.
987
988 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
989
990         * appdomain.c, verify.c, object-internals.h, reflection.c:
991         bumped corlib number to 36, and added new extra_flags field
992         to ReflectionMethodBuilder and friends.  Fixes #75060.
993
994 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
995
996         * gc.c: register a new weak link only if the object is non-null
997         (fixes bug#75047).
998
999 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1000
1001         * culture-info.h : short time pattern too.
1002
1003 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1004
1005         * culture-info.h : expand long time pattern string length.
1006
1007 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1008
1009         * culture-info-table.h : update (more French date format; #72788).
1010
1011 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
1012
1013         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
1014         the method is static. Fixes #75029.
1015
1016 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
1017
1018         * reflection.c: Update the table_idx field of method builders after
1019         saving the module, since it can change. This is a workaround for
1020         bug #74914. 
1021
1022 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1023
1024         * culture-info-table.h : update (additional French date format).
1025
1026 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
1027
1028         * icall.c (ves_icall_type_Equals): Revert last change.
1029         
1030         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
1031
1032         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
1033
1034 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
1035
1036         * class-internals.h: Added executioncontext_class field to 
1037         MonoDefaults structure.
1038         * domain.c: Cache System.Threading.ExecutionContext class in 
1039         mono_defaults.
1040         * object.c: Capture the ExecutionContext for asynchroneous calls in
1041          mono_async_result_new.
1042         * object-internals.h: Added execution_context and original_context 
1043         fields to MonoAsyncResult. Added execution_context to MonoThread.
1044         * security-manager.c|.h: Added mono_get_context_capture_method to 
1045         return the capture method (if required by the security manager or by
1046         the framework version used).
1047         * threadpool.c: Apply capture (if present) ExecutionContext in 
1048         mono_async_invoke and revert to original context after it completes.
1049
1050 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
1051
1052         * culture-info-table.h : updated (real hacky solution for zh-CHT).
1053
1054 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
1055
1056         * culture-info-table.h : zh-CHT related workaround.
1057
1058 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
1059
1060         * marshal.c (emit_marshal_custom): Add some error checking and call the
1061         methods in the ICustomMarshaler interface. Fixes #74875.
1062         
1063         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
1064         native->managed wrappers.
1065
1066 2005-05-12  Martin Baulig  <martin@ximian.com>
1067
1068         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
1069         here and use the loader lock.
1070
1071         * mono-debug.c: Properly lock when the debugger is not attached.
1072         (mono_debug_init): Release the initial lock if we're not running
1073         in the debugger.
1074
1075 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
1076
1077         * marshal.c (emit_marshal_custom): Pass through NULL values without
1078         calling the custom marshalling routines.
1079
1080         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
1081         conversion in structures. Fixes #74882.
1082
1083 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
1084
1085         * culture-info-table.h : zh-* cultures were missing.
1086
1087 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
1088
1089         * threads.c: Added a new event background_change_event which is signaled
1090         when a thread changes its background mode.
1091         Moved here several checks previously done in managed code. The checks
1092         require the thread lock, and using the thread lock in managed code
1093         can result in deadlocks.
1094         Merged Start_internal and Thread_internal into a single method. Now 
1095         Thread_internal does all work of creating and starting a thread.
1096         Added icalls for setting and getting the state of the object. Moved from
1097         managed code to avoid locking there.
1098         Added wait_for_tids_or_state_change() which is called instad of
1099         wait_for_tids when waiting for non-backround threads to end. This method
1100         will return if one of the threads ends or the background_change_event
1101         is signaled.
1102         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
1103         the background mode. This method signals the background_change_event
1104         event.
1105         * icall.c:
1106         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
1107         removed Start_internal.
1108         
1109 2005-05-11  Martin Baulig  <martin@ximian.com>
1110
1111         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
1112         to order of some fields to get proper alignment on 64-bit machines.
1113
1114 2005-05-11  Martin Baulig  <martin@ximian.com>
1115
1116         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
1117         changes as they're broken and completely fuck up the debugger.
1118
1119         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
1120
1121 2005-05-10  Martin Baulig  <martin@ximian.com>
1122
1123         * reflection.c (mono_reflection_generic_class_initialize): Don't
1124         call mono_class_setup_parent() here.
1125
1126 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1127
1128         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
1129         send/receive timeout use an integer in milliseconds. We were using a
1130         struct timeval.
1131
1132 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1133
1134         * locales.c:
1135         (internal_get_cultures): reserve the first slot of the array for the
1136         InvariantCulture, which will be filled in managed code.
1137
1138 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
1139
1140         * reflection.c (mono_image_fill_module_table): Initialize the
1141         GENERATION field as well.
1142
1143 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1144
1145         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
1146         Monitor.Enter on the object.
1147
1148 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
1149
1150         * threads.c: Enable the wait for running threads when exiting.
1151         * icall.c: Suspend all threads before exiting.
1152
1153 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
1154
1155         * assembly.c (mono_assembly_load_reference): Fix warning.
1156
1157 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1158
1159         * threadpool.c: changed the default number of threads per cpu. From now
1160         on, the default will be 20 + (5 * number of cpus) instead of 50.
1161
1162 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
1163
1164         * loader.c (mono_method_get_signature_full): Add locking here.
1165
1166 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
1167
1168         * appdomain.c: Moved methods for parsing and freeing assembly
1169         names to assembly.c.
1170         * assembly.c, domain-internals.h: Created public methods for parsing
1171         assembly names. Fixed mono_assembly_load_with_partial_name:
1172         it now finds the best match, taking into account the version,
1173         token and culture specified in the partial name. Also return
1174         the latest version if no version information is specified.
1175
1176 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
1177
1178         * threadpool.c: replace check for SocketAsyncCall class.
1179
1180 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1181
1182         * threadpool-internals.h:
1183         * Makefile.am: added threadpool-internals.h
1184
1185         * threadpool.c: call mono_unhandled_exception on exceptions not handled
1186         that happen in threadpool threads (tested on MS).
1187         (mono_thread_pool_remove_socket): new function that dispatch any pending
1188         AIO call on a socket that is closing. By now only epoll really needs it,
1189         as select/poll wake up when the socket closes.
1190
1191
1192         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
1193
1194 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
1195
1196         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
1197
1198 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
1199
1200         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
1201
1202 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
1203
1204         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
1205         has an abort request, convert it into a suspend request.
1206
1207 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
1208
1209         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
1210         warning for the usage of `UnmanagedFunctionPointerAttribute' which
1211         is not supported yet.
1212
1213 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1214
1215         * image.c: register assemblies loaded from data (bundles) in the loaded
1216         assemblies hash. Fixes bug #74772.
1217
1218 2005-04-29  Martin Baulig  <martin@ximian.com>
1219
1220         * class.c (mono_type_get_name_recurse): Update to the new naming
1221         schema from the latest .NET 2.x beta2.
1222         (mono_class_setup_vtable_general): If we're a generic instance,
1223         copy the vtable from our generic type definition and inflate all
1224         the methods in it.
1225
1226         * loader.c (find_method): Update to the new naming schema from the
1227         latest .NET 2.x beta2.
1228
1229 2005-04-29  Raja R Harinath  <harinath@gmail.com>
1230
1231         * class.c (mono_class_init): Add a mono_loader_unlock to the
1232         #74734 fix.
1233
1234 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
1235
1236         * icall.c (ves_icall_System_Environment_Exit): Remove the 
1237         suspend_all_other_threads () call for the time being, since it can hang.
1238
1239         * threads.c (mono_thread_manage): Similarly, disable the waiting for
1240         the background threads to exit, since it can also hang.
1241
1242         * class.c (mono_class_init): Applied patch from Ankit Jain 
1243         (radical@gmail.com). Avoid pending init errors when a field refers
1244         to a nested class using a typeref. Fixes #74734.
1245
1246         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
1247         this for dynamic modules.
1248
1249 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1250
1251         * threads.c: don't wait for threads that are in the process of aborting
1252         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
1253         and waiting for background threads to finish. This makes xsp and
1254         mod-mono-server exit without random length delays and/or hangs.
1255
1256 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1257
1258         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
1259
1260 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
1261
1262         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
1263         dynamic types to prevent infinite loops. Fixes #74727.
1264
1265         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
1266         ..._is_assignable_to.
1267
1268 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
1269
1270         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
1271
1272 2005-04-25  Martin Baulig  <martin@ximian.com>
1273
1274         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
1275
1276         * domain.c
1277         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
1278
1279         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
1280
1281         * reflection.c (build_compressed_metadata): Set metadata header
1282         version to 2.0.
1283
1284 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
1285
1286         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
1287         number into an integral and a decimal part. Fixes #70473.
1288
1289         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
1290
1291 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
1292
1293         * culture-info-table.h : reflected the latest locale-builder output.
1294
1295 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1296
1297         * threadpool.c: check for SuspendRequested too when deciding if
1298         mono_thread_interruption_checkpoint should be called.
1299
1300 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1301
1302         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
1303         * threads.c: remove interruption_mutex and use Interlocked instead. When
1304         suspending all the threads, wait for all the suspended events at once.
1305         If we're shutting down and get an APC that is going to be queued,
1306         call mono_thread_execute_interruption immediately, as the thread might
1307         be sleeping on a pthread condition or mutex.
1308
1309         * icall.c: call mono_runtime_set_shutting_down before suspending the
1310         threads.
1311
1312         Fixes bug #74693. And now xsp is happier when exiting.
1313
1314 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
1315
1316         * loader.c (mono_stack_walk): Fix #74690.
1317
1318 2005-04-22  Martin Baulig  <martin@ximian.com>
1319
1320         * mono-debug.h (MonoDebugMethodJitInfo): Added
1321         `MonoDebugMethodJitInfo *jit'.
1322
1323         * mono-debug.c (mono_debug_read_method): Cache the
1324         MonoDebugMethodJitInfo in `address->jit'.
1325         (mono_debug_free_method_jit_info): New public method.
1326
1327 2005-04-22  Martin Baulig  <martin@ximian.com>
1328
1329         * class.c (mono_class_is_assignable_from): Disallow
1330         type parameter -> interface.
1331
1332 2005-04-21  Dick Porter  <dick@ximian.com>
1333
1334         * threads.c (mono_thread_create): Turn an assertion into an error.
1335
1336 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
1337
1338         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
1339         
1340         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
1341         Fix some gcc 4.0 warnings.
1342
1343 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
1344
1345         * file-io.c: fix alt dir separator char on unix systems
1346         and cleanup (fixes bug #71214).
1347
1348 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
1349
1350         * marshal.c: Use CALLVIRT instead of CALL when dispatching
1351         a call to a remote domain, since the method may be an
1352         interface method in the client domain. This fixes bug #74192.
1353
1354 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1355
1356         * threadpool.c: recv/send are now performed before going back to managed
1357         code to save one transition.
1358
1359 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1360
1361         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
1362
1363         * metadata/threadpool.c: removed hack to workaround the bug above.
1364
1365         Fixes bug #74618.
1366
1367 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
1368
1369         * reflection.c reflection.h: Fix handling of parameter defaults in
1370         dynamic methods. Also fixes handling of parameter attributes.
1371         Fixes #74609.
1372
1373         * mono-debug.c (mono_debug_close_image): Fix warning.
1374
1375 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1376
1377         * socket-io.h: replaced old unused field with new 'blocking'.
1378         * threadpool.c: restore socket blocking state on windows(tm).
1379
1380 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
1381
1382         * icall.c: don't return the codebase in the AssemblyName[] returned by
1383         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
1384         * object-internals.h: Removed FIXME (fields were presents) and fixed
1385         versioncompat declaration.
1386
1387 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1388
1389         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
1390         not closed, so don't cleanup when it happens.
1391
1392 2005-04-13  Chris Toshok  <toshok@ximian.com>
1393
1394         * mono-debug-debugger.h: change prototype for
1395         mono_debugger_lookup_type.
1396
1397         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
1398         this function, although it should probably be named
1399         mono_debugger_init_type.
1400
1401 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1402
1403         * threadpool.c: fix non-AIO case.
1404
1405 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
1406
1407         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
1408         the built-in profiler to measure just JIT compilation times.
1409
1410 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1411
1412         * threadpool.c: the epollfd might be closed by another thread at
1413         any time, so ignore EBADF at treat it as a "we're closing" sign.
1414
1415 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1416
1417         * threadpool.c: release the semaphores with a count equals to the number
1418         of working threads in both IO and regular pools. Fixed typo that messed
1419         up the count of IO pool threads. Don't initialize the pipe handles if
1420         we're using epoll.
1421
1422 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1423
1424         * threadpool.c: some systems don't like a NULL when deleting the socket
1425         from epoll.
1426
1427 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1428
1429         * threadpool.c: fix semaphore allocation.
1430
1431 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1432
1433         * threadpool.c: added epoll() based implementation for asynchronous IO
1434         that is used instead of the default poll() when available.
1435         It can be disabled by setting MONO_DISABLE_AIO.
1436
1437 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1438
1439         * threadpool.c: windows needs 'closesocket' and instead of returning
1440         0 when the stream is closed while in select, it returns -1. Fixes bug
1441         #74573.
1442
1443 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
1444
1445         * class.c (class_compute_field_layout): Fix the regression caused by
1446         the previous try.
1447
1448 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1449
1450         * threadpool.c: separate pool for socket async. IO.
1451         * threadpool.h: mono_max_worker_threads is not a global any more.
1452
1453 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
1454
1455         * class.c (class_compute_field_layout): Fix #74549.
1456
1457 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1458
1459         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
1460         use 2 connected sockets instead.
1461
1462 2005-04-08  Miguel de Icaza  <miguel@novell.com>
1463
1464         * mono-config.c: Add new entry point for mkbundle
1465         mono_config_parse_memory. 
1466
1467 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1468
1469         * threadpool.c: removed another unused function.
1470
1471 2005-04-08  Ankit Jain  <radical@corewars.org>
1472
1473         * reflection.c (get_default_param_value_blobs): Add 'types'
1474         parameter to get the types encoded in the constant table.
1475         (mono_param_get_objects): Use the type from the constant table,
1476         not the type of the parameter, when creating default values.
1477         Handle null default values correctly.
1478
1479 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1480
1481         * file-io.c:
1482         * file-io.h:
1483         * threadpool.c:
1484         * threadpool.h:
1485         * icall.c:
1486         * socket-io.c: removed dead code for async IO.
1487
1488 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1489
1490         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
1491
1492         * threadpool.c: intercept socket async. calls and pass them to a thread
1493         that is polling and dispatching the job items to the threadpool as
1494         socket become ready. Fixes bugs #71217, #71933.
1495
1496         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
1497         between char and short/ushort arrays.
1498
1499         * socket-io.c: remove dead code.
1500
1501 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
1502
1503         * locales.c,
1504           icall.c : removed InternalToUpper_Comp() and
1505           InternalToLower_Comp().
1506
1507 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
1508
1509         * char-conversions.h : The tables were incorrectly generated. Should
1510           be generated against invariant culture.
1511
1512 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
1513
1514         * object.c (mono_runtime_invoke_array): Fix return value when 
1515         passing pre-created valuetype objects to ctors.
1516
1517         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
1518         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
1519         Fixes #74338.
1520
1521 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
1522
1523         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
1524         only used with --security and hides the wrong corlib version error.
1525
1526 2005-03-30  Joshua Tauberer  <tauberer@for.net>
1527
1528         * class.c: Changed mono_class_name_from_token so that types
1529         outside of a namespace don't have an initial period.  Improved
1530         the g_warning message used in _mono_class_get when loading
1531         fails.
1532         * assembly.c: In mono_assembly_load_reference, when an assembly
1533         can't be found, "No such file or directory" is misleading and
1534         unhelpful because a few paths were checked for the presence of
1535         the assembly.  When that happens (ENOENT), display a nicer
1536         message indicating the directories that were searched.  In all
1537         cases, the warning is made easier to read for non-hackers.
1538
1539 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
1540
1541         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
1542         project/solution.
1543         * appdomain.h|domain.c: Removed inline from functions.
1544         * appdomain.c: Reduced warnings when compiling on windows.
1545         * icall.c: Fixed output_debug declaration to gunichar2*.
1546         * mono-config.c: Reduced warnings when compiling on windows.
1547         * rand.c: Added missing "windows.h". Added missing return value.
1548         * rawbuffer.c: Added missing winsock2.h for windows.
1549         * sysmath.h: Added mono-compiler.h header to allow/ease 
1550         compilation with non-GCC compilers.
1551         * threads.c: Fixed declarations to compile with VS.NET C compiler.
1552         Removed cast warnings.
1553
1554         Adapted from the work of J Lothian (for VC6).
1555
1556 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
1557
1558         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
1559         from default_path.
1560
1561 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
1562
1563         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
1564         the 2.0 profile.
1565
1566 2005-03-27  Raja R Harinath  <harinath@gmail.com>
1567
1568         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
1569         has to be in $(exec_prefix).  $(prefix) is for arch-independent
1570         stuff, and it would probably use $(prefix)/share rather than
1571         $(prefix)/lib.
1572
1573 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1574
1575         * console-io.c: added 2 includes that might be missing.
1576
1577 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
1578
1579         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
1580         profile.
1581
1582         * reflection.c (create_custom_attr): Allocate the params array using
1583         alloca so it gets GC tracking.
1584
1585 2005-03-23  Chris Toshok  <toshok@ximian.com>
1586
1587         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
1588         out some spew.
1589
1590 2005-03-24  Raja R Harinath  <rharinath@novell.com>
1591
1592         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
1593         changes to pick up any changes in prefix, etc.
1594
1595 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
1596
1597         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
1598         
1599         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
1600         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
1601
1602 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
1603
1604         * class-internals.h object-internals.h class.c reflection.c: Extend the
1605         mono_lookup_dynamic_token () function to return the class of the
1606         token as well. 
1607
1608         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
1609         well. Fixes #73848.
1610
1611 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
1612
1613         * security-manager.c: Skip inheritance checks for intra-corlib
1614         class inheritance and method overrides. This skips a lot of checks
1615         and (anyway) permissions cannot work until corlib is loaded.
1616
1617 2005-03-23  Martin Baulig  <martin@ximian.com>
1618
1619         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
1620         MONO_TYPE_GENERICINST.  
1621
1622 2005-03-23  Martin Baulig  <martin@ximian.com>
1623
1624         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
1625
1626 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1627
1628         * class.c: added locking comments to some functions.
1629         Cache the interface offsets arrays (saves about 20 KB
1630         of runtime memory in a typical app).
1631         Reduce the time overhead in mono_class_setup_supertypes ().
1632
1633 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
1634
1635         * icall.c: speedup and fix leaks in GetMethodsByName and
1636         GetPropertiesByName.
1637
1638 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1639
1640         * reflection.c: some locking fixes.
1641
1642 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
1643
1644         * metadata.c: added missing break in case statement.
1645
1646 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
1647
1648         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
1649         typedbyref return values. Fixes #73941.
1650
1651 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
1652
1653         * security-manager.c|h: Added demandunmanaged method and 
1654         suppressunmanagedcodesecurity class to MonoSecurityManager.
1655         Renamed aptc class to allowpartiallytrustedcallers.
1656
1657 2005-03-17  Martin Baulig  <martin@ximian.com>
1658
1659         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
1660
1661 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1662
1663         * file-io.c: disabled file async. IO using aio_*. It uses the
1664         threadpool now. Workaround for bug #73718.
1665
1666 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1667
1668         * assembly.h, mono-config.c: added code to deal with bundled configs
1669         for bundled assemblies.
1670
1671 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
1672
1673         * *.c, private.h: cleanup, removing old private.h header file.
1674
1675 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
1676
1677         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
1678         and throw_on_unmappable_char attributes.
1679
1680 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
1681
1682         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
1683         _ProcessName_internal.
1684
1685 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
1686
1687         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
1688         #73631.
1689
1690         * icall.c threads.c threads-types.h: Remove slothash icalls as they
1691         are no longer used.
1692
1693 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
1694
1695         * object.c (compute_class_bitmap): Add support for generics. Fixes
1696         #73527.
1697
1698 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
1699
1700         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
1701
1702 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1703
1704         * filewatcher.c: commented out the code for windows watcher, as we don't
1705         use it (we use the managed implementation instead).
1706
1707 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
1708
1709         * object-internals.h (MonoThread): Remove 'unused1' field.
1710
1711         * appdomain.c: Bump corlib version.
1712
1713         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
1714
1715         * reflection.c (mono_reflection_create_runtime_class): Remove the
1716         AssemblyBuilder.Save optimization since it causes too many problems.
1717
1718 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
1719
1720         * exception.c|h: Added mono_get_exception_reflection_type_load to
1721         create a ReflectionTypeLoadException object.
1722         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
1723         to return NULL is a InheritanceDemand fails during reflection. Updated
1724         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
1725         ReflectionTypeLoadException if an InheritanceDemand fails during 
1726         reflection. Added icall mapping for GetLinkDemandSecurity.
1727         * security-manager.c|h: Added ves_icall_System_Security_
1728         SecurityManager_GetLinkDemandSecurity internal call to return the
1729         class and methods permissions set for a LinkDemand. Removed unused
1730         fields in MonoSecurityManager.
1731
1732 2005-03-10  Martin Baulig  <martin@ximian.com>
1733
1734         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
1735         it's a generic instance.
1736
1737 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
1738
1739         * reflection.c (mono_get_object_from_blob): Applied patch from
1740         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
1741
1742         * class.c (mono_class_is_assignable_from): Another try at fixing 
1743         #73469 without breaking anything.
1744
1745 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
1746
1747         * class.c: (mono_class_is_assignable_from): Revert the last changes
1748         since they don't work with generics.
1749         
1750         * class.c (mono_class_is_assignable_from): Fix build bustage.
1751
1752         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
1753         the managed IsAssignableFrom method. Fixes #73469.
1754
1755         * reflection.c (mono_reflection_call_is_assignable_from): New helper
1756         function.
1757
1758 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
1759
1760         * object.c (mono_load_remote_field_new): Fix returning uninitialized
1761         memory when the remoting callback does not sets the out arguments.
1762         Fixes #73007.
1763
1764         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
1765         by mistake.
1766
1767         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
1768
1769         * object-internals.h (MonoStackFrame): Sync with managed object layout.
1770
1771         * appdomain.c: Bump corlib version.
1772
1773 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
1774
1775         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
1776         function.
1777
1778         * threads.c (mono_thread_attach): Detect threads which are not started
1779         by the GC pthread wrappers.
1780
1781 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
1782
1783         * icall.c: Added new icall for RNG.
1784         * rand.c|h: Added new icall to open the RNG. This allows to share a 
1785         single handle on Linux to access /dev/urandom and fix #73183.
1786
1787 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
1788
1789         * object.c: setting the new vtable in a transparent proxy object must
1790         not change the GC descriptor.
1791
1792 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1793
1794         * object.c: fixed compilation without GCJ support.
1795         * reflection.c: for runtime-created types ensure klass->has_references
1796         is correct (bug #73215).
1797
1798 2005-03-02  Martin Baulig  <martin@ximian.com>
1799
1800         * class.c (mono_class_is_assignable_from): Make this work if
1801         `oklass' is a generic instance; fixes #72831.
1802
1803 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1804
1805         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
1806         with hasthis set.
1807         
1808         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
1809
1810         * marshal.c: Reorganize native->managed marshalling code to also use
1811         the emit_marshal_... functions.
1812
1813 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
1814
1815         * object.c: typed allocs have issues with bitmap sizes > 30,
1816         so check for max_set >= 30.
1817
1818 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1819
1820         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
1821         managed code. Fixes #73012.
1822
1823         * metadata.h (MonoMarshalSpec): Add elem_mult field.
1824
1825         * metadata.c reflection.c: Load/Emit elem_mult as well.
1826         
1827         * metadata.h (MonoMarshalSpec): Add comment.
1828
1829         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
1830
1831         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
1832         num_elem to -1 if not given.
1833
1834         * object-internals.h (MonoReflectionMarshal): Add has_size field.
1835
1836         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
1837         given values.
1838
1839 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
1840
1841         * null-gc.c (mono_gc_free_fixed): Was not compilable.
1842
1843 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
1844
1845         * reflection.c (encode_marshal_blob): Encode param_num field as well.
1846
1847         * object-internals.h (MonoReflectionMarshal): Add param_num field.
1848
1849 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
1850
1851         * object.c: generalized the reference bitmap creation
1852         and added hooks for the new GC.
1853         * class-internals.c: removed the gc_bitmap field from MonoClass.
1854
1855 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1856
1857         * domain.c: help the compiler to produce better code
1858         in mono_jit_info_table_find ().
1859
1860 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
1861
1862         * object.c: make all allocations look typed.
1863
1864 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1865
1866         * socket-io.c: load Mono.Posix if it's not loaded already
1867         (fixes bug#73033).
1868
1869 2005-02-24  Martin Baulig  <martin@ximian.com>
1870
1871         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
1872         * reflection.c (dup_type): Likewise.
1873
1874 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
1875
1876         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
1877         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
1878
1879 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1880
1881         * domain.c, threads.c, object-internals.h: make the critical thread
1882         local vars use the fast access mode (even when we're compiled in
1883         a lib). Provide accessors to be used by the jit during codegen.
1884
1885 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1886
1887         * appdomain.c: Changed hook functios behavior to include
1888         support for the reflection only assemblies. Some icalls were changed
1889         to support the mentioned assemblies too. Signatures of static methods
1890         try_assembly_resolve and real_load now have an additional parameter:
1891         refonly.
1892
1893         * assembly.c: General changes to mono_assembly_ methods to support
1894         reflection only api. Functions mono_assembly_open, mono_assembly_load,
1895         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
1896         suffix, to support an additional gbool parameter to specify whether
1897         the assembli is reflection only or not. Created some new hook functions 
1898         to add support for reflection only assemblies. Signatures of static 
1899         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
1900         have now an additional parameter: refonly.
1901
1902         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
1903         indicating whether the assembly is reflection only or not.
1904
1905         * exception.c: Add mono_get_exception_invalid_operation.
1906
1907         * icall.c: Throw an InvalidOperationException when trying to invoke
1908         a property/method/event, or trying to set/get the value of a field.
1909         Also add an icall to retrieve the ref_only flag to the
1910         MonoReflectionAssembly.
1911
1912 2005-02-23  Chris Toshok  <toshok@ximian.com>
1913
1914         Part of fix for #72827.
1915         * mono-debug.c (mono_debug_add_method): add lexical block data to
1916         the info we write.  Kind of a hack at the moment - we copy the
1917         lexical block info from the MonoDebugMethodInfo to the
1918         MonoDebugMethodJitInfo here, before writing it.
1919         (mono_debug_read_method): read the lexical block info.
1920
1921         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
1922
1923         * debug-mono-symfile.h: add lexical block support.
1924
1925         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
1926         support.
1927
1928 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
1929
1930         * loader.c (mono_lookup_pinvoke_call): Fix warning.
1931
1932         * object.c (mono_runtime_free_method): Call mono_free_method () and
1933         put the TODOs there.
1934
1935         * loader.c (mono_free_method): Free up most memory allocated for 
1936         dynamic methods.
1937
1938 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
1939
1940         * reflection.c: properly flag a Type argument to a
1941         named custom attr value (bug #72248).
1942
1943 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1944
1945         * reflection.c: reduce code duplication in named custom
1946         attribute encoding.
1947
1948 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
1949
1950         * reflection.c: properly encode custom attrs of type object
1951         (bug #72649).
1952
1953 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
1954
1955         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
1956
1957 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
1958
1959         * socket-io.c: load System.dll if it's not loaded already
1960         (bug #72850 and #70477).
1961
1962 2005-02-21  Martin Baulig  <martin@ximian.com>
1963
1964         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
1965         generic instances.
1966
1967 2005-02-21  Martin Baulig  <martin@ximian.com>
1968
1969         * reflection.c (mono_image_build_metadata): We also need to
1970         "fixup" the MethodImpl table after we computed the final method
1971         indices.  Call fixup_methodimpl() to do that.
1972         (fixup_methodimpl): New private method.
1973
1974 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
1975
1976         * assembly.c: special case mscorlib.dll (bug#72536),
1977         patch from Carlos Alberto Cortez.
1978
1979 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
1980
1981         * threads-types.h threads.c: Fix build bustage.
1982
1983         * threads.c: Use a union for long<->double conversions.
1984
1985         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
1986         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
1987
1988         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
1989         containing the checkpoint call with NOT_TAKEN.
1990         
1991         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
1992         checkpoint before pushing the arguments, so they won't have to be
1993         spilled to stack.
1994
1995 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1996
1997         * domain.c, assembly.c, domain-internals.h: make some data
1998         const and relocation-free.
1999
2000 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
2001
2002         * object.c, appdomain.c, class-internals.h: introduce the
2003         MonoClassRuntimeInfo structure to hold the info needed to
2004         use a class at runtime. Made mono_class_vtable() lock-free
2005         for all the appdomains.
2006
2007 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
2008
2009         * metadata-internals.h, image.c: introduce a per-image mempool to
2010         be used for memory that has the same lifetime as the image.
2011
2012 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
2013
2014         * domain.c: In mono_init_internal(), instead of selecting the first
2015         runtime version supported by an executable, get a list of all
2016         supported versions and select the one for which an mscorlib exists
2017         (since even if the runtime supports a given version, it doesn't mean
2018         that the framework for that version is installed).
2019         Modified get_runtimes_from_exe to support this behavior.
2020         In supported_runtimes, added information about additional system
2021         assembly versions.
2022         
2023         * assembly.c: Added support for more than one system assembly version
2024         per runtime version. Updated the assembly list.
2025         In mono_assembly_remap_version, removed the initial version check,
2026         since we don't know to which version we need to compare until we
2027         get the version set on which the assembly is based.
2028         Moved the code for loading corlib into the new method
2029         mono_assembly_load_corlib(), so it can be used by the initialization
2030         code.
2031         
2032         * domain-internals.h: Updated data structures and added declaration
2033         for mono_assembly_load_corlib.
2034
2035 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
2036
2037         * reflection.c (resolve_object): Fix the creation of the signature in 
2038         the SignatureHelper case.
2039
2040         * assembly.c (mono_assembly_remap_version): Fix binary search.
2041         
2042 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
2043  
2044         * class.c: Added inheritance check when a method is overloaded (from a
2045         virtual method or when implementing an interface) and when a class is
2046         inherited. Added functions to set a failure for a class and to 
2047         retreive the exception from a failure.
2048         * class-internals.h: Added fields to MonoClass to keep the exception
2049         information status for inheritance (or other exceptions) to be thrown
2050         later (i.e. not at load time).
2051         * object.c: Throw the inheritance SecurityException when a type is to 
2052         be created with either class or method inheritance violations.
2053         * reflection.c|h: Fix when getting declsec from a class. Removed 
2054         unrequired code for class. Improved sanity in parameter naming.
2055         * security-manager.c|h: Added functions to check for class and method
2056         inheritance.
2057
2058 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
2059
2060         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
2061         and has_finalize in dynamic types as well.
2062
2063 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
2064
2065         * culture-info-table.h : fixed currency format for en-GB (and so on).
2066
2067 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
2068
2069         * gc.c: ensure the GC handles never have 0 as a value.
2070
2071 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
2072
2073         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
2074         a pointer to a struct to unmanaged code. Fixes #72625.
2075
2076 2005-02-16  Martin Baulig  <martin@ximian.com>
2077
2078         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
2079
2080 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
2081
2082         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
2083
2084 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
2085
2086         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
2087
2088         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
2089         UnmanagedFunctionPointerAttribute, use it for determining calling convention
2090         etc. Fixes #71471.
2091
2092         * reflection.c (mono_custom_attrs_get_attr): New helper function.
2093
2094         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
2095
2096 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
2097
2098         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
2099         changes to make the current context a field in MonoThread.
2100
2101 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
2102
2103         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
2104         the last change.
2105         
2106         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
2107         extracted from mono_marshal_get_native_wrapper.
2108
2109         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
2110         to create wrappers around native functions.
2111
2112         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
2113         delegates for arbitrary function pointers. Fixes #71472.
2114
2115 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
2116
2117         * threads.c: cleaned up the code a little.
2118
2119 2005-02-15  Martin Baulig  <martin@ximian.com>
2120
2121         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
2122         the data table.
2123
2124         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
2125         allocate larger chunks if needed.
2126
2127 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
2128
2129         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
2130         in by mistake.
2131
2132 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
2133
2134         * domain.c: keep the domains in an array and ensure the domain ids
2135         are kept small, so they can be used as indexes to domain-specific data
2136         with a small memory overhead.
2137
2138 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
2139
2140         * icall.c: Handle byref types in Type icalls. Fixes #72544.
2141
2142 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
2143
2144         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
2145
2146 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
2147
2148         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
2149
2150         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
2151         values.
2152
2153         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
2154         
2155 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
2156
2157         * domain-internals.h: add the hashtable here.
2158
2159         * class-internals.h: Remove `info' from MonoMethod
2160
2161         * domain.c: Add a new hashtable, jit_trampoline_hash
2162
2163 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
2164
2165         * object.c: don't set the value of static fields
2166         (fixes bug#72494).
2167
2168 2005-02-11  Martin Baulig  <martin@ximian.com>
2169
2170         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
2171         (mono_debug_add_method): Silently ignore the method if it's too big.
2172         (mono_debug_add_type): Likewise.
2173
2174 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
2175
2176         * threads.c, appdomain.c: remove #ifdefs from the code.
2177
2178 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
2179
2180         * metadata-internals.h: Added flags to MonoAssembly to cache the most
2181         common security informations. This allows us to stay in unmanaged code
2182         when doing LinkDemand and it's special cases (except for the first 
2183         time for initialization). The flags a very much used with --security.
2184         * reflection.c|h: Added code to get declarative security attributes 
2185         for LinkDemand and InheritanceDemand. This required to refactor the
2186         existing code for Demand.
2187         * security-manager.c|h: Added new method fields for the special cases
2188         of LinkDemand.
2189
2190 2005-02-10  Martin Baulig  <martin@ximian.com>
2191
2192         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
2193         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
2194
2195 2005-02-10  Martin Baulig  <martin@ximian.com>
2196
2197         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
2198         debugging code; this is almost a complete rewrite.
2199
2200         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
2201
2202 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
2203
2204         * domain.c, object.h: expose mono_string_equal () and 
2205         mono_string_hash ().
2206         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
2207         it's implemented in managed code.
2208
2209 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
2210
2211         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
2212         lo leak objects between appdomains.
2213
2214 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
2215
2216         * assembly.c: old compilers compilation fix from 
2217         robertj@gmx.net (Robert Jordan).
2218
2219 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
2220
2221         * class-internals.h: Little reminder for the future.
2222
2223         * debug-helpers.c: Fix up wrapper_type_names
2224
2225 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
2226
2227         * image.c, metadata-internals.h: when loading an image from a file,
2228         mmap all of it and use the same codepaths as when using a
2229         in-memory image: the code is simpler and we use less memory
2230         (both writable and readonly).
2231
2232 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
2233
2234         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
2235         API to alloc runtime data structures that need to be tracked by the
2236         GC and contain pointers.
2237         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
2238         make the code more readable and eventually use a different GC.
2239
2240 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
2241
2242         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
2243         for out arguments.
2244         
2245 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
2246
2247         * object.c: In release_type_locks(), don't release the cctor lock
2248         if it has already been released. This fixes a crash in the
2249         thread5 test.
2250
2251 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
2252
2253         * gc.c, marshal.c, icall.c: register a delegate for finalization
2254         only when the native function pointer has been allocated for it.
2255
2256 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
2257
2258         * object.c: cleaned up some code, allocate objects that are
2259         pointer free with the atomic malloc variant. Allocate memory
2260         for static data from the mempool if it's pointer-free.
2261         Allocate the bounds array at the end of the array data, when needed.
2262         * object-internals.h, object.h: move a private function in a private
2263         header.
2264         * class.c: handle missing case in tracking references in fields.
2265
2266 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
2267
2268         * class.c, class-internals.h: keep track if a type has
2269         reference fields in either the instance or static fields.
2270
2271 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
2272
2273         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
2274         and renamed to MonoRuntimeInfo. Added fields to store the expected
2275         framework assembly version. Changed mono_get_framework_version and
2276         mono_get_runtime_version for a single mono_get_runtime_info method.
2277         
2278         * assembly.c: Added method to remap system assembly versions to the
2279         current executing runtime version. Removed old mapping code.
2280         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
2281         
2282         * icall.c, reflection.c: Track api changes.
2283
2284 2005-02-06  Miguel de Icaza  <miguel@novell.com>
2285
2286         * loader.c (method_from_memberref): Improve error reporting,
2287         produce the class name instead of the typeref/typedef index. 
2288
2289 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
2290
2291         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
2292
2293 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
2294
2295         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
2296         stdcall and charset name mangling.  Reorganize the code and add
2297         some tracing stuff.
2298
2299 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
2300
2301         * monodiet.c: More iters!
2302
2303         * marshal.c: Iter usage.
2304
2305         * icall.c: Iter usage.
2306
2307         * object.c: Use iters.
2308
2309         * debug-helpers.c: More iters
2310
2311 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
2312
2313         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
2314         under win32.
2315
2316 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
2317
2318         * mono-debug-debugger.c: use iters
2319
2320         * class.c, class-internals.h: mono_class_setup_events is static
2321         now
2322
2323         * All callers: use iters
2324
2325 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
2326
2327         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
2328         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
2329
2330 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
2331
2332         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
2333
2334         * marshal.h: Add prototypes for ldfld/stfld_remote.
2335
2336         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
2337         this is called during startup.
2338         
2339 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
2340
2341         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
2342         MonoThreadsSync struct private in monitor.c. Changed the way
2343         MonoThreadsSync is allocated so it's faster and there is no
2344         need to keep track of it with a finalizer and it uses less memory.
2345         This also finally allows us to allocate mono objects as ptrfree when
2346         there are no reference fields.
2347
2348 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
2349
2350         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
2351         disappearing link to the GC interface and use them to simplify
2352         the gchandles code.
2353
2354 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
2355
2356         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
2357         stfld_remote which call mono_load/store_field_new. This allows methods
2358         calling ldfld/stfld wrappers to be AOTed.
2359
2360         * console-io.c: Include sys/filio.h under solaris.
2361         
2362         * console-io.c: Include curses.h if needed correctly.
2363
2364 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
2365         
2366         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
2367         method->klass as well.
2368
2369         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
2370
2371         * class.c (mono_class_init): Switch on lazy initialization of 
2372         methods.
2373
2374         * class.c (mono_class_get_finalizer): Handle the case when the 
2375         finalizer is inherited.
2376
2377 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2378
2379         * console-io.c: <curses.h> is needed by term.h on solaris.
2380
2381 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
2382
2383         * icall.c, class-internals.h, monodiet.c, class.c: Remove
2384         mono_class_setup_properties where possible. Remove this ftn from
2385         the header file, and make it static.
2386
2387 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
2388
2389         * loader.c: Add missing setup_... call.
2390
2391         * class.c: Add missing setup_... calls.
2392
2393         * class.c (mono_class_init): Switch on lazy initialization of 
2394         the generic vtable.
2395         
2396         * class.c (mono_class_init): Fix generics broken by the recent changes.
2397
2398         * monodiet.c (handle_type): Add missing setup_... calls.
2399
2400         * class.c: Back out garbage in previous patch.
2401         
2402         * class.c: Add missing setup_... calls.
2403
2404         * class.c (mono_class_get_method_from_name_flags): Avoid calling
2405         mono_class_setup_methods () if possible.
2406
2407         * class-internals.h (MonoClass): Add 'has_cctor' flag.
2408
2409         * class-internals.h (MonoCachedClassInfo): New structure.
2410
2411         * class.c: Initialize properties and events fields of MonoClass lazily.
2412
2413         * class.c: Add infrastructure for lazily initializing the methods and
2414         vtable fields of MonoClass. Not yet used.
2415
2416         * class.c (mono_class_get_finalizer): New helper function.
2417
2418         * class.c: Add infrastructure for loading some class related data from
2419         an AOT file.
2420
2421         * object.c: Add infrastructure for initializing the vtable from data
2422         in the AOT file.
2423
2424         * gc.c (run_finalize): Use mono_class_get_finalizer ().
2425
2426         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
2427         appropriate initialization function before accessing parts of the
2428         MonoClass structure.
2429
2430         * marshal.c: Fix warnings.
2431         
2432         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
2433
2434         * mono-debug-debugger.c (get_exception_message): Use 
2435         mono_class_get_method_from_name_flags ().
2436
2437 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
2438
2439         * reflection.c, appdomain.c: Replace a few manual searches that
2440         Zoltan missed. (Paolo approved this part of my initial patch).
2441
2442 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
2443
2444         * profiler.c: disable recording statistical events at report time.
2445
2446 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
2447
2448         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
2449         to byteswap arrays of enum values, too (bug #72080).
2450
2451 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
2452
2453         * appdomain.c (set_domain_search_path): Allow this to be called if
2454         domain->setup is not yet set.
2455
2456         * loader.c (mono_method_get_index): New helper function.
2457
2458         * loader.c reflection.c: Use mono_method_get_index ().
2459
2460         * class.c (mono_class_get_method_from_name_flags): New helper method.
2461
2462         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
2463         this.
2464
2465         * class.c (mono_class_get_cctor): New helper method.
2466
2467         * string-icalls.c object.c class.c marshal.c reflection.c: Use
2468         mono_class_get_method () to look up methods.
2469
2470 2005-02-01  Miguel de Icaza  <miguel@novell.com>
2471
2472         * console-io.c: Fix the build, this should work on Windows.
2473
2474 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
2475
2476         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
2477         be set to null to keep things valid
2478
2479 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2480
2481         * icall.c: added Console 2.0 icalls.
2482         * Makefile.am: added console-io.[ch]
2483         * console-io.[ch]: internal calls for Console 2.0 API.
2484
2485 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
2486
2487         * class.c: make sure we consider all the interfaces
2488         when calculating max_interface_id (bug found by
2489         Jeroen Frijters running ikvm).
2490
2491 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
2492
2493         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
2494         valuetype fields to null.
2495
2496         * object.c (set_value): Ditto. Fixes #71669.    
2497
2498 2005-01-31  Martin Baulig  <martin@ximian.com>
2499
2500         * metadata.c (mono_metadata_has_generic_params): New public
2501         function; checks whether something is a generic method.
2502
2503 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
2504
2505         * appdomain.c: fix infinite recursion when adding assemblies.
2506
2507 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
2508
2509         * object.c: Fix small typo to return all items for Environment.
2510         GetCommandLineArgs.
2511
2512 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
2513
2514         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
2515         reflection.c: more domain and assembly-unload related fixes
2516         and memory leaks plugs.
2517
2518 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
2519
2520         * class.c loader.c security.c loader.h process.c threads.c mono-debug-debugger.c profiler.c marshal.c rand.cpedump.c: Fix 64 bit warnings.
2521
2522 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
2523
2524         * loader.c (mono_method_signature): Make this method lazy
2525         (mono_get_method_from_token): Don't computate the signature here.
2526
2527         Doing this saves quite a bit of memory. I got 90 kb on starting up
2528         monodoc. It should also save some disk reads on startup.
2529
2530         * *: MonoMethod->signature might be NULL now. You *MUST* use
2531         mono_method_signature.
2532
2533 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
2534
2535         * object.c (mono_runtime_get_main_args): Return an array from the
2536         current domain here. Fixes #71938.
2537
2538 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
2539
2540         * monitor.c: formatting changes to comply with the
2541         mono coding style and remove #ifdefs from the code.
2542
2543 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
2544
2545         * metadata.c, private.h: remove some unneeded data
2546         and use a more compact representation for table schemas.
2547
2548 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
2549
2550         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
2551         to get a better distribution in hash tables.
2552         * *.c: use mono_aligned_addr_hash() where appropriate.
2553         * assembly.c: make var static.
2554
2555 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
2556
2557         * domain-internals.h: Put MonoJitInfo on a diet.
2558
2559         * domain.c: Fix a warning.
2560
2561 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
2562
2563         * gc.c: rework the gc handles code to reuse handles
2564         when freed.
2565
2566 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
2567
2568         * domain.c: fixed long standing bug in mono_string_equal() which
2569         was brought to light with the ldstr changes.
2570
2571 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
2572
2573         * reflection.c: Remove warning by adding missing include for marshal.h
2574
2575 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
2576
2577         * domain.c, object.c: change the ldstr_table to hold
2578         MonoString* as keys: makes the runtime isinterned lookup
2579         faster and simplifies memory management.
2580
2581 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
2582  
2583         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
2584         possible to add imperative security checks before calling the icall.
2585         * reflection.c: Return security attributes on the original MonoMethod
2586         (and not the wrapped one). This fix permissions on icalls.
2587
2588 2005-01-25  Dick Porter  <dick@ximian.com>
2589
2590         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
2591         the check for mktime() support actually test the mktime() return
2592         value.  "Fixes" bug 71682, though the output is still different to
2593         MS.
2594
2595 2005-01-25  Martin Baulig  <martin@ximian.com>
2596
2597         * class.c (mono_class_is_assignable_from): Make this work for
2598         generic instances.
2599
2600 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
2601
2602         * marshal.c (mono_string_utf8_to_builder)
2603         (mono_string_builder_to_utf16): We might not have ownership of the
2604         string. In thise case, we need to create a new buffer.
2605
2606         * object-internals.h (mono_stringbuilder_capacity): sb->str might
2607         be null, in which case, use the default capacity.
2608
2609 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
2610
2611         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
2612         GC events to the profiler.
2613
2614 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
2615
2616         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
2617         if you don't want the GC to run.
2618
2619 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
2620
2621         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
2622         start providing a GC API and keeping different implementations in
2623         their own file.
2624         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
2625
2626 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
2627
2628         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
2629         mmap rather than allocating a huge buffer.
2630         (mono_debug_close_mono_symbol_file): Free the buffer allocated
2631         above.
2632
2633 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
2634
2635         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
2636         and CheckExecutionRights.
2637         * reflection.c|h: Keep the index of the declarative security to be 
2638         used, instead of the pointer, when AOT compiler is used. Also add 
2639         class initialization when requesting demands.
2640         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
2641         CheckExecutionRights. Both properties are now FALSE by default, and
2642         unmodifiable, unless the --security option is used.
2643
2644 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
2645
2646         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
2647         reflection.c: properly refcount images and assemblies, many leaks fixed.
2648
2649 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2650
2651         * threadpool.c: increase the timeout for threads in the thread pool to
2652         10s.  Fixes bug #67159.
2653
2654 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
2655
2656         * class-internals.h: Sun's compiler insists on explicit
2657         signed on bit fields to handle then correctly.
2658
2659 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
2660
2661         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
2662         Make the size of the array fit only the number of invalid path
2663         chars that we have.
2664
2665         * class.c (_mono_class_get): Improve the error reporting when a
2666         class referenced is not found, to assist debugging. 
2667
2668 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
2669
2670         * threads.c: fix off-by-one error.
2671         * domain.c: free data allocated in the domain.
2672
2673 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
2674
2675         * reflection.c (mono_method_body_get_object): Fill out exception info
2676         as well.
2677
2678         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
2679         structure.
2680         
2681 2005-01-19  Martin Baulig  <martin@ximian.com>
2682
2683         * loader.c (mono_get_method_constrained): Make this work again.
2684
2685 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
2686
2687         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
2688         guint16 to match the managed side.
2689
2690         * reflection.c (mono_reflection_body_get_object): Fill out local
2691         variables array.
2692
2693         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
2694         as well.
2695
2696         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
2697         'local_var_sig_token'.
2698
2699 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
2700
2701         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
2702         System.Drawing.
2703
2704         * reflection.c (mono_method_body_get_object): Handle abstract and
2705         runtime methods.
2706
2707 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
2708
2709         * marshal.c, loader.c, class-internals.h, reflection.c:
2710         store the emthod data for a wrapper in an array instead of a list.
2711
2712 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
2713
2714         * marshal.c: change the code to allocate memory more
2715         conservatively for method wrappers.
2716
2717 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
2718
2719         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
2720         fields from MonoClass to the marshal info structure where they belong.
2721
2722 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
2723
2724         * class.c, object.c, class-internals.h, marshal.c: rearrange
2725         some fields and tweak some types to lower memory usage.
2726
2727 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
2728
2729         * threads.c (signal_thread_state_change): Handle the case when the
2730         target thread is the current thread.
2731
2732         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
2733
2734         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
2735         emit_ptr_to_object_conv. 
2736
2737         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
2738         marshalling. Fixes #71352.
2739
2740 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
2741
2742         * metadata.h, blob.h: move table enum to blob.h so it can be included
2743         in any header.
2744         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
2745         cut the size of MonoImage/MonoDynamicImage.
2746
2747 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
2748
2749         * profiler.c (mono_profiler_install_simple): Fix default arguments.
2750
2751 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2752
2753         * reflection.c, reflection.h, icall.c: add a function to check
2754         if an attribute type is defined for a metadata object.
2755
2756 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
2757
2758         * object-internals.h: Added some needed fields from StringBuilder class.
2759         * marshal.c: Set the maxCapacity when creating a StringBuilder.
2760
2761 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
2762
2763         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
2764         threads before shutting down the runtime.
2765
2766         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
2767
2768 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
2769
2770         * object-internal.h, threads.c: implement stacksize and 
2771         parameterized thread start functionality (requires
2772         matching corlib). Marked broken code for later removal.
2773
2774 2005-01-12  Martin Baulig  <martin@ximian.com>
2775
2776         * class-internals.h (MonoGenericClass): Moved the `initialized'
2777         flag to MonoDynamicGenericClass, removed `init_pending'.
2778         (MonoGenericInst): Added `is_reference' flag.
2779
2780 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
2781
2782         * reflection.c (mono_image_create_pefile): Only set the pe_offset
2783         inside the MSDOS header. Fixes #71201.
2784
2785         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
2786         gc thread.
2787         (mono_domain_finalize): Ditto.
2788
2789 2005-01-12  Martin Baulig  <martin@ximian.com>
2790
2791         * class.c (mono_get_shared_generic_class): Use the cache for
2792         non-dynamic generic classes.
2793
2794         * class-internals.h (mono_class_create_generic_2): Removed
2795         function prototype, this function is now static inside class.c.
2796
2797         * class.c (mono_class_create_generic_2): Made this static, only
2798         call it from mono_class_init() and mono_class_setup_parent().
2799         (collect_implemented_interfaces_aux): Call mono_class_init() on
2800         the interfaces we collect.
2801         (mono_class_setup_vtable): Call mono_class_init (class->parent).
2802
2803 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
2804
2805         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
2806         it a real thread handle.
2807
2808         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
2809         MonoJitExceptionInfo, since each catch clause needs its own variable.
2810         
2811 2005-01-11  Dick Porter  <dick@ximian.com>
2812
2813         * image.c (mono_pe_file_open): New variant on mono_image_open()
2814         that does not set up the CLI metadata; used for FileVersionInfo so
2815         it can get the data for windows binaries too.
2816         
2817         * process.c (process_read_string_block): Don't read off the end of
2818         the StringTable block.
2819
2820         These both fix bug 70766.
2821
2822 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
2823
2824         * gc.c: set some fields to NULL at GC cleanup time.
2825         * threads.c: if we quit the main thread, call exit ().
2826
2827 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
2828
2829         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
2830
2831 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
2832
2833         * threads.h, threads.c, object.c: added accessor and settor for
2834         main_thread. Handle it specially when exiting from it: wait
2835         for other foreground threads to exit.
2836
2837 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
2838
2839         * process.c, verify.c: remove some bloat.
2840
2841 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
2842
2843         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
2844         the calling convention to cdecl under win32.
2845
2846 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
2847
2848         * object.c (mono_object_get_size): New function to get the size of
2849         an object instance.
2850
2851         * profiler.c (simple_allocation): Use above.
2852
2853 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
2854
2855         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
2856         ves_icall_System_AppDomain_getRootDomain (as it's not required to
2857         get an appdomain by it's id and we can't assume the root's id is 0).
2858         * domain-internals.h: Change the function prototype to match.
2859         * icall.c: Change the icall table for AppDomain.
2860
2861 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
2862
2863         * locales.c (string_invariant_compare_char): Only compute
2864         GUnicodeTypes in the case where we need them.  Test for ordinality
2865         first and return if so.
2866
2867         From the commit:
2868
2869                 /*
2870                  * FIXME: here we must use the information from c1type and c2type
2871                  * to find out the proper collation, even on the InvariantCulture, the
2872                  * sorting is not done by computing the unicode values, but their
2873                  * actual sort order.
2874                  */
2875
2876 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
2877
2878         * loader.c: for P/Invoke methods, allow the "Internal" shared
2879         library name to refer to the calling process symbol namespace.
2880
2881 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
2882
2883         * Makefile.am: Add the security manager to the build.
2884         * security-manager.c|h: New. Initialization of the security manager.
2885
2886 2005-01-07  Dick Porter  <dick@ximian.com>
2887
2888         * threads.c: 
2889         * monitor.c: Update thread state during Monitor and WaitHandle
2890         waits.  Fixes bug 71031.
2891
2892 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
2893
2894         * reflection.c (property_encode_signature): Correctly handle when the
2895         property has no methods.
2896
2897 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
2898
2899         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
2900         
2901         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
2902         fields from mb, not rmb. Fixes #71017.
2903
2904         * marshal.c (emit_ptr_to_str_conv): Add support for 
2905         ByValTStr -> string conversion. Fixes #71015.
2906
2907         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
2908
2909         * mempool.c (mono_mempool_contains_addr): New helper function.
2910
2911 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
2912
2913         * metadata.c (mono_metadata_compute_size): Fix size calculation of
2914         HasSematics encoded fields.
2915         
2916         * metadata.c (mono_type_to_unmanaged): Improve error message for 
2917         invalid string marshalling.
2918
2919         * metadata.c: Fix warnings.
2920         
2921 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
2922
2923         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
2924         profiler support.
2925
2926 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
2927
2928         * domain.c object.c domain-internals.h: Revert part of r38077 since the
2929         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
2930         tests.
2931
2932 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
2933
2934         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
2935         so methods containing these can be AOTed.
2936
2937 2005-01-03  Martin Baulig  <martin@ximian.com>
2938
2939         * loader.c (find_method): Removed the hack for generic instances.
2940         (method_from_memberref): If our parent is a generic instance, pass
2941         its generic type definition to find_method() and then inflate the
2942         method.
2943         (mono_get_method_constrained): Pass the generic type definition to
2944         find_method() and inflate the method later.
2945
2946         * class-internals.h (MonoStats): Added `generic_class_count'.
2947
2948         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
2949         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
2950
2951         * reflection.c (mono_custom_attrs_from_params): Don't ignore
2952         generic type definitions.
2953
2954 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
2955
2956         * loader.c icall.c: Fix warnings.
2957
2958 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
2959
2960         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
2961         blittable types. Fixes #70864.
2962
2963 2004-12-29  Martin Baulig  <martin@ximian.com>
2964
2965         * icall.c
2966         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
2967
2968         * reflection.c (mono_method_get_object): Create a
2969         "System.Reflection.MonoGenericMethod" for inflated methods; don't
2970         call mono_get_inflated_method().
2971
2972         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
2973
2974 2004-12-27  Martin Baulig  <martin@ximian.com>
2975
2976         * class-internals.h (MonoMethod): Added `is_inflated' flag.
2977         (MonoMethodInflated): Added `inflated' field.
2978
2979         * class.c (mono_class_inflate_generic_method): Don't really
2980         inflate the method here; just set the `is_inflated' flag in the
2981         MonoMethod.
2982         (mono_class_get_inflated_method): Actually inflate the method here
2983         if it's not already inflated; we use the MonoMethodInflated's new
2984         `inflated' field as a cache.
2985
2986 2004-12-26  Martin Baulig  <martin@ximian.com>
2987
2988         * class.c
2989         (inflate_generic_class): Moved some code out of inflate_generic_type().
2990         (mono_class_inflate_generic_method): If we're already inflated,
2991         inflate the context and use the declaring method; ie. make sure
2992         the declaring method of an inflated method is always the generic
2993         method definition.
2994         (mono_class_create_from_typedef): Create
2995         `class->generic_container->context->gclass'.
2996
2997 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
2998
2999         * metadata-internals.h, marshal.c, reflection.c: More
3000         MonoGHashTable->GHashTable.
3001
3002         * domain-internals.h, class.c: Change MonoGHashTable's into
3003         GHashTables for some cases where no gc stuff is used
3004
3005         All users: update apis
3006
3007 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
3008
3009         * metadata.c (builtin_types): Make this `const'. Makes this get
3010         put into the shareable section.
3011         (mono_metadata_init): Casts to make gcc happy.
3012
3013 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
3014
3015         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
3016
3017 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
3018
3019         * icall.c: Added an internal call to retrieve the position and length
3020         of assembly-level declarative security attributes (RequestMinimum, 
3021         RequestOptional and RequestRefuse). This is used by the Assembly class
3022         to re-create the corresponding permission sets.
3023
3024 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
3025
3026         * marshal.c: fix the stelemref wrapper to be type correct
3027         (and faster).
3028
3029 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
3030
3031         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
3032         to do key & 0x7fffffff. Hashtable already does this. It just
3033         results in longer code.
3034
3035 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
3036
3037         * appdomain.c: Bump corlib version.
3038         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
3039         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
3040         * reflection.c|h: Add functions to get declarative security infos
3041         (blob position and length) for assemblies, classes and methods.
3042
3043 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
3044
3045         * reflection.c: sort the constant table (bug #70693).
3046
3047 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
3048
3049         * object-internals.h, threads.c, domain.c: add accessors for
3050         the MonoThread and MonoDomain tls keys.
3051
3052 2004-12-18  Martin Baulig  <martin@ximian.com>
3053
3054         * class.c (inflate_generic_type): If we're inflating a generic
3055         instance, set `ngclass->context->container = context->container';
3056         ie. the container we inflated into.
3057
3058         * metadata.c (mono_metadata_parse_generic_param): Reflect above
3059         inflate_generic_type() changes.
3060
3061 2004-12-17  Martin Baulig  <martin@ximian.com>
3062
3063         * class-internals.h
3064         (MonoGenericClass): Replaced `MonoType *generic_type' with
3065         `MonoClass *generic_class'.  Removed `dynamic_info'; if
3066         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
3067         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
3068
3069 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
3070
3071         * exception.c (mono_exception_from_token): New helper function.
3072
3073 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
3074
3075         * assembly.c (mono_assembly_load_with_partial_name): Call 
3076         mono_assembly_loaded before invoking the preload hooks. Fixes
3077         #70564.
3078
3079         * object-internals.h (MonoThread): Change culture_info and 
3080         ui_culture_info into an array.
3081
3082         * threads.c: Cache culture info objects from more than one appdomain.
3083
3084         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
3085         current UI culture.
3086
3087 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
3088
3089         * threads.h threads.c appdomain.c: Clear the culture_info field of
3090         all threads during unloading if they point to an object in the dying
3091         appdomain.
3092
3093 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
3094
3095         * culture-info.h (TextInfoEntry): New struct
3096         * object-internals.h: sync with managed
3097         * locales.c: fill the `text_info_data' field
3098         * culture-info-tables.h: update
3099
3100 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
3101
3102         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
3103         collector.
3104
3105 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
3106
3107         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
3108         (ves_icall_ModuleBuilder_getMethodToken): Ditto
3109
3110 2004-12-12  Martin Baulig  <martin@ximian.com>
3111
3112         * mono-debug-debugger.c (write_type): If we're an enum and the
3113         builtin types have already been initialized, call mono_class_init().
3114
3115 2004-12-11  Martin Baulig  <martin@ximian.com>
3116
3117         * metadata.c (mono_metadata_load_generic_params): Added
3118         `MonoGenericContainer *parent_container' argument; automatically
3119         compute `container->is_method'; pass the correct owner to
3120         get_constraints().      
3121
3122         * reflection.c (compare_genericparam): Sort the GenericParam table
3123         according to increasing owners. 
3124
3125 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
3126
3127         * profiler.c: allow disabling the default profiler.
3128
3129 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
3130
3131         * decimal.c, icall.c: allow disabling System.Decimal support.
3132
3133 2004-12-09  Marek Safar <marek.safar@seznam.cz>
3134
3135         * reflection.c: Add support for null attribute arguments.
3136
3137 2004-12-09  Martin Baulig  <martin@ximian.com>
3138
3139         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
3140         names to get rid of compiler warnings.
3141
3142 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
3143
3144         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
3145         mono_marshal_load_type_info (). Fixes #69625.
3146         (mono_marshal_get_ptr_to_struct): Likewise.
3147
3148 2004-12-08  Martin Baulig  <martin@ximian.com>
3149
3150         * mono-debug.h: Bumped version number to 47.
3151
3152         * mono-debug-debugger.c
3153         (mono_debugger_event_handler, mono_debugger_event): Take two
3154         guint64 arguments insteed of a gpointer and a guint32.  
3155
3156 2004-12-08  Martin Baulig  <martin@ximian.com>
3157
3158         * debug-mono-symfile.h
3159         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
3160         `address' to `native_offset'.
3161
3162 2004-12-08  Martin Baulig  <martin@ximian.com>
3163
3164         * class.c (mono_class_create_from_typespec): Only inflate if we
3165         either have `context->gclass' or `context->gmethod'.
3166
3167 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
3168
3169         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
3170
3171         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
3172
3173         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
3174
3175         * reflection.c (mono_assembly_get_object): Remove the workaround put
3176         in for the release.
3177         
3178         * appdomain.c: Use the corlib_internal field from MonoAssembly.
3179
3180         * appdomain.c: Bump corlib version.
3181
3182         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
3183         be visible in other appdomains.
3184
3185 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
3186
3187         * threads.c: Interlocked inc and dec for longs were messed up,
3188         use a KISS based impl for this. Fixes 70234
3189
3190 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
3191
3192         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
3193
3194 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
3195
3196         * icall.c: fix to follow policy not to allow struct
3197         arguments in icalls.
3198
3199 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3200
3201         * process.c: make the patch that handles spaces in file paths work
3202         on mono/windows too.
3203
3204 2004-12-06  Martin Baulig  <martin@ximian.com>
3205
3206         * class.c (mono_class_create_generic): Call
3207         mono_class_setup_supertypes() if we're dynamic.
3208         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
3209
3210 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
3211
3212         * object-internals.h: Add new fields to MonoThread.
3213
3214         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3215
3216         * icall.c threads-types.h threads.c: Add new icalls.
3217
3218         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
3219
3220         * object-internals.h (MonoReflectionAssembly): Sync object layout with
3221         managed side.
3222
3223         * appdomain.c: Bump corlib version.
3224
3225         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
3226         internal assemblies. Fixes #69181.
3227
3228 2004-12-05  Martin Baulig  <martin@ximian.com>
3229
3230         * class.c (mono_class_inflate_generic_signature): Make this a
3231         no-op if `context' is NULL or we don't have any type parameters;
3232         also copy `sentinelpos'.        
3233
3234 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
3235
3236         * image.c: Add unbox_wrapper_cache.
3237
3238         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
3239
3240         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
3241         function generator.
3242         
3243         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
3244         Fixes #70173.
3245
3246         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
3247         
3248 2004-12-04  Martin Baulig  <martin@ximian.com>
3249
3250         * loader.c (mono_method_get_signature_full): New public function;
3251         like mono_method_get_signature(), but with an additional
3252         `MonoGenericContext *' argument.
3253
3254         * class.c (mono_class_inflate_generic_signature): Formerly known
3255         as inflate_generic_signature(); make this public.
3256
3257 2004-12-04  Martin Baulig  <martin@ximian.com>
3258
3259         * metadata.c
3260         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
3261         instead of a `MonoGenericContainer *'.  
3262         (mono_metadata_parse_array_full): Likewise.
3263         (mono_metadata_parse_signature_full): Likewise.
3264         (mono_metadata_parse_method_signature_full): Likewise.
3265         (mono_metadata_parse_generic_inst): Likewise.
3266         (mono_metadata_parse_generic_param): Likewise.
3267         (mono_metadata_parse_mh_full): Likewise.
3268         (mono_type_create_from_typespec_full): Likewise.
3269
3270 2004-12-03  Martin Baulig  <martin@ximian.com>
3271
3272         * class-internals.h (MonoGenericContainer): Replaced the
3273         `MonoGenericContext * pointer with a `MonoGenericContext'
3274         structure and made it the first element.
3275
3276 2004-12-03  Martin Baulig  <martin@ximian.com>
3277
3278         * class.c
3279         (inflate_generic_type): Set the `context->container' when creating
3280         a new MonoGenericContext.
3281         (mono_class_inflate_generic_method): Likewise.
3282         (mono_class_create_from_typespec): Just use `context->container'
3283         to get the container.
3284
3285         * loader.c (method_from_methodspec): Set `context->parent' from
3286         `context->container' - and if that's a method container, use its
3287         parent.  Also set the `context->container' when creating a new
3288         MonoGenericContext.
3289         (mono_get_method_from_token): Use just `context->container' to get
3290         the container.
3291
3292         * metadata.c (do_mono_metadata_parse_generic_class): Also set
3293         `gclass->context->container'.
3294
3295         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
3296         the `context->container' when creating a new MonoGenericContext.
3297
3298 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
3299
3300         * reflection.c (compare_genericparam): Sort params with identical
3301         owner by their number. Fixes gen-111 on sparc.
3302
3303 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
3304
3305         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
3306         around the domain changes.
3307
3308         * appdomain.c (mono_domain_unload): Handle the case when the thread
3309         calling Unload is itself being aborted during unloading. Fixes #70022.
3310
3311         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
3312
3313         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
3314         checkpoint_func as an icall so it gets a wrapper.
3315         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
3316         in the cross-appdomain wrappers too.
3317
3318         * threads.c (mono_thread_has_appdomain_ref): Make this public.
3319
3320         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
3321
3322         * reflection.c: Fix some memory leaks.
3323         
3324 2004-12-02  Martin Baulig  <martin@ximian.com>
3325
3326         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
3327
3328         * metadata.c (generic_class_cache): New static hashtable.
3329         (mono_metadata_lookup_generic_class): New public method.
3330
3331 2004-12-02  Martin Baulig  <martin@ximian.com>
3332
3333         * class.c (mono_class_create_from_typedef): Call
3334         mono_class_setup_parent() and mono_class_create_mono_type() before
3335         parsing the interfaces.
3336
3337 2004-12-02  Martin Baulig  <martin@ximian.com>
3338
3339         * metadata.c (generic_inst_cache): New static hashtable.
3340         (mono_metadata_lookup_generic_inst): New public function.
3341         (mono_metadata_inflate_generic_inst): New public function.
3342         (mono_metadata_parse_generic_inst): New public function.
3343         (do_mono_metadata_parse_generic_class): Use the new
3344         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
3345         since this'll also use the cache.
3346
3347         * reflection.c (mono_reflection_bind_generic_method_parameters):
3348         Use mono_metadata_lookup_generic_inst() to use the new cache.
3349
3350         * class.c (inflate_mono_type): Use
3351         mono_metadata_inflate_generic_inst() to inflate a generic
3352         instance; this'll also use the new cache.
3353
3354         * loader.c (method_from_methodspec): Use
3355         mono_metadata_parse_generic_inst() and
3356         mono_metadata_inflate_generic_inst() rather than parsing it
3357         manually, so we can use the new cache.
3358
3359 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
3360
3361         * threads.c (wait_for_tids): Do not incorrectly free threads when 
3362         the wait times out.
3363
3364 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
3365
3366         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
3367         iter->args based on whether parameters are passed in registers (i.e.
3368         MONO_ARCH_REGPARMS is defined)
3369
3370 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
3371
3372         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
3373         the exception message. Fixes #70070.
3374         (method_from_methodspec): Fix warnings.
3375
3376 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3377
3378         * process.c: (complete_path) return the path quoted
3379
3380 2004-12-01  Martin Baulig  <martin@ximian.com>
3381
3382         * class-internals.h (MonoGenericInst): New structure.
3383         (MonoGenericClass): Replaced `type_argc', `type_argv' and
3384         `is_open' with `MonoGenericInst *inst'.
3385         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
3386         `is_open' with `MonoGenericInst *inst'.
3387
3388 2004-11-30  Martin Baulig  <martin@ximian.com>
3389
3390         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
3391
3392         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
3393         to `generic_class_cache'.
3394
3395         * metadata.c
3396         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
3397         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
3398         (mono_generic_inst_is_valuetype): Renamed to
3399         mono_generic_class_is_valuetype().
3400
3401         * class-internals.h
3402         (MonoGenericInst): Renamed to MonoGenericClass.
3403         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
3404         (MonoClass): Renamed `generic_inst' to `generic_class'.
3405         (MonoGenericContext): Renamed `ginst' to `gclass'.
3406
3407         * object-internals.h
3408         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
3409
3410         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
3411         mono_reflection_generic_class_initialize().
3412
3413         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
3414         now known as "System.Reflection.MonoGenericClass".
3415         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
3416
3417 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
3418
3419         * class-internals.h: Added a flag field to MonoClass to cache the
3420         declarative security attributes actions associated with the class.
3421         * domain-internals.h: Added booleans to MonoJitInfo to cache the
3422         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
3423         applicable to the JITted method.
3424         * reflection.c|h: Added functions to extract (as flags) which security
3425         actions are available (declaratively) for a method, class or assembly.
3426         * metadata.c|h: Added functions to search the declarative security
3427         table in the metadata.
3428         
3429 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
3430
3431         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
3432         EXPORTEDTYPES are already in the class name cache, so there is no
3433         need to add extra code here to look at them. Just removes a bit of
3434         cruft.
3435
3436         (ves_icall_System_Environment_get_TickCount): No need for #if
3437         WINDOWS. We already have the code in io-layer.
3438
3439 2004-11-28  Martin Baulig  <martin@ximian.com>
3440
3441         * loader.c
3442         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
3443         Fixes gen-112.cs.
3444
3445 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
3446
3447         * assembly.c (do_mono_assembly_open): Instead of having a
3448         conditional WITH_BUNDLE, incorporate support for bundles here, by
3449         having a global `bundles' variable holding a pointer to the actual
3450         bundles. 
3451
3452         (mono_register_bundled_assemblies): New API call used by the
3453         bundle code. 
3454
3455         See mkbundle.1 for details.
3456         
3457 2004-11-27  Martin Baulig  <martin@ximian.com>
3458
3459         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
3460         the vtable for generic methods.
3461
3462 2004-11-26  Martin Baulig  <martin@ximian.com>
3463
3464         * metadata.c
3465         (mono_metadata_generic_method_hash): New public function.
3466         (mono_metadata_generic_method_equal): Likewise.
3467
3468         * class-internals.h
3469         (MonoGenericContainer): Added `GHashTable *method_hash'.
3470
3471         * reflection.c (ReflectionMethodBuilder): Added
3472         `MonoGenericContainer *generic_container'.
3473         (reflection_methodbuilder_to_mono_method): Don't create a new
3474         MonoGenericContainer each time we're called.
3475         (mono_reflection_bind_generic_method_parameters): Use
3476         `container->method_hash' to cache the results so we don't create a
3477         different method if we're called several times with the same
3478         arguments.
3479
3480         * loader.c (method_from_methodspec): Use the new
3481         `container->method_hash' here, too.
3482
3483 2004-11-26  Martin Baulig  <martin@ximian.com>
3484
3485         * class.c (inflate_generic_signature): Correctly compute
3486         `res->has_type_parameters'.
3487         (mono_class_vtable): Use the `has_type_parameters' flag to
3488         determine whether we're a generic method.
3489
3490         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
3491
3492 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
3493
3494         * object.c (mono_runtime_run_main): Fix a small memory leak.
3495
3496 2004-11-25  Martin Baulig  <martin@ximian.com>
3497
3498         * class.c (set_generic_param_owner): Fixed the loop.
3499
3500 2004-11-25  Martin Baulig  <martin@ximian.com>
3501
3502         * object.c (mono_class_vtable): Don't create any JIT wrappers for
3503         generic methods.
3504
3505 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
3506
3507         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
3508         names. Fixes #69787.
3509
3510 2004-11-24  Martin Baulig  <martin@ximian.com>
3511
3512         * class.c (mono_class_create_generic_2): If we don't have a
3513         `ginst->parent', inflate `gklass->parent' to get our parent.
3514
3515 2004-11-24  Martin Baulig  <martin@ximian.com>
3516
3517         * reflection.c (compare_genericparam): Correctly sort the
3518         GenericParam table; fixes #69779.
3519
3520 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
3521
3522         * reflection.c: When writing a PE file, don't create a huge
3523         buffer in memory. Just write the arrays we have to the file.
3524         This reduces memory usage.
3525
3526         * metadata-internals.h: MonoDynamicStream pefile is no longer used
3527         globally.
3528
3529 2004-11-17  Martin Baulig  <martin@ximian.com>
3530
3531         * class.c (mono_class_init): Don't setup `class->parent' for
3532         dynamic instances; moved this to mono_class_generic_2().
3533         (mono_class_create_generic): Also set `klass->inited' for dynamic
3534         generic instances.
3535         (mono_class_create_generic_2): Don't do anything for dynamic
3536         generic instances.  Set `klass->parent' here and also call
3537         mono_class_setup_parent() here. 
3538
3539         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
3540         `MonoType *parent' argument; set `ginst->parent' before calling
3541         mono_class_create_generic_2(), so we set the correct parent.
3542
3543 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
3544
3545         * reflection.c: allow getting attributes from ModuleBuilder
3546         (used by ikvm).
3547
3548 2004-11-17  Martin Baulig  <martin@ximian.com>
3549
3550         * class.c (mono_class_create_from_typedef): If a type parameter is
3551         inherited from an outer class, set its owner to that class.
3552
3553 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
3554
3555         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
3556           for (int*) written size. This fixes bug #69592.
3557
3558 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
3559
3560         * icall.c: Added IsAuthenticodePresnet internal call.
3561         * image.c|h: New function that check a MonoImage for an Authenticode
3562         signature in the certificate PE data directory.
3563         * security.c|h: New internal call to ask the runtime if an 
3564         Authenticode signature seems referenced in the PE header.
3565
3566 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
3567
3568         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
3569
3570         * reflection.c (mono_image_create_pefile): Free the assembly streams
3571         after writing out the assembly file.
3572
3573         * object.c (mono_runtime_run_main): Fix small memory leak.
3574
3575         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
3576         property access modifiers. Fixes #69389.
3577
3578 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
3579
3580         * domain.c, object.c, object-internals.h, domain-internals.h,
3581         object.h, marshal.c: keep dynamic code info per domain.
3582
3583 2004-11-15  Martin Baulig  <martin@ximian.com>
3584
3585         * class.c (mono_type_get_name_recurse): Put type arguments in
3586         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
3587         see bug #68387.
3588
3589 2004-11-15  Martin Baulig  <martin@ximian.com>
3590
3591         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
3592         (mono_class_setup_vtable): When computing `the_cname' for a
3593         generic instance, don't include the namespace since we'd otherwise
3594         add it twice.
3595
3596 2004-11-15  Martin Baulig  <martin@ximian.com>
3597
3598         * class.c (mono_class_create_generic): Changed return type to void.
3599         (mono_class_create_generic_2): New public function; setup
3600         `class->method', `class->field' and `class->interfaces' here
3601         instead of in mono_class_init().
3602
3603         * class.h (mono_class_create_generic): Moved to class-internals.h.
3604
3605 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
3606
3607         * reflection.c (mono_image_create_pefile): take a file HANDLE.
3608         rather than writing to memory, write to this file. Right now,
3609         we are just writting into a buffer, and copying that. However
3610         we can avoid the buffer later.
3611
3612         (mono_dynamic_stream_reset): new function
3613
3614         * icall.c, object-internals.h: update for the above.
3615
3616 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
3617
3618         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
3619         have been using gc'd memory. First it is slower, unlikely
3620         the comment in the source code said, secondly, it increases
3621         our footprint to do it in the gc.
3622
3623         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
3624         the method so that it does not have to copy to managed code.
3625
3626 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
3627
3628         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
3629
3630 2004-11-12  Martin Baulig  <martin@localhost>
3631
3632         * reflection.c (mono_image_create_token): Allow generic method
3633         definitions here, since they may appear in an `.override'; see
3634         gen-98/gen-99 for an example.
3635
3636 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
3637
3638         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
3639         #69365.
3640
3641         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
3642         descriptive.
3643
3644 2004-11-11  Martin Baulig  <martin@ximian.com>
3645
3646         * class.c (mono_class_setup_vtable): In an explicit interface
3647         implementation, the method name now includes the arity.
3648
3649 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
3650
3651         * object.c (mono_array_full_copy): Fix warning.
3652
3653 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
3654
3655         * appdomain.c: Removed look_for_method_by_name(). Use the new method
3656         mono_class_get_method_from_name() instead.
3657         
3658         * class-internals.h: Added two new types of wrappers. 
3659         Added MonoRemotingTarget enum. Added new trampoline function type, which
3660         takes an additional MonoRemotingTarget value as parameter, so it is
3661         possible to request a trampoline for a specific target.
3662         
3663         * class.c: Added new mono_class_get_method_from_name() method.
3664         
3665         * class.h: In MonoRemoteClass, we can have now to vtables, one for
3666         general remoting sinks and one specific for cross domain calls.
3667         
3668         * debug-helpers.c: Added new wrapper names.
3669         
3670         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
3671         of a remote class.
3672         
3673         * image.c: Porperly delete value objects form the remoting invoke hashtable.
3674         
3675         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
3676         with several other methods (mono_marshal_get_xappdomain_dispatch,
3677         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
3678         and others) can generate a fast remoting wrapper for cross domain calls.
3679         More information can be found in docs/remoting.
3680         Other changes: Removed mono_find_method_by_name, and used
3681         mono_class_get_method_from_name instead.
3682         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
3683         is stored in the remoting invoke hashtable.
3684         
3685         * marshal.h: published the new method for getting the xdomain wrapper,
3686         and also added a method for getting the adequate wrapper for a given
3687         method and target.
3688         
3689         * object-internals.h, object.c: Added a couple of methods for capying and
3690         cloning arrays.
3691         Modified mono_install_remoting_trampoline, which takes the new remoting
3692         trampoline that has a remoting target as parameter.
3693         mono_class_proxy_vtable now also takes a remoting target as parameter, and
3694         will return the most suitable vtable for the target.
3695         Added mono_remote_class_vtable, which returns the vtable of a remote class
3696         (which can be the normal remoting vtable or the xdomain vtable).
3697         
3698         * threads.c: the xdomain invoke and dispatch wrappers must also be
3699         protected against interruptions.
3700
3701 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3702
3703         * icall.c: use memmove in BlockCopyInternal when the source and
3704         destination arrays are the same.
3705
3706 2004-11-09  Martin Baulig  <martin@ximian.com>
3707
3708         * class-internals.h (MonoGenericContainer): Removed `method' and
3709         `signature', replaced them with `is_method' and `is_signature'
3710         flags.  Added `context'.
3711
3712         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
3713         instead of a `MonoGenericContainer *'.
3714
3715         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
3716         for dynamic type parameters.
3717         (mono_metadata_load_generic_params): Setup `container->context'.
3718
3719         * reflection.c (mono_reflection_setup_generic_class): Setup
3720         `tb->generic_container->context'.
3721         (do_mono_reflection_bind_generic_parameters): Use
3722         mono_class_inflate_generic_type() to correctly inflate types,
3723         rather than using our own hack just for MONO_TYPE_VAR.
3724
3725 2004-11-09  Martin Baulig  <martin@ximian.com>
3726
3727         * class.c (mono_class_inflate_generic_method): Small fix; don't
3728         crash here.
3729
3730         * icall.c
3731         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
3732         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
3733         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
3734         (ves_icall_Type_BindGenericParameters): Likewise.
3735         (ves_icall_Type_get_IsGenericInstance): Likewise.
3736         (ves_icall_Type_GetGenericParameterPosition): Likewise.
3737         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
3738         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3739         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3740
3741 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
3742
3743         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
3744         assembly versions and public key tokens. Fixes #69113.
3745
3746 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
3747
3748         * metadata.c: fix bug introduced with the type cache changes
3749         on 2004-11-06.
3750
3751 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
3752
3753         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
3754         the MonoClass pointer instead of the token in exception clauses.
3755         * reflection.c: updates for the above and make the code not depend
3756         on the structure of MonoExceptionClause.
3757
3758 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
3759
3760         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3761         Add support for dynamic assemblies. Fixes #69114.
3762
3763         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
3764
3765 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
3766
3767         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
3768         since most only those methods use it. the code member of
3769         MonoMethodPInvoke was dead, so that can be removed too. Also,
3770         remove inline_count (again, not used), and move slot so that it
3771         can share bits with some other flags. This saves 8 bytes in the
3772         structure and gives us about 50 kb back for mcs helloworld.cs
3773
3774         * *.[ch]: Do naming changes for the above.
3775
3776         * loader.c (mono_method_get_header): Lazily init the header
3777         on first access.
3778         (mono_get_method_from_token): don't init the header here
3779         (mono_free_method): the header may never be allocated
3780
3781         Overall, this saves 150 kb of unmanaged allocations
3782         for mcs helloworld.cs. That accounts for 10% of the unmanaged
3783         memory at runtime.
3784         
3785         * loader.c, loader.h (mono_method_get_header): new accessor.
3786
3787         * *.[ch]: use the above method. Prepares us to lazily load
3788         the header.
3789
3790         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
3791         three warnings, which are actual bugs (see 69206).
3792
3793         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
3794         unused. Saves a cool 4 bytes / method.
3795
3796 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
3797
3798         * metadata.c (builtin_types): Add types for System.Object here.
3799         (mono_metadata_parse_type_full): Cache MonoType*'s that are
3800         for a class or valuetype from klass->this_arg or klass->byval_arg.
3801
3802         On mcs for a hello world, this gets us down from 21836 MonoType's
3803         to 14560.
3804
3805         (mono_metadata_free_type): Account for the above change.
3806
3807 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
3808
3809         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
3810         exception instead of asserting if name is null.
3811         (ves_icall_System_AppDomain_GetData): Ditto.
3812
3813 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
3814
3815         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
3816         EnumBuilder.
3817
3818         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
3819         Return NULL when the domain does not have entry_assembly set.
3820
3821         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
3822         Add a 'resource_modules' argument.
3823         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
3824
3825         * reflection.c (mono_reflection_create_runtime_class): Move setting
3826         of wastypebuilder here, so mono_get_type_object () returns a MonoType
3827         for enums too.
3828
3829         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
3830         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
3831         Throw an ArgumentNullException if 'ptr' is null.
3832
3833         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
3834         assemblies here. Fixes #69020.
3835
3836 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
3837
3838         * reflection.c (build_compressed_metadata): Fix the previous patch for
3839         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
3840         the stack.
3841
3842 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
3843
3844         * assembly.c (mono_assembly_names_equal): Allow a match if one of
3845         the cultures is false. Fixes #69090.
3846
3847         * reflection.c (build_compressed_metadata): Fix invalid memory read 
3848         detected by valgrind.
3849         
3850         * reflection.c (mono_reflection_get_type): Avoid triggering a 
3851         TypeResolve multiple times for the same type. Fixes #65577.
3852
3853 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
3854
3855         * marshal.c: Avoid using ldftn to call managed functions. It is
3856         much slower than just a call.
3857
3858         * reflection.c (mono_module_get_object): free the basename we
3859         allocate here from glib.
3860         
3861         * reflection.c (ensure_runtime_vtable): make sure to free
3862         overrides.  Also, we were allocating an array of MonoMethod not an
3863         array of MonoMethod*.
3864
3865         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
3866
3867         * image.c (mono_image_close): free image->guid here.
3868
3869 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
3870
3871         * reflection.c: Fix some spec conformance issues with the PE file
3872         structures so mcs compiled apps run on the Net 2.0 beta.
3873
3874 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
3875
3876         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
3877         Implement this. Fixes #67264.
3878
3879         * debug-helpers.h debug-helpers.c marshal.c: Move 
3880         mono_find_method_by_name to debug-helpers.c.
3881
3882 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
3883
3884         * object.c (mono_release_type_locks): type_initialization_hash is
3885         a GHashTable.
3886
3887         * reflection.c object.c object-internals.h: Fix warnings.
3888
3889         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
3890         without accessors. Fixes #61561.
3891
3892         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
3893         application base from the root domain if not set. Fixes #65641.
3894         (mono_runtime_init): Fix warning.
3895
3896 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3897
3898         * appdomain.c: call mono_thread_pool_init.
3899         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
3900         of worker threads based on the number of CPUs and the environment
3901         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
3902         for non-windows (windows) systems.
3903
3904 2004-10-27  Chris Toshok  <toshok@ximian.com>
3905
3906         * mono-debug-debugger.c (write_class): don't call mono_class_init
3907         here, as even with the check for (!klass->init_pending), we get
3908         into a situation where we're hitting cycles in class
3909         initialization.  Fixes #68816.
3910
3911 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
3912
3913         * image.c: Avoid overwriting values in the loaded_images_hash when an
3914         assembly is loaded multiple times. Fixes #61152.
3915
3916         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
3917         so multiple satellite assemblies for the same name can be loaded.
3918         Fixes #68259.
3919
3920         * mono_domain_assembly_preload: Actually return the loaded assembly, 
3921         not NULL.
3922
3923         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
3924         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
3925
3926         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
3927         pending finalizers are not invoked after the appdomain has been 
3928         unloaded. Fixes #67862.
3929
3930 2004-10-22  Martin Baulig  <martin@ximian.com>
3931
3932         * mono-debug-debugger.c
3933         (mono_debugger_runtime_invoke): Don't box valuetypes.
3934
3935 2004-10-22  Chris Toshok  <toshok@ximian.com>
3936
3937         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
3938         don't hide private methods.
3939
3940 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
3941
3942         * icall.c: Allows the runtime to "share" (when known) the public key
3943         token of an assembly. This avoid the need to recalculate the token 
3944         (from the public key) in managed code.
3945
3946 2004-10-21  Chris Toshok  <toshok@ximian.com>
3947
3948         * debug-helpers.c (append_class_name): argh, revert last patch.
3949         
3950 2004-10-21  Chris Toshok  <toshok@ximian.com>
3951
3952         * debug-helpers.c (append_class_name): use '+' as the delimiter,
3953         not '/', so that it matches what the debugger uses to look up
3954         methods.
3955
3956 2004-10-21  Martin Baulig  <martin@ximian.com>
3957
3958         * mono-debug-debugger.c (mono_debugger_throw_exception): New
3959         public method; this is called each time an exception is thrown and
3960         allows the debugger to use exception catch points.
3961
3962 2004-10-21  Martin Baulig  <martin@ximian.com>
3963
3964         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
3965         the stack pointer and the exception object in some struct and pass
3966         that to the debugger.
3967
3968 2004-10-21  Chris Toshok  <toshok@ximian.com>
3969
3970         * mono-debug-debugger.c (do_write_class): add instance/static
3971         event support.  We don't expose "raise" or "other" yet.
3972         (event_is_static): new method.
3973
3974 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
3975
3976         * mono-debug-debugger.c
3977         (mono_debugger_handle_exception): Remove
3978         bogus return value for fussy compilers.
3979
3980 2004-10-20  Martin Baulig  <martin@ximian.com>
3981
3982         * mono-debug-debugger.c
3983         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
3984         (mono_debugger_handled_exception): Likewise.
3985
3986 2004-10-20  Martin Baulig  <martin@ximian.com>
3987
3988         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3989         MONO_DEBUGGER_EVENT_EXCEPTION.
3990
3991         * mono-debug-debugger.c (mono_debugger_handle_exception): New
3992         public function to send the debugger a notification for an
3993         exception and inform it about a catch/finally clause.
3994
3995 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
3996
3997         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
3998         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
3999         fix 2.95 build. 
4000
4001         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
4002
4003 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
4004
4005         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
4006         marshalled as [In,Out]. Fixes #58325.
4007
4008 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
4009
4010         * reflection.c (mono_method_body_get_object): Implement some fields.
4011
4012 2004-10-12  Martin Baulig  <martin@ximian.com>
4013
4014         * reflection.c (mono_reflection_bind_generic_parameters): Small
4015         fix, correctly retrieve our parent from a generic instance.
4016
4017 2004-10-12  Martin Baulig  <martin@ximian.com>
4018
4019         * metadata.c (mono_metadata_generic_param_equal): We always have
4020         an owner.
4021
4022         * class.c
4023         (mono_class_from_generic_parameter): We need to have an owner.
4024         (my_mono_class_from_generic_parameter): Likewise.
4025
4026         * reflection.c (mono_reflection_setup_generic_class): Renamed to
4027         mono_reflection_create_generic_class() and added a new
4028         mono_reflection_setup_generic_class().  
4029         (mono_reflection_initialize_generic_param): If we're a nested
4030         generic type and inherited from the containing class, set our
4031         owner to the outer class.
4032
4033 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
4034
4035         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
4036
4037         * reflection.c (mono_method_body_get_object): New function to create
4038         a MethodBody object.
4039
4040         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
4041
4042 2004-10-11  Martin Baulig  <martin@ximian.com>
4043
4044         * metadata.c (_mono_metadata_type_equal): Renamed to
4045         do_mono_metadata_type_equal() and made static.
4046
4047 2004-10-11  Martin Baulig  <martin@ximian.com>
4048
4049         * appdomain.c: Bump corlib version number to 28.
4050
4051 2004-10-10  Martin Baulig  <martin@ximian.com>
4052
4053         * class-internals.h
4054         (MonoGenericInst): Added `MonoGenericContainer *container'.
4055         (MonoGenericMethod): Likewise.
4056         (MonoGenericContext): Likewise.
4057         (MonoGenericParam): Added `MonoGenericContainer *owner'.
4058
4059         * metadata.c
4060         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
4061         (do_mono_metadata_parse_generic_inst): Likewise.
4062         (mono_metadata_parse_type_full): New public method.  This is the actual
4063         mono_metadata_parse_type() implementation - with an additional
4064         `MonoGenericContainer *' argument.
4065         (mono_metadata_parse_array_full): Likewise.
4066         (mono_metadata_parse_signature_full): Likewise.
4067         (mono_metadata_parse_method_signature_full): Likewise.
4068         (mono_metadata_parse_mh_full): Likewise.
4069         (mono_type_create_from_typespec): Likewise.
4070         (mono_metadata_interfaces_from_typedef_full): New public method;
4071         this is similar to the other _full() methods, but we take a
4072         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
4073         (mono_metadata_parse_generic_param): Take an additional
4074         `MonoGenericContainer *' argument and lookup the MonoGenericParam
4075         from that container.
4076         (mono_metadata_generic_param_equal): New static method to compare
4077         two type parameters.
4078         (_mono_metadata_type_equal): New static method; takes an
4079         additional `gboolean signature_only' argument - if true, we don't
4080         compare the owners of generic parameters.
4081         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
4082         with a TRUE argument - do a signature-only comparision.
4083
4084         * loader.c: Use the new _full() methods and pass the
4085         MonoGenericContainer to them.
4086
4087         * object-internals.h (MonoReflectionTypeBuilder): Added
4088         `MonoGenericContainer *generic_container' field.
4089         (MonoReflectionMethodBuilder): Likewise.
4090
4091 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
4092
4093         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
4094         case initial images of dynamic assemblies.
4095
4096         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
4097
4098         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
4099
4100         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
4101         length of event->other array.
4102         (typebuilder_setup_events): Ditto.
4103
4104         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
4105         'assembly_by_name' and add an 'assemblies' list.
4106
4107         * assembly.h assembly.c: Add a new search hook for determining whenever
4108         an assembly is already loaded. Use this instead of searching in the
4109         loaded_assemblies list.
4110
4111         * domain.c appdomain.c: Implement the new search hook so loaded 
4112         assemblies are now scoped by appdomain. Fixes #67727.
4113
4114 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
4115
4116         * threads.c (mono_thread_attach): Initialize synch_lock field so
4117         mono_thread_detach works again.
4118
4119         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
4120         'lib' too. Fixes #63130.
4121
4122 2004-10-06  Jackson Harper  <jackson@ximian.com>
4123
4124         * culture-info-tables.h: regenerated.
4125
4126 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
4127
4128         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
4129         implemented by other interfaces in the result. Fixes #65764.
4130         
4131         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
4132         Handle unloadable modules without crashing.
4133
4134         * image.c (load_modules): Revert the previous patch since modules must
4135         have a fixed index inside the array.
4136         
4137         * image.c (load_modules): Don't include native modules in the modules
4138         array.
4139
4140 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
4141
4142         * reflection.h: Add param_defaults field.
4143
4144         * reflection.c: Add support for parameter defaults in dynamic methods.
4145         Fixes #64595.
4146
4147         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
4148         an empty string when a type has no namespace. Fixes #64230.
4149
4150 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
4151
4152         * tabledefs.h: Added "internal" security actions to support non-CAS
4153         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
4154         Note: they do not seems to be used anymore in 2.0 (new metadata format)
4155
4156 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
4157
4158         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
4159         constructor of abstract class. Fixes #61689.
4160
4161 2004-10-04  Martin Baulig  <martin@ximian.com>
4162
4163         * class-internals.h (MonoGenericContainer): New type.
4164         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
4165         `MonoGenericContainer *generic_container'.
4166         (MonoClass): Replaced `gen_params' and `num_gen_params' with
4167         `MonoGenericContainer *generic_container'.
4168
4169         * metadata.c (mono_metadata_load_generic_params): Return a
4170         `MonoGenericContainer *' instead of a `MonoGenericParam *';
4171         removed the `num' argument.
4172
4173 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
4174
4175         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
4176         for dynamic images.
4177
4178         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
4179         machine fields.
4180
4181         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
4182
4183         * reflection.c: Save pe_kind and machine values into the generated
4184         image file.
4185
4186         * appdomain.c: Bump corlib version number.
4187
4188         * object-internals.h: Reorganize layout of LocalBuilder.
4189
4190         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
4191         New helper function.
4192
4193         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
4194         created MonoType for dynamic types. Fixes #66180.
4195
4196 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
4197
4198         * threadpool.c: the ares hashtable needs a critical section around it.
4199         this prevents some nasty segfaults
4200
4201 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
4202
4203         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
4204         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
4205         bug 67324).
4206         
4207 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
4208
4209         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
4210         
4211 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
4212
4213         * image.c: Always canonicalize image file names, to avoid loading
4214         the same assembly twice when referenced using a relative path.
4215
4216 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
4217
4218         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
4219
4220         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
4221
4222         * marshal.c: Fix warnings.
4223
4224 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
4225
4226         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
4227         attempting to marshal the delegate_trampoline as the method_addr.
4228         This patch has a static hashtable of marshalled delegates so that 
4229         we can map delegate_trampoline addresses back to delegates.  This
4230         allows a delegate passed to managed code to be passed back into native
4231         code.  Fixes #67039
4232
4233 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
4234
4235         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
4236
4237         * reflection.c (method_encode_code): Align method headers properly.
4238         Fixes #66025.
4239
4240 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
4241
4242         * marshal.c: In the runtime invoke wrapper, reset the abort
4243         exception if it is cached. This avoids the automatic rethrowal of 
4244         the exception after the catch of the wrapper. Also check for pending
4245         interruptions before calling the managed method. This is done using
4246         the new method emit_thread_force_interrupt_checkpoint, since the
4247         normal checkpoint method is ignored when running the invoke wrapper.
4248         * object.c: If the abort exception is rethrown, set the abort_exc
4249         field of the thread, so it will be rethrown aftere every catch.
4250         * threadpool.c: Only run an interruption checkpoint if what has been
4251         requested is a stop of the thread (aborts will be ignored).
4252         * threads.c: By default, a thread will now never be interrumped while
4253         running the runtime invoke wrapper (this ensures that runtime_invoke
4254         will always return to the caller if an exception pointer is provided).
4255         There is a new special method mono_thread_force_interruption_checkpoint()
4256         to force an interruption checkpoint even if running a protected
4257         wrapper, which is used by the same runtime invoke wrapper to do a check
4258         at a safe point.
4259
4260 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
4261
4262         * object.c, object-internals.h: Implemented mono_release_type_locks,
4263         which releases the cctor locks held by a thread.
4264         * threads.c, threads.h: In thread_cleanup, release cctor locks held
4265         by a thread. Added mono_thread_exit() method to be used to safely stop
4266         a thread.
4267
4268 2004-09-28  Raja R Harinath  <rharinath@novell.com>
4269
4270         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
4271         Move null check before dereference.  Avoid indexing beyond the end
4272         of the 'modules' array.
4273
4274 2004-09-28  Raja R Harinath  <rharinath@novell.com>
4275
4276         * metadata-internals.h (MonoImage): Add module_count field.
4277         * image.c (load_modules): Set image->module_count.
4278         (mono_image_load_file_for_image): Use image->module_count.
4279         * reflection.c (mono_image_load_module): Append to image->modules array 
4280         of dynamic assembly.
4281         (mono_module_get_object): Fix loop to actually increment index.
4282         Use image->module_count.
4283         * assembly.c (mono_assembly_load_references): Use image->module_count.
4284         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
4285         Likewise.
4286
4287 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
4288
4289         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
4290         Avoid assert on generic types.
4291
4292 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
4293
4294         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
4295
4296         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
4297
4298         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
4299         function to convert a MarshalSpec structure to its managed counterpart.
4300
4301         * reflection.c: Fix warnings.
4302         
4303         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
4304         field.
4305
4306         * icall.c (mono_create_icall_signature): Fix build.
4307
4308 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
4309
4310         * icall.c: Add MakePointType icall.
4311
4312         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
4313         warnings.
4314
4315 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4316
4317         * threadpool.c: reuse allocated slots in the queue.
4318
4319 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
4320
4321         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
4322
4323         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
4324
4325         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
4326         previous change.
4327
4328         * tabledefs.h: Add constants for pinvoke attributes BestFit and
4329         ThrowOnUnmappableChar.
4330
4331         * icall.c (ves_icall_Type_GetPacking): New icall.
4332
4333 2004-09-24  Martin Baulig  <martin@ximian.com>
4334
4335         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
4336
4337 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4338
4339         * appdomain.c:
4340         (mono_domain_set): allow setting a domain that is being unloaded.
4341         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
4342         being unloaded.
4343
4344 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
4345
4346         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
4347         the GetCustomAttributes icall.
4348
4349 2004-09-23  Martin Baulig  <martin@ximian.com>
4350
4351         * object-internals.h (MonoReflectionGenericParam): Replaced
4352         'has_ctor_constraint', `has_reference_type' and `has_value_type'
4353         with `guint32 attrs'.
4354
4355 2004-09-23  Martin Baulig  <martin@ximian.com>
4356
4357         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
4358
4359 2004-09-23  Martin Baulig  <martin@ximian.com>
4360
4361         * object-internals.h (GenericParameterAttributes): New enum.
4362
4363 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
4364
4365         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
4366         
4367         * class.c (init_events): Fill out event->other field.
4368
4369         * class.c: Fix warnings.
4370
4371         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
4372
4373 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
4374
4375         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
4376         walk which doesn't supply the IL offset.
4377
4378 2004-09-22  Martin Baulig  <martin@ximian.com>
4379
4380         * reflection.c (mono_reflection_setup_internal_class): If we're
4381         System.ValueType, System.Object or System.Enum, set
4382         `klass->instance_size' and create the vtable.
4383         (mono_reflection_create_internal_class): If we're an enum type,
4384         get the base class from our current corlib.
4385
4386 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
4387
4388         * reflection.h (MonoResolveTokenError): New type.
4389
4390         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
4391         icall.
4392
4393         * icall.c: Add an 'error' argument to the ResolveToken icalls.
4394
4395 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
4396
4397         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
4398         Support also calling constructors, but only for already allocated objects.
4399
4400 2004-09-17  Geoff Norton <gnorton@customerdna.com>
4401
4402         * reflection.c (type_get_qualified_name): If the klass is null
4403         return the typename to avoid a NullRefEx.
4404         (encode_cattr_value): Get the qualified name of the boxed type,
4405         not the underlying enumtype.  Fixes #62984.
4406
4407 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
4408
4409         * marshal.c: Fix problems with previous checkin.
4410
4411 2004-09-21    <vargaz@freemail.hu>
4412
4413         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
4414         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
4415
4416         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
4417
4418 2004-09-21  Geoff Norton <gnorton@customerdna.com>
4419
4420         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
4421         should only return a type for pointers, arrays, and passbyref types.
4422         Fixes bug #63841.
4423
4424 2004-09-21  Martin Baulig  <martin@ximian.com>
4425
4426         * domain.c (mono_debugger_check_runtime_version): New public
4427         function.
4428
4429         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
4430
4431 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
4432
4433         * reflection.c: Added missing sort to the declarative security 
4434         attributes table. MS implementation stops seeing the attributes if the
4435         token number regress in the table (as shown by ildasm and permview).
4436
4437 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
4438
4439         * object-internals.h (MonoReflectionModule): Add 'token' field.
4440         
4441         * reflection.c (mono_reflection_get_token): Add support for Module
4442         and Assembly.
4443         (mono_module_get_object): Set 'token' field.
4444         (mono_module_file_get_object): Set 'token' field.
4445
4446         * icall.c: Add new Assembly and Module icalls.
4447
4448         * appdomain.c: Bump corlib version.
4449
4450 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
4451
4452         * loader.h loader.c class.h class.c: Add helper functions for obtaining
4453         tokens of metadata objects.
4454
4455         * reflection.h reflection.c (mono_reflection_get_token): New function
4456         to obtain the token of a metadata object.
4457
4458         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
4459
4460 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
4461
4462         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
4463         
4464         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
4465
4466 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
4467
4468         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
4469         * object-internals.h: Added 3 MonoArray* members to MonoReflection
4470         AssemblyBuilder to access the permissions set in the class lib.
4471         * reflection.c: Added security attributes encoding step in 
4472         mono_image_build_metadata.
4473         * tabledefs.h: Added new security actions defined in 2.0:
4474         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
4475
4476 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
4477
4478         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
4479         macro parameter.
4480
4481 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
4482  
4483         * locales.c: nullify the ICU_collator member of CompareInfo when it is
4484           finalized. There where random SIGSEVs at program termination, when
4485           an object being finalized was trying to do a string comparison and
4486           the current culture was already finalized.
4487  
4488 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4489
4490         * threads.c: call thread_cleanup before finishing the thread if we get
4491         there.
4492
4493 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
4494
4495         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
4496         assemblies from the parent. Fixes #65665.
4497
4498 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
4499
4500         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
4501         modifiers.
4502
4503 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
4504
4505         * reflection.h: add prototype for mono_get_dbnull_object
4506         * reflection.c: add prototypes for get_default_param_value_blobs 
4507         and mono_get_object_from_blob for fussier compilers
4508
4509 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
4510  
4511         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
4512         false deadlock checks in class initialization.
4513  
4514 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
4515
4516         * image.c (mono_image_addref): Fix comment.
4517
4518         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
4519         possible.
4520
4521 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
4522
4523         * reflection.c (mono_param_get_objects): Modified to return
4524         ParameterInfo.DefaultValue object.
4525
4526         (get_default_param_value_blobs):
4527         (mono_get_object_from_blob):
4528         (mono_get_dbnull_object): New helper routines. 
4529
4530         * object.c (mono_get_constant_value_from_blob): New helper routine
4531         carved out from get_default_field_value ()
4532
4533         * object-internals.h (mono_get_constant_value_from_blob): Added
4534         function declaration.
4535
4536 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
4537
4538         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
4539         referenced assemblies. Fixes #62135.
4540
4541         * exception.h exception.c (mono_get_exception_file_not_found2): New
4542         helper function.
4543
4544 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
4545
4546         * class.h class.c: Add mono_type_get_underlying_type ().
4547
4548 2004-09-09  Geoff Norton <gnorton@customerndna.com>
4549
4550         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
4551         Fix GetTypes() to support dynamically created assemblies.
4552
4553 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
4554
4555         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
4556         
4557         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
4558         previous patch.
4559
4560         * reflection.h reflection.c loader.c: Allow dynamic construction of
4561         pinvoke methods. Fixes #65571.
4562         
4563         * reflection.c (mono_reflection_get_type): Revert previous change since
4564         it causes regressions.
4565
4566 2004-09-08  Martin Baulig  <martin@ximian.com>
4567
4568         * class.c (class_compute_field_layout): Don't call
4569         mono_class_layout_fields() for open generic instances.
4570
4571 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
4572         * threads.c appdomain.c: fix typo in GC macro
4573
4574 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4575
4576         * threads.c: don't call mono_thread_detach() in start_wrapper(),
4577         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
4578
4579 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
4580
4581         * image.c (mono_image_close): Applied patch from 
4582         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
4583         assembly is loaded multiple times from data.
4584         
4585         * image.c (mono_image_open): Fix warning.
4586
4587 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
4588
4589         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
4590         once. Fixes #58334.
4591         
4592         * reflection.c (mono_reflection_create_runtime_class): Initialize
4593         klass->nested_classes. Fixes #61224.
4594
4595 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
4596
4597         * threads.c: sched_yield() on exit, to allow threads to quit.
4598
4599 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
4600
4601         * object.c (mono_unhandled_exception): Remove leftover debug code.
4602
4603 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
4604
4605         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
4606
4607 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
4608
4609         * marshal.c (emit_marshal_array): Really null terminate string arrays.
4610         
4611         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
4612
4613 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
4614
4615         * marshal.c (emit_marshal_array): Null terminate string arrays.
4616         
4617         * marshal.c (raise_auto_layout_exception): Fix warning.
4618
4619         * reflection.c (mono_param_get_objects): Initialize the default value
4620         with DBNull.Value, not null. Fixes #62123.
4621
4622 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
4623
4624         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
4625         throw an exception with a cute explanation.
4626
4627 2004-09-06  Dick Porter  <dick@ximian.com>
4628
4629         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
4630         Close the new process's thread handle, as we don't use it.  The
4631         handle stays around forever otherwise.
4632
4633 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
4634
4635         * object.c (arith_overflow): Fix warning.
4636
4637         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
4638         calling conventions in method refs. Fixes #65352.
4639
4640         * reflection.c: Fix warnings.
4641
4642 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
4643
4644         * icall.c: Add a new icall for Array.Clear
4645
4646 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
4647
4648         * object.c: When allocating an array, we have to throw
4649         an overflow exception if any of the lengths are < 0.
4650
4651 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
4652
4653         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
4654         properly. Also move implementation of string array marshalling to 
4655         managed code. Fixes #42316.
4656
4657 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4658
4659         * assembly.c: provide more information when loading an assembly fails.
4660
4661 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4662
4663         * filewatcher.c: don't expect the development fam package to be
4664         installed.
4665
4666 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
4667
4668         * marshal.c: Make a copy of the signature cookie since it will be
4669         freed by the caller.
4670         
4671         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
4672
4673         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
4674
4675         * metadata.c (mono_metadata_free_marshal_spec): New function to free
4676         marshal specs.
4677
4678         * marshal.c: More refactoring.
4679         
4680         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
4681         smaller functions.
4682
4683 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
4684
4685         * object.c: In mono_message_invoke, fill the output parameter array after
4686           calling the managed method (it was done before the call). This fixes
4687           bug #59299.
4688
4689 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
4690
4691         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
4692         as well.
4693
4694 2004-09-02  Martin Baulig  <martin@ximian.com>
4695
4696         * class.c (mono_class_instance_size): Don't allow generic type
4697         definitions or open generic instances.
4698         (mono_class_array_element_size): If we're a value type, call
4699         mono_class_instance_size() on the original class.
4700
4701         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
4702         handle generic instances.
4703
4704         * mono-debug-debugger.c (write_type): Handle generic instances
4705         like classes.
4706
4707 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
4708
4709         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
4710         the allocation request fails. Fixes #65089.
4711
4712         * object.c (mono_runtime_free_method): Do not call mono_free_method.
4713         
4714         * object.c (mono_runtime_free_method): New function to free a dynamic
4715         method.
4716
4717         * marshal.c (mono_delegate_free_ftnptr): New function to free the
4718         delegate trampoline.
4719
4720         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
4721         with hasthis as dynamic,
4722
4723         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
4724
4725         * domain.c (mono_jit_info_table_remove): New function to remove an
4726         entry from the jit info table.
4727
4728         * class-internals.h (MonoMethod): Add 'dynamic' field.
4729
4730         * loader.c: Fix warnings.
4731
4732 2004-09-01  Martin Baulig  <martin@ximian.com>
4733
4734         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
4735         instead of mono_debugger_lock() because the latter one is a no-op
4736         unless running in the debugger.
4737
4738 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
4739
4740         * class.c (class_compute_field_layout): Classes with auto-layout or
4741         reference fields are not blittable.
4742         
4743 2004-09-01  Dick Porter  <dick@ximian.com>
4744
4745         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
4746         mono_image_get_filename() to get the assembly location.
4747
4748         * icall.c:
4749         * metadata.h: Fix compile warnings
4750
4751 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
4752
4753         * class.c (class_compute_field_layout): System.Object is blittable.
4754
4755         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
4756         as in/out. Fixes #59909.
4757
4758 2004-09-01  Martin Baulig  <martin@ximian.com>
4759
4760         * metadata.h (MONO_TYPE_ISREFERENCE): Call
4761         mono_metadata_generic_inst_is_valuetype() if we're a generic
4762         instance to check whether our underlying type is a reference type.
4763
4764 2004-09-01  Martin Baulig  <martin@ximian.com>
4765
4766         * metadata.c (mono_type_size): If we're a generic instance, call
4767         mono_class_value_size() for value types.
4768
4769 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
4770
4771         * marshal.c: Implement more custom marshalling functionality. Fixes
4772         #64915.
4773
4774 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
4775
4776         * mono-debug.c, debug-mono-symfile.c: add some locking love.
4777
4778 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
4779
4780         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
4781
4782         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
4783
4784         * icall.c: Fix some warnings.
4785
4786         * threads.c (abort_appdomain_thread): Fix unref errors.
4787         (mono_thread_current): Fix THREAD_DEBUG define.
4788
4789 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
4790
4791         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
4792
4793         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
4794
4795 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
4796
4797         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
4798         string arrays.
4799
4800 2004-08-28  Martin Baulig  <martin@ximian.com>
4801
4802         * metadata.c
4803         (mono_metadata_generic_inst_is_valuetype): New public function.
4804
4805         * metadata.h (MONO_TYPE_ISSTRUCT): Call
4806         mono_metadata_generic_inst_is_valuetype() if we're a generic
4807         instance to check whether our underlying type is a valuetype.
4808
4809 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
4810
4811         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
4812         #63768.
4813
4814 2004-08-25  Martin Baulig  <martin@ximian.com>
4815
4816         * loader.c (mono_get_method_from_token): Abstract methods can also
4817         be generic and thus have type parameters.
4818
4819         * metadata-internals.h
4820         (MonoDynamicImage): Added `GPtrArray *gen_params'.
4821
4822         * reflection.c (mono_image_get_generic_param_info): Don't create a
4823         metadata row, just add an entry to the `gen_params' array.
4824         (build_compressed_metadata): Sort the `gen_params' array and then
4825         actually create the metadata.
4826
4827 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4828
4829         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
4830
4831 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
4832
4833         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
4834
4835 2004-08-24  Martin Baulig  <martin@ximian.com>
4836
4837         * class.cs (mono_class_is_subclass_of): Like an interface, a
4838         generic instance also derives from System.Object.
4839
4840 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
4841
4842         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
4843         custom modifiers to be in any order. Fixes #61990.
4844
4845 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
4846
4847         * object.c: Register mono_object_new_fast icall.
4848         
4849         * object.c (mono_class_get_allocation_ftn): Return to calling
4850         mono_object_new_fast, since it seems faster to compute the object 
4851         size in unmanaged code than passing it as a parameter.
4852
4853         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
4854
4855         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
4856         this function with Boehm as the oom handler, so we don't have to check
4857         the result of GC_malloc.
4858
4859         * object.c: Remove checks for oom.
4860
4861         * object.h object.c (mono_class_get_allocation_ftn): New function to
4862         return the icall which can be used to allocate an instance of a given
4863         class. 
4864
4865         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
4866
4867         * class-internals.h: Add 'enabled' field.
4868
4869 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
4870
4871         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
4872
4873 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
4874         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
4875         value 0x0010.
4876
4877 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
4878
4879         * appdomain.c: use the Tls function for appdomain too,
4880         at Zoltan's request. Actually return in mono_context_get
4881
4882         * appdomain.c, profiler.c, threads.c: use __thread
4883
4884 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
4885
4886         * appdomain.c threads.c: Call GC_CreateThread on windows.
4887
4888         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
4889         multiple libraries since this don't work on windows.
4890
4891 2004-08-18  Martin Baulig  <martin@ximian.com>
4892
4893         * class-internals.h
4894         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
4895         MonoMethodHeader.
4896
4897         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
4898         MonoMethodNormal since we also need it for abstract and interface
4899         methods.
4900
4901         * reflection.c
4902         (build_compressed_metadata): Sort the GenericParam table.
4903         (mono_image_create_token): Added `gboolean create_methodspec'
4904         argument; this is false when generating a MethodImpl token.
4905         (reflection_methodbuilder_to_mono_method): Abstract and interface
4906         methods may also have generic parameters.
4907
4908 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
4909
4910         * appdomain.c: thread local alloc
4911
4912 2004-08-17  Martin Baulig  <martin@ximian.com>
4913
4914         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
4915
4916         * icall.c
4917         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
4918         argument.
4919
4920         * class.c (mono_type_get_full_name): New public function.
4921         (mono_type_get_name): Don't include the type arguments.
4922
4923 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
4924
4925         * Makefile.am: Build static versions of libmetadata and libmonoruntime
4926         for inclusion into the mono executable.
4927
4928 2004-08-16  Martin Baulig  <martin@ximian.com>
4929
4930         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
4931         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
4932
4933 2004-08-14  Martin Baulig  <martin@ximian.com>
4934
4935         * class.c (dup_type): Also copy the `byref' field.
4936
4937 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
4938
4939         * reflection.c (create_dynamic_mono_image): Revert the last change 
4940         since it breaks bootstrap.
4941
4942 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
4943
4944         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
4945
4946         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
4947         not free them with g_free.
4948
4949 2004-08-11  Martin Baulig  <martin@ximian.com>
4950
4951         * reflection.c (mono_reflection_setup_internal_class): Also call
4952         mono_class_setup_mono_type() if we already have a `tb->type.type'.
4953
4954 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
4955
4956         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
4957         called during default (first) AppDomain creation. Keep track of
4958         Evidence when loading assemblies.
4959
4960 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
4961
4962         * opcodes.c, opcodes.h: reduce runtime relocations.
4963
4964 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
4965
4966         * culture-info.h, locales.c: fixes and chages to sue the new
4967         optimized format of the locale data.
4968         * culture-info-tables.h: regenerated.
4969
4970 2004-08-06  Geoff Norton <gnorton@customerdna.com>
4971         
4972         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
4973
4974 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
4975
4976         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
4977         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
4978         * domain-internals.h: icall declaration.
4979         * icall.c: icall registration.
4980         * object-internals.h: New fields in MonoAssembly for CAS.
4981
4982 2004-08-05  Duncan Mak  <duncan@ximian.com>
4983
4984         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
4985         CEE_LDELEM_ANY.
4986
4987 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
4988
4989         * reflection.c: fix to deal with object[] arrays in custom ctors
4990         (bug #62550).
4991
4992 2004-08-05  Martin Baulig  <martin@ximian.com>
4993
4994         * class.c (mono_class_array_element_size): Added support for
4995         generic instances and correctly handle "recursive" types.
4996
4997 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
4998
4999         * assembly.c: Fix warnings.
5000
5001 2004-08-04  Martin Baulig  <martin@ximian.com>
5002
5003         * class.c
5004         (mono_type_get_name_recurse): Added `gboolean include_arity'
5005         argument specifying whether or not we should include the generic
5006         arity in the type name.
5007         (_mono_type_get_name): New static function.
5008         (mono_class_setup_vtable): If we're a generic instance, don't
5009         include the generic arity in the names of explicit method
5010         implementations.        
5011
5012 2004-08-03  Martin Baulig  <martin@ximian.com>
5013
5014         * class.c (mono_type_get_name_recurse): Enclose the generic type
5015         arguments in `<', '>'.
5016
5017 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
5018
5019         * gc.c: make GC warning messages use the trace API, they are just
5020         noise to most of the users.
5021
5022 2004-08-03  Martin Baulig  <martin@ximian.com>
5023
5024         * debug-mono-symfile.c (read_string): Correctly read the string.
5025
5026 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
5027
5028         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
5029         
5030         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
5031         icalls.
5032         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
5033
5034 2004-07-30  Martin Baulig  <martin@ximian.com>
5035
5036         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
5037         Reflect latest symbol writer changes.   
5038
5039 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
5040
5041         * object.c: always create an object if null is passed
5042         to Invoke() where a valuetype is expected.
5043
5044 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
5045
5046         * marshal.c (mono_marshal_init): make managed
5047         signatures match native ones better for 64bits.
5048
5049 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5050
5051         * appdomain.c: hack to build correctly the private bin path on windows.
5052         Fixes bug #61991.
5053
5054 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
5055
5056         * assembly.c: Load mscorlib from the correct framework directory
5057           (mono/<version>/mscorlib.dll).
5058         * appdomain.h: Added prototypes for new functions.
5059         * internals.h: Added some prototypes.
5060         * domain.c: When initializing the runtime, get from the executable and
5061           the configuration files the runtime version that the app supports.
5062           Added support methods for reading app.exe.config. Added list of versions
5063           supported by the JIT. Added two new methods: mono_init_from_assembly,
5064           which initializes the runtime and determines the required version from
5065           the provided exe file, and mono_init_version, which initializes
5066           the runtime using the provided version.
5067         * icall.c: Get machine.config from version-specific directory.
5068         * reflection.c: When generating an image, embed the version number
5069           of the current runtime.
5070
5071 2004-07-28  Dick Porter  <dick@ximian.com>
5072
5073         * socket-io.c
5074         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
5075         returned sockaddr size before creating the remote address object.
5076         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
5077         61608.
5078
5079 2004-07-28  Dick Porter  <dick@ximian.com>
5080
5081         * locales.c (string_invariant_compare_char): Fix invariant char
5082         compares between upper and lower cases.  Fixes bug 61458.
5083
5084 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
5085         
5086         * marshal.c: actually cache stelem.ref wrappers.
5087         
5088 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
5089
5090         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
5091         sections and remove the mono_cli_rva_map () function.
5092
5093 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
5094
5095         * debug-mono-symfile.c: fix one more endianess issue, from a patch
5096         by Geoff Norton (<gnorton@customerdna.com>).
5097
5098 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
5099
5100         * class.c: fix class loads for pointer types (typeof(int) !=
5101         typeof(int*)).
5102
5103 2004-07-27  Martin Baulig  <martin@ximian.com>
5104
5105         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
5106         reading the debugging information from an external ".mdb" file.
5107
5108 2004-07-24  Martin Baulig  <martin@ximian.com>
5109
5110         * reflection.c (mono_image_get_type_info): Only write a class
5111         layout entry if we actually have a size or a packing size.
5112
5113 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
5114
5115         * reflection.c (type_get_fully_qualified_name): 
5116         insert cast to get type checking of ?: with non-gcc compilers
5117
5118 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
5119
5120         * rand.c: use g_getenv for both lookups of
5121         MONO_EGD_SOCKET
5122
5123 2004-07-17  Martin Baulig  <martin@ximian.com>
5124
5125         * reflection.c (mono_reflection_bind_generic_method_parameters):
5126         Set `gmethod->reflection_info'.
5127
5128 2004-07-17  Martin Baulig  <martin@ximian.com>
5129
5130         * class.c (mono_class_create_from_typedef): Insert the newly
5131         created class into the hash table before computing the interfaces
5132         since we could be called recursively.
5133
5134 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
5135
5136         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
5137         function to implement stelem.ref in managed code
5138         * class-internals.h, debug-helpers.c: a new wrapper type
5139         for the above.
5140
5141 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
5142
5143         * gc.c: allow GC handles to work even when no GC is compiled in.
5144         Fix part of bug #61134 (GetAddrOfPinnedObject).
5145
5146 2004-07-13  Peter Williams  <peter@newton.cx>
5147  
5148         * process.c (complete_path): Make sure we don't attempt to execute
5149         directories.
5150  
5151 2004-07-12  Geoff Norton <gnorton@customerdna.com>
5152
5153         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
5154           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
5155           and will add/subtract the hour if needed
5156
5157 2004-07-12  Martin Baulig  <martin@ximian.com>
5158
5159         * reflection.c (mono_field_get_object): If we have
5160         `field->generic_info', take the attributes from
5161         `field->generic_info->generic_type'.    
5162
5163 2004-07-12  Martin Baulig  <martin@ximian.com>
5164
5165         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
5166         This function must be called before initializing the runtime.
5167         (mono_debug_init_1): New function; call this after initializing
5168         the runtime, but before loading the assembly.  It tells the
5169         debugger to load corlib and the builtin types.
5170
5171         * mono-debug-debugger.c: Did some larger changes in the debugging
5172         code; support recursive class declarations, make sure we actually
5173         add all classes.
5174
5175 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5176
5177         * debug-helpers.c: undo my previous patch and fixed the real issue in
5178         ../mini/exceptions-x86.c
5179
5180 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5181
5182         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
5183         when no HOME env. variable was set and a NullRef was thrown in a .cctor
5184         called from other .cctors.
5185
5186 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
5187
5188         * loader.c: Removed the mono_loader_wine_init hack now that we are
5189         doing a managed version of Windows.Forms.
5190
5191 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
5192
5193         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
5194         threadpool.c, threads.c: remove static data from rootset.
5195
5196 2004-07-09  Dick Porter  <dick@ximian.com>
5197
5198         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
5199         Don't do any more processing if the matched length was 0.  It was
5200         increasing the size of the string before.  Fixes bug 61167.
5201
5202 2004-07-09  Dick Porter  <dick@ximian.com>
5203
5204         * socket-io.h:
5205         * socket-io.c
5206         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5207         Add support for SO_PEERCRED if its available.
5208
5209 2004-07-09  Peter Bartok <pbartok@novell.com>
5210         * loader.c: winelib.exe.so error message is now only displayed if
5211         MONO_DEBUG is set. To help us avoid questions when people are trying
5212         out the new Managed.Windows.Forms.
5213
5214 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
5215
5216         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
5217         for isinst and castclass wrappers.
5218
5219         * class-internals.h icall.c: Move registration and lookup of JIT icalls
5220         to libmetadata from the JIT, so they could be used by the marshalling
5221         code and the interpreter.
5222
5223         * marshal.c: Register marshalling related JIT icalls here instead of
5224         in mini.c. Use CEE_MONO_ICALL instead of the family of 
5225         CEE_MONO_PROC<x> opcodes to call marshalling functions.
5226
5227         * metadata.h: Remove unneeded marshalling conversions.
5228
5229         * opcodes.c: Update for new opcodes.
5230         
5231 2004-07-08  Martin Baulig  <martin@ximian.com>
5232
5233         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
5234         (mono_debug_get_domain_data): Make this function static.
5235
5236 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
5237
5238         * gc.c, object.h: add nice GC handle API for embedders.
5239
5240 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
5241
5242         * reflection.c: more changes for the new api
5243
5244         * object.c: When we reflect on a field w/ a constant value, it
5245         will not have a memory location, so we must access metadata. Also,
5246         allow easier reading of strings so that we can read them from
5247         the constant data.
5248
5249         * class.c (mono_class_layout_fields): no need for literal fields here.
5250
5251         * class-internals.h: api changes for const fields
5252
5253         * icall.c (ves_icall_get_enum_info): use new apis for const fields
5254
5255 2004-07-06  Martin Baulig  <martin@ximian.com>
5256
5257         * mono-debug.h: Increment version number to 44.
5258
5259         * mono-debug.c (mono_debug_add_wrapper): The second argument is
5260         now a gpointer, rewrote this whole method.
5261
5262         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
5263         function.  Add information about the wrapper in a new "misc table".
5264
5265         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
5266         for the new misc table.
5267
5268 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
5269
5270         * metadata-internals.h image.c: Add a cache for helper signatures.
5271
5272         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
5273
5274 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
5275
5276         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
5277         delegates from a delegate. Fixes #61033.
5278         
5279         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
5280         marshalling of stringbuilder arrays. Fixes #59900.
5281
5282 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
5283
5284         * icall.c: Add EnumBuilder:setup_enum_type icall.
5285
5286 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
5287
5288         * icall.c: Added a new icall for the property version of
5289         OffsetOfStringData.
5290
5291 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
5292
5293         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
5294         it has a constant size across platforms.
5295
5296         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
5297         stack trace.
5298
5299 2004-06-29  Martin Baulig  <martin@ximian.com>
5300
5301         * mono-debug.c (mono_debug_add_method): Protect the whole function
5302         in mono_debugger_lock(), not just parts of it.
5303
5304 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
5305
5306         * reflection.c: make sure padding bytes in heaps are zeroed.
5307
5308 2004-06-24  David Waite  <mass@akuma.org>
5309
5310         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
5311         image.c, loader.c, locales.c, marshal.c, metadata.c,
5312         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
5313         string-icalls.c, threads.c: change to C90-style comments from C99 /
5314         C++ -style
5315
5316 2004-06-24  Dick Porter  <dick@ximian.com>
5317
5318         * threads.c
5319         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
5320         return createdNew.  Fixes bug 60412.
5321
5322         * threads-types.h: 
5323         * icall.c: Add createdNew parameter to CreateMutex icall
5324
5325 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
5326
5327         * reflection.c, object-internals.h: save default value in params.
5328
5329 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5330
5331         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
5332         no need to build a new path combining that with the application base.
5333         Fixes bug #60442.
5334
5335 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
5336
5337         * reflection.c: fixed minor standard compliance issues.
5338
5339 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
5340
5341         * reflection.c: fixed issue with encoding some custom attributes
5342         (arrays in properties and fields, bug #60411).
5343
5344 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5345
5346         * reflection.c: fix start address when copying the public key token.
5347
5348 2004-06-23  Martin Baulig  <martin@ximian.com>
5349
5350         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
5351         the `exc' object in a static object to put it into the GC's root set.
5352
5353 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
5354
5355         * reflection.c: make mono_reflection_setup_internal_class ()
5356         callable a second time to setup a new parent class.
5357
5358 2004-06-23  Dick Porter  <dick@ximian.com>
5359
5360         * threads.c: Check for WAIT_IO_COMPLETION return values.
5361
5362 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
5363
5364         * appdomain.c: Removed the g_free on the public key token. Now copy 
5365         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
5366         * assembly.c: Added public key token string value when loading 
5367         assemblies. Fix bug #60439.
5368         * icall.c: Added missing informations (like public key) in 
5369         GetReferencedAssemblies. Fix #60519.
5370         * image.h: Changed definition for public key token from const char*
5371         public_tok_value to guchar public_key_token [17];
5372         * reflection.c: Updated for changes to public key token.
5373
5374 2004-06-22  Lluis Sanchez Gual
5375
5376         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
5377         for the field in base classes.
5378
5379 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
5380
5381         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
5382         mark headers as not supported, they are installed only for use by the
5383         debugger.
5384
5385 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
5386
5387         * *.c, *.h: avoid namespace pollution in public headers.
5388
5389 2004-06-21  Martin Baulig  <martin@ximian.com>
5390
5391         * exception.c (mono_get_exception_security): It's in
5392         "System.Security", not in "System".
5393
5394         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
5395         the exception classes.
5396
5397 2004-06-21  Martin Baulig  <martin@ximian.com>
5398
5399         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
5400         Protect the exception object from being finalized.
5401
5402 2004-06-21  Martin Baulig  <martin@ximian.com>
5403
5404         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
5405         public function.
5406
5407 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
5408
5409         * reflection.c: Load the assembly in mono_reflection_type_from_name,
5410         if it was not loaded before. Fix parts of #60439.
5411
5412 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
5413
5414         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
5415         code that was broken since Ben's change: wrappers are now
5416         dependent on the method signature only again.
5417
5418 2004-06-21  Martin Baulig  <martin@ximian.com>
5419
5420         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
5421         added interface support.
5422
5423 2004-06-21  Martin Baulig  <martin@ximian.com>
5424
5425         * class.c (mono_vtable_get_static_field_data): New public method.
5426
5427 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
5428
5429         * filewatcher.c : Windows build fix to be compliant with API changes.
5430
5431 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
5432
5433         * class.h, class.c: more accessors.
5434         * metadata.h, metadata.c: prepare for hiding MonoType and
5435         MonoMethodSignature: people should use the accessors from now on
5436         outside of the tree.
5437
5438 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
5439
5440         * *.c, *.h: more API cleanups.
5441
5442 2004-06-18  Jackson Harper  <jackson@ximian.com>
5443
5444         * assembly.c: Trace loading assemblies.
5445         * loader.c: Trace loading native libraries.
5446         * mono-config.c: Trace loading config files.
5447         
5448 2004-06-18  Dick Porter  <dick@ximian.com>
5449
5450         * locales.c: Tell ICU the lengths of strings, it can cope with
5451         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
5452
5453 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
5454
5455         * image.c: swapped name/filename;
5456
5457 2004-06-18  Martin Baulig  <martin@ximian.com>
5458
5459         * mono-debug-debugger.c (write_class): Write the parent class at
5460         the end of the header.
5461
5462 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
5463
5464         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
5465
5466 2004-06-17  Raja R Harinath  <rharinath@novell.com>
5467
5468         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
5469         (bundle_obj): New conditional define.
5470         (BUILT_SOURCES): Remove.
5471         ($(bundle_srcs)): Make parallel-make safe.
5472         (libmonoruntime_la_LIBADD): Make unconditional.
5473         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
5474         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
5475
5476 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
5477
5478         * culture-info-tables.h: It was inconsistent with the latest
5479           supp info files.
5480
5481 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
5482
5483         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
5484         be loaded.
5485
5486         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
5487         with gcc 2.95.
5488
5489 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
5490
5491         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
5492         cleaned up public header threads.h.
5493
5494 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
5495
5496         * Makefile.am, *.c, *.h: more API cleanups.
5497
5498 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
5499
5500         * Makefile.am: removed monosn from compilation.
5501         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
5502         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
5503         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
5504         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
5505         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
5506         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
5507
5508 2004-06-15  Jackson Harper  <jackson@ximian.com>
5509
5510         * assembly.c: Make locales lower case when searching the GAC for
5511         assemblies. gacutil will always make locales lowercase when
5512         installing so this effectively makes them case insensitive.
5513         
5514 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
5515
5516         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
5517         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
5518           parameter which allows to choose whether the wait can be interrupted or 
5519           not. Also added the method mono_monitor_enter(), which locks the monitor
5520           using an infinite wait and without allowing interruption.
5521           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
5522           interrupted.
5523         * object.h: Added new fields in MonoThread. suspend_event holds the event
5524           used to susped/resume the thread. synch_lock is the lock object to use for
5525           modifying the thread state.
5526         * threads.c: Use the new synch_lock object for locking, instead of "this",
5527           which can generate deadlocks.
5528           Moved thread state change in Thread.Sleep and Thread.Join from managed
5529           to unmanaged code. This avoids a deadlock when the thread was suspended
5530           just after acquiring the thread lock.
5531           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
5532           Implemented Thread.Suspend using an event instead of ThreadSuspend,
5533           which is not fully implemented in the io-layer.
5534         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
5535
5536 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
5537
5538         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
5539         threads-types.h: more API cleanups.
5540
5541 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
5542
5543         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
5544         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
5545         threadpool.c, threads.c: first pass at the exported API cleanup.
5546
5547 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
5548
5549         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
5550
5551 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5552
5553         * icall.c: added internalGetHome.
5554
5555 2004-06-14  Dick Porter  <dick@ximian.com>
5556
5557         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
5558         possible to return successfully when '.' or '..' were the only
5559         entries in a directory, but were skipped.  The MonoIOStat was not
5560         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
5561         Fixes bug 59574.
5562
5563 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
5564
5565         * reflection.c: make binaries run on .Net 1.1 by default.
5566
5567 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
5568
5569         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
5570
5571 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
5572
5573         * marshal.c: keep track of struct size with explicit layout
5574         (bug #59979).
5575
5576 2004-06-12  Martin Baulig  <martin@ximian.com>
5577
5578         * mono-debug-debugger.c: Comment out a debugging g_message().
5579
5580 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
5581
5582         * reflection.c, reflection.h: do not free custom attrs that are cached.
5583         * icall.c: use braces to make code clearer.
5584
5585 2004-06-11  Martin Baulig  <martin@ximian.com>
5586
5587         * class.h (MonoInflatedField): New type.
5588         (MonoClassField): Replaced `MonoType *generic_type' with
5589         `MonoInflatedField *generic_info'.
5590
5591         * icall.c
5592         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
5593
5594 2004-06-11  Martin Baulig  <martin@ximian.com>
5595
5596         * reflection.c (mono_image_create_method_token): Correctly encode
5597         varargs methods.
5598
5599 2004-06-11  Martin Baulig  <martin@ximian.com>
5600
5601         * metadata.c (mono_metadata_parse_method_signature): When parsing
5602         a MethodDef which has VarArgs, also set sentinelpos if we don't
5603         have any parameters.
5604
5605 2004-06-11  Martin Baulig  <martin@ximian.com>
5606
5607         * verify.c (mono_method_verify): In CEE_CALL, use
5608         mono_method_get_signature() to get the method's signature, unless
5609         we're a PInvoke method.
5610
5611 2004-06-10  Jackson Harper  <jackson@ximian.com>
5612
5613         * assembly.c: Use <path>/lib/mono/gac for the extra paths
5614         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
5615         logical name as the supplied path is just a prefix to the gac not
5616         the direct path to it.
5617         
5618 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
5619
5620         * reflection.c: make the token for a created method match
5621         the token of the MethodBuilder it was created from
5622         (IKVM requires this behaviour now).
5623
5624 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
5625
5626         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
5627         reflection.c, socket-io.c: leak fixes.
5628
5629 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
5630
5631         * icall.c: handle sentinel pos in vararg methods in position different
5632         from 0.
5633
5634 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5635
5636         * culture-info-tables.h: freshly generated.
5637
5638 2004-06-09  Martin Baulig  <martin@ximian.com>
5639
5640         * loader.c (mono_get_method_constrained): Call `mono_class_init
5641         (constrained_class)'.   
5642
5643 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
5644
5645         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
5646         any methods. Fixes #59629.
5647
5648 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5649
5650         * culture-info-tables.h: reflecting locale-builder updates.
5651
5652 2004-06-08  Dick Porter  <dick@ximian.com>
5653
5654         * object.h:
5655         * locales.c: Fixed compile warnings, including a real bug in
5656         CompareInfo_internal_compare.
5657         
5658 2004-06-08  Dick Porter  <dick@ximian.com>
5659
5660         * locales.c
5661         (ves_icall_System_Globalization_CompareInfo_internal_index):
5662         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
5663         Double-check the resuls of usearches, because ICU currently
5664         ignores most of the collator settings here.  Fixes bug 59720.
5665         
5666 2004-06-08  Dick Porter  <dick@ximian.com>
5667
5668         * locales.c
5669         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
5670         Fix memory leak and segfault-causing typo.  No idea how this one
5671         lasted so long without being noticed.
5672
5673 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
5674
5675         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
5676         any methods. Fixes #59629.
5677
5678 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5679
5680         * assembly.c:
5681         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
5682         own the critical section before). Removed dead code (that's done
5683         in the preload hook).
5684
5685         (mono_assembly_load_with_partial_name): call the preload hook.
5686
5687 2004-06-08  Martin Baulig  <martin@ximian.com>
5688
5689         * metadata.c (mono_metadata_signature_alloc): Default
5690         `sentinelpos' to -1.
5691
5692         * reflection.c (mono_image_get_array_token): Likewise.
5693
5694 2004-06-08  Martin Baulig  <martin@ximian.com>
5695
5696         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
5697
5698         * metadata.c (mono_metadata_parse_method_signature): When parsing
5699         a MethodDef which has VarArgs, set sentinelpos.
5700
5701         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
5702         `gint16' since we're using -1 for non-varargs methods.
5703
5704         * reflection.c
5705         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
5706         (method_encode_signature): Added varargs support.
5707         (method_builder_encode_signature): Likewise.
5708         (mono_image_get_varargs_method_token): New static method.
5709         (mono_image_create_method_token): New public method; this is
5710         called via an icall instead of mono_image_create_token() when
5711         calling a varargs method.       
5712
5713 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
5714
5715         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
5716
5717 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5718
5719         * culture-info-tables.h : Reflecting the latest locale-builder that
5720           fixed empty array representation ({} to {0}).
5721
5722 2004-06-07  Jackson Harper  <jackson@ximian.com>
5723
5724         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
5725         looking up extra gac paths. This allows MONO_GAC_PATH to act
5726         exactly like a prefix.
5727         
5728 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
5729
5730         * reflection.c (mono_reflection_type_from_name): Make a copy of the
5731         type name before modifying it. Fixes #59405.
5732
5733 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5734
5735         * culture-info.h: added fields for "all datetime patterns".
5736         * locales.c: (  ves_icall_System_Globalization_CultureInfo
5737           _construct_datetime_format ()): fill xxx_patterns fields.
5738         * object.h: added fields for "all datetime patterns" to
5739           MonoDateTimeFormatInfo.
5740         * culture-info-tables.h: reflecting locale-builder updates.
5741
5742 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
5743
5744         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
5745         the event has no add and remove methods. Fixes #59629.
5746
5747 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
5748
5749         * object.c: Fixed possible integer overflow when allocating large
5750         strings.
5751
5752 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
5753
5754         * culture-info-tables.h: reflecting locale-builder updates.
5755
5756 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
5757
5758         * culture-info-tables.h: reflecting locale-builder updates.
5759
5760 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
5761
5762         * culture-info-tables.h: reflecting locale-builder updates.
5763
5764 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
5765
5766         * threads.c: Made Thread.Sleep abortable.
5767
5768 2004-06-02  Martin Baulig  <martin@ximian.com>
5769
5770         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
5771
5772         * debug-mono-symfile.h: Bumped symbol file version number to 37.
5773
5774 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
5775
5776         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
5777
5778 2004-05-30  Jackson Harper  <jackson@ximian.com>
5779
5780         * reflection.c: Do not hardcode assembly versions or public key
5781         tokens anymore. All of this except the corlib section was dead
5782         code anyways.
5783         
5784 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
5785
5786         * object.c (mono_runtime_invoke_array): Automatically create boxed
5787         objects for byref valuetypes if needed. Fixes #59300.
5788         
5789         * object.c (mono_method_return_message_restore): Handle 
5790         MONO_TYPE_OBJECT as well.
5791
5792 2004-05-28  Jackson Harper  <jackson@ximian.com>
5793
5794         * reflection.c: The modified type encoding was causing build
5795         problems. Reverted for now.
5796         
5797 2004-05-28  Jackson Harper  <jackson@ximian.com>
5798
5799         * reflection.c/h: Take an assembly ref so that we dont create
5800         fully qualified names when encoding types in the same assembly as
5801         the custom attribute being emitted.
5802         * appdomain.c: Increment version number.
5803         
5804 2004-05-26  Duncan Mak  <duncan@ximian.com>
5805
5806         * icall.c
5807         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
5808         Set the full version number (major, minor, build, revision).
5809
5810 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
5811
5812         * marshal.c (emit_struct_conv): increment src/dst after blit
5813         (mono_marshal_get_managed_wrapper,
5814         mono_marshal_get_native_wrapper): make sure we have marshalling
5815         info before marshalling params (info computation affects
5816         blittable)
5817
5818         * class.c (class_compute_field_layout): correctly deal with
5819         blittable
5820         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
5821         value types (as per what windows dows by default)
5822         (mono_class_setup_mono_type): System.ValueType is blittable
5823         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
5824         blittable
5825
5826         * marshal.c (mono_marshal_load_type_info): flag types  as
5827         non-blittable if the native layout doesn't match the managed
5828         layout
5829
5830 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5831
5832         * appdomain.c: don't add stuff in the private search path that is
5833         above the application base. If application base is not set, there's
5834         no private search path.
5835
5836 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
5837
5838         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
5839         byref struct arguments in native->managed marshalling.
5840
5841 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
5842
5843         * marshal.c (mono_marshal_get_runtime_invoke): correctly
5844         cache methods using signature (special case for methods
5845         that are value type or string class)
5846         
5847         * image.c (mono_image_close): clean up allocated GSList's
5848         in runtime_invoke_cache.
5849
5850 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5851
5852         * mono-config.c: set the correct path for mono_cfg_dir on windows when
5853         there's no MONO_CFG_DIR environment variable defined.
5854
5855 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5856
5857         * threads.c: windows version must be >= 0x0500 to include OpenThread.
5858
5859 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
5860
5861         * threadpool.c: Really wait for 500ms after the async call, even if the wait
5862           is interrumped.
5863         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
5864           before waiting for it, and call CloseHandle after the wait to unref it.
5865           This will make sure that handles are not disposed too early.
5866
5867 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5868
5869         * appdomain.c:
5870         * appdomain.h:
5871         * icall.c: removed
5872         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
5873         needed now.
5874
5875         * object.c: se the application_base only for the domain that runs
5876         Main. Fixes bug #59216,
5877
5878 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5879
5880         * appdomain.c:
5881         * object.c: only the domain in which Main is run have
5882         SetupInformation.ConfigurationFile set, so moved a few lines from
5883         appdomain.c to object.c.
5884
5885 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5886
5887         * appdomain.c: we tried to load [name].(dll|exe), but according
5888         to bug #57710, we must also try [culture]/[name].(dll|exe) and
5889         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
5890         There's a test case attached to bug #58922.
5891
5892 2004-05-27  Dick Porter  <dick@ximian.com>
5893
5894         * icall.c:
5895         * file-io.c: Implemented icalls for locking and unlocking regions
5896         in a file.
5897         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
5898         FALSE on error (fixes both compiler warning and real bug.)
5899
5900 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
5901
5902         * culture-info-tables.h: reflecting locale-builder updates.
5903
5904           (Added missing ChangeLog entry for 05/26)
5905
5906 2004-05-27  Jackson Harper  <jackson@ximian.com>
5907
5908         * locales.c: Fix some cut and paste errors.
5909         
5910 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5911
5912         * mono-config.c: set the correct path for config. directory on windows.
5913
5914 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5915
5916         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
5917           on win32.
5918
5919 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
5920
5921         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
5922         from pinvoke functions.
5923         
5924         * marshal.c (mono_ftnptr_to_delegate): Implement this.
5925
5926 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5927
5928         * culture-info-tables.h: reflecting locale-builder updates.
5929
5930 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
5931
5932         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
5933         #59086.
5934
5935 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
5936
5937         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
5938         * icall.c: Modified icalls for RNG.
5939         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
5940         Windows (CryptoAPI).
5941
5942 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
5943
5944         * locales.c: Fix build.
5945
5946 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5947
5948         * culture-info-tables.h: reflecting locale-builder updates.
5949
5950 2004-05-25  Jackson Harper  <jackson@ximian.com>
5951
5952         * locales.c: When creating the current culture use the $LANGs
5953         specific culture. So DateTimeFormat and NumberFormat entries are created.
5954         
5955 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
5956
5957         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
5958         a char array as parameter.
5959
5960 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
5961
5962         * image.c: In mono_image_open(), always use an absolute path name to
5963           look for already loaded images.
5964
5965 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
5966
5967         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
5968         missing in the windows build (like older cygwin include files).
5969
5970 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
5971
5972         * icall.c: Fixed check for possible integer overflow in Buffer_
5973         BlockCopy icall. Replaced comments style // by /* */.
5974
5975 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
5976
5977         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
5978         
5979         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
5980         check after MONO_VTADDR. Fixes pinvoke2.exe.
5981
5982         * marshal.h marshal.c metadata.h: Add beginnings of support for
5983         ftnptr -> delegate marshalling.
5984
5985 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
5986
5987         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
5988         * threads.c: Fix warnings.
5989
5990 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
5991
5992         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
5993         * icall.c: Registered icalls for Suspend and Resume.
5994         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
5995           Thread.Abort.
5996         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
5997         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
5998         * process.c: Use WaitForSingleObjectEx.
5999         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
6000           checkpoints.
6001         * threads.c, threads.h: Make use of new Ex wait methods. Improved
6002           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
6003           for Suspend and Resume. Added new mono_thread_stop, used for stoping
6004           background threads. Added basic support for Abort in Windows.
6005           Start new threads using a managed delegate invoke wrapper. This wrapper
6006           has an interruption checkpoint that is needed since an interruption
6007           can be requested before the thread leaves the unmanaged code that starts 
6008           the thread.
6009         * marshal.c: Added interruption checkpoint after every native call, and
6010           also before managed calls for wrappers called from unmanaged code to
6011           go into managed code.
6012         * object.h: Added new field in MonoThread to keep track of interruption
6013           requests.
6014
6015 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
6016
6017         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
6018         calls.
6019
6020 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6021
6022         * appdomain.c:
6023         * assembly.c:
6024         * gc.c:
6025         * locales.c:
6026         * mono-config.c:
6027         * rand.c: getenv -> g_getenv (windows!)
6028
6029         * process.c: complete_path is also used on non-windows platforms.
6030
6031 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6032
6033         * icall.c: new signature for Process_Start.
6034
6035         * process.[ch]: new signature for Process_Start. If we're on windows
6036         and UseShellExecute is false, we have to search for the program by
6037         ourselves if we don't get a full path.
6038
6039 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
6040
6041         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
6042         marshalling and call CleanUpNativeData if needed. Fixes #58646.
6043
6044 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6045
6046         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
6047         Fixes bug #58373.
6048
6049 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6050
6051         * process.c: use double quotes to quote program name and arguments on
6052         windows. Fixes bug #58575.
6053
6054 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6055
6056         * file-io.c: don't return "." and ".." when using windows Find*File.
6057
6058 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
6059
6060         * marshal.c: Don't pass wrappers to message init because method 
6061         addressed used to lookup metadata. part of remoting[2|3] fix.
6062
6063 2004-05-15  Jackson Harper  <jackson@ximian.com>
6064
6065         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
6066         path is essentially the same as MONO_PATH except that it points to
6067         GACs instead of lib directories.
6068         * loader.h: The user gac is gone so we dont need function to
6069         enable/disable it.
6070         * mono-config.c: user gac option is now gone.
6071         
6072 2004-05-15  Jackson Harper  <jackson@ximian.com>
6073
6074         * culture-info.h: Make defines more consistent, add calendar data
6075         to the culture info table.
6076         * culture-info-tables.h: Add basic calendar data. Basically
6077         everyone gets default gregorian until all the data is
6078         updated.
6079         * locales.c: Use the new consistent defines. Set calendar data for
6080         culture info objects.
6081         * object.h: add a field for calendar data to CultureInfo
6082         
6083 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
6084
6085         * image.c: image->runtime_invoke_cache is keyed on signatures now.
6086         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
6087         a signature.
6088         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
6089         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
6090         an extra param that is the pointer of the method to invoke. The IL for
6091         the invoke method is no longer specific to the method, but to the
6092         signature of the method. Thus, we can share the same code for multiple
6093         methods. This reduces the number of methods that have to be compiled.
6094
6095 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
6096
6097         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
6098
6099         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6100
6101         * icall.c: Optimize Buffer.BlockCopy.
6102
6103 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6104
6105         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
6106         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
6107         quote). Changed them to "MMMM yyyy".
6108
6109 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
6110
6111         * rand.c
6112         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
6113
6114 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
6115
6116         * reflection.h: Updated after changes to managed structures.
6117
6118         * appdomain.c: Bump corlib version.
6119
6120 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6121
6122         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
6123         windows.
6124
6125 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6126
6127         * Makefile.am: link to ../os/libmonoos.la on windows.
6128
6129         * assembly.c:
6130                 -If MONO_DEBUG, warn about non-existing directories in
6131                 MONO_PATH.
6132                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
6133                 compile time variable.
6134                 -Removed init_default_path and call mono_set_rootdir from
6135                 libmonoos.a instead (windows only).
6136
6137         * assembly.h: declare mono_assembly_getrootdir().
6138
6139         * domain.c:
6140         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
6141
6142         * loader.c: s/getenv/g_getenv/
6143
6144 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
6145
6146         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
6147
6148         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
6149
6150         * metadata.h: Add new marshalling conversions.
6151
6152         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
6153         function.
6154
6155         * reflection.c (mono_reflection_get_type): Lookup the type in all
6156         modules of a multi-module assembly. Fixes #58291.
6157
6158 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
6159
6160         * threads.c: Before aborting a background, set the StopRequested
6161         state.  This avoids throwing the Abort exception.
6162         In mono_thread_manage, don't continue with the shutdown until all
6163         aborted threads have actually stopped.
6164
6165 2004-05-10  Jackson Harper  <jackson@ximian.com>
6166
6167         * locales.c: Remove the modifier from culture names.
6168         
6169 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6170
6171         * Makefile.am: monosn is not installed any more. It has been deprecated
6172         in favor of sn.
6173
6174 2004-05-07  Jackson Harper  <jackson@ximian.com>
6175
6176         * locales.c
6177         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
6178         Fix array construction, add bailout if the length is 0.
6179
6180 2004-05-07  Dick Porter  <dick@ximian.com>
6181
6182         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
6183         machine doesn't have a DNS entry.  Patch by Urs Muff
6184         (umuff@quark.com), fixes bug 57928.
6185
6186 2004-05-06  Jackson Harper  <jackson@ximian.com>
6187
6188         * reflection.c: Handle null PublicTokens properly. alloc mem for
6189         assembly names culture so we dont crash when freeing it.
6190         
6191 2004-05-06  Jackson Harper  <jackson@ximian.com>
6192
6193         * assembly.c: Check the usergac when loading with partial names.
6194         
6195 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
6196
6197         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
6198         does nothing for now (not required for Linux/Windows) but the class
6199         library can call it (and a newer or modified runtime could need it).
6200         * icall.c: Registred icall.
6201
6202 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6203
6204         * loader.c: prints a message on module loading error we set MONO_DEBUG
6205         environment variable.
6206
6207 2004-05-05  Jackson Harper  <jackson@ximian.com>
6208
6209         * appdomain.c: Handle PublicKeyToken=null properly.
6210         
6211 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
6212
6213         * environment.c|h: Added icall ves_icall_System_Environment_
6214         GetOSVersionString to get the current OS version as a string.
6215         * icall.c: Registred icall.
6216
6217 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
6218
6219         * object.c: in mono_object_get_virtual_method(), take into account that
6220         non-virtual methods don't have a slot in the vtable. Check needed when
6221         the object is a proxy.
6222
6223 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
6224
6225         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
6226         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
6227
6228         * object.c (mono_class_compute_gc_descriptor): Fix warning.
6229
6230         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
6231         passed when a valuetype is expected.
6232
6233         * object.c (mono_unhandled_exception): Only set the exit code if the
6234         exception happens in the main thread. Fixes thread5.exe.
6235
6236         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
6237         invalid names. Fixes #58047.
6238
6239 2004-05-03  Jackson Harper  <jackson@ximian.com>
6240
6241         * assembly.c: This line was committed accidently and is unneeded.
6242         
6243 2004-05-03  Jackson Harper  <jackson@ximian.com>
6244
6245         * icall.c: Add new icall for Assembly::LoadWithPartialName
6246         * assembly.c/.h: new function that probes the GAC to load partial
6247         assembly names by Paolo Molaro.
6248         
6249 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6250
6251         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
6252         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
6253         (type_get_fully_qualified_name): Added PublicKeyToken when building a
6254         full type name.
6255
6256 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6257
6258         * appdomain.c: fixed check for 'neutral' culture and removed warning.
6259         * reflection.c: fix bug when parsing a full type name and Version is not
6260         the last thing in the string.
6261
6262 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
6263
6264         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
6265         crashes when it is freed.
6266
6267 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6268
6269         * assembly.c: print the compat warning to stderr.
6270
6271 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
6272
6273         * assembly.c (mono_assembly_load_references): Add a compatibility
6274         hack to run old applications that might be still referencing the
6275         3300-based assemblies, only do this for System.xxx.
6276
6277 2004-05-01  Jackson Harper  <jackson@ximian.com>
6278
6279         * appdomain.c: If the culture is neutral we set it to "".
6280         
6281 2004-04-29  Jackson Harper  <jackson@ximian.com>
6282
6283         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
6284
6285 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
6286  
6287         * string-icalls.c: added low overhead function for copying chars
6288         * icall.c: added needed icall for the above function
6289  
6290 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6291
6292         * icall.c: fix return value of get_global_assembly_cache.  Implemented
6293         Environment.GetLogicalDrives.
6294
6295 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
6296
6297         * rand.c: try and talk to egd or prngd
6298         for random bytes if opening devices fail.
6299
6300 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
6301
6302         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
6303         alignment for the type using the native alignment of its members 
6304         instead of using klass->min_align.
6305
6306         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
6307
6308 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6309
6310         * file-io.c:
6311         * socket-io.c: added check for sys/aio.h.
6312
6313 2004-04-28  Dick Porter  <dick@ximian.com>
6314
6315         * threads.c: Don't abort a thread thats already aborting, when
6316         terminating everything.
6317
6318 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6319
6320         * icall.c: added 2 new async calls for Socket.
6321
6322         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
6323         IO on *nix systems.
6324
6325         * threadpool.c: removed unused variable.
6326
6327 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
6328
6329         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
6330
6331 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
6332
6333         * locales.c: put back string_invariant_tolower () and
6334         string_invariant_toupper ().
6335
6336 2004-04-26 David Waite <mass@akuma.org>
6337
6338         * file-io.h:
6339         * socket-io.h:
6340         * threads.h:
6341         * unicode.h: remove comma from end of enumeration declarations
6342
6343 2004-04-26 David Waite <mass@akuma.org>
6344
6345         * debug-mono-symfile.h:
6346         * decimal.c:
6347         * mono_debug.h:
6348         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
6349
6350
6351 2004-04-26  Jackson Harper  <jackson@ximian.com>
6352
6353         * appdomain.c: Increment version number.
6354         
6355 2004-04-26  Jackson Harper  <jackson@ximian.com>
6356
6357         * appdomain.c: Set assembly references public token value when
6358         PublicKeyToken is specified, not the hash_value. Free public token
6359         values when free assembly name data. Previously the public key
6360         token was hex decoded, however we are using hex encoded public key
6361         tokens, so this is not neccasary.
6362         * assembly.c: Lookup assemblies in the gac if their public token
6363         value is set. Add function to allow enabling user gac
6364         lookups. Specify whether or not the assembly was loaded from the
6365         GAC. Compare full assembly names when checking the cache for
6366         assemblies (Temporarily disabled see comment in code). Remove
6367         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
6368         specifies trace-loader they get extra info to stdout on the
6369         loading of assemblies.
6370         * image.h: Add a field for an assembly references public token
6371         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
6372         whether an assembly has been loaded from the GAC.
6373         * image.c: Remove a corlib -> mscorlib name mapping.
6374         * loader.h: Add function to enable/disable the user gac.
6375         * mono-config.c: Check if the usergac is enabled in the config
6376         file.
6377         * icall.c: New icall to determine whether or not an assembly has
6378         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
6379         * tabldefs.h: Add constant for assemblyref flag that specifies a
6380         full public key is used instead of a public token.
6381         * reflection.c: Remove mscorlib -> corlib mappings. Set
6382         PublicTokenValue instead of hash value. This value is a hex
6383         string so it does not need to be expanded.
6384
6385 2004-04-26  Martin Baulig  <martin@ximian.com>
6386
6387         * mono-debug-debugger.c (mono_debugger_initialize): Set
6388         `mono_debugger_initialized' before calling mono_debug_lock().
6389
6390 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
6391
6392         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
6393           InternalToUpper/InternalToLower.
6394         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
6395           removed invariant culture shortcut.  This is now done in managed code.
6396         * locales.c: (string_invariant_toupper/tolower) removed.
6397
6398 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6399
6400         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
6401         Added Poll internal call.
6402
6403         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
6404         call for Poll. Select was too heavy for polling a single socket.
6405
6406         * threadpool.[ch]: added mono_threadpool_cleanup.
6407         * threads.c: use it. Don't use Thread_Abort on windows.
6408
6409 2004-04-23  Martin Baulig  <martin@ximian.com>
6410
6411         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
6412
6413 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
6414
6415         * icall.c: Registred new icalls for key pair protection and added an
6416         icall for Environment.GetFolderPath on Windows.
6417         * security.c|h: Added new icalls for key pair protection.
6418
6419 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6420
6421         * socket-io.c: don't display the non-supported family warning for known
6422         families. Now this is not displayed on windows when checking support
6423         for IPv4/IPv6.
6424
6425 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6426
6427         * class.c: don't display the layout warning for static fields.
6428
6429 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
6430
6431         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
6432         * locales.c, locales.h: Added new icalls for culture-specific
6433         Char.ToLower and Char.ToUpper.
6434
6435 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6436
6437         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
6438         by David Waite.
6439
6440 2004-04-20  Martin Baulig  <martin@ximian.com>
6441
6442         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
6443         of the type name before passing it to mono_reflection_type_from_name().
6444
6445 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
6446
6447         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
6448         encodings here. Fixes #56965.
6449
6450 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
6451
6452         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
6453         fix test on strstr result not that I can see anything that
6454         relies on the result.
6455
6456 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
6457
6458         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
6459         Fixes #57081.
6460
6461         * marshal.c (mono_marshal_get_string_encoding): New helper function.
6462
6463         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
6464         function to determine which marshalling to use for strings. Fixes
6465         #56965.
6466
6467         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
6468
6469         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
6470
6471 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
6472
6473         * icall.c: #include mono-config.h
6474
6475 2004-04-15  Jackson Harper  <jackson@ximian.com>
6476
6477         * culture-info-tables.h: Fix date formats for en-US culture.
6478         
6479 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
6480
6481         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
6482         ThreadPool.SetMinThreads.
6483         * threadpool.c: Implemented ThreadPool.GetMinThreads and
6484         ThreadPool.SetMinThreads.
6485
6486 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
6487
6488         * mono-config.c: also load the .config file in the directory
6489         where the assembly was found.
6490
6491 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
6492
6493         * assembly.c: load per-assembly config files.
6494         * icall.c: decrapified code to get the config dir and moved to
6495         mono-config.c.
6496         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
6497         per-assembly config files. When doing a dll map lookup give precedence
6498         to the per-assembly data.
6499
6500 2004-04-14  Martin Baulig  <martin@ximian.com>
6501
6502         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
6503         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
6504         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
6505
6506         * mono-debugger-debugger.c: While the debugger is locked, remember
6507         whether the symbol tables have changes and send one single
6508         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
6509
6510 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
6511
6512         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
6513
6514         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
6515         function.
6516
6517         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
6518         account when marshalling string arrays. Fixes #56965.
6519
6520 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
6521
6522         * icall.c: Add new icalls mapping for security.
6523         * security.c|h: Add internal calls for WindowsIdentity,
6524         WindowsImpersonationContext and WindowsPrincipal.
6525
6526 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
6527
6528         * class.c: Added comment to ensure the System.MonoDummy class
6529         is removed when no longer necessary
6530
6531 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
6532
6533         * appdomain.c: Pass arguments to the bootstraping exceptions to
6534         minimize JITed methods at boot
6535
6536         * metadata.c (mono_exception_from_name_two_strings): Allow for the
6537         second string to be null.
6538
6539         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
6540         Change the protocol to minimize the JIT methods at startup.  Now
6541         it Returns the internal codepage, if the value of "int_code_page"
6542         is 1 at entry, and we can not compute a suitable code page
6543         number, returns the code page as a string.
6544
6545 2004-04-13  Jackson Harper  <jackson@ximian.com>
6546
6547         * culture-info-tables.h: Fix number of decimal digits for all
6548         english locales.
6549
6550 2004-04-13  Jackson Harper  <jackson@ximian.com>
6551
6552         * icall.c: Clairfy out of sync error message. It is not always
6553         your corlib that is out of sync.
6554
6555 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
6556
6557         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
6558         properties when only the set accessor is overriden. Fixes #55874.
6559
6560 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
6561
6562         * assembly.c (mono_assembly_load_references): Make this thread safe.
6563         Fixes #56327.
6564
6565 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
6566
6567         * monosn.c: Add missing initialization calls.
6568
6569 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
6570
6571         * locales.c:
6572         ves_icall_System_Globalization_CultureInfo_construct_number_format
6573         Fix g_assert so it compiles on fussier compilers re int/ptr
6574         mismatch
6575
6576 2004-04-08  Dick Porter  <dick@ximian.com>
6577
6578         * socket-io.h:
6579         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
6580         53992.  Also rearrange the code so that the internal calls return
6581         an error value and exceptions are thrown from managed code.
6582
6583         * icall.c: Add type info to the socket icalls.
6584
6585 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6586
6587         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
6588         owes me a beer.
6589
6590 2004-04-07  Martin Baulig  <martin@ximian.com>
6591
6592         * class.c (mono_class_from_generic_parameter): Don't default
6593         `klass->parent' to `mono_defaults.object_type'.
6594
6595 2004-04-07  Martin Baulig  <martin@ximian.com>
6596
6597         * reflection.c (mono_reflection_initialize_generic_parameter): Set
6598         `param->pklass->reflection_info'.       
6599
6600 2004-04-07  Jackson Harper  <jackson@ximian.com>
6601
6602         * culture-info-tables.h: Fix date separator symbol.
6603         
6604 2004-04-07  Martin Baulig  <martin@ximian.com>
6605
6606         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
6607         from System.Type to System.MonoType.
6608
6609 2004-04-07  Martin Baulig  <martin@ximian.com>
6610
6611         * reflection.h
6612         (MonoReflectionGenericParam): Added `has_reference_type' and
6613         `has_value_type' fields.
6614
6615         * reflection.c (mono_image_get_generic_param_info): Encode the
6616         correct flags if we have the `class' or `struct' constraint.
6617
6618 2004-04-07  Martin Baulig  <martin@ximian.com>
6619
6620         * reflection.h
6621         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
6622
6623 2004-04-07  Jackson Harper  <jackson@ximian.com>
6624
6625         * appdomain.c: Revert extra patches, just wanted to bump the
6626         version number.
6627         
6628 2004-04-07  Jackson Harper  <jackson@ximian.com>
6629
6630         * Makefile.am: Add culture-info private headers.
6631         * icall.c: Add new icalls for contructing locales.
6632         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
6633         * locales.h: Declare new culture info construction methods.
6634         * object.h: Add new fields used to avoid the CultureMap to
6635         MonoCultureInfo.
6636         * culture-info.h: Definition of structs used in the culture info
6637         tables.
6638         * culture-info-tables.h: Autogenerated tables that contain culture
6639         info data. This file was generated with the locale-builder tool.
6640         * appdomain.c: Incement corlib version number.
6641         
6642 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
6643
6644         * appdomain.c: (mono_runtime_init) move mono_thread_init
6645         to before mono_object_new calls so critical sections
6646         are initialized before use.
6647
6648 2004-04-07  Martin Baulig  <martin@ximian.com>
6649
6650         * icall.c
6651         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
6652         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
6653         (ves_icall_MonoGenericParam_initialize): Removed.
6654         (monogenericparam_icalls): Removed.
6655         (generictypeparambuilder_icalls): Added new table for
6656         System.Reflection.Emit.GenericTypeParameterBuilder.
6657
6658         * reflection.c
6659         (mono_reflection_define_generic_parameter): Removed.
6660         (mono_reflection_initialize_generic_parameter): This is now called
6661         from GenericTypeParameterBuilder's .ctor.
6662
6663 2004-04-06  Martin Baulig  <martin@ximian.com>
6664
6665         * class.c (mono_class_init): Don't inflate nested classes in a
6666         generic instance.
6667         (mono_type_get_name_recurse): Include the generic arguments for
6668         generic instances and generic type declarations.
6669         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
6670         (_mono_class_get_instantiation_name): Removed.
6671         (mono_class_create_generic): Always use `gklass->name' as our name.
6672
6673         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
6674
6675         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
6676         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
6677         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
6678         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
6679         closed generic methods here.
6680
6681         * reflection.c
6682         (mono_reflection_generic_inst_get_nested_types): Removed.
6683         (inflate_mono_method): Copy the generic parameters from the
6684         MonoMethodHeader into out MonoGenericMethod.
6685
6686 2004-04-06  Martin Baulig  <martin@ximian.com>
6687
6688         * row-indexes.h
6689         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
6690
6691         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
6692
6693         * reflection.c (build_compressed_metadata): If we have any entries
6694         in the GenericParam, MethodSpec or GenericParamConstraint tables,
6695         set the header version to 1.1.
6696
6697 2004-04-06  Martin Baulig  <martin@ximian.com>
6698
6699         * class.c (mono_class_init): If we're a generic instance,
6700         initialize our nested classes, too.
6701         (_mono_class_get_instantiation_name): Deal with the new `!%d'
6702         suffix. 
6703
6704 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6705
6706         * process.c: quote the argument passed to the shell on windows.
6707
6708 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
6709
6710         * threads.c (mono_alloc_special_static_data): Allow this to be
6711         called during startup.
6712
6713 2004-04-02  Martin Baulig  <martin@ximian.com>
6714
6715         * icall.c
6716         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
6717
6718 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
6719
6720         * icall.c: Fix build.
6721
6722 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
6723
6724         * Makefile.am: Added security.c|h.
6725         * icall.c: Added icall for get_UserName;
6726         * security.c: New file for security related icalls. Added function
6727         get_UserName for System.Environment (fix #56144).
6728         * security.h: New. Header file for security.c
6729
6730 2004-04-02  Dick Porter  <dick@ximian.com>
6731
6732         * icall.c: Deleted the icalls that were obsoleted some time ago
6733         by the ICU string code, and which were mixed into the icall
6734         rearranging.  Fixes bug 55969.
6735
6736         * string-icalls.h: 
6737         * string-icalls.c: Deleted the code that those icalls reference.
6738
6739 2004-04-01  Martin Baulig  <martin@ximian.com>
6740
6741         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
6742
6743         * class.c (mono_class_from_generic_parameter): Don't set 
6744         TYPE_ATTRIBUTE_INTERFACE.
6745         (my_mono_class_from_generic_parameter): Likewise.
6746
6747 2004-04-01  Martin Baulig  <martin@ximian.com>
6748
6749         * loader.c (find_method): Added an optional `MonoClass *ic'
6750         argument to search in a specific interface.
6751         (mono_get_method_constrained): New public function.
6752
6753 2004-04-01  Martin Baulig  <martin@ximian.com>
6754
6755         * reflection.c (mono_image_get_generic_field_token): Use the
6756         `handleref' cache here.
6757
6758 2004-04-01  Martin Baulig  <martin@ximian.com>
6759
6760         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
6761
6762         * reflection.c (create_generic_typespec): Use the `typespec' hash
6763         here, not the `typeref' one.    
6764
6765 2004-04-01  Martin Baulig  <martin@ximian.com>
6766
6767         * class.c (mono_class_inflate_generic_type): Moved the
6768         functionality into a new static inflate_generic_type() which
6769         returns NULL if it didn't do anything.  Only increment the
6770         `mono_stats.inflated_type_count' if we actually inflated
6771         something.
6772         (mono_class_get_full): Check the classes type to see whether we
6773         need to inflate it; also inflate MONO_TYPE_(M)VAR.
6774
6775 2004-04-01  Jackson Harper  <jackson@ximian.com>
6776
6777         * reflection.c: Set culture for assembly references.
6778         
6779 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
6780
6781         * reflection.[ch], icall.[ch], Fix support for pinning variables.
6782
6783 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6784
6785         * assembly.c:
6786         (do_mono_assembly_open): the critical section also covers
6787         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
6788
6789 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6790
6791         * threads.c:
6792         (mono_manage_threads): abort the background threads when finishing.
6793         Fixes bug #47232.
6794
6795 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6796
6797         * gc.c: only close the done_event handle if there was no timeout.
6798         C-ified comments.
6799
6800 2004-03-30  Martin Baulig  <martin@ximian.com>
6801
6802         * icall.c (icall_entries): It's called "System.Activator", not
6803         "System.Activation".    
6804
6805 2004-03-30  Martin Baulig  <martin@ximian.com>
6806
6807         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
6808         (mono_class_create_from_typespec): Likewise.
6809
6810 2004-03-30  Martin Baulig  <martin@ximian.com>
6811
6812         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
6813         `has_ctor_constraint' and `initialized'.
6814
6815 2004-03-30  Martin Baulig  <martin@ximian.com>
6816
6817         * reflection.c (encode_new_constraint): New static function to add
6818         the constructor constraint attribute to a type parameter.
6819         (encode_constraints): Call encode_new_constraint() if necessary.
6820
6821         * reflection.h
6822         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
6823
6824         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
6825         
6826 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
6827
6828         * reflection.c, icall.c: add support for pinning variables. 
6829
6830 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
6831
6832         * marshal.c (mono_marshal_get_managed_wrapper):
6833         init bool local with zero rather than null.
6834
6835 2004-03-29  Martin Baulig  <martin@ximian.com>
6836
6837         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
6838         the "official" behavior here.
6839         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
6840
6841 2004-03-29  Martin Baulig  <martin@ximian.com>
6842
6843         * icall.c: Reflect latest API changes.
6844
6845 2004-03-29  Martin Baulig  <martin@ximian.com>
6846
6847         * loader.c (mono_get_method_from_token): Also call
6848         mono_metadata_load_generic_params () for abstract and interface
6849         methods; replace the type arguments in the method signature with
6850         the ones which are loaded from the metadata.
6851
6852 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
6853
6854         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
6855         of the lock is not the current thread. MS.NET don't do it, in spite of
6856         what the documentation says. See bug #56157.
6857
6858 2004-03-28  Martin Baulig  <martin@ximian.com>
6859
6860         * class.c (mono_class_init): Don't call init_properties() and
6861         init_events() for generic instances; set `prop->parent' when
6862         inflating properties.
6863
6864         * reflection.c (mono_generic_inst_get_object): Call
6865         `mono_class_init (ginst->klass)'.
6866         (mono_type_get_object): Only create a MonoGenericInst if your
6867         generic type is a TypeBuilder.
6868         (do_mono_reflection_bind_generic_parameters): Only set
6869         `ginst->is_dynamic' if our generic type is a TypeBuilder.
6870
6871 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
6872
6873         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
6874         Fixes #56091.
6875
6876 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6877
6878         * icall.c: added Kill_internal icall.
6879         * process.[ch]: added Kill_internal icall.
6880
6881 2004-03-25  Martin Baulig  <martin@ximian.com>
6882
6883         * class.h (MonoStats): Added `generic_instance_count',
6884         `inflated_method_count', `inflated_type_count' and
6885         `generics_metadata_size'.       
6886
6887 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6888
6889         * reflection.c: no warnings now.
6890
6891 2004-03-25  Martin Baulig  <martin@ximian.com>
6892
6893         * class.c (mono_class_get_full): New public function; does a
6894         mono_class_get(), but also takes a `MonoGenericContext *'.
6895
6896         * loader.c (mono_field_from_memberref): Renamed to
6897         `field_from_memberref', made static and added `MonoGenericContext *'
6898         argument.
6899         (mono_field_from_token): Added `MonoGenericInst *' argument.
6900         (method_from_memberef): Likewise.
6901         (mono_get_method_from_token): Likewise.
6902         (mono_get_method_full): New public function; does a
6903         mono_get_method(), but also takes a `MonoGenericContext *'.
6904
6905         * verify.c (mono_method_verify): Get the method's generic context
6906         and pass it to mono_field_from_token(), mono_get_method_full() and
6907         mono_class_get_full().
6908
6909 2004-03-25  Martin Baulig  <martin@ximian.com>
6910
6911         * class.c (mono_class_inflate_generic_type): Take a
6912         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
6913         `MonoGenericMethod *'.
6914
6915 2004-03-25  Martin Baulig  <martin@ximian.com>
6916
6917         * loader.h (MonoMethodInflated): Store the MonoGenericContext
6918         instead of the MonoGenericMethod here.
6919
6920 2004-03-25  Martin Baulig  <martin@ximian.com>
6921
6922         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
6923         each time we create a new MonoGenericInst, we also create a new
6924         context which points back to us.
6925
6926         * class.c (inflate_method): Use `ginst->context' instead of
6927         creating a new context.
6928
6929         * loader.c (method_from_memberref): Use
6930         `klass->generic_inst->context' instead of creating a new context.
6931
6932 2004-03-25  Martin Baulig  <martin@ximian.com>
6933
6934         * class.h (MonoGenericContext): New struct.
6935         (MonoGenericMethod): Removed `generic_inst'.
6936
6937         * class.c (mono_class_inflate_generic_method): Take a
6938         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
6939
6940 2004-03-25  Martin Baulig  <martin@ximian.com>
6941
6942         * loader.h (MonoMethodInflated): New typedef.
6943
6944         * metadata.h (MonoMethodSignature): Removed `gen_method', make
6945         `generic_param_count' consume just 30 bits, added `is_inflated'
6946         and `has_type_parameters' flags (one bit each).
6947
6948         * class.c (mono_class_inflate_generic_method): Create a
6949         MonoMethodInflated instead of a MonoMethodNormal and set
6950         `is_inflated' in the method signature.
6951
6952         * class.h (MonoGenericMethod): Removed `generic_method'.
6953
6954 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
6955
6956         * image.c: Make sure the name of a MonoImage is always an absolute path.
6957           This fixes bug #54415.
6958
6959 2004-03-24  Martin Baulig  <martin@ximian.com>
6960
6961         * class.c (mono_class_setup_vtable): If we're a generic instance,
6962         use our generic type's vtable size.
6963
6964 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
6965
6966         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
6967         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
6968         problems.
6969
6970 2004-03-23  Martin Baulig  <martin@ximian.com>
6971
6972         * class.h (MonoDynamicGenericInst): Added `int count_events' and
6973         `MonoEvent *events'.
6974
6975         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
6976         (typebuilder_icalls): Added "get_event_info"; calls
6977         mono_reflection_event_builder_get_event_info(). 
6978
6979         * reflection.c (mono_reflection_generic_inst_initialize): Added
6980         `MonoArray *events'.
6981         (mono_reflection_event_builder_get_event_info): New function.
6982
6983 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
6984
6985         * object.h: add mono_type_initialization_init
6986
6987         * object.c (mono_runtime_class_init): 
6988         implement class constructor synchronization rules
6989         to cope with threading issues.  
6990         add mono_type_initialization_init
6991
6992         * appdomain.c (mono_runtime_init): call 
6993         mono_type_initialization_init
6994
6995         * class.h: removing initializing field from MonoVTable
6996
6997 2004-03-23  Martin Baulig  <martin@ximian.com>
6998
6999         * class.c (my_mono_class_from_generic_parameter): Use
7000         `param->name' if it's not NULL. 
7001
7002 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
7003
7004         * class.c: do not insert non-virtual methods in the vtable.
7005         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
7006         that means the method is non-virtual. This never would have
7007         happened before.
7008
7009 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
7010
7011         * profiler.c: Added lock for accessing coverage_hash.
7012
7013 2004-03-22  Martin Baulig  <martin@ximian.com>
7014
7015         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
7016         `method->method->signature->generic_param_count != 0' to make it
7017         work for interface methods.
7018
7019 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7020
7021         * process.c: quote the string passed to the shell using g_shell_quote.
7022
7023 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7024
7025         * threads.c:
7026         (mono_threads_manage): don't remove the finalizer thread and self
7027         from the threads hash table so that mono_thread_manage can be called
7028         more than once.
7029
7030 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7031
7032         * process.c: quote the arguments when UseShellExecute is true. Fixes
7033         bug #55790.
7034
7035 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7036
7037         * threads.c: set mono_thread_detach as a cleanup routine for every
7038         thread. This way it's always executed upon thread termination, either
7039         aborted or finished normally. No more xsp hangs!
7040
7041 2004-03-17  Martin Baulig  <martin@ximian.com>
7042
7043         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
7044         `int count_nested' and a `MonoType **nested'.
7045
7046         * reflection.c (mono_reflection_bind_generic_parameters): Moved
7047         most of the functionality into a new static
7048         do_mono_reflection_bind_generic_parameters() and don't take a
7049         `MonoType *nested_in' argument any more.  Don't compute nested
7050         types here.
7051         (mono_reflection_generic_inst_get_nested_types): New public method
7052         to get nested types.
7053
7054         * class.c (mono_class_create_generic): Set `klass->nested_in' if
7055         we're a nested class.
7056
7057         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
7058         mono_reflection_generic_inst_get_nested_types() to compute the
7059         nested types.
7060
7061 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
7062
7063         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
7064         descriptive error message under windows.
7065         
7066 2004-03-17  Martin Baulig  <martin@ximian.com>
7067
7068         * class.c (dup_type): Added `const MonoType *original' argument;
7069         copy the attrs from the original type.
7070
7071 2004-03-17  Martin Baulig  <martin@ximian.com>
7072
7073         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
7074         `m->generic_inst_cache' here.
7075
7076 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
7077
7078         * exception.h exception.c: Add stack_overflow_exception.
7079
7080 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7081
7082         * threadpool.c:
7083         (overlapped_callback): call SetEvent *after* invoking the callback.
7084         No need to call CloseHandle.
7085
7086 2004-03-16  Martin Baulig  <martin@ximian.com>
7087
7088         * reflection.c (mono_image_get_fieldref_token): Take a
7089         `MonoReflectionField *' instead of a `MonoClassField *' and a
7090         `MonoClass *'; store the `MonoReflectionField *' in the hash.
7091
7092 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7093
7094         * appdomain.c: don't add the culture to the filename we're looking for
7095         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
7096
7097 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7098
7099         * locales.c: don't ignore symbols when doing case insensitive compares.
7100         Thanks Dick! Fixes bug #54046.
7101
7102         * threads.c: surround 'threads' usage with enter/leave in
7103         mono_thread_manage.
7104
7105 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
7106
7107         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
7108         implicitly marshalled as [Out]. Fixes #55450.
7109
7110         (mono_marshal_get_runtime_invoke): Zero out the result if there is
7111         an exception.
7112
7113 2004-03-16  Martin Baulig  <martin@ximian.com>
7114
7115         * class.c (mono_class_from_generic_parameter): Use the actual
7116         parameter name. 
7117
7118 2004-03-16  Martin Baulig  <martin@ximian.com>
7119
7120         * reflection.c (type_get_signature_size): New static function.
7121         Compues the size of the type in a method signature.
7122         (method_get_signature_size): New static function; calls
7123         type_get_signature_size() to compute the actual size of the
7124         method's signature.
7125         (method_encode_signature): Use method_get_signature_size() to get
7126         the signature's size rather than using `nparams * 10'.
7127
7128 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7129
7130         * file-io.h: define here WapiOverlapped on windows. I don't want the
7131         regular OVERLAPPED one.
7132
7133         * file-io.c:
7134         * threadpool.c: somehow, BindIoCompletionCallback is not found.
7135         Disabling AIO on windows.
7136
7137 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7138
7139         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
7140         bug #55385.
7141
7142 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7143
7144         * appdomain.c: upgraded corlib version.
7145
7146         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
7147         and BeginWrite. Allow opening files for asynchrnous operations.
7148
7149         * file-io.h: new struct that maps FileStreamAsyncResult.
7150         * icall.c: added new icalls.
7151         * process.[ch]: support setting child process environment variables
7152         and use the SHELL or COMSPEC when UseShellExecute is true.
7153
7154         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
7155         callback for async. IO is here and also BindHandle.
7156
7157         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
7158         from here.
7159
7160 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
7161
7162         * reflection.c (create_custom_attr): Allow len == 0.
7163
7164         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
7165         computation on big-endian machines.
7166
7167 2004-03-13  Martin Baulig  <martin@ximian.com>
7168
7169         * class.h (MonoGenericInst): Added `int count_ifaces'.
7170
7171         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
7172         `ginst->count_ifaces' instead `klass->interface_count' since we
7173         may get called before the vtable is created.
7174
7175         * loader.c (mono_method_get_param_names): If we're a generic
7176         instance, return and don't initialize the class.
7177
7178         * reflection.c (mono_reflection_setup_generic_class): Don't call
7179         ensure_runtime_vtable().
7180         (mono_reflection_bind_generic_parameters): Set
7181         `ginst->count_ifaces'.
7182
7183 2004-03-11  Jackson Harper <jackson@ximian.com>
7184
7185         * icall.c:
7186         * unicode.c:
7187         * unicode.h: Remove unused System.Char icalls.
7188         
7189 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
7190
7191         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
7192         code when we P/Invoke the first library in Windows.Forms, instead
7193         of when we first open the assembly.
7194
7195         * assembly.c: Drop the lookup from here.
7196
7197 2004-03-10  Martin Baulig  <martin@ximian.com>
7198
7199         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
7200         class for properties, fields and events.  Finally fixes #54945.
7201
7202 2004-03-10  Martin Baulig  <martin@ximian.com>
7203
7204         * metadata.c (mono_metadata_class_equal): New static function;
7205         checks whether two generic instances or two generic parameters are
7206         equal.
7207         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
7208         compare classes.        
7209
7210 2004-03-10  Martin Baulig  <martin@ximian.com>
7211
7212         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
7213
7214         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
7215         argument and write it into the `reflection_info' field.
7216
7217         * icall.c
7218         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
7219         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
7220
7221 2004-03-09  Jackson Harper  <jackson@ximian.com>
7222
7223         * char-conversions.h: use 8 bits for numeric data its all we need
7224         * icall.c: numeric data is only 8 bits now.
7225
7226 2004-03-09  Martin Baulig  <martin@ximian.com>
7227
7228         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
7229
7230         * class.c (init_properties, init_events): Initialize the new
7231         `parent' field.
7232
7233         * reflection.c (typebuilder_setup_properties): Likewise.
7234         (typebuilder_setup_events): Likewise.
7235
7236         * reflection.h (MonoEventInfo): Replaced `parent with
7237         `declaring_type' and `reflected_type'.
7238
7239         * icall.c (ves_icall_get_property_info): Distinguish between
7240         declaring and reflected type.
7241         (ves_icall_get_event_info): Likewise.
7242
7243 2004-03-09  Martin Baulig  <martin@ximian.com>
7244
7245         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
7246         (ves_icall_Type_GetField): Correctly set field->klass.
7247
7248 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
7249
7250         * loader.h: Fix warning.
7251
7252 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
7253
7254         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
7255         library routine if present.  Notice that it will still continue
7256         executing even if its missing, for those working on the Gtk#
7257         edition of Windows.Forms.
7258
7259         * assembly.c (do_mono_assembly_open): If loading the
7260         System.Windows.Forms call mono_loader_wini_init.
7261
7262 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
7263
7264         * class.h: Added MonoRemoteClass struct.
7265         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
7266         function for MonoStrings.
7267         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
7268         Added internal call for getting the proxy type.
7269         * marshal.c: Get the type of transparent proxies from its remote_class.
7270         Added methods that generate the IL for type checks and casts:
7271         mono_marshal_get_isinst, mono_marshal_get_castclass, 
7272         mono_marshal_get_proxy_cancast.
7273         * marshal.h: Declaration of the previous new methods.
7274         * object.c: Added new moethods for creating and updating MonoRemoteClass
7275         instances: mono_remote_class, mono_upgrade_remote_class, 
7276         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
7277         * verify.c: FIx transparent_proxy_fields layout.
7278         * appdomain.c: Bump corlib version.
7279
7280 2004-03-04  Jackson Harper  <jackson@ximian.com>
7281
7282         * icall.c: Add icall to access char conversion tables.
7283         * char-conversions.h: Character conversion tables.
7284         * Makefile.am: Add char-conversions.h private header file.
7285         
7286 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
7287
7288         * appdomain.c (unload_thread_main): Increase unloading timeout to
7289         10 sec as a temporary workaround for Nant problems.
7290
7291 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
7292
7293         * gc.c: Add checks for GC_enable and GC_disable.
7294
7295         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
7296         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
7297         (bug #54988).
7298         
7299 2004-02-27  Martin Baulig  <martin@ximian.com>
7300
7301         * reflection.c (mono_reflection_bind_generic_parameters): Take a
7302         `MonoReflectionType *' instead of a `MonoType *'.
7303
7304 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
7305
7306         * gc.c (run_finalize): Avoid finalizing the object representing the
7307         finalizer thread.
7308         (finalizer_thread): Fix warning.
7309
7310 2004-02-25  Martin Baulig  <martin@ximian.com>
7311
7312         * class.c (_mono_class_get_instantiation_name): Added `int offset'
7313         argument for nested types.
7314         (mono_class_create_generic): Added support for nested generictypes.
7315
7316         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
7317         `GList *nested'.
7318
7319         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
7320
7321         * reflection.c (method_encode_signature): Increase the minimum
7322         value of `size' from 10 to 11.
7323         (mono_reflection_bind_generic_parameters): Take `int type_argc'
7324         and `MonoType **types' arguments instead of the `MonoArray
7325         *types'; added `MonoType *nested_in'.  Recursively instantiate
7326         nested classes. 
7327
7328 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
7329
7330         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
7331         stack_overflow_ex members which are used by exception handling.
7332
7333         * appdomain.c (mono_runtime_init): Initialize the new members.
7334
7335         * gc.c (mono_gc_enable): New helper function.
7336         * gc.c (mono_gc_disable): New helper function.
7337
7338 2004-02-23  Martin Baulig  <martin@ximian.com>
7339
7340         * icall.c: I must have been really stupid - make it actually work
7341         this time ;-)
7342
7343 2004-02-23  Martin Baulig  <martin@ximian.com>
7344
7345         * loader.c (method_from_memberref): Only inflate the method if
7346         it's in another klass.
7347
7348 2004-02-23  Martin Baulig  <martin@ximian.com>
7349
7350         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
7351         (mono_class_init): If we're a generic instance and an interface,
7352         compute `class->interface_id'; also create `class->interfaces'
7353         here and inflate them.
7354
7355         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
7356         `ginst->is_open'.
7357         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
7358
7359         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
7360
7361 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
7362
7363         * reflection.c (method_encode_code): Improved the error message
7364         generated by the exception.
7365
7366 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7367
7368         * icall.c: Martin did not do what he said in the ChangeLog for
7369         2004-02-18, but put back the changes for properties and events.
7370         Commenting those changes out again and adding comment to bug #54518.
7371         
7372         * process.c: removed warning.
7373
7374 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
7375
7376         * marshal.c (emit_struct_conv): Print an error message instead of
7377         asserting when a type does not have the StructLayout attribute.
7378
7379 2004-02-20  Martin Baulig  <martin@ximian.com>
7380
7381         * reflection.c (mono_type_get_object): Also use the cache for
7382         generic instances.
7383         (mono_reflection_bind_generic_parameters): Always compute
7384         `ginst->ifaces'.        
7385
7386 2004-02-20  Martin Baulig  <martin@ximian.com>
7387
7388         * class.h (MonoGenericMethod): Removed `klass'.
7389
7390         * class.c (mono_class_inflate_generic_method): Added `MonoClass
7391         *klass' argument.
7392
7393 2004-02-20  Martin Baulig  <martin@ximian.com>
7394
7395         * reflection.c (method_encode_methodspec): Actually use the
7396         uninflated signature for the memberref.
7397
7398 2004-02-20  Martin Baulig  <martin@ximian.com>
7399
7400         * class.h (MonoGenericMethod): Removed `declaring'.
7401
7402         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
7403         is NULL, compute it here.
7404
7405 2004-02-20  Martin Baulig  <martin@ximian.com>
7406
7407         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
7408
7409         * metadata.c (mono_metadata_generic_inst_hash): New method.
7410         (mono_metadata_generic_inst_equal): New method.
7411
7412         * reflection.c (mono_reflection_bind_generic_parameters): Use the
7413         `klass->image->generic_inst_cache' cache to avoid creating
7414         duplicate MonoGenericInst's.
7415
7416         * class.c (mono_class_inflate_generic_type): Use the cache.
7417
7418 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7419
7420         * object.c: fixed gc descriptor calculation for embedded valuetypes.
7421
7422 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7423
7424         * icall.c: added Socket.WSAIoctl icall.
7425
7426         * socket-io.[ch]: implemented
7427         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
7428
7429 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
7430
7431         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
7432
7433 2004-02-18  Urs C Muff  <umuff@quark.com>
7434
7435         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
7436         this work on PPC and other big-endian architectures.
7437
7438         * debug-mono-symfile.h: Prepended the names of all the `guint32'
7439         fields with an underscore to make sure they're only accessed by
7440         the read32() macro.
7441
7442 2004-02-18  Martin Baulig  <martin@ximian.com>
7443
7444         * icall.c: Put the klass->refclass changes back for methods and
7445         fields, but not for properties and events.  We're currently not
7446         distinguishing between DeclaringType and ReflectedType for
7447         properties and events, that's what caused the regressions.
7448
7449 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7450
7451         * object.c:
7452         (mono_async_result_new): the handle can be NULL.
7453
7454         * threadpool.c: Use an event instead of a semaphore, don't initialize
7455         it until needed. This saves quite a few semaphores from being created
7456         when using the threadpool.
7457
7458 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
7459
7460         * object.c (mono_string_is_interned_lookup): Fix interning of long
7461         strings. Fixes #54473.
7462
7463         * domain.c (ldstr_equal): Optimize if the two strings are equal.
7464
7465         * icall.c: Revert the klass->refclass changes since they introduce
7466         regressions (bug #54518).
7467
7468 2004-02-18  Martin Baulig  <martin@ximian.com>
7469
7470         * class.c (mono_class_init): If we're a generic instance and don't
7471         come from a TypeBuilder, inflate our members here.
7472         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
7473         (mono_class_create_generic): New public method.
7474         (mono_class_initialize_generic): Removed.
7475         (get_instantiation_name): Renamed to
7476         _mono_class_get_instantiation_name() and made it public.
7477
7478 2004-02-18  Martin Baulig  <martin@ximian.com>
7479
7480         * class.c (mono_class_inflate_generic_type): Clear the new
7481         instance's `nginst->klass' when inflating a generic instance.
7482         (mono_class_is_subclass_of): Added (basic) support for generic
7483         instances.
7484
7485 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
7486
7487         * appdomain.h, domain.c: use a MonoCodeManager instead of a
7488         MonoMempool to hold compiled native code.
7489
7490 2004-02-17  Martin Baulig  <martin@ximian.com>
7491
7492         * class.h (MonoDynamicGenericInst): Added `count_properties' and
7493         `properties'.
7494
7495         * reflection.c (mono_reflection_generic_inst_initialize): Added
7496         `MonoArray *properties' argument.
7497
7498         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
7499
7500 2004-02-17  Martin Baulig  <martin@ximian.com>
7501
7502         * icall.c (ves_icall_Type_GetFields): Renamed to
7503         ves_icall_Type_GetFields_internal() and added a
7504         `MonoReflectionType *rtype' argument; pass it to
7505         mono_field_get_object() to set the field's "reflected" type.
7506         (ves_icall_Type_GetConstructors): Likewise.
7507         (ves_icall_Type_GetEvents): Likewise.
7508         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
7509         argument; pass it to mono_method_get_object() to set the method's
7510         "reflected" type.       
7511
7512 2004-02-17  Martin Baulig  <martin@ximian.com>
7513
7514         * class.h (MonoDynamicGenericInst): New type.
7515         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
7516
7517         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
7518         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
7519         (ves_icall_MonoGenericInst_GetFields): New interncall.
7520
7521         * class.c (mono_class_from_generic): Don't call
7522         mono_class_initialize_generic() if this is a dynamic instance;
7523         ie. it's being created from a TypeBuilder.
7524         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
7525         `class->byval_arg.type'.
7526
7527         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
7528         to `inflate_method' and made static.
7529         (mono_reflection_inflate_field): Removed.
7530         (mono_reflection_generic_inst_initialize): New public method.
7531
7532         * reflection.h (MonoReflectionGenericInst): Removed `methods',
7533         `ctors' and `fields'; added `initialized'.
7534
7535 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
7536
7537         * debug-helpers.c (mono_method_full_name): Fix output for empty
7538         namespaces.
7539
7540 2004-02-12  Martin Baulig  <martin@ximian.com>
7541
7542         * class.h (MonoClassField): Added `MonoType *generic_type'.
7543
7544         * reflection.c (mono_image_get_fieldref_token): Added support for
7545         instantiated generic types.
7546         (field_encode_inflated_field): Removed.
7547         (mono_image_get_inflated_field_token): Removed.
7548         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
7549
7550         * reflection.h (MonoReflectionInflatedField): Removed.
7551
7552 2004-02-12  Martin Baulig  <martin@ximian.com>
7553
7554         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
7555         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
7556
7557         * reflection.c (mono_image_get_methodspec_token): Take a
7558         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
7559         (mono_image_create_token): Check whether we have a
7560         `method->signature->gen_method' and call
7561         mono_image_get_methodspec_token() if appropriate.
7562         (inflated_method_get_object): Removed.
7563         (mono_reflection_bind_generic_method_parameters): Return a
7564         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
7565         (mono_reflection_inflate_method_or_ctor): Likewise.
7566
7567         * reflection.h (MonoReflectionInflatedMethod): Removed.
7568
7569 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
7570
7571         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
7572         for custom valuetype marshalling.
7573
7574         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
7575
7576 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7577
7578         * icall.c: fixed WSAGetLastError_internal name.
7579
7580 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
7581
7582         * threads.c (mono_thread_attach): Allow this to be called multiple
7583         times for a thread.
7584         
7585         * threads.c (build_wait_tids): Do not wait for ourselves.
7586
7587         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
7588         appdomain list is empty.
7589
7590         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
7591         memory returned by mono_string_builder_to_utf16, since it points into
7592         managed memory. Thanks to Bernie Solomon for noticing this.
7593
7594         * icall.c: Add AppDomainSetup icalls.
7595
7596         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
7597
7598         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
7599         types.
7600
7601         * reflection.c (reflection_methodbuilder_to_mono_method): Save
7602         custom attributes to the method_aux struct. Also fix array indexes etc.
7603
7604         * loader.c (mono_method_get_param_names): Make dynamic case work again.
7605         
7606 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
7607
7608         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
7609         (both static and runtime) and reduce startup time.
7610
7611 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
7612
7613         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
7614         AsAny marshalling conversion instead of crashing.
7615
7616         * marshal.c: Fix warnings.
7617
7618 2004-02-09  Martin Baulig  <martin@ximian.com>
7619
7620         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
7621
7622         * reflection.h (MonoReflectionInflatedMethod): Removed the
7623         `declaring' field, it's now in the unmanaged MonoGenericMethod.
7624
7625         * reflection.c (method_encode_methodspec): Removed the `method'
7626         argument; we get it from `gmethod->declaring'.
7627         (inflated_method_get_object): Removed the `declaring' argument.
7628
7629 2004-02-09  Martin Baulig  <martin@ximian.com>
7630
7631         * class.h (MonoGenericMethod): New type.
7632         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
7633         `generic_method'.
7634
7635         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
7636         a `MonoGenericMethod *gen_method' one.
7637
7638         * class.c (mono_class_inflate_generic_type): Take an additional
7639         `MonoGenericMethod * argument.  This is only non-NULL if we're
7640         inflating types for a generic method.   
7641         (mono_class_inflate_generic_signature): Renamed to
7642         inflate_generic_signature() and made static; take a
7643         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
7644         (inflate_generic_header): Take a `MonoGenericMethod *' argument
7645         instead of a `MonoGenericInst *' one.
7646         (mono_class_inflate_generic_method): Likewise.
7647
7648         * reflection.c (encode_generic_method_sig): Take a
7649         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
7650         (method_encode_methodspec): Likewise.
7651         (inflated_method_get_object): Likewise. 
7652
7653         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
7654         field with a `MonoGenericMethod *gmethod' one.  
7655
7656 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
7657
7658         * class.h (mono_class_has_parent): add parens to expansion
7659         so you can ! this.
7660
7661 2004-02-08  Martin Baulig  <martin@ximian.com>
7662
7663         * image.h (MonoImage): Removed `generics_cache'.
7664
7665         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
7666         instead of a `MonoType *' argument; removed the `inflate_methods'
7667         argument.  Don't inflate methods here.
7668
7669         * loader.c (find_method): If it's a generic instance, call
7670         mono_class_init() on the `sclass->generic_inst->generic_type'.
7671
7672         * metadata.c (mono_type_size): Make this work on uninitialized
7673         generic instances; call it on the `ginst->generic_type's class.
7674
7675         * reflection.c (mono_reflection_bind_generic_parameters): Call
7676         mono_class_from_generic() to create the `ginst->klass'.
7677
7678 2004-02-08  Martin Baulig  <martin@ximian.com>
7679
7680         * class.h (MonoClass): Changed type of `generic_inst' from
7681         `MonoType *' to `MonoGenericInst *'.
7682
7683 2004-02-08  Martin Baulig  <martin@ximian.com>
7684
7685         * icall.c (ves_icall_Type_BindGenericParameters): Just call
7686         mono_type_get_object(), this is now creating a `MonoGenericInst'
7687         for MONO_TYPE_GENERICINST.
7688         (ves_icall_MonoGenericInst_GetParentType): Likewise.
7689         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
7690
7691         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
7692         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
7693         (inflated_method_get_object): Added `MonoClass *refclass' argument.
7694         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
7695         and reflected type.
7696
7697         * reflection.h (MonoReflectionInflatedMethod): Removed
7698         `declaring_type' and `reflected_type'.
7699
7700 2004-02-08  Martin Baulig  <martin@ximian.com>
7701
7702         * class.h (MonoGenericInst): Added `MonoType *parent' and
7703         `MonoType **ifaces'.
7704
7705         * reflection.h (MonoReflectionGenericInst): Removed `klass',
7706         `parent' and `interfaces'.
7707
7708         * reflection.c (mono_reflection_bind_generic_parameters): Take a
7709         `MonoType *' argument and return a `MonoType *'.
7710
7711         * icall.c
7712         (ves_icall_MonoGenericInst_GetParentType): New interncall.
7713         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
7714
7715 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
7716
7717         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
7718         valuetype marshalling.
7719
7720 2004-02-06  Martin Baulig  <martin@ximian.com>
7721
7722         * class.c
7723         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
7724         (my_mono_class_from_generic_parameter): Likewise.
7725
7726 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
7727
7728         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
7729         contents of the symbol files lazily.
7730
7731         * object.h (MonoThread): Add 'name' and 'name_len' fields.
7732
7733         * threads.h threads.c icall.c: New icalls for getting and setting the
7734         threads name.
7735
7736 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
7737
7738         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
7739         Raise an exception when the domain is not found.
7740
7741 2004-02-03  Martin Baulig  <martin@ximian.com>
7742
7743         * reflection.c (mono_image_get_methodspec_token): Use the
7744         uninflated signature; fixes gen-33.
7745
7746 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
7747
7748         * gc.c threads.c: Make the finalizer thread a normal managed thread so
7749         the finalizer code can use thread functionality.
7750
7751         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
7752         the finalizer thread.
7753
7754         * threads.c: Make some functions more robust.
7755
7756         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
7757
7758         * metadata.h: Add new marshalling conventions.
7759
7760         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
7761         stringbuilder marshalling. Fixes #53700.
7762
7763         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
7764
7765         * reflection.c (mono_image_get_type_info): Save declarative security
7766         info.
7767
7768         * reflection.c (mono_image_get_field_info): Handle uninitialized 
7769         unmanaged fields as well.
7770
7771         * appdomain.c: Bump corlib version.
7772
7773 2004-02-01  Martin Baulig  <martin@ximian.com>
7774
7775         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
7776         method type arguments.  
7777
7778 2004-01-30  Duncan Mak  <duncan@ximian.com>
7779
7780         * marshal.h: Add prototype for
7781         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
7782         and
7783         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
7784         fix the build.
7785
7786 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
7787
7788         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
7789         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
7790
7791 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
7792
7793         * marshal.c (mono_marshal_get_native_wrapper): Add support for
7794         custom marshalling of valuetypes.
7795
7796         * marshal.c: Fix some warnings.
7797
7798 2004-01-29  Martin Baulig  <martin@ximian.com>
7799
7800         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
7801         for generic method parameters.
7802
7803         * reflection.c (method_encode_methodspec): Write the uninflated
7804         signature into the methodspec table.
7805         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
7806         is always the uninflated method.
7807         (reflection_methodbuilder_to_mono_method): Copy the generic
7808         parameters from the MethodBuilder into `header->gen_params'.
7809
7810 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
7811
7812         * class.c (mono_class_from_generic_parameter): Fix warning.
7813
7814 2004-01-27  Martin Baulig  <martin@ximian.com>
7815
7816         * class.c (mono_class_from_generic_parameter): Don't create
7817         `klass->methods' here.  
7818
7819 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
7820
7821         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
7822         extension since it does not work with libraries named lib<FOO>.dll.so.
7823
7824 2004-01-25  Martin Baulig  <martin@ximian.com>
7825
7826         * class.c (mono_class_inflate_generic_type): Added support for
7827         MONO_TYPE_GENERICINST.
7828
7829         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
7830         inflate methods on open constructed types.      
7831
7832 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7833
7834         * object.c: fire ProcessExit event in the root AppDomain after running
7835         Main. Fixes bug #53299.
7836
7837 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
7838
7839         * socket-io.c: include the new socket-wrappers.h header.
7840         Use the wrappers instead of the unix socket functions to make the code
7841         more clear.
7842
7843 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
7844
7845         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
7846
7847         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
7848         Fixes #22532.
7849
7850 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
7851
7852         * reflection.c (mono_image_create_pefile): Handle the case when the
7853         entry point is not a MethodBuilder.
7854
7855         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
7856         field to ReflectionMethod since it is not allways a builder.
7857
7858         * reflection.c (type_get_fully_qualified_name): New helper function to
7859         return the fully qualified name of a type.
7860
7861         * reflection.c (encode_marshal_blob): Always emit the fully qualified
7862         type name for custom marshallers.
7863
7864         * reflection.c (mono_marshal_spec_from_builder): Ditto.
7865
7866         * class.c (mono_class_setup_vtable): If a parent class already 
7867         implements an interface, use the implementing methods from that class.
7868         Fixes #53148.
7869
7870 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7871
7872         * threadpool.c: just return instead of ExitThread to allow for thread
7873         clean up earlier.
7874
7875 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
7876
7877         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
7878         when closing resource modules.
7879
7880         * reflection.c (mono_image_create_pefile): Handle the case when the
7881         entry point is not a MethodBuilder.
7882
7883         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
7884         field to ReflectionMethod since it is not allways a builder.
7885
7886 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7887
7888         * marshal.c (mono_marshal_get_managed_wrapper): 
7889         mono_marshal_alloc takes native int so CONV_I
7890         the arg for 64bits.
7891
7892 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
7893
7894         * reflection.c (fixup_cattrs): New function to fixup the methoddef
7895         tokens in the cattr table. Fixes #53108.
7896
7897 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7898
7899         * loader.c: don't trim ".dll" before looking up in the config file.
7900         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
7901
7902 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
7903
7904         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
7905         Return the module which contains the resource as well.
7906         (ves_icall_System_Reflection_Module_Close): New icall.
7907
7908         * appdomain.c: Bump corlib version number.
7909
7910         * image.c (mono_image_addref): New public function.
7911
7912         * assembly.c: Call mono_image_addref.
7913
7914         * reflection.c (mono_module_get_object): Increase reference count of 
7915         the image.
7916
7917         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
7918         Fixes #22532.
7919
7920         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
7921         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
7922         proper exceptions on DllImport problems.
7923
7924 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
7925
7926         * class.c, metadata.c: eliminate CSIZE macro.
7927
7928 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
7929
7930         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
7931         * object.h: Added async_callback field in MonoAsyncResult.
7932         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
7933         * verify.c: Added async_callback in MonoAsyncResult layout.
7934
7935 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
7936
7937         * reflection.c (mono_reflection_get_custom_attrs): Add support
7938         for Modules.
7939
7940 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
7941
7942         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
7943         marshalling.
7944         (mono_marshal_method_from_wrapper): Add null pointer check.
7945
7946 2004-01-16  Martin Baulig  <martin@ximian.com>
7947
7948         * debug-mono-symfile.h: Set version number to 36 and reflect
7949         latest symbol writer changes.
7950
7951 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
7952
7953         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
7954         multi-dimensional arrays.
7955         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
7956         (mono_class_from_mono_type): Use bounded_array_class_get.
7957         
7958         * class.c (mono_bounded_array_class_get): New function which takes
7959         a 'bounded' bool argument to distinguish vectors from one dimensional
7960         arrays.
7961
7962         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
7963         bounded_array_class_get if the array has bounds.
7964
7965         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
7966         Search modules loaded using AssemblyBuilder:AddModule as well.
7967
7968 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7969
7970         * appdomain.c: increased corlib version.
7971         * filewatcher.c: removed g_print.
7972         * icall.c:
7973         (get_property_info): only allocate what is actually requested.
7974         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
7975
7976 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7977
7978         * Makefile.am: added filewatcher.[ch]
7979         * filewatcher.[ch]: FileSystemWatcher runtime support.
7980         * icall.c: added new FSW icalls.
7981
7982 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
7983
7984         * string-icalls.c: fix stringbuilder regression as suggested by
7985         Iain McCoy <iain@mccoy.id.au>.
7986
7987 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
7988
7989         * process.c (process_read_stringtable_block): Recognize '007f' as
7990         a language neutral stringtable block.
7991
7992 2004-01-12  Patrik Torstensson
7993
7994         * object.h (MonoStringBuilder) : Changed layout to support our
7995         new stringbuilder class.
7996         * marshal.c: Change marshalling to support the new layout of 
7997         string builder.
7998         * appdomain.c: increased version number because new layout of
7999         string builder.
8000
8001 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
8002
8003         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
8004         assembly name as an string instead of an AssemblyName, since it is
8005         easier to extract info from it.
8006
8007         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
8008         the culture subdirectories too. Fixes #52231.
8009
8010 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8011
8012         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
8013         It takes 2 new parameters with an optional name for the method to look
8014         for and case ignoring info.
8015
8016         * threadpool.c: removed unused variable.
8017
8018 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8019
8020         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
8021         It takes 2 new parameters with an optional name for the property to look
8022         for and case ignoring info.
8023         Fixes bug #52753.
8024
8025 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
8026
8027         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
8028         Fix #52451.
8029
8030 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8031
8032         * appdomain.c:
8033         * assembly.c: escape the uri before passing it to g_filename_from_uri.
8034         Fixes bug #52630.
8035
8036 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
8037
8038         * reflection.c: Add support for more than one unmanaged resource.
8039
8040         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
8041         in field->def_value, as done in all other cases.
8042
8043         * reflection.c (mono_reflection_get_custom_attrs): Add support for
8044         TypeBuilders.
8045
8046         * reflection.c (mono_reflection_create_runtime_class): Remove 
8047         errorneous assignment to klass->element_class, since it is already
8048         done in mono_reflection_setup_internal_class.
8049
8050 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8051
8052         * gc.c: added missing LeaveCriticalSection.
8053         * icall.c: indented a couple of lines.
8054         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
8055         if we call EndInvoke inside a callback. Fixes bug #52601.
8056
8057 2004-01-07  Martin Baulig  <martin@ximian.com>
8058
8059         * mono-debug-debugger.h
8060         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
8061
8062 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
8063
8064         * appdomain.c: Use messages in NotImplementedException.
8065
8066         * exception.c (mono_get_exception_not_implemented): Now this takes
8067         a message argument.
8068
8069         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
8070         exception instead of g_asserting an aborting when something is not
8071         implemented.
8072
8073         Add some inline docs.
8074
8075 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
8076
8077         * reflection.h: Update after changes to object layout.
8078
8079         * reflection.c: Implement saving of unmanaged aka win32 resources.
8080
8081         * appdomain.c: Bump version number.
8082
8083         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
8084         Handle missing domains gracefully.
8085
8086 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
8087
8088         * file-io.c : On Windows, there are much more invalid_path_chars.
8089
8090 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
8091
8092         * class.h, object.c: prepare for GetType () speedup.
8093
8094 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
8095
8096         * profiler.c: workaround for --profile null reference exception on
8097           cygwin. Patch by Patrik Torstensson.
8098
8099 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
8100
8101         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
8102         make work for unaligned access.
8103
8104 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
8105
8106         * class.c: small cleanup (class->fields [i] -> field).
8107         * image.c: check address of metadata is valid.
8108
8109 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
8110
8111         * assembly.h assembly.c (mono_assembly_loaded): New public function to
8112         search the list of loaded assemblies.
8113
8114         * reflection.c (mono_reflection_type_from_name): Use 
8115         mono_assembly_loaded instead of mono_image_loaded.
8116
8117         * reflection.c: Fix warnings.
8118
8119 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
8120
8121         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
8122         is dynamic. This is needed since an assembly can contain both dynamic and
8123         non-dynamic images.
8124
8125         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
8126         assembly->dynamic.
8127
8128         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
8129
8130         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
8131         to store modules loaded using AddModule.
8132
8133         * reflection.c (mono_image_fill_file_table): Generalize this so it works
8134         on Modules.
8135
8136         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
8137
8138         * reflection.c (mono_image_fill_export_table_from_module): New function to
8139         fill out the EXPORTEDTYPES table from a module.
8140
8141         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
8142         into a separate function. Also handle loaded non-dynamic modules.
8143
8144         * reflection.c (mono_image_basic_init): Fix memory allocation.
8145
8146         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8147
8148         * assembly.c (mono_assembly_load_references): Make this public.
8149
8150 2003-12-19  Martin Baulig  <martin@ximian.com>
8151
8152         * class.c (mono_class_initialize_generic): Made this static, take
8153         a `MonoGenericInst *' instead of a `MonoClass *'.
8154         (mono_class_from_generic): Call mono_class_initialize_generic()
8155         unless we're already initialized or being called from
8156         do_mono_metadata_parse_generic_inst().
8157
8158         * class.h (MonoGenericInst): Added `initialized' and
8159         `init_pending' flags.
8160
8161         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
8162         `mono_class_init (gklass)' or mono_class_initialize_generic()
8163         here; set `generic_inst->init_pending' while parsing the
8164         `type_argv'.
8165
8166 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
8167
8168         * locales.c: include string.h for memxxx prototypes
8169
8170 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
8171
8172         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
8173         constructor when accessing literal fields.
8174
8175 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
8176
8177         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8178
8179         * reflection.c (assembly_add_resource_manifest): New function to fill
8180         the MANIFESTRESOURCE table.
8181
8182         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
8183
8184         * reflection.h: Update to changes in class layout.
8185
8186         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
8187         Reenable call to mono_runtime_is_shutting_down ().
8188
8189         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
8190         determine if the runtime is shutting down.
8191
8192 2003-12-16  Jackson Harper <jackson@ximian.com>
8193
8194         * icall.c: comment out call to mono_runtime_is_shutting_down to
8195         fix build.
8196         
8197 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
8198
8199         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
8200         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
8201
8202 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
8203
8204         * reflection.c: move definition of swap_with_size
8205         to before its first call
8206
8207 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
8208
8209         * appdomain.c (mono_runtime_is_shutting_down): New public function.
8210
8211         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
8212         icall.
8213
8214         * object.c: Fix warnings.
8215
8216         * icall.c (ves_icall_Type_Get...): Only consider inherited static
8217         members if FlattenHierarchy is set.
8218
8219         * reflection.c (mono_image_add_decl_security): New function to emit
8220         declarative security.
8221
8222         * reflection.h reflection.c: Add support for declarative security.
8223
8224         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
8225         
8226 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
8227
8228         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
8229         
8230         * appdomain.c verify.c: Moved corlib version checking into its own
8231         function in appdomain.c since it needs to create vtables etc.
8232
8233 2003-12-13  Patrik Torstensson <p@rxc.se>
8234
8235         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
8236         instead of unwrapped server.
8237
8238 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
8239
8240         * verify.c (check_corlib): Fix field index.
8241
8242 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
8243
8244         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
8245         GetGacPath icall.
8246
8247 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
8248
8249         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
8250         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
8251         cope with sizeof(size_t) != sizeof(guint32).
8252
8253 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8254
8255         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
8256         in case of failure.
8257
8258 2003-12-10  Mark Crichton <crichton@gimp.org>
8259
8260         * icall.c: removed the GetNonZeroBytes.  We now handle this case
8261         in managed code.
8262
8263         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
8264
8265 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
8266
8267         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
8268         marked as deleted.
8269
8270 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
8271
8272         * verify.c (check_corlib): Handle the case when the version field is 
8273         initialized by a static constructor.
8274
8275 2003-12-08  Patrik Torstensson  <p@rxc.se>
8276
8277     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
8278
8279 2003-12-08  Martin Baulig  <martin@ximian.com>
8280
8281         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
8282         a MonoReflectionGenericParameter, also take the parameter index
8283         and name as arguments.
8284         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
8285         (ves_icall_MonoGenericParam_initialize): New interncall.
8286         (ves_icall_Type_make_byref_type): New interncall.
8287
8288         * reflection.h (MonoReflectionGenericParam): Derive from
8289         MonoReflectionType, not just from MonoObject.  Added `refobj' and
8290         `index' fields.
8291
8292         * reflection.c (mono_reflection_define_generic_parameter): Create
8293         and return a new MonoReflectionGenericParam; don't initialize the
8294         constraints here.
8295         (mono_reflection_initialize_generic_parameter): New public method;
8296         initializes the constraints and creates the `param->pklass'.
8297
8298 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
8299
8300         * reflection.h reflection.c: Use the new fields 'num_types', 
8301         'num_fields' and 'num_methods' to track the number of types etc.
8302
8303         * verify.c (check_corlib): Check corlib version number.
8304
8305 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
8306
8307         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
8308         function works on all methods.
8309
8310 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
8311
8312         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
8313         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
8314         the custom_type_info flag of the transparent proxy.
8315         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
8316         objects that supports IRemotingTypeInfo.
8317         * object.h: Added custom_type_info field in transparent proxy.
8318
8319 2003-12-06  Martin Baulig  <martin@ximian.com>
8320
8321         * class.c (mono_class_create_from_generic): Removed.
8322         (mono_class_from_generic): Check `ginst->klass' before doing
8323         anything else.  This is important to fully support "recursive"
8324         generic types.
8325
8326         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
8327         empty `generic_inst->klass' before doing anything else.
8328
8329 2003-12-06  Dick Porter  <dick@ximian.com>
8330
8331         * verify.c: 
8332         * object.h:
8333         * icall.c:
8334         * locales.c: Use C structs to access class fields.  Don't do a
8335         conversion between MonoString and UChar because both are
8336         platform-endian UTF-16.  Compare now takes startindex and count
8337         parameters.  Add a char overload for IndexOf.  Speed up the
8338         invariant string IndexOf.
8339
8340 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
8341
8342         * Makefile.am (monosn_LDADD): Fix parallel build.
8343
8344 2003-12-04  Martin Baulig  <martin@ximian.com>
8345
8346         * icall.c
8347         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
8348         (ves_icall_Type_make_array_type): New interncall.       
8349
8350 2003-12-04  Martin Baulig  <martin@ximian.com>
8351
8352         * locales.c: also change it in the !HAVE_ICU case.
8353
8354 2003-12-04  Dick Porter  <dick@ximian.com>
8355
8356         * icall.c:
8357         * locales.c: construct_compareinfo is now in CompareInfo, not
8358         CultureInfo.
8359
8360 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
8361
8362         * image.c (mono_image_load_file_for_image): Cache loaded images in the
8363         image->files array.
8364
8365         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
8366         table as well.
8367
8368         * assembly.c (mono_assembly_load_references): Only load references
8369         once.
8370
8371         * class.c (mono_class_from_name): Avoid linear search of the 
8372         EXPORTEDTYPE table.
8373
8374         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
8375
8376 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
8377
8378         * image.h (MonoImage): Add 'field_cache' field.
8379
8380         * loader.c (mono_field_from_token): Cache field lookups.
8381         
8382         * reflection.c (mono_module_get_object): Fix name property.
8383
8384         * icall.c (ves_icall_get_enum_info): Update after changes to 
8385         mono_metadata_get_constant_index ().
8386
8387         * icall.c: Get rid of get_type_info icall, use a separate icall for
8388         each type property to avoid needless memory allocations. Fixes #51514.
8389
8390         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
8391         to avoid needless binary searches.
8392
8393         * class.c (class_compute_field_layout): Move the initialization of
8394         field->def_value to mono_class_vtable ().
8395
8396         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
8397         non-corlib types.
8398
8399         * object.c (mono_object_allocate): Make it inline.
8400
8401         * object.c (mono_object_allocate_spec): Make it inline.
8402         
8403 2003-12-02  Dick Porter  <dick@ximian.com>
8404
8405         * locales.c (create_NumberFormat): NumberFormatInfo construction.
8406         Patch by Mohammad DAMT (mdamt@cdl2000.com).
8407
8408 2003-12-01  Dick Porter  <dick@ximian.com>
8409
8410         * threads.c: Fix signature and call in CreateMutex and
8411         CreateEvent.
8412
8413 2003-12-01  Dick Porter  <dick@ximian.com>
8414
8415         * icall.c: 
8416         * locales.c: Implement string compares and searching
8417
8418         * object.h: Add extra Thread field
8419
8420 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
8421
8422         * reflection.c (fixup_method): Add support for MonoCMethod.
8423
8424 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
8425
8426         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
8427
8428         * reflection.c (assembly_name_to_aname): Allow extra characters in
8429         assembly names. Fixes #51468.
8430
8431 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
8432
8433         * exception.c (mono_exception_from_name_domain): New helper function.
8434
8435         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
8436         exception object in the correct domain.
8437
8438         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
8439         formatting + make a copy a the input data.
8440
8441         * loader.c (mono_get_method_from_token): Methods which contain
8442         native code do not have entries in the ImplMap.
8443
8444         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
8445         Thanks to Gonzalo for spotting this.
8446         
8447         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
8448         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
8449
8450         * assembly.h (mono_assembly_load_from): Split the second part of 
8451         assembly loading into a new public function.
8452
8453         * exception.h (mono_get_exception_bad_image_format): New function.
8454
8455 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
8456
8457         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
8458         Enumerate all modules inside a dynamic assembly. Fixes #51293.
8459         
8460         * icall.c: Add new icall for creating dynamic methods.
8461
8462         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
8463
8464         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
8465
8466         * reflection.c (mono_reflection_create_dynamic_method): New icall to
8467         create a dynamic method.
8468
8469         * reflection.c (resolve_object): New helper function.
8470
8471         * reflection.c: Generalize ReflectionMethodBuilder and the functions
8472         which manipulate it so they can also work on dynamic methods.
8473
8474         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
8475         creating the MonoReflectionMethodAux structure if it is not needed.
8476         
8477         * reflection.h verify.c: Update after changes to object layout.
8478
8479         * reflection.c (method_builder_encode_signature): Fix compilation on
8480         gcc 2.95.x.
8481
8482 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
8483
8484         * appdomain.h: Added support for context static fields. Added static_data
8485           field to MonoAppContext and renamed thread_static_fields to a more
8486           generic special_static_fields in MonoAppDomain, since it can now contain
8487           context static fields.
8488         * domain.c: Updated hashtable name.
8489         * object.c: Replaced field_is_thread_static() for a more generic
8490           field_is_special_static() which also checks for context static attribute.
8491           In mono_class_vtable(), added support for static context fields.
8492         * threads.c: Changed methods that manage thread static fields to more
8493           generic methods so they can be reused both for thread and context static
8494           data.
8495         * threads.h: Declared some new methods.
8496
8497 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
8498
8499         * reflection.h: Update after changes to the managed types.
8500
8501         * reflection.c (encode_custom_modifiers): New helper function.
8502
8503         * reflection.c (method_encode_signature): Emit custom modifiers.
8504
8505         * reflection.c (field_encode_signature): Emit custom modifiers.
8506
8507 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
8508
8509         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
8510
8511         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
8512         implementation.
8513
8514         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
8515         icall.
8516
8517         * object.c (mono_field_get_value_object): New function.
8518
8519         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
8520         specific.
8521
8522 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
8523
8524         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
8525         return a preallocated out-of-memory exception instance.
8526
8527         * object.c (out_of_memory): Use the new function.
8528
8529         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
8530         flag is before the custom modifiers. Fixes #49802.
8531
8532 2003-11-16  Martin Baulig  <martin@ximian.com>
8533
8534         * class.c (mono_class_is_open_constructed_type): Implemented the
8535         MONO_TYPE_GENERICINST case.
8536
8537 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
8538
8539         * assembly.c (mono_assembly_fill_assembly_name): New function to
8540         fill out the MonoAssemblyName structure.
8541         (mono_assembly_open): Use the new function.
8542
8543         * icall.c (fill_reflection_assembly_name): New helper function.
8544
8545         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
8546         new function.
8547
8548         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
8549
8550 2003-11-15  Martin Baulig  <martin@ximian.com>
8551
8552         * class.c (mono_class_is_open_constructed_type): New public
8553         function; checks whether a type is an open constructed type,
8554         ie. whether it still contains type parameters.
8555         (mono_class_inflate_generic_type): If we're a type parameter and
8556         the inflated type is also a MONO_TYPE_(M)VAR, return the original
8557         type.
8558
8559         * class.h (MonoGenericInst): Added `guint32 is_open'.
8560
8561         * loader.c (method_from_methodspec): Check whether we're an open
8562         or closed constructed type and set `ginst->is_open'.
8563
8564         * reflection.c (mono_reflection_bind_generic_parameters): Check
8565         whether we're an open or closed constructed type and set
8566         `ginst->is_open'.
8567         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
8568         from open constructed types.
8569
8570 2003-11-15  Martin Baulig  <martin@ximian.com>
8571
8572         * reflection.c (mono_reflection_bind_generic_parameters): If we're
8573         a generic instance (instead of a generic type declaration) with
8574         unbound generic parameters, bind them to our actual types.
8575
8576 2003-11-14  Martin Baulig  <martin@ximian.com>
8577
8578         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
8579
8580         * reflection.c (mono_reflection_bind_generic_parameters): If we're
8581         an interface type, populate `res->interfaces' with instantiated
8582         versions of all the interfaces we inherit.
8583
8584 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
8585
8586         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
8587         when MONO_PATH is set but doesn't contain the install dir.
8588
8589 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8590
8591         * icall.c:
8592         (ves_icall_Type_GetInterfaces): don't return an interface twice when
8593         it's also implemented in base classes. Fixes bug #50927.
8594
8595 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
8596
8597         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
8598         if this method is called from a finalizer. Fixes #50913.
8599
8600 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
8601
8602         * threads.c: Implement VolatileRead/VolatileWrite
8603
8604         * icall.c: Add new icalls for VolatileRead/VolatileWrite
8605
8606 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
8607
8608         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
8609         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
8610         2.95.3.
8611
8612         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
8613         from Peter Ross (pro@missioncriticalit.com).
8614         
8615 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
8616
8617         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
8618
8619 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
8620
8621         * assembly.c (mono_assembly_load_references): Disable check because it
8622         triggers on older corlibs which lots of people have.
8623
8624 2003-11-12  Jackson Harper  <jackson@ximian.com>
8625
8626         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
8627         load corlib.dll if mscorlib.dll is not found.
8628         * assembly.h: Remove corlib name define.
8629         * class.c:
8630         * domain.c:
8631         * image.c: Change corlib name to mscorlib.
8632         
8633 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
8634
8635         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
8636
8637 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
8638
8639         * appdomain.h: Added loader_optimization here to sync with the C#
8640         code, and add disallow_binding_redirects field.
8641
8642 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
8643
8644         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
8645
8646         * reflection.c (mono_image_build_metadata): Fix crash on modules
8647         with no types.
8648
8649         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
8650
8651         * icall.c (ves_icall_get_method_info): Return callingConvention as
8652         well.
8653
8654         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
8655         namespaces from the EXPORTEDTYPE table as well.
8656
8657         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
8658         from all modules inside the assembly.
8659         
8660 2003-11-11  Martin Baulig  <martin@ximian.com>
8661
8662         * reflection.c (mono_reflection_bind_generic_parameters): Make
8663         this work for interfaces.
8664
8665 2003-11-11  Martin Baulig  <martin@ximian.com>
8666
8667         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
8668
8669 2003-11-11  Martin Baulig  <martin@ximian.com>
8670
8671         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
8672         "MonoInflatedMethod" and "MonoInflatedCtor".
8673
8674 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
8675
8676         * reflection.c (resolution_scope_from_image): Use the assembly table
8677         from the manifest module, since other modules don't have it.
8678
8679         * debug-helpers.c (mono_type_full_name): New helper function.
8680
8681         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
8682
8683         * image.c (mono_image_load_file_for_image): New public function which
8684         is a replacement for the load_file_for_image in class.c.
8685
8686         * assembly.c (mono_assembly_load_module): A wrapper for the function
8687         above which does assembly association and reference loading too.
8688
8689         * class.c (mono_class_from_name): Call mono_assembly_load_module.
8690
8691 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8692
8693         * appdomain.c: not all of the attributes for the full assembly name
8694         are required and the order doesn't matter. Fixes bug #50787.
8695
8696 2003-11-10  Dick Porter  <dick@ximian.com>
8697
8698         * locales.c: Use platform-endian UTF16
8699
8700 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
8701
8702         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
8703         
8704 2003-11-10  Martin Baulig  <martin@ximian.com>
8705
8706         * metadata.c
8707         (mono_metadata_load_generic_params): Make this actually work.
8708
8709         * reflection.c (mono_reflection_bind_generic_parameters): If our
8710         parent is a generic instance, pass all the `types' to it, no
8711         matter whether it has the same number of type parameters or not.
8712
8713 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
8714
8715         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
8716
8717         * assembly.c (mono_assembly_load_references): Move the image<->assembly
8718         assignment code to this function so it gets called recursively for all
8719         modules.
8720
8721         * image.c (load_modules): Remove the assembly assignment since it is
8722         now done by mono_assembly_load_references.
8723         
8724         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
8725         Add 'module' argument.
8726         (mono_module_get_types): New helper function.
8727         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
8728
8729 2003-11-08  Martin Baulig  <martin@ximian.com>
8730
8731         * class.c (mono_class_inflate_generic_method): Interface method
8732         don't have a header.
8733
8734         * reflection.c (mono_image_get_methodspec_token): Take an
8735         additional `MonoGenericInst *' argument instead of reading it from
8736         the header; this is necessary to support interfaces.
8737         (mono_image_create_token): Pass the `MonoGenericInst *' from the
8738         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
8739         (inflated_method_get_object): Take an additional `MonoGenericInst *'
8740         argument.
8741
8742         * reflection.h (MonoReflectionInflatedMethod): Added
8743         `MonoGenericInst *ginst'.
8744
8745 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
8746
8747         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
8748
8749 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
8750
8751         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
8752
8753 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
8754
8755         * reflection.c 
8756         (reflection_methodbuilder_from_method_builder):
8757         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
8758         initialize a ReflectionMethodBuilder structure.
8759         (mono_image_get_methodbuilder_token):
8760         (mono_image_get_ctorbuilder_token): New functions to emit memberref
8761         tokens which point to types in another module inside the same assembly.
8762
8763         * reflection.c: Use the new helper functions.
8764         
8765         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
8766
8767         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
8768         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
8769
8770         * reflection.c (resolution_scope_from_image): Emit a moduleref if
8771         neccesary.
8772
8773         * reflection.c (mono_image_build_metadata): Emit metadata only for the
8774         current module. Emit the manifest only for the main module.
8775
8776         * reflection.c (mono_image_create_token): Add assertion when a 
8777         memberref needs to be created.
8778
8779         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
8780
8781         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
8782         larger buffer for the custom attribute blob. Fixes #50637.
8783         
8784 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8785
8786         * threadpool.c: notify listener on async processing handles after
8787         invoking the async callback. Thanks to Zoltan.
8788
8789 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8790
8791         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
8792         avoid code duplication.
8793
8794         * reflection.h (MonoDynamicImage): New type which is currently unused,
8795         but will be used through the ref.emit code in place of 
8796         MonoDynamicAssembly.
8797
8798         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
8799         object layout.
8800
8801         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
8802         a MonoDynamicImage instead of just a MonoImage.
8803         
8804         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
8805         icalls to ModuleBuilder but keep their semantics, so they will work
8806         with moduleb->assemblyb. This will change later.
8807         
8808 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8809
8810         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
8811         object layout.
8812
8813         * reflection.c (mono_image_build_metadata): Avoid creation of a default
8814         main module, since it is now done by the managed code.
8815
8816 2003-11-03  Martin Baulig  <martin@ximian.com>
8817
8818         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
8819         `ginst->klass' here.
8820         (method_encode_methodspec): Don't use the `ginst->generic_method's
8821         klass if it's a generic instance, use `ginst->klass' in this case.
8822
8823 2003-11-03  Martin Baulig  <martin@ximian.com>
8824
8825         * reflection.c (mono_image_get_generic_method_param_info):
8826         Removed, use mono_image_get_generic_param_info() instead.
8827         (mono_image_get_type_info): Write the GenericParam table before
8828         the Method table.  This is neccessary because in the GenericParam
8829         table, type parameters of the class (ie. '!0' etc.) must come
8830         before the ones from its generic methods (ie. '!!0' etc).
8831
8832 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8833
8834         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
8835
8836 2003-11-02  Martin Baulig  <martin@ximian.com>
8837
8838         * reflection.c (create_generic_typespec): Take a
8839         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
8840         the generic parameters from it.
8841
8842 2003-11-02  Martin Baulig  <martin@ximian.com>
8843
8844         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
8845         instead of a `MonoClassField *' since we just need the type.
8846         (create_generic_typespec): New static function.  Creates a
8847         TypeSpec token for a generic type declaration.
8848         (mono_image_get_generic_field_token): New static function.
8849         (mono_image_create_token): If we're a FieldBuilder in a generic
8850         type declaration, call mono_image_get_generic_field_token() to get
8851         the token.
8852
8853 2003-11-02  Martin Baulig  <martin@ximian.com>
8854
8855         * reflection.h
8856         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
8857         `MonoReflectionGenericInst *declaring_type' and
8858         `MonoReflectionGenericInst *reflected_type' fields.
8859
8860         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
8861         `MonoReflectionGenericInst *declaring_type' and a
8862         `MonoReflectionGenericInst *reflected_type' argument instead of a
8863         single `MonoReflectionGenericInst *type' one.  Set
8864         `res->declaring_type' and `res->reflected_type' from them.
8865         (mono_reflection_inflate_field): Likewise.      
8866
8867 2003-11-02  Martin Baulig  <martin@ximian.com>
8868
8869         * class.c (mono_class_setup_vtable): Don't store generic methods
8870         in the vtable.  
8871
8872 2003-11-02  Martin Baulig  <martin@ximian.com>
8873
8874         * reflection.h (MonoReflectionGenericInst): Added
8875         `MonoReflectionType *declaring_type'.
8876
8877         * reflection.c (mono_reflection_bind_generic_parameters): Use
8878         `if (tb->parent)' instead of `klass->parent'.
8879
8880 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
8881
8882         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
8883         with an empty ASSEMBLY table.
8884
8885         * reflection.c (mono_image_build_metadata): Avoid using the same loop
8886         variable in the inner and outer loops.
8887
8888 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
8889
8890         * metadata.h (mono_metadata_make_token): Put parentheses around macro
8891         argument.
8892
8893         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
8894         
8895         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
8896         icalls. Instead, do everything in managed code. This is needed since
8897         it is hard to restore the original domain etc. in unmanaged code in the
8898         presence of undeniable exceptions.
8899
8900         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
8901         New icalls to push and pop appdomain refs.
8902
8903 2003-10-31  Martin Baulig  <martin@ximian.com>
8904
8905         * class.c (inflate_generic_type): Renamed to
8906         mono_class_inflate_generic_type() and made it public.
8907
8908         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
8909         New interncall.
8910
8911         * loader.c (mono_field_from_memberref): Also set the retklass for
8912         typespecs.
8913
8914         * fielder.c (mono_image_get_inflated_field_token): New static
8915         method; creates a metadata token for an inflated field.
8916         (mono_image_create_token, fixup_method): Added support for
8917         "MonoInflatedField".
8918         (fieldbuilder_to_mono_class_field): New static function.
8919         (mono_reflection_inflate_field): New public function.
8920
8921         * reflection.h
8922         (MonoReflectionGenericInst): Added `MonoArray *fields'.
8923         (MonoReflectionInflatedField): New typedef.     
8924
8925 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
8926
8927         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
8928         for Solaris and other platforms without s6_addr16
8929
8930 2003-10-30  Martin Baulig  <martin@ximian.com>
8931
8932         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
8933         argument instead of two.
8934         (mono_class_inflate_generic_signature): Likewise.
8935         (inflate_generic_header): Likewise.
8936         (mono_class_inflate_generic_method): Likewise.  In addition, if
8937         `ginst->klass' is set, it becomes the new `method->klass'.
8938
8939         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
8940         field.
8941
8942         * reflection.c (encode_generic_method_sig): Write a 0xa as the
8943         first byte. [FIXME]
8944         (method_encode_methodspec): If we have generic parameters, create
8945         a MethodSpec instead of a MethodRef.
8946         (fixup_method): Added support for "MonoInflatedMethod" and
8947         "MonoInflatedCtor".
8948         (mono_image_create_token): Added support for "MonoInflatedMethod"
8949         and "MonoInflatedCtor".
8950         (inflated_method_get_object): New static function; returns a
8951         managed "System.Reflection.MonoInflatedMethod" object.
8952         (mono_reflection_bind_generic_method_parameters): Return a
8953         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
8954         (mono_reflection_inflate_method_or_ctor): Likewise.
8955         (mono_image_get_generic_method_param_info): Initialize unused
8956         fields to zero.
8957         (mono_image_get_generic_param_info): Likewise.
8958
8959         * reflection.h (MonoReflectionInflatedMethod): New public
8960         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
8961         "S.R.MonoInflatedCtor" classes.
8962
8963         * loader.c (method_from_memberref): If we're a TypeSpec and it
8964         resolves to a generic instance, inflate the method.
8965
8966 2003-10-28  Dick Porter  <dick@ximian.com>
8967
8968         * object.c (mono_runtime_run_main): Convert command-line arguments
8969         into utf8, falling back to the user's locale encoding to do so.
8970
8971 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
8972
8973         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
8974         at this time.
8975
8976         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
8977
8978         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
8979         up icalls at method definition time. Partially fixes #33569.
8980
8981 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
8982
8983         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
8984         marshalling of arrays. Fixes #50116.
8985
8986         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
8987
8988         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
8989         points to a vtable in the dying appdomain.
8990
8991         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
8992         listeners into unmanaged code inside the lock.
8993
8994         * object.c (mono_class_vtable): Turn off typed allocation in non-root
8995         domains and add some comments.
8996
8997 2003-10-25  Martin Baulig  <martin@ximian.com>
8998
8999         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
9000
9001         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
9002
9003         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
9004         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
9005         currently parsing.  Create the generic class and store it in
9006         `generic_inst->klass' before parsing the type arguments.  This is
9007         required to support "recursive" definitions; see mcs/tests/gen-23.cs
9008         for an example.
9009         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
9010         to support recursive typespec entries.
9011
9012         * class.c (mono_class_setup_parent): If our parent is a generic
9013         instance, we may get called before it has its name set.
9014         (mono_class_from_generic): Splitted into
9015         mono_class_create_from_generic() and mono_class_initialize_generic().
9016
9017 2003-10-25  Martin Baulig  <martin@ximian.com>
9018
9019         * icall.c (ves_icall_Type_BindGenericParameters): Return a
9020         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
9021         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
9022         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
9023
9024         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
9025         (create_typespec): Likewise.
9026         (mono_reflection_bind_generic_parameters): Return a
9027         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
9028         (mono_reflection_inflate_method_or_ctor): New public function.
9029
9030         * reflection.h (MonoReflectionGenericInst): New typedef.        
9031
9032 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
9033
9034         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
9035         inside the domain lock. Fixes #49993.
9036         
9037         * object.c (mono_class_vtable): When typed allocation is used, 
9038         allocate vtables in the GC heap instead of in the mempool, since the
9039         vtables contain GC descriptors which are used by the collector even
9040         after the domain owning the mempool is unloaded.
9041
9042         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
9043
9044         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
9045         reflect what it does. Also invalidate mempools instead of freeing
9046         them if a define is set.
9047
9048         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
9049         of the appdomain.
9050         
9051         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
9052         hold the finalizable objects in this domain.
9053
9054         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
9055         appdomain.
9056
9057         * appdomain.c (mono_domain_set): New function to set the current
9058         appdomain, but only if it is not being unloaded.
9059
9060         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
9061         appdomain which is being unloaded.
9062         
9063         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
9064         unloading of the root appdomain.
9065
9066         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
9067         icall to execute a method in another appdomain. Intended as a 
9068         replacement for InternalSetDomain, which can confuse the code 
9069         generation in the JIT.
9070
9071         * appdomain.c (mono_domain_is_unloading): New function to determine
9072         whenever an appdomain is unloading.
9073
9074         * appdomain.c (mono_domain_unload): New function to correctly unload
9075         an appdomain.
9076
9077         * assembly.c (mono_assembly_load_references): Check that an assembly
9078         does not references itself.
9079
9080         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
9081         domain manually, it asks the finalizer thread to do it, then waits for
9082         the result. Also added a timeout.
9083
9084         * icall.c: Register the new icalls.
9085
9086         * threads.h threads.c: Export the mono_gc_stop_world and 
9087         mono_gc_start_world functions.
9088         
9089         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
9090         function to fill out the mempool with 0x2a.
9091
9092 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
9093
9094         * reflection.h (MonoReflectionMethodAux): New structure to store
9095         information which is rarely used, thus is not in the MonoMethod
9096         structure.
9097
9098         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
9099         store the aux info.
9100
9101         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
9102         and marshalling info into the aux structure.
9103
9104         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
9105         from the aux structure.
9106
9107         * loader.c (mono_method_get_param_names): Retrieve the param names from
9108         the aux structure.
9109         
9110 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
9111
9112         * exception.h exception.c: Add AppDomainUnloadedException && fix 
9113         warning.
9114
9115 2003-10-21  Dick Porter  <dick@ximian.com>
9116
9117         * socket-io.c
9118         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
9119         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
9120
9121 2003-10-21  Martin Baulig  <martin@ximian.com>
9122
9123         * reflection.c (mono_reflection_bind_generic_parameters):
9124         `klass->parent' is NULL for interfaces.
9125
9126 2003-10-21  Martin Baulig  <martin@ximian.com>
9127
9128         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
9129
9130 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
9131
9132         * exception.c (mono_exception_from_name_msg): New helper function for
9133         creating exceptions and initializing their message field.
9134
9135         * exception.c: Simplify functions using the new helper.
9136
9137         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
9138         New function.
9139
9140         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
9141         mono_raise_exception, since otherwise gcc doesn't generate the function
9142         epilog for raise_exception, confusing the stack unwinding in the JIT.
9143         Fixes #45043.
9144
9145         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
9146         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
9147         Fixes #49499.
9148
9149 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9150
9151         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
9152         utf8.
9153
9154 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
9155
9156         * icall.c: Removed GetUninitializedObject method because
9157           AllocateUninitializedClassInstance does the same.
9158
9159 2003-10-18  Martin Baulig  <martin@ximian.com>
9160
9161         * class.c (inflate_generic_signature): Renamed to
9162         mono_class_inflate_generic_signature() and made it public.
9163         (my_mono_class_from_generic_parameter): New static function; if we
9164         don't already have the generic parameter's MonoClass, create a
9165         very simple one which is just used internally in the runtime and
9166         not passed back to managed code.
9167
9168         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
9169
9170         * metadata.h (MonoMethodSignature): Moved the
9171         `MonoGenericParam *gen_params' to the MonoMethodHeader.
9172         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
9173
9174         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
9175         ves_icall_MonoMethod_GetGenericArguments(); this is now an
9176         interncall on the MonoMethod class, not on MethodInfo.
9177         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
9178         calling mono_reflection_bind_generic_method_parameters() directly.
9179
9180         * loader.c (mono_method_get_signature): If this is a MethodSpec;
9181         return the already computed `method->signature'.
9182         (method_from_methodspec): New static function to load a method
9183         from a MethodSpec entry.
9184         (mono_get_method_from_token): Call the new method_from_methodspec()
9185         for MethodSpec tokens.  
9186         (mono_get_method_from_token): If we're a generic method, load the
9187         type parameters.
9188
9189         * reflection.c (mono_image_get_memberref_token): Allow
9190         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
9191         table.
9192         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
9193         (mono_image_create_token): First check whether it's a generic
9194         method (so we'd need to create a MethodSpec), then do the other
9195         two alternatives.
9196         (mono_reflection_bind_generic_method_parameters): Return a
9197         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
9198         called directly from the interncall.
9199
9200 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
9201
9202         * reflection.c (load_public_key): Move loading of the public key
9203         into managed code.
9204
9205         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
9206
9207         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
9208         fields.
9209
9210         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
9211         culture, hash_alg and public_key. Fixes #49555.
9212
9213 2003-10-17  Martin Baulig  <martin@ximian.com>
9214
9215         * class.h (MonoGenericInst): Moved this declaration here and added
9216         `MonoMethod *generic_method'.
9217
9218         * icall.c
9219         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
9220         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
9221
9222         * metadata.c (mono_metadata_type_equal): Two types of
9223         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
9224         index; ie. don't compare the address of the `MonoGenericParam'
9225         structure.
9226         (mono_metadata_load_generic_params): Removed the `MonoMethod
9227         *method' argument.
9228
9229         * metadata.h (MonoGenericInst): Moved declaration to class.h.
9230         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
9231
9232         * reflection.c (method_encode_signature): Encode the number of
9233         generic parameters.
9234         (encode_generic_method_sig): New static function.
9235         (method_encode_methodspec): New static function; creates an entry
9236         in the MethodSpec table for a generic method.
9237         (mono_image_get_methodspec_token): New static function.
9238         (mono_image_create_token): Call mono_image_get_methodspec_token()
9239         for generic methods.
9240         (mono_reflection_bind_generic_method_parameters): New public
9241         function.  Instantiates a generic method.
9242
9243 2003-10-16  Martin Baulig  <martin@ximian.com>
9244
9245         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
9246         *gen_params' here from MonoMethodHeader.
9247
9248         * metadata.c (mono_metadata_parse_method_signature): If we have
9249         generic parameters, initialize `method->gen_params' and then set
9250         the correct `type->data.generic_param' in all the parameters.
9251
9252 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
9253
9254         * threads.c (mono_threads_get_default_stacksize): New function to 
9255         return the default stacksize.
9256
9257         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
9258         termination of the finalizer thread, since the previous method had
9259         race conditions. Fixes #49628.
9260
9261         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
9262         as for the other managed threads.
9263
9264 2003-10-16  Martin Baulig  <martin@ximian.com>
9265
9266         * class.c (inflate_generic_signature): Copy `generic_param_count'
9267         and `gen_params'.
9268
9269         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
9270         New interncall.
9271
9272         * metadata.c (mono_metadata_parse_method_signature): Actually set
9273         the `method->generic_param_count' here.
9274         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
9275
9276 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
9277
9278         * object.h: Add a new field to TypedRef to simplify the implementation
9279         of the REFANY opcodes in the JIT.
9280
9281         * icall.c: Make use of the new field.
9282
9283         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
9284         dynamically.
9285
9286 2003-10-15  Martin Baulig  <martin@ximian.com>
9287
9288         * class.c (mono_class_from_gen_param): Renamed to
9289         mono_class_from_generic_parameter() and moved most of the
9290         functionality from mono_reflection_define_generic_parameter()
9291         here; ie. we create a "real" class here.
9292         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
9293         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
9294         previously been called.
9295
9296         * class.h (MonoGenericParam): Moved the declaration of this struct
9297         here from metadata.h and added `MonoMethod *method'.
9298
9299         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
9300         interncall.
9301
9302         * loader.c (mono_get_method_from_token): If we have any generic
9303         parameters, call mono_metadata_load_generic_params() to read them
9304         from the MONO_TABLE_GENERICPAR.
9305
9306         * metadata.c (mono_metadata_load_generic_params): Added
9307         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
9308
9309         * metadata.h (MonoMethodSignature): Replaced
9310         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
9311         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
9312
9313         * reflection.c (mono_reflection_define_generic_parameter): Moved
9314         most of the functionality into the new
9315         mono_class_from_generic_parameter(); set the `method' field if
9316         we're a method parameter.       
9317
9318 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
9319
9320         * marshal.c (emit_struct_conv): if native size is 0
9321         emit no code.
9322
9323 2003-10-14  Martin Baulig  <martin@ximian.com>
9324
9325         * icall.c: The generics API has changed in the spec since it was
9326         added to System.Type; these modifications make it match the spec
9327         again.
9328         (ves_icall_Type_GetGenericParameters): Renamed to
9329         `ves_icall_Type_GetGenericArguments'.
9330         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
9331         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
9332         `ves_icall_MonoType_get_HasGenericArguments'.
9333         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
9334         `ves_icall_MonoType_get_IsGenericParameter'.
9335         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
9336         this is no interncall anymore.
9337         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
9338         `ves_icall_TypeBuilder_get_IsGenericParameter'.
9339
9340 2003-10-14  Martin Baulig  <martin@ximian.com>
9341
9342         * reflection.c (mono_reflection_bind_generic_parameters): Also
9343         inflate generic methods if we're reading the class from IL.
9344
9345 2003-10-13  Martin Baulig  <martin@ximian.com>
9346
9347         * reflection.c (mono_reflection_define_generic_parameter): This
9348         method isn't called directly from the icall anymore; take a
9349         `MonoReflectionAssemblyBuilder *' so we can use this for type and
9350         method generic parameters.
9351         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
9352         (method_builder_encode_signature): Encode generic parameters.
9353         (mono_image_get_method_info): Write generic params to the
9354         MONO_TABLE_GENERICPARAM table.
9355
9356         * reflection.h (MonoReflectionMethodBuilder): Added
9357         `MonoArray *generic_params'.
9358
9359         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
9360
9361         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
9362         wrapper for mono_reflection_define_generic_parameter().
9363         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
9364
9365 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
9366
9367         * marshal.h: Add missing function to fix build.
9368
9369         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
9370         the SetLastError pinvoke attribute.
9371
9372         * marshal.c (mono_marshal_set_last_error): New helper function called
9373         by the generated code.
9374         
9375         * marshal.c (mono_mb_emit_branch): New helper function.
9376
9377         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
9378
9379         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
9380         classes as parameters and return values of delegates. Fixes #29256. 
9381
9382 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
9383
9384         * locales.c: use gint32 in non HAVE_ICU case
9385
9386 2003-10-11  Martin Baulig  <martin@ximian.com>
9387
9388         * mono-debug.c (mono_debug_add_method): Added a workaround for
9389         bug #48591.
9390
9391 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
9392
9393         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
9394         delegates passed to native code must use the STDCALL calling 
9395         convention. Fixes #35987.
9396
9397 2003-10-10  Martin Baulig  <martin@ximian.com>
9398
9399         * class.c (inflate_generic_type): If we're inflating for a generic
9400         type instance (and not for a generic method), return
9401         MONO_TYPE_MVAR unchanged.
9402
9403 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9404
9405         * string-icalls.c: Join ignores null strings in the source array.
9406         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
9407         * threads.c: GetAvailableTheads is slightly more accurate.
9408
9409 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
9410
9411         * threads.h threads.c : add mono_threads_set_default_stacksize
9412         and pass default to CreateThread calls.
9413
9414 2003-10-09  Dick Porter  <dick@ximian.com>
9415
9416         * icall.c:
9417         * locales.h:
9418         * locales.c: Internal calls for constructing CultureInfo and
9419         related objects from libicu (if its available.)
9420
9421 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
9422
9423         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
9424
9425 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9426
9427         * threadpool.c: added an argument to async_invoke_thread that is the
9428         item to process, pass the MonoAsyncResult to the thread start function
9429         when creating a new thread. This way we don't need to acquire any lock
9430         when we're creating a new thread. Readded a semaphore for faster
9431         response times (instead of that Sleep i added).
9432
9433 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
9434
9435         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
9436         get daylight change dates better on Windows, fix handling
9437         of platforms without tm_gmtoff.
9438
9439 2003-10-06  Martin Baulig  <martin@ximian.com>
9440
9441         * class.c (inflate_generic_method): Renamed to
9442         mono_class_inflate_generic_method() and made public.
9443         (mono_class_init): Don't inflate the generic methods here.
9444         (mono_class_from_generic): Added `gboolean inflate_methods'
9445         argument.  Inflate the methods here.
9446
9447         * loader.c (mono_method_get_param_names): Ignore instances of
9448         generic types for the moment.
9449
9450         * reflection.c (fixup_method): Added support for inflated methods.
9451         (mono_image_create_token): Use mono_image_get_methodref_token()
9452         for inflated methods.
9453         (mono_custom_attrs_from_param): Ignore instances of generic types
9454         for the moment.
9455         (mono_reflection_bind_generic_parameters): New public function.
9456         Moved all the functionality from
9457         ves_icall_Type_BindGenericParameters() here and added support for
9458         dynamic types.
9459         (mono_reflection_define_generic_parameter): Initialize
9460         `klass->methods' here.
9461
9462         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
9463         functionality into mono_reflection_define_generic_parameter().
9464         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
9465         TypeBuilder, return that TypeBuilder.
9466
9467 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9468
9469         * appdomain.c: removed mono_delegate_semaphore.
9470
9471         * threadpool.c:
9472         (mono_thread_pool_add): moved hash table creation inside and the thread 
9473         creation outside of the critical region.
9474         (mono_thread_pool_finish): removed obsolete code.
9475         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
9476         continue or exit the thread depending on the queue.
9477
9478 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
9479
9480         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
9481         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
9482         handle more bool marshalling options
9483
9484 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
9485
9486         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
9487         arrays of structs. Also add a more descriptive error message when
9488         a structure member is marshalled as LPArray.
9489
9490 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
9491
9492         * marshal.c (mono_marshal_get_native_wrapper): Add support for
9493         marshalling arrays of complex types. Fixes #29098. Also remove an
9494         usused and incomplete function.
9495
9496 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
9497
9498         * gc.c: report heap_size - free_bytes as total memory allocated
9499         (bug#49362).
9500
9501 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
9502
9503         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
9504         fix timezone handling problems on Windows.
9505         
9506         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
9507         asserts when the year is outside the range handled by ms the functions.
9508
9509         * class.c (setup_interface_offsets): If the class is an interface,
9510         fill out its interface_offsets slot.
9511
9512 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9513
9514         * threadpool.c: mark threadpool threads as background.
9515
9516 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
9517
9518         * decimal.c - define DECINLINE to nothing if not using GCC
9519
9520 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
9521
9522         * assembly.c: More refcount fixes.
9523
9524 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9525
9526         * string-icalls.c: if we're not trimming, return the same string.
9527         When not splitting, don't create a new string.
9528
9529 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9530
9531         * image.c:
9532         (mono_image_open): increment the ref_count inside the critical section.
9533
9534 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
9535
9536         * image.c (mono_image_open): Fix reference counting bug.
9537
9538 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
9539
9540         * marshal.c (mono_marshal_type_size) struct alignment changed for 
9541         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
9542         64bits. Avoid leak in mono_marshal_get_native_wrapper when
9543         mono_lookup_pinvoke_call throws.        
9544
9545 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
9546
9547         * reflection.c (mono_reflection_parse_type): Fix #49114.
9548
9549         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
9550         temporary workaround for cygwin header problem.
9551
9552         * object.c (mono_object_isinst): Synchronize this with the code
9553         generated by the JIT for casts.
9554
9555 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
9556
9557         * reflection.c (encode_type): Fix #38332.
9558
9559 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
9560
9561         * marshal.c (mono_marshal_method_from_wrapper): New function to return
9562         the original method from the wrapper method.
9563
9564 2003-09-25  Martin Baulig  <martin@ximian.com>
9565
9566         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
9567         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
9568         (ves_icall_Type_get_IsGenericInstance): New interncall.
9569
9570 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
9571
9572         * object.c: fix cast warning in big endian code.
9573
9574 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
9575
9576         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
9577         
9578 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9579
9580         * assembly.c: don't call check_env from mono_assembly_load. It's
9581         already done once in mono_assemblies_init and may cause headaches when
9582         multiple threads are loading assemblies.
9583
9584 2003-09-19  Martin Baulig  <martin@ximian.com>
9585
9586         * reflection.c (mono_reflection_define_generic_parameter): Don't
9587         allocate `klass->methods', set `klass->flags' to
9588         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
9589
9590 2003-09-18  Martin Baulig  <martin@ximian.com>
9591
9592         * class.c (mono_class_init): Don't create `class->methods' if it's
9593         already initialized.
9594
9595         * metadata.c (mono_metadata_load_generic_params): Make this
9596         actually work.
9597
9598         * reflection.c (mono_reflection_define_generic_parameter): Set
9599         parent class and interfaces from the constraints.
9600
9601         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
9602         to keep this struct in sync with the declaration in TypeBuilder.cs.
9603
9604 2003-09-17  Martin Baulig  <martin@ximian.com>
9605
9606         * metadata.h (MonoType): Replaced the data's `int type_param'
9607         field with `MonoGenericParam *generic_param'.
9608         (MonoGenericParam): Added `MonoClass *klass'.
9609
9610         * class.c (mono_class_from_gen_param): Removed the
9611         `MonoImage *image' and `int type_num' arguments.
9612
9613         * metadata.c (mono_metadata_parse_generic_param): New static
9614         method; creates a MonoGenericParam which just contains the index.
9615         (do_mono_metadata_parse_type): Call
9616         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
9617         MONO_TYPE_MVAR.
9618
9619         * reflection.c (mono_image_typedef_or_ref): Generic type
9620         parameters may be in the same assembly, but never use a typedef
9621         for them.
9622         (mono_reflection_define_generic_parameter): We're now creating a
9623         "real" class for the type parameter; it's now safe to call
9624         mono_class_from_mono_type() on the class'es type, it'll do the
9625         right thing.
9626
9627 2003-09-16  Martin Baulig  <martin@ximian.com>
9628
9629         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
9630         `symfile->range_entry_size' and `symfile->class_entry_size' here;
9631         the `symfile' data structure must be fully initialized before it
9632         gets added to the table.
9633
9634 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
9635
9636         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
9637
9638         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
9639         class init trampolines.
9640
9641 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
9642
9643         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
9644         to the built-in profiler to turn off time and allocation profiling
9645         respectively.
9646
9647 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
9648
9649         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
9650         g_direct_equal.
9651
9652         * debug-helpers.c (mono_method_full_name): Print the wrapper type
9653         in human readable form.
9654
9655 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
9656
9657         * reflection.c icall.c: Fixed warnings.
9658
9659         * image.c (load_class_names): Use a temporary hash table to hold the
9660         namespaces in order to avoid doing many string comparisons.
9661
9662         * image.h: Fix typo.
9663
9664         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
9665         Pass NULL instead of g_direct_equal to the GHashTable constructor 
9666         since the NULL case is short-circuited inside g_hash_table_lookup, 
9667         leading to better performance.  
9668
9669         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
9670         obtain the first custom attribute for a given index. Depends on the
9671         CustomAttribute table being sorted by the parent field.
9672
9673         * reflection.c (mono_custom_attrs_from_index): Use the new function 
9674         for better performance.
9675
9676 2003-09-07  Martin Baulig  <martin@ximian.com>
9677
9678         * class.c (mono_class_init): If we're a generic instance, inflate
9679         all our methods instead of loading them from the image.
9680         (mono_class_from_generic): Set `class->methods = gklass->methods'.
9681
9682 2003-09-07  Martin Baulig  <martin@ximian.com>
9683
9684         * mono-debug-debugger.c: Added support for constructors.
9685
9686 2003-09-06  Martin Baulig  <martin@ximian.com>
9687
9688         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
9689         New interncall.
9690
9691         * reflection.c (mono_reflection_setup_generic_class): Call
9692         ensure_runtime_vtable() to create the vtable.
9693
9694 2003-09-05  Martin Baulig  <martin@ximian.com>
9695
9696         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
9697         MONO_TYPE_MVAR.
9698
9699 2003-09-04  Martin Baulig  <martin@ximian.com>
9700
9701         * reflection.c (mono_reflection_define_generic_parameter): Generic
9702         parameters start with zero.
9703
9704 2003-09-04  Martin Baulig  <martin@ximian.com>
9705
9706         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
9707
9708         * reflection.h (MonoReflectionGenericParam): New typedef.
9709         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
9710         the generic parameters from the managed TypeBuilder.
9711
9712         * reflection.c (mono_reflection_define_generic_parameter): New function.
9713         (mono_reflection_create_runtime_class): Encode generic parameters.
9714         (mono_reflection_setup_generic_class): New function; this is
9715         called after adding adding all generic params to the TypeBuilder.
9716         (encode_type): Added MONO_TYPE_VAR.
9717
9718 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
9719
9720         * class.h class.c (mono_class_needs_cctor_run): Moved this method
9721         here from the JIT.
9722
9723         * assembly.h assembly.c: Moved the AOT loading code into an assembly
9724         load hook.
9725
9726 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
9727
9728         * reflection.h reflection.c class.h class.c: Delete duplicate 
9729         definition of mono_type_get_name () from reflection.c and export the
9730         one in class.c.
9731
9732         * class.c: Class loading fixes from Bernie Solomon 
9733         (bernard@ugsolutions.com).
9734
9735         * reflection.c: Endianness fixes from Bernie Solomon 
9736         (bernard@ugsolutions.com).
9737         
9738 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
9739
9740         * assembly.h assembly.c: Define a file format version for AOT
9741         libraries.
9742         
9743         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
9744
9745         * appdomain.h (MonoJitInfo): New field to determine whenever the
9746         code is domain neutral.
9747         
9748 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
9749
9750         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
9751
9752 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
9753
9754         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
9755         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
9756         Avoid caching the result since strings must be domain specific. Fixes
9757         #48050.
9758
9759 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
9760
9761         * marshal.c (mono_marshal_init): Make this callable multiple times
9762         since it is hard to find a correct place to call it.
9763
9764         * object.c (mono_runtime_class_init): Execute static constructors in
9765         the correct appdomain.
9766
9767         * image.c (build_guid_table): Handle the case when multiple images have
9768         the same GUID.
9769
9770 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9771
9772         * icall.c: added a couple of icalls for System.Web.
9773
9774 2003-08-28  Martin Baulig  <martin@ximian.com>
9775
9776         * icall.c (ves_icall_Type_BindGenericParameters): Use
9777         `klass->generic_inst' instead of `&klass->byval_arg' in the
9778         mono_type_get_object() call.  The returned type must be
9779         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
9780
9781 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
9782
9783         * NOTES: New file.
9784
9785         * object.c (mono_class_proxy_vtable): Make it thread safe.
9786
9787         * pedump.c: Fix warning.
9788
9789         * object.c appdomain.h: Get rid of metadata_section. 
9790         It is no longer needed and it was causing deadlocks with domain->lock.
9791
9792         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
9793
9794 2003-08-26  Martin Baulig  <martin@ximian.com>
9795
9796         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
9797
9798 2003-08-26  Martin Baulig  <martin@ximian.com>
9799
9800         * pedump.c (main): Call mono_metadata_init(),
9801         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
9802         and mono_loader_init().
9803
9804 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
9805
9806         * loader.h: Add missing include to fix build.
9807
9808         * image.h: mono_image_load_references is no more.
9809
9810         * assembly.c: Reworked assembly loading to make it really thread safe.
9811         After these changes, the assembly returned by mono_assembly_open is
9812         fully initialized, i.e. all its references assemblies are loaded.
9813
9814         * assembly.c (mono_image_load_references): Renamed to 
9815         mono_assembly_load_references, and made private, since clients no
9816         longer need to call it.
9817
9818         * class.c: Removed calls to mono_assembly_load_references, since it was
9819         a source of deadlocks.
9820
9821         * loader.h loader.c class.h class.c: Protect data structures using a 
9822         new lock, the loader lock.
9823
9824         * class.c (mono_class_setup_vtable): Create temporary hash tables and
9825         GPtrArrays only when needed.
9826
9827         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
9828         into empty structures by mcs. Fixes pinvoke7.cs.
9829         
9830         * domain.c (mono_init): Call a new initialization function.
9831
9832         * appdomain.c (mono_runtime_init): Call the new initializer function
9833         of the marshal module.
9834
9835         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
9836         inserted into empty structures by mcs. Fixes pinvoke7.cs.
9837
9838         * marshal.h marshal.c: Added locks around the wrapper caches to make
9839         this module thread safe.
9840
9841         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
9842         this argument. Fixes pinvoke1.exe.
9843
9844 2003-08-25  Lluis Sanchez <lluis@ximian.com>
9845
9846         * object.h: Added call_type field to MonoMethodMessage and the corresponding
9847         enumeration of values. Removed fields to store remote call output values in
9848         MonoAsyncResult. Not needed any more.
9849         * object.c: Initialize call_type and async_result fields in mono_message_init.
9850         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
9851         dispatching the message.
9852         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
9853         async call to finish. To do it use a message with EndInvoke call type.
9854
9855 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
9856
9857         * loader.h loader.c (mono_method_hash_marhal_info): New function which
9858         determines whenever a method has marshalling info.
9859
9860 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9861
9862         * assembly.c: fix the build on windows.
9863
9864 2003-08-22 Lluis Sanchez <lluis@ximian.com>
9865
9866         * object.cs: Fixed bug #47785.
9867
9868 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
9869
9870         * string-icalls.c (StringReplace): If their are no occurances of
9871         the old string found return a reference to the supplied
9872         string. This saves some memory and matches MS behavoir.
9873         
9874 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9875
9876         * socket-io.c: fixed compilation for systems that define AF_INET6
9877         and don't define SOL_IP/SOL_IPV6.
9878
9879 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
9880
9881         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
9882         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
9883
9884         * rawbuffer.c rawbuffer.h: Make this module thread safe.
9885
9886         * domain.c: Make this module thread safe.
9887
9888         * domain.c (mono_init): Call new initialization function.
9889
9890         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
9891         reference types too. Fixes #38812.
9892
9893         * image.c (mono_image_init): Fixed warnings.
9894
9895         * class.c (mono_class_from_typeref): Handle assembly load failure
9896         correctly.
9897
9898         * appdomain.c (add_assemblies_to_domain): Handle the case when
9899         the references of an assembly are not yet loaded.
9900
9901         * metadata.c image.c assembly.c: Moved initialization of global
9902         variables to a separate function called at startup since lazy 
9903         initialization of these variables is not thread safe.
9904         
9905         * image.c assembly.c: Made this module thread safe by adding locks in 
9906         the appropriate places.
9907
9908         * domain.c (mono_init): Call the new initialization functions of the
9909         three modules.
9910
9911 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
9912
9913         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
9914           make a direct call. It is proxy's work to make the call asynchronous.
9915           mono_delegate_end_invoke(): If the targe is a proxy, just collect
9916           the return values.
9917         * object.cs: mono_method_call_message_new(): read AsyncResult and
9918           state object from parameters list, if this info is requested.
9919         * object.h: Added fields to store remote call output values in
9920           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
9921
9922 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9923
9924         * object.h: add needed fields to MonoThread.
9925         * threads.c, threads.h: allow registering a function to cleanup data
9926         allocated per thread by the JIT.
9927
9928 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9929
9930         * loader.h: portability fix by Bernie Solomon
9931         * <bernard@ugsolutions.com>.
9932
9933 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
9934
9935         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
9936         return a MonoArray. This simplifies the code and also ensures that
9937         the cache allways contains an object reference as a value.
9938
9939         * icall.c (ves_icall_get_parameter_info): Simplified using the new
9940         function.
9941
9942 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9943
9944         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
9945         fixes a problem with byte ordering when getting the address family for
9946         a socket.
9947
9948 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
9949
9950         * .cvsignore: Added monosn.
9951
9952         * reflection.h reflection.c loader.c: Added support for parameter
9953         marshalling to dynamically created types. Fixes #47295.
9954
9955 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
9956
9957         * rand.c: remove useless warnings.
9958
9959 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
9960
9961         * class.c: implemented ldtoken for methods and fieldrefs.
9962
9963 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9964
9965         * threadpool.c: when mono_async_invoke was called, no one took care of
9966         monitoring the queue. So if the method invoked took some time and we
9967         got new async invoke requests after 500 ms (the thread created waited
9968         that long in WaitForSingleObject), the new async invoke was not called
9969         until the previous one finished.
9970
9971         This is fixed now. Thanks to Totte for helping with it.
9972
9973 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9974
9975         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
9976
9977 2003-08-11  Martin Baulig  <martin@ximian.com>
9978
9979         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
9980
9981 2003-08-06  Martin Baulig  <martin@ximian.com>
9982
9983         * mono-debug-debugger.c: Added support for static fields,
9984         properties and methods.
9985
9986 2003-08-06  Martin Baulig  <martin@ximian.com>
9987
9988         * mono-debug-debugger.c: Don't store the MonoString's vtable to
9989         make this work for applications with multiple application domains.
9990
9991 2003-08-04  Martin Baulig  <martin@ximian.com>
9992
9993         * mono-debug-debugger.c: Completely reworked the type support; the
9994         most important thing is that we're now just using one single
9995         `MonoType' instance per type.
9996
9997 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
9998
9999         * mono-endian.h, mono-endian.c, icall.c: Added icall
10000         ves_icall_System_Double_AssertEndianity to assert double word endianity
10001         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
10002
10003 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
10004
10005         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
10006         support, icalls and fixes.
10007
10008 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
10009
10010         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
10011         classes that are a punctuation character in .NET is not the same a
10012         g_unichar_ispunct.
10013
10014 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
10015
10016         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
10017
10018 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
10019
10020         * icall.c: Add new MemCopy internalcall.
10021         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
10022         Simplified code; It is not necessary to handle all the cases here,
10023         as the C# code takes care of it.  Only handle the case of the name
10024         resource embedded into the assembly.
10025
10026         Changed signature to return the data pointer and the size of the
10027         data. 
10028
10029 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
10030
10031         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
10032         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
10033
10034 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
10035
10036         * socket-io.c: ignore EINTR error in select.
10037
10038 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
10039
10040         * class.h, class.c: removed unused subclasses field in MonoClass.
10041
10042 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
10043
10044         * icall.c: improve fix of get_base_definition(). If the parent class
10045           doesn't have the mehod, look at the parent of the parent.
10046         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
10047           to check if a parameter is an in or out parameter
10048           (PARAM_ATTRIBUTE_IN is not set by default).
10049           mono_method_return_message_restore(): Use mono_class_value_size to
10050           get the size of a value type. mono_type_stack_size (parameterType)
10051           does not return the correct value if parameterType is byRef.
10052           mono_load_remote_field(), mono_load_remote_field_new(),
10053           mono_store_remote_field(), mono_store_remote_field_new():
10054           raise exception if the remote call returns an exception.
10055
10056 2003-07-28  Martin Baulig  <martin@ximian.com>
10057
10058         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
10059         method.  This is a wrapper around mono_runtime_invoke() which
10060         boxes the instance object if neccessary.
10061
10062 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
10063
10064         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
10065         metadata.h, row-indexes.h, verify.c: first cut of generics support.
10066
10067 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
10068
10069         * icall.c: disable mcs bug workaround.
10070
10071 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
10072
10073         * object.c (mono_runtime_class_init): Take the metadata_section
10074         mutex before obtaining the domain mutex.
10075
10076         * appdomain.h: Added definition of metadata_section mutex here. 
10077
10078         * object.c: define metadata_mutex here.
10079
10080 2003-07-24  Ravi Pratap  <ravi@ximian.com>
10081
10082         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
10083         fixed.
10084
10085 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
10086
10087         * reflection.c: Fix bug #46669
10088
10089 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10090
10091         * exception.c:
10092         * exception.h:
10093         * icall.c:
10094         * object.h: fill in the type name for TypeLoadException.
10095
10096 2003-07-23  Ravi Pratap  <ravi@ximian.com>
10097
10098         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
10099         relationship between TypeBuilders while compiling corlib) and bug
10100         45993 (Array types returned from the runtime while compiling
10101         corlib were from the loaded corlib).
10102
10103 2003-07-22  Martin Baulig  <martin@ximian.com>
10104
10105         * mono-debug-debugger.c: Reworked the type support a bit more;
10106         distinguish between types and classes.
10107
10108 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
10109
10110         * icall.c: add IsArrayImpl icall.
10111
10112 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
10113
10114         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
10115         initializing real_size only once. Also fix bug #46602.
10116
10117 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
10118
10119         * object.c: Renamed mono_metadata_section to metadata_section.
10120
10121 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
10122
10123         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
10124           empty array if the type is an array. Fixed.
10125           ves_icall_MonoMethod_get_base_definition: if the base method
10126           is abstract, get the MethodInfo from the list of methods of
10127           the class.
10128         * reflection.c: ParameterInfo.PositionImpl should be zero-based
10129           and it was 1-based. Fixed in mono_param_get_objects.
10130
10131 2003-07-20  Martin Baulig  <martin@ximian.com>
10132
10133         * mono-debug.h: Set version number to 31.
10134         (mono_debug_init): Added `MonoDomain *' argument.
10135
10136         * mono-debug-debugger.c: Reworked the type support; explicitly
10137         tell the debugger about builtin types; pass the `klass' address to
10138         the debugger.
10139
10140 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
10141
10142         * image.c: Allow new metadata tables to be loaded without a
10143         warning. Also update the warning message to give the new constant value.
10144                 
10145 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
10146
10147         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
10148         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
10149         array type representation changes.
10150
10151 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
10152
10153         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
10154         on Environment.Exit () call.
10155
10156 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
10157
10158         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
10159         requires a matching corlib.
10160
10161 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
10162
10163         * Changelog: My editor decided to add a CR to each line. Sorry about that.
10164           Committed again without the CRs.
10165         
10166 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
10167
10168         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
10169           getting it from the "this" socket instance. Did not work
10170           if the socket is a subclass of Socket.
10171           Also fixed bug #35371.
10172
10173 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
10174
10175         * metadata.c: fixed size for TypedByRef.
10176         * loader.c: when searching for a method, consider the vararg amrker.
10177         * unicode.c, decimal.c: constify some arrays.
10178
10179 2003-07-15  Dick Porter  <dick@ximian.com>
10180
10181         * socket-io.c: Fixed compilation for gcc < 3.2.
10182
10183         Fixed compilation for machines that don't have AF_INET6 (thanks to
10184         Bernie Solomon <bernard@ugsolutions.com> for that part.)
10185
10186         Fixed compile warnings.
10187         
10188         Fixed formatting and line endings.
10189
10190 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
10191
10192         * socket-io.h:
10193         * socket-io.c: Added IPv6 support.
10194
10195 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
10196
10197         * class.c (mono_class_is_assignable_from): New function to implement
10198         the is_assignable_from logic. Used by mono_object_isinst, 
10199         Type::IsAssignableFrom () and the interpreter.
10200
10201         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
10202         Object, even interfaces.
10203         
10204         * object.c (mono_object_isinst): Implement in terms of 
10205         is_assignable_from.
10206
10207         * icall.c (ves_icall_type_is_assignable_from): New icall.
10208
10209 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
10210
10211         * domain.c (foreach_domain): fix compiler warning.
10212
10213 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
10214
10215         * image.c (load_metadata_ptrs): use g_strndup because strndup is
10216         not available on all plattforms
10217
10218 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
10219
10220         * image.h image.c: Store the metadata version string in MonoImage.
10221         * icall.c: New icall to retrieve the image version.
10222         * reflection.c (create_dynamic_image): Fill in the image version field
10223         * reflection.c (build_compressed_metadata): Use the image version
10224         from the image structure.
10225
10226 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10227
10228         * appdomain.c: modified comment.
10229         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
10230         That will be its last iteration when mono_gc_cleanup is called from
10231         mono_runtime_cleanup and before the domain is unloaded.
10232
10233         Fixes bug #45962.
10234
10235 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
10236
10237         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
10238         attributes.
10239
10240 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
10241
10242         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
10243         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
10244         Bernie Solomon <bernard@ugsolutions.com>.
10245
10246 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
10247
10248         * object.c, object.h: provide mono_object_new_fast() for faster
10249         allocation in some special cases.
10250
10251 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
10252
10253         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
10254         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
10255
10256 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
10257
10258         * threadpool.c: fix leaks.
10259
10260 2003-07-01  Dick Porter  <dick@ximian.com>
10261
10262         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
10263         using MonoGHashTables.  Fixes threadpool bug posted to list.
10264
10265 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
10266
10267         * image.h, image.c: added support to load an assembly from a byte array.
10268         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
10269         assembly bundle support.
10270
10271 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
10272
10273         * threadpool.c (mono_thread_pool_add): keep a reference to the
10274         AsyncResult to prevent GC
10275
10276 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
10277
10278         * class.c: leak fix.
10279
10280 2003-06-25  Dick Porter  <dick@ximian.com>
10281
10282         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
10283         for the async object, the WaitHandle object will close the handle.
10284         Fixes bug 45321.
10285
10286 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
10287
10288         * class.c: in mono_array_class_get (), lookup from the hash with the
10289         same type we insert: this works around a bug in
10290         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
10291         lluis. The real fix will have to wait for after the release.
10292
10293 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
10294
10295         * icall.c: fix memory leak when getting type members.
10296
10297 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
10298
10299         * reflection.c: added more pubtoken special cases.
10300
10301 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
10302
10303         * class.c: handle field offset correctly when class size
10304         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
10305
10306 2003-06-20  Martin Baulig  <martin@ximian.com>
10307
10308         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
10309         *image' field.
10310
10311 2003-06-20  Martin Baulig  <martin@ximian.com>
10312
10313         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
10314
10315 2003-06-20  Martin Baulig  <martin@ximian.com>
10316
10317         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
10318         just distinguish between variables in registers and variables at
10319         an offset relative to a register.
10320
10321 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10322
10323         * icall.c: #ifdef out latest changes until mcs is fixed.
10324
10325 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
10326
10327         * icall.c: return members in metadata order.
10328
10329 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
10330
10331         * icall.c: avoid infinite loop in GetTimeZoneData.
10332
10333 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
10334
10335         * icall.c: added Marshal.Prelink/All icalls.
10336
10337 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
10338
10339         * object.c, object.h: fix warnings and do some overflow checking
10340         when creating arrays.
10341
10342 2003-06-17  Dick Porter  <dick@ximian.com>
10343
10344         * file-io.h:
10345         * file-io.c: File attributes need to be tweaked slightly when
10346         passed from the managed to the w32 world.
10347
10348 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
10349         * profiler.h profiler-private.h profiler.c: Rework last patch
10350         based on suggestion by Paolo.
10351         
10352 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
10353
10354         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
10355         instruction level coverage data collection.
10356         * profiler.h profiler.c (: Added new callback function which can be
10357         used by the profiler to limit which functions should have coverage
10358         instrumentation.
10359         * profiler.c (mono_profiler_load): Call g_module_build_path to
10360         generate the file name of the profiler library.
10361
10362 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
10363
10364         * profiler.c, profiler.h, profiler-private.h: added basic block 
10365         coverage profiling API.
10366
10367 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
10368
10369         * reflection.c (mono_reflection_create_runtime_class): Add support
10370         for events in dynamically generated code.
10371
10372         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
10373         not allocated.
10374
10375 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
10376
10377         * icall.c: when getting timezone info, return reasonable values if we
10378         can't get the actual data.
10379
10380 2003-06-14  Dick Porter  <dick@ximian.com>
10381
10382         * threads.c (start_wrapper): Remove the reference to the thread
10383         object in the TLS data, so the thread object can be finalized.
10384         This won't be reached if the thread threw an uncaught exception,
10385         so those thread handles will stay referenced :-( (This is due to
10386         missing support for scanning thread-specific data in the Boehm GC
10387         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
10388
10389 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
10390
10391         * reflection.c: ensure streams and tables are first allocated with
10392         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
10393
10394 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
10395
10396         * icall.c: fixed GetElementType for byrefs (bug# 44792).
10397
10398 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
10399
10400         * reflection.c (mono_reflection_create_runtime_class): Add support for
10401         properties to dynamically created classes.
10402         * reflection.c: Fix a few places where non-MonoObjects were inserted
10403         into the tokens hashtable.
10404
10405 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
10406
10407         * object.c: some support to handle out of memory exceptions.
10408
10409 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
10410
10411         * marshal.c (mono_marshal_get_native_wrapper): support reference
10412         return types
10413
10414 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
10415
10416         * object.h, object.c: more portability stuff from Bernie Solomon.
10417         Unexport mono_object_allocate(). Added mono_object_unbox ().
10418         Set exitcode when an unhandled exception is thrown.
10419
10420 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
10421
10422         * marshal.c (mono_marshal_get_native_wrapper): use custom
10423         marshaler for return types.
10424
10425 2003-06-10  Dick Porter  <dick@ximian.com>
10426
10427         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
10428         ip_mreq is available
10429
10430 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
10431
10432         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
10433         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
10434         by Bernie Solomon <bernard@ugsolutions.com>.
10435
10436 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
10437
10438         * gc.c (mono_gc_init): Avoid error message on shutdown when
10439         GC_DONT_GC=1 is used.
10440
10441         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
10442         New icall to return the GUID of a module.
10443
10444 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
10445
10446         * class.c: ensure instance size always includes the parent's size
10447         even whem class size is set explicitly (fixes bug#44294).
10448
10449 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
10450
10451         * profiler.h, profiler.c: made the simple profiler thread-safe,
10452         get more accurate timing info. Allow the loading of an
10453         externally-developed profiler module.
10454
10455 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
10456
10457         * marshal.c (mono_marshal_get_native_wrapper): improved
10458         class/byref arguments.
10459         (mono_marshal_get_native_wrapper): better string marshaling support.
10460
10461 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
10462
10463         * class.c: ensure .pack and .size are handled correctly and
10464         simplified layout of static fields.
10465
10466 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
10467
10468         * appdomain.c
10469         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
10470
10471         * loader.c (mono_lookup_pinvoke_call): look for modules in the
10472         current directory (fix bug 44008)
10473
10474 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
10475
10476         * marshal.c (mono_marshal_get_native_wrapper): started support for
10477         custom marshalers.
10478         (mono_delegate_to_ftnptr): consider marshalling specifications
10479
10480 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
10481
10482         * reflection.c, reflection.h: emit custom marshal info.
10483
10484 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10485
10486         * object.c: free the GError.
10487         * icall.c: added CloseEvent_internal.
10488         * threads.[ch]:
10489         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
10490         call.
10491
10492 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
10493
10494         * loader.c (mono_method_get_signature): Add support for dynamic
10495         assemblies.
10496
10497 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
10498
10499         * reflection.c: fixed bug #43905.
10500
10501 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
10502
10503         * class.c, domain.c, icall.c, metadata.h, object.h: support for
10504         handling TypedReference and ArgIterator.
10505         * loader.c, loader.h: added function to get signature at call site.
10506
10507 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
10508
10509         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
10510         data readonly. Buglets and warning fixes. Some MethodSpec support.
10511
10512 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
10513
10514         * class.h, class.c, object.c: remove relative numbering support.
10515
10516 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
10517
10518         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
10519         free the string, until we get a chance to fix Gtk#
10520
10521 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10522
10523         * marshal.c: revert last patch.
10524
10525 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
10526
10527         * icall.c: updates for new mono_class_vtable() not calling
10528         the type constructor anymore.
10529
10530 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
10531
10532         * object.h, object.c: separate vtable creation from type
10533         initialization. Make running the .cctor thread safe.
10534
10535 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
10536
10537         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
10538
10539 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
10540
10541         * loader.c (mono_get_method): consider calling convention
10542
10543 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
10544
10545         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
10546         to return the invisible global type for a module.
10547
10548         * reflection.c (mono_image_build_metadata): Emit global fields too.
10549
10550 2003-05-20  Peter Williams  <peterw@ximian.com>
10551
10552         * loader.c (mono_lookup_internal_call): Add a few newlines.
10553
10554 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
10555
10556         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
10557         literal strings.
10558
10559         * appdomain.c (set_domain_search_path): Recalculate search path when
10560         AppDomainSetup.PrivateBinPath changes.
10561
10562         * object.c (mono_class_compute_gc_descriptor): It turns out some
10563         parts of the class libs (like System.Thread) holds pointers to
10564         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
10565         to treat native int a pointer type here.
10566         
10567 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
10568
10569         * appdomain.h, domain.c: add hashtable for jump target resolution.
10570
10571 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
10572
10573         * reflection.h reflection.c icall.c: Added new icalls 
10574         GetManifestResourceInfoInternal, GetModulesInternal and support
10575         infrastructure.
10576
10577 2003-05-16  Dick Porter  <dick@ximian.com>
10578
10579         * icall.c:
10580         * file-io.h:
10581         * file-io.c: Implement System.IO.MonoIO::GetTempPath
10582
10583 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
10584
10585         * object.c: mono_store_remote_field: little fix to previous patch.
10586
10587 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
10588
10589         * class.c: add constructors to array classes.
10590         * icall.c: special case array construction for InternalInvoke (),
10591
10592 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
10593
10594         * class.h class.c reflection.c object.c: Added support for field
10595         defaults in dynamically generated classes.
10596
10597 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
10598
10599         * reflection.c: properly encode charset for ddlimport.
10600
10601 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
10602
10603         * threads.c: allow compiling without GC.
10604
10605 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
10606
10607         * appdomain.h, object.c, object.h, threads.c, threads.h: added
10608         handling of thread static data.
10609
10610 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
10611
10612         * reflection.h, reflection.c: added mono_custom_attrs_free ().
10613
10614 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
10615
10616         * class.c (mono_array_class_get): always set the serializable flags
10617         (mono_array_class_get): always set the SEALED attribute for array types
10618
10619 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
10620
10621         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
10622         attributes (fix for bug 42021).
10623
10624 2003-05-12  Dick Porter  <dick@ximian.com>
10625
10626         * gc.c: Don't run finalizers when the finalizer thread is
10627         finishing up, because the default domain has already been
10628         destroyed.
10629
10630 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
10631
10632         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
10633         value is null, we should throw an exception.   This is slightly
10634         different than the other conventions used for the constructor.
10635
10636 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10637
10638         * socket-io.c: fixed windows build.
10639
10640 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10641
10642         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
10643
10644 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
10645
10646         * object.c (mono_string_new_wrapper): Compatibility fix for MS
10647         compilers.
10648
10649 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
10650
10651         * class.c (mono_class_layout_fields): Add experimental GC aware
10652         auto layout facility. Requires class library changes to work correctly.
10653
10654         (mono_class_setup_vtable): Avoid overriding explicit interface
10655         method implementations. Fixes iface3.exe test.
10656
10657         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
10658         object reference.
10659         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
10660         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
10661
10662         * metadata.h: Add new type classification macro which determines
10663         whenever the type holds an object reference.
10664
10665 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
10666
10667         * marshal.c (mono_marshal_get_native_wrapper): cleanups
10668
10669 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
10670
10671         * gc.c (finalizer_thread): Work around a GC bug.
10672
10673 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
10674
10675         * marshal.c (emit_struct_conv): allow unions
10676
10677         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
10678
10679 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
10680
10681         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
10682
10683 2003-05-06  Martin Baulig  <martin@ximian.com>
10684
10685         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
10686
10687 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10688
10689         * socket-io.c:
10690         (Select_internal): allow NULLs, don't create arrays if not needed.
10691         Coupled with Socket.cs changes.
10692
10693         * threadpool.c:
10694         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
10695         register a finalizer for it that will close the semaphore handle. This
10696         fixes the leak and make Lupus' test run with > 4080 loops.
10697
10698 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
10699
10700         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
10701         Jerome Laban (bug #42287)
10702
10703 2003-05-02  Martin Baulig  <martin@ximian.com>
10704
10705         * debug-mono-symfile.h
10706         (MonoSymbolFile): Moved declaration into mono-debug.h.
10707         (MonoDebugMethodJitInfo): Likewise.
10708         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
10709         argument.
10710         (_mono_debug_address_from_il_offset): Take a
10711         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
10712
10713         * mono-debug.h
10714         (MonoDebugDomainData): New struct.
10715         (mono_debug_get_domain_data): New function.
10716         (mono_debug_add_method): Take an additional `MonoDomain *'
10717         argument.
10718         (mono_debug_source_location_from_address): Likewise.
10719         (mono_debug_il_offset_from_address): Likewise.
10720         (mono_debug_address_from_il_offset): Likewise.
10721
10722 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
10723
10724         * reflection.c: one more check for null type in custom attrs.
10725
10726 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10727
10728         * reflection.c: avoid warning (comparison is always false due to limited
10729         range of data type).
10730
10731 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10732
10733         * icall.c: throw an exception in Type.GetField if the argument 'name'
10734         is NULL.
10735
10736 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
10737
10738         * reflection.c: fixed handling of enums in named arguments to custom
10739         attributes (bug #42123).
10740
10741 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
10742
10743         * reflection.c: use the right array element type and handle
10744         a null for a Type argument, too.
10745
10746 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
10747
10748         * reflection.c: handle arrays as arguments to custom attributes.
10749
10750 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
10751
10752         * reflection.c: handle a string value in a custom attr
10753         ctor that takes an object.
10754
10755 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
10756
10757         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
10758         (fix bug #42063)
10759
10760 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
10761
10762         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
10763
10764 2003-04-27  Martin Baulig  <martin@ximian.com>
10765
10766         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
10767         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
10768         MONO_DEBUGGER_EVENT_BREAKPOINT.
10769         (mono_breakpoint_trampoline_code): Removed.
10770         (mono_debugger_event_handler): The last argument is now a
10771         `guint32'.
10772         (mono_debugger_insert_breakpoint_full): Removed the
10773         `use_trampoline' argument.
10774         (mono_debugger_method_has_breakpoint): Likewise.
10775         (mono_debugger_trampoline_breakpoint_callback): Renamed to
10776         mono_debugger_breakpoint_callback(); take the method and
10777         breakpoint number as arguments.
10778
10779 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
10780
10781         * metadata.c: fix off by one when loading parameters attributes.
10782
10783 2003-04-24  Martin Baulig  <martin@ximian.com>
10784
10785         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
10786
10787 2003-04-24  Martin Baulig  <martin@ximian.com>
10788
10789         * mono-debug-debugger.c: Moved all code which interacts with the
10790         Mono Debugger here.
10791
10792         * debug-mono-symfile.c: This code now just deals with the symbol
10793         file itself, the debugger code is now in mono-debug-debugger.c.
10794
10795 2003-04-23  Martin Baulig  <martin@ximian.com>
10796
10797         * mono-debug.c (mono_debug_source_location_from_il_offset):
10798         New method; like mono_debug_source_location_from_address(), but
10799         takes an IL offset instead of a machine address.
10800
10801 2003-04-23  Martin Baulig  <martin@ximian.com>
10802
10803         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
10804         `line' field; this is now computed by the debugger.
10805
10806 2003-04-23  Martin Baulig  <martin@ximian.com>
10807
10808         * mono-debug.[ch]: New files.  This is the new debugging interface.
10809
10810         * mono-debug-debugger.[ch]: New files.  Moved all code which
10811         interacts with the Mono Debugger here.
10812
10813 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
10814
10815         * domain.c (mono_init): initialize mono_defaults.monitor_class
10816
10817 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
10818
10819         * reflection.c (method_encode_code): Add a spicy exception to help
10820         future compiler authors.
10821
10822 2003-04-21  Martin Baulig  <martin@ximian.com>
10823
10824         * icall.c
10825         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10826         Make this work with relative pathnames; g_filename_to_uri() needs
10827         an absolute filename.
10828
10829 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
10830
10831         * icall.c: Track name changes in Object and ValueType.
10832
10833 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
10834
10835         * metadata.c (mono_type_stack_size): size should be a multiple of
10836         sizeof (gpointer)
10837
10838 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10839
10840         * gc.c:
10841         (internal_domain_finalize): moved into mono_domain_finalize. No need
10842         to create another thread because the finalizers will be run in the
10843         finalizer thread.
10844         
10845         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
10846         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
10847         to be run (MS does this too).
10848
10849 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
10850
10851         * object.c (mono_class_compute_gc_descriptor): Update comment.
10852
10853         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
10854
10855         * image.h: Add synchronized wrapper cache.
10856
10857         * image.c (do_mono_image_open): Initialize cache.
10858
10859         * reflection.c (create_dynamic_mono_image): Initialize cache.
10860
10861 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10862
10863         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
10864         ves_icall_System_Buffer_ByteLengthInternal.
10865
10866 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
10867
10868         * reflection.c: setup klass->nested_in earlier. Allow
10869         a dash in the assembly name.
10870
10871 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
10872
10873         * metadata.c (mono_type_to_unmanaged): dont access
10874         type->data.klass for MONO_TYPE_OBJECT
10875         (mono_type_to_unmanaged): consider System.Delegate class
10876
10877 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
10878
10879         * class.c: just setup supertypes in the proper place instead of
10880         initializing the full element class for arrays.
10881
10882 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
10883
10884         * class.c: ensure the element class of arrays is initialized.
10885         Setup the supertype info for array classes, too.
10886
10887 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
10888
10889         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
10890
10891 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10892
10893         * Makefile.am: re-added -m option when running cygpath. This way,
10894         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
10895         separator.
10896         * mono-config.c: same codepath for locating mono config file for WIN32
10897         and the rest.
10898         * assembly.c: if mono_assembly_setrootdir is called, don't override
10899         the value set.
10900
10901 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10902
10903         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
10904         MONO_ASSEMBLIES variable.
10905
10906 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
10907
10908         * icall.c: added Assembly::GetNamespaces() icall.
10909
10910 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10911
10912         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
10913
10914 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
10915
10916         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
10917         * object.c: fixed bug in the construction of vtable for proxies
10918
10919 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
10920
10921         * object.c (mono_array_new): Mark mono_array_new as an icall.
10922
10923 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10924
10925         * class.c: fixed test for public method when overriding interfaces.
10926         Closes bug #40970.
10927
10928 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
10929
10930         * appdomain.h, domain.c: added mono_domain_foreach() to
10931         be able to access the currently loaded appdomains.
10932         * object.c: make string interning work across sppdomains.
10933         Mark some functions for use as icalls.
10934
10935 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
10936
10937         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
10938
10939         * reflection.h reflection.c: Allocate long living data using 
10940         GC_MALLOC_ATOMIC so the collector does not need to scan it.
10941
10942         * reflection.c: Double the allocation size in streams instead of
10943         increasing it, to prevent unneccesary copying on large assemblies.
10944         
10945         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
10946         creation if the assembly does not have the Run flag set.
10947
10948 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
10949
10950         * class.h: avoid the C++ keywords in header files (Jerome Laban
10951         spotted and fixed this).
10952
10953 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10954
10955         * object.c:
10956         (mono_unhandled_exception): fill in the arguments for the
10957         UnhandledException event. Only trigger that event for the default
10958         domain (as MS does).
10959
10960 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
10961
10962         * object.c: Improve typed allocation stuff based on suggestions from
10963         Paolo. Also turn it on if the GC library supports it.
10964
10965 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
10966
10967         * object.c object.h class.h: Added experimental typed allocation
10968         facility using the interfaces in gc_gcj.h.
10969
10970         * os/gc_wrapper.h: Added new include files.
10971         
10972 2003-04-03  Martin Baulig  <martin@ximian.com>
10973
10974         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
10975         which is not yet enabled by default.
10976
10977         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
10978         functions.
10979         (mono_gc_lock, mono_gc_unlock): New static functions.
10980
10981         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
10982         functions; stop/start the world for the garbage collector.  This
10983         is using the windows API; we need to complete the SuspendThread()/
10984         ResumeThread() implementation in the io-layer to make this work on Unix.
10985         (mono_gc_push_all_stacks): New public function; tells the garbage
10986         collector about the stack pointers from all managed threads.
10987
10988 2003-04-03  Martin Baulig  <martin@ximian.com>
10989
10990         * object.h (MonoThread): Added `gpointer stack_ptr'.
10991
10992         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
10993
10994 2003-04-03  Martin Baulig  <martin@ximian.com>
10995
10996         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
10997
10998 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
10999
11000         * reflection.c (typebuilder_setup_fields): Initialize field.first and
11001         field.last.
11002
11003 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
11004
11005         * loader.c (mono_lookup_internal_call): Report the corlib that is
11006         out of sync.
11007
11008 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
11009
11010         * icall.c (ves_icall_type_GetTypeCode): fixed check for
11011         System.DBNull (it's class not valuetype).
11012
11013 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
11014
11015         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
11016         if the array method was already assigned a token (fixes bug#40646).
11017
11018 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
11019
11020         * reflection.c (mono_reflection_get_type): Attempt type resolve even
11021         if no assembly is given.
11022
11023 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
11024
11025         * metadata.h: Added the new tables.
11026
11027         * row-indexes.h: Added definitions for new tables.
11028
11029         * metadata.c: Add schemas for new tables, and add support for
11030         computing the sizes of them.
11031
11032         * class.c: Update for handling the new type cases.
11033
11034 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
11035
11036         * metadata.h (MONO_TYPE_IS_VOID): new macro
11037
11038 2003-03-31  Martin Baulig  <martin@ximian.com>
11039
11040         * threads.h (MonoThreadCallbacks): Added `thread_created'.
11041
11042         * threads.c (mono_thread_new_init): Call `thread_created' in the
11043         mono_thread_callbacks.
11044
11045 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
11046
11047         * loader.h: added marshalbyrefobject_class to mono_defaults
11048         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
11049         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
11050           generation of output parameters.
11051           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
11052         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
11053           contextbound and the target object belongs to the context of the caller.
11054         * object.h: added context and unwrapped_server variables in MonoRealProxy.
11055         * object.c: Implemented support for interfaces and abstract classes
11056           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
11057           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
11058
11059 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
11060
11061         * class.h class.c (mono_class_is_subclass_of): New function.
11062         
11063         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
11064         routines for most common case (calls from ArrayList::ToArray).
11065
11066         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
11067         routine so programs which call Environment::Exit() can be profiled.
11068
11069         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
11070         Added MONO_ARCH_SAVE_REGS.
11071
11072         * icall.c (ves_icall_type_is_subtype_of): Use new function.
11073
11074 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
11075
11076         * blob.h: Add a couple of new MonoType types definitions.
11077
11078         * tabledefs.h: Add a couple of new call convs.
11079
11080 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
11081
11082         * reflection.h (MonoReflectionDynamicAssembly): track changes in
11083         the layout of the class.
11084
11085         * reflection.c (alloc_table): double the size on overflow to avoid
11086         unnecessary copying.
11087
11088         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
11089         avoid filling out metadata tables and blobs. Also set mb->ilgen to
11090         null so it can be garbage collected.
11091         
11092 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
11093
11094         * reflection.c (mono_reflection_get_type): Return the resolved type
11095         only if it is in the assembly we searched.
11096
11097         * reflection.c (ensure_runtime_vtable): Initialize method slots.
11098
11099         * class.c (mono_class_setup_vtable): Set the slot of the overriding
11100         method.
11101
11102 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11103
11104         * appdomain.c:
11105         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
11106         the right one is 'file:///blah', but MS allows it.
11107         * assembly.c:
11108         (mono_assembly_open): allow 'file://blah'
11109
11110         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
11111
11112 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
11113
11114         * socket-io.c: fixes bug #40310.
11115
11116 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
11117
11118         * reflection.c (mono_reflection_parse_type): handle deeply nested
11119         types correctly.
11120
11121         * reflection.c (mono_image_create_token): Use unique token values
11122         since they will be put into a hash table.
11123
11124         * class.c (mono_class_setup_vtable): If a method occurs in more than
11125         one place in the vtable, and it gets overriden, then change the
11126         other occurances too.
11127
11128         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
11129         object as return type.
11130
11131 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
11132
11133         * icall.c: Deleted "ToString" implementation for double and float
11134         because they are full implemented in managed code.
11135
11136 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
11137
11138         * reflection.c, reflection.h: implemented and exported functions
11139         to retrieve info about custom attributes.
11140
11141 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11142
11143         * appdomain.c: moved Uri handling to assembly.c
11144         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
11145         work when using a file Uri in *nix and windows.
11146
11147         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
11148         GetReferencedAssemblies.
11149
11150 2003-03-18  Dick Porter  <dick@ximian.com>
11151
11152         * icall.c: Rename a couple of internal calls
11153
11154         * threads.c: Set the thread state to Stopped when a thread exits.
11155         Fixes bug 39377.
11156
11157 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
11158
11159         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
11160         New icall.
11161
11162         * object.c (mono_class_vtable): fix warning.
11163
11164 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
11165
11166         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
11167
11168         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
11169         memory.
11170         (method_encode_clauses): Create exception info structures in the right
11171         order.
11172         (mono_reflection_setup_internal_class): Initialize supertypes field.
11173
11174         * class.c object.c: Handle interfaces which implement other interfaces 
11175         correctly.
11176
11177         * class.h class.c: Move the supertypes array initialization code into 
11178         a separate function so it can be used for dynamic types too. Also call
11179         it earlier, in mono_class_init(), since it can be used before the
11180         type is initialized.
11181
11182 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11183
11184         * Makefile.am:
11185         * assembly.c:
11186         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
11187
11188         * appdomain.c:
11189         * appdomain.h:
11190         * marshal.c:
11191         * object.c: remove warnings.
11192
11193 2003-03-13  Martin Baulig  <martin@ximian.com>
11194
11195         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
11196         (MonoDebugLexicalBlockEntry): New types.
11197
11198         * debug-mono-symfile.c
11199         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
11200
11201 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11202
11203         * process.c: ret can be any non-zero value accroding to MS doc.
11204
11205 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
11206
11207         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
11208         fixing a warning for a miss-used prototype, would have cause
11209         random memory corruption.
11210
11211 2003-03-07  Martin Baulig  <martin@ximian.com>
11212
11213         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
11214         getting really annoying ....
11215
11216 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
11217
11218         * reflection.c (fixup_method): added support for array methods.
11219
11220 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
11221
11222         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
11223         (pointed out by Michael Adams).
11224
11225 2003-03-04  Dick Porter  <dick@ximian.com>
11226
11227         * icall.c: Temporarily reverted the Double and Single ToString()
11228         change, because it broke nunit.
11229
11230 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
11231
11232         * object.h, threads.h: make include files compatible with C++
11233         (patch by Jerome Laban <jlaban@wanadoo.fr>).
11234
11235 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
11236
11237         * icall.c: Erased ToString helper functions for Double and Single.
11238         Now, that implementations ar all in managed code (Double and Single
11239         Formatters).
11240
11241 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
11242
11243         * appdomain.c: Added method for initializing the default context of
11244         a domain. Added internal call for getting the default context.
11245         * appdomain.h: Added context variable in MonoDomain struct.
11246         * domain.c: mono_domain_set also sets the default context of the domain
11247         * icall.c: Mapped internal method InternalGetDefaultContext.
11248         * object.c: mono_object_get_virtual_method returns always a remoting
11249         wrapper if the object is a transparent proxy.
11250         mono_runtime_invoke_array: when creating an object by calling the
11251         constructor, if the created object is a proxy, then the constructor should
11252         be called using the a remoting wrapper.
11253
11254 2003-03-03  Dick Porter  <dick@ximian.com>
11255
11256         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
11257         variable so it compiles on solaris.  Problem spotted by
11258         Christopher Taylor <ct@cs.clemson.edu>
11259
11260 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11261
11262         * appdomain.c:
11263         (get_info_from_assembly_name): don't leak value.
11264
11265         * icall.c:
11266         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
11267         result.
11268
11269 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
11270
11271         * assembly.c: export mono_image_load_references ().
11272         * class.c: handle function pointers. mono_class_from_name() now
11273         supports nested type names directly.
11274
11275 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
11276
11277         * reflection.h reflection.c: Encode already created dynamic methods 
11278         and fields correctly as a DEF instead of a REF.
11279
11280         * reflection.c: Get rid of the force_ref argument to 
11281         mono_image_typedef_or_ref since it was wrong in the first place.
11282
11283         * string-icalls.c: add error checking to string constructors according
11284         to the MSDN docs.
11285
11286         * reflection.c: Emit types in the order their TypeBuilders were 
11287         created. Previously, a new table index was assigned to each type before
11288         the tables were emitted. This was wrong because the signature blob
11289         might already refer to a type by its original table index.
11290
11291 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
11292
11293         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
11294         change.
11295         
11296 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11297
11298         * Makefile.am: make assemblies dir have \ instead of / on windows.
11299
11300 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
11301
11302         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
11303         iterate over the NESTEDCLASS table using a linear search since the
11304         table is not guaranteed to be sorted by the secondary key.
11305
11306         * class.c (mono_class_create_from_typedef): fixed up call to
11307         mono_metadata_nesting_typedef.
11308         
11309 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
11310
11311         * marshal.c (mono_string_to_byvalstr): clear the memory as
11312         suggested by Jerome Laban <jlaban@wanadoo.fr>
11313
11314 2003-02-26  Dick Porter  <dick@ximian.com>
11315
11316         * process.c: Cope with padding in .rsrc blocks
11317
11318 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
11319
11320         * metadata.h: reverted the filter_len change, it breaks reflection
11321         
11322 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
11323
11324         * metadata.h: added a new field to store the filter_len
11325         
11326
11327 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
11328
11329         * reflection.c: handle custom attributes for types and members
11330         created with Reflection.Emit (bug#38422).
11331
11332 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
11333
11334         * reflection.c: define RTSpecialName automatically for constructors for
11335         compatibility with MS.NET.
11336
11337         * reflection.c (mono_reflection_create_runtime_class): initialize
11338         nested_in field of dynamically created classes.
11339
11340 2003-02-22  Martin Baulig  <martin@ximian.com>
11341
11342         * debug-mono-symfile.h: Incremented version number.
11343
11344 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
11345
11346         * object.h icall.c process.c: fix warnings.
11347
11348 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
11349
11350         * appdomain.h appdomain.c:
11351         (mono_domain_try_type_resolve): split the 
11352         name_or_tb argument into a name and a tb argument.
11353         (mono_domain_has_type_resolve): new function to check whenever the
11354         application has registered a TypeResolve event handler.
11355         
11356         * icall.c reflection.h reflection.c: move the type resolve logic into
11357         mono_reflection_get_type () so it will be invoked when 
11358         Assembly::GetType () is called.
11359
11360         * reflection.c:
11361         (mono_reflection_get_type): renamed to get_type_internal.
11362         (mono_reflection_get_type): fixed type name generation so it works 
11363         for nested types too.
11364         (mono_reflection_get_type): call has_type_resolve () to avoid the 
11365         costly type name generation if there is no resolve event handler.
11366
11367 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
11368
11369         * class.c, image.c: load exported types from file references.
11370
11371 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
11372
11373         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
11374           used to cache the managed methods used to create proxies and make 
11375           remote invocation of methods.
11376         * class.h: Added in MonoVTable a flag to indicate that a class needs 
11377           to be remotely created.
11378         * object.c: Modified the method mono_class_vtable(). It now initializes 
11379           the remote flag of the vtable. Modified mono_object_new_specific(), 
11380           so now it checks the remote flag.
11381         * icall.c: Added a couple of internal methods, one for enabling instance 
11382           creation interception for a type, and one for creating objects bypassing
11383           the remote check.
11384
11385 2003-02-18  Martin Baulig  <martin@ximian.com>
11386
11387         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
11388         New interncall to get a method's metadata token.
11389
11390         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
11391         New interncall for the debugger.
11392
11393 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
11394
11395         * class.c (mono_class_setup_vtable): allocate supertype array
11396
11397 2003-02-18  Martin Baulig  <martin@ximian.com>
11398
11399         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
11400
11401 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11402
11403         * reflection.c:
11404         (assembly_name_to_aname): jump over unknown properties (i've found
11405         something like: 'type, assembly, version=xxx, custom=null, public...',
11406         so now will ignore custom=null and still get the rest of the values).
11407
11408 2003-02-17  Dick Porter  <dick@ximian.com>
11409
11410         * threads.c: Have Thread.Start() wait for a semaphore to signal
11411         that the thread has set up all its local data.  This fixes bug
11412         34323, where Abort() raced the new thread's TLS data.
11413
11414         Also removes the handle_store() call from start_wrapper, because
11415         threads are now always created suspended and there is no longer a
11416         race between the parent and child threads to store the info.
11417
11418 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
11419
11420         * image.c: explain the #- heap issue in a message, hopefully
11421         avoiding FAQs on mono-list.
11422
11423 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11424
11425         * icall.c:
11426         (GetEntryAssembly): if the domain has not invoked
11427         AppDomain.ExecuteAssembly yet, return the assembly of the default
11428         AppDomain.
11429
11430 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
11431
11432         * class.c (mono_ldtoken): make it work in dynamic assemblies.
11433
11434 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
11435
11436         * metadata.c, reflection.c: simple speedup to type hash
11437         and equals code.
11438
11439 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
11440
11441         * image.c, image.h, class.c, assembly.c: move module loading
11442         to MonoImage. When loading metadata, consider alignemnet from
11443         the start of metadata, not from the metadata address in memory.
11444
11445 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
11446
11447         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
11448         AssemblyBuilder objects. Factored out custom attribute creation into
11449         a separate function.
11450         (create_custom_attr): new function to create custom attributes.
11451
11452 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
11453
11454         * Makefile.am: Got tired of typing the full pathname to pedump.
11455         Until there is another option, am installing this.
11456
11457 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
11458
11459         * class.c (class_compute_field_layout): always set field->parent 
11460         (mono_ldtoken): use mono_defaults.fieldhandle_class;
11461
11462 2003-02-11  Dick Porter  <dick@ximian.com>
11463
11464         * threads-types.h:
11465         * monitor.c: Rewrote Monitor, making lock much faster and
11466         Pulse/Wait work as specified.  Also uses much fewer handles, and only
11467         creates them as needed.
11468
11469         * exception.c: Added SynchronizationLockException
11470
11471         * threads.c: Deleted old Monitor implementation.  The new one is
11472         in a new file.
11473
11474 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
11475
11476         * class.c: handled TypedReference type code. Set the correct size for
11477         class data. Setup interface_offsets for interface classes, too.
11478
11479 2003-02-09  Martin Baulig  <martin@ximian.com>
11480
11481         * debug-mono-symfile.h: Reflect latest symbol writer changes.
11482
11483 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
11484
11485         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
11486         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
11487         * object.c: fixed mono_object_get_virtual_method () for interfaces.
11488         * verify.c: check for code that runs after the end of the method.
11489
11490 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
11491
11492         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
11493         "System.Math::Round2".
11494         * sysmath.h: Added Floor, Round and Round2 definitions.
11495         * sysmath.c: Modified certain functions that were not 100% compliant
11496         with MS.NET (math precision) and added the implementation of Floor,
11497         Round and Round2.
11498
11499 2003-02-07  Martin Baulig  <martin@ximian.com>
11500
11501         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
11502
11503 2003-02-07  Martin Baulig  <martin@ximian.com>
11504
11505         * debug-mono-symfile.c: Reflected latest symwriter changes.
11506         (mono_debug_create_mono_symbol_file): Removed.
11507         (mono_debug_open_mono_symbol_file): Take an argument which
11508         specifies whether to create a dynamic symbol file.
11509
11510 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
11511
11512         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
11513
11514 2003-02-05  Martin Baulig  <martin@ximian.com>
11515
11516         * reflection.c (mono_image_build_metadata): Make this public,
11517         protect it against being called multiple times, don't create
11518         resources and don't build the compressed metadata here.
11519         (mono_image_create_pefile): Do this here.
11520
11521         * icall.c
11522         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
11523
11524 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11525
11526         * socket-io.c: fixed bug #36322.
11527
11528 2003-02-06  Piers Haken <piersh@friskit.com>
11529
11530         * appdomain.[ch]:
11531         * class.h:
11532         * debug-mono-symfile.c:
11533         * icall.c:
11534         * loader.c:
11535         * mono-config.c:
11536         * monosn.c:
11537         * reflection.c:
11538         * socket-io.c: warning cleanups
11539
11540 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
11541
11542         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
11543         function. works like remoting invoke, but does a check for the Proxy first.
11544
11545 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
11546
11547         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
11548
11549 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
11550
11551         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
11552         array of pointers.
11553         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
11554         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
11555
11556         * object.c (mono_store_remote_field_new): used by the new jit
11557         instead of mono_store_remote_field
11558         (mono_load_remote_field_new): used by the new jit
11559         instead of mono_load_remote_field
11560
11561 2003-02-05  Patrik Torstensson
11562
11563         * appdomain.c: changed unload to take the domain id instead
11564         of domain
11565         
11566         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
11567
11568
11569 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11570
11571         * appdomain.c: don't look for assemblies in ApplicationBase if
11572         PrivateBinPathProbe is set.
11573
11574 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11575
11576         * object.c: make the first argument in main_args contain the absolute
11577         path to the assembly. Fixes bug #37511.
11578
11579 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11580
11581         * icall.c: get correct UTC offset for countries not using daylight
11582         time saving. Fixes bug #30030.
11583
11584 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11585
11586         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
11587         and 1 are the family).
11588
11589 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
11590
11591         * icall.c (ves_icall_InternalExecute): removed wrong assertion
11592
11593         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
11594
11595 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
11596
11597         * reflection.c: added support for SignatureHelper tokens, which is
11598         needed by the Calli opcode.
11599
11600         * reflection.h: track changes to SignatureHelper class.
11601
11602         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
11603
11604 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11605
11606         * appdomain.c: fixed loading assemblies from PrivateBinPath.
11607
11608 2003-02-03  Patrik Torstensson
11609         * appdomain.[c|h], domain.c : 
11610          - Added support for getting a domain via domain id
11611          - Support for setting and getting domain from System.AppDomain 
11612            (used in cross appdomain channel)
11613          - Added support for get/set for a MonoAppContext on a thread 
11614            (Context class in System.Runtime.Remoting.Contexts),
11615          - Removed hack in Get/SetData and ExecuteAssembly.
11616         
11617         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
11618         the managed world to get control when a proxy is created.
11619
11620         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
11621         
11622 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
11623
11624         * icall.c
11625         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
11626         Populate the codebase field as well.
11627
11628 2003-02-02  Martin Baulig  <martin@ximian.com>
11629
11630         * debug-mono-symfile.c
11631         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
11632         (mono_debug_symfile_add_method): Allow interncalls.
11633
11634 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11635
11636         * icall.c: throw parse exception if strtod fails or the string is empty.
11637
11638 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
11639
11640         * marshal.c: handle object type separately from defined
11641         class types.
11642
11643 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
11644
11645         * marshal.c: handle NATIVE_LPSTR for strings when it's
11646         explicitly specified.
11647
11648 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
11649
11650         * reflection.c, reflection.h, icall.c: setup the reflection
11651         handle cache for ModuleBuilders and AssemblyBuilders.
11652
11653 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
11654
11655         * reflection.c (reflection_methodbuilder_to_mono_method): set
11656         pinvoke flag
11657
11658 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11659
11660         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
11661
11662 2003-01-29  Dick Porter  <dick@ximian.com>
11663
11664         * threads.c: No need for the fake_thread kludge now that Thread
11665         doesn't run a class constructor
11666         
11667 2003-01-29  Dick Porter  <dick@ximian.com>
11668
11669         * threads.c: Use g_direct_hash instead of the rather bogus
11670         g_int_hash
11671
11672 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
11673
11674         * marshal.c (mono_marshal_get_native_wrapper): add check for null
11675         (fix pinvoke12.exe)
11676         (mono_marshal_get_struct_to_ptr): generate valid IL code
11677         (mono_marshal_get_ptr_to_struct): generate valid IL code
11678         (*): correctly set sig->pinvoke, we need to memdup the signature
11679         to do that
11680
11681 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
11682
11683         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
11684         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
11685
11686 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
11687
11688         * profiler.c: provide more callers information.
11689
11690 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
11691
11692         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
11693
11694         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
11695
11696         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
11697
11698 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11699
11700         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
11701         exception instead of going into an infinite loop on dates which it 
11702         can't yet handle.
11703
11704         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
11705         out-of-range exception if needed.
11706
11707         * class.c (mono_class_setup_vtable): allow a virtual method to provide
11708         an implementation for an interface method and to override an inherited
11709         method at the same time. 
11710         Imagine a scenario when a virtual method is used to override a
11711         virtual abstract method in a parent class, and this same method 
11712         provides an implementation for an method inherited from an interface. 
11713         In this case, the interface resolution code will set im->slot, which 
11714         means that the virtual method override pass will skip this method 
11715         which means a pointer to the abstract method inherited from the parent
11716         will remain in the vtable of this non-abstract class.
11717
11718         * class.c: (mono_class_setup_vtable): continue search for a real 
11719         method if only an abstract method is found.     
11720
11721 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
11722
11723         * reflection.c: add size to encoding for ByValStr and ByValArray
11724         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
11725
11726 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11727
11728         * class.c (mono_class_setup_vtable): pass the override info as an
11729         argument.
11730
11731         * class.c (mono_class_setup_vtable): set the slot of overriding methods
11732         correctly.
11733         
11734         * reflection.c (ensure_runtime_vtable); add support for method 
11735         overrides.
11736         
11737 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11738
11739         * reflection.c (resolution_scope_from_image): Hack to work to work with
11740         dynamic assemblies.
11741
11742         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
11743         added a 'force_ref' argument to force this function to allways return 
11744         a TypeRef. This is needed by mono_image_get_memberref_token ().
11745         
11746 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11747
11748         * reflection.c (mono_image_get_type_info): interfaces really don't have
11749         a parent.
11750
11751         * reflection.c (mono_image_basic_init): fill out missing fields of
11752         image structure.
11753
11754         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
11755         dynamic assemblies. This is required so dynamic assemblies show up in
11756         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
11757         Type::GetType() etc. This is consistent with MS behaviour.
11758
11759         * image.c image.h reflection.c: add newly created classes to the name 
11760         cache so mono_class_get () will find them.      
11761
11762 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11763
11764         First part of changes to get IKVM.NET running under mono.
11765         
11766         * appdomain.h, appdomain.c: added new function 
11767         mono_domain_try_type_resolve() which will emit TypeResolve events. 
11768         This function will call AppDomain::DoTypeResolve to do the actual work.
11769
11770         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
11771         moved existing code dealing with dynamic tokens to a new function 
11772         called mono_reflection_lookup_dynamic_token (). This function will 
11773         raise TypeResolve events when appropriate. Since reflection.c is not 
11774         part of libmetadata, a new hook function called 
11775         mono_lookup_dynamic_token() is added to class.c which will call this.
11776
11777         * assembly.h assembly.c: make the invoke_load_hook function public,
11778         so it can be called for dynamic assemblies.
11779
11780         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
11781
11782         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
11783         type isn't found.
11784
11785         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
11786         MonoGHashTable, since it contains pointers to objects which the GC 
11787         needs to track.
11788
11789         * assembly.c (search_loaded): remove unused variable.
11790         
11791 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
11792
11793         * object.c: fixed issue exposed by gcc-generated IL programs
11794         that use RVA data for pointers.
11795
11796 2003-01-25  Martin Baulig  <martin@ximian.com>
11797
11798         * threads.c (start_wrapper): Moved the initialization of
11799         `start_func' above the mono_new_thread_init() call to which we
11800         pass it as argument.
11801
11802 2003-01-24  Martin Baulig  <martin@ximian.com>
11803
11804         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
11805         the MonoThread pointer.
11806
11807 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
11808
11809         * icall.c: Rename `PowImpl' to Pow.
11810
11811 2003-01-23  Dick Porter  <dick@ximian.com>
11812
11813         * threads.c (start_wrapper): Create a Thread object if needed, so
11814         the Main() thread can do the class initialisation in a subthread
11815         that has been set up to allow managed code execution.
11816
11817         Pass the thread ID instead of the MonoThread pointer to the thread
11818         start and attach callbacks.  This change is required, because the
11819         jit thread start callback must be called _before_ the Thread
11820         object can be created.
11821         
11822         (mono_thread_init): Removed much object creation code that is no
11823         longer needed.  No managed code is called from here now.
11824
11825         * object.c (mono_runtime_exec_managed_code): Create a subthread
11826         for Main, and call back to the runtime to use it.
11827         Set the exit code when Main exits.
11828
11829         * gc.c: Make sure domain finalisation happens in a subthread.
11830         Re-enable threaded GC, fixing bug 31333 (again).
11831
11832         * environment.c: System.Environment internall calls (so far just
11833         ExitCode is here, the others are still in icall.c)
11834
11835         * appdomain.c (mono_runtime_cleanup): All threads running managed
11836         code should have finished before mono_runtime_cleanup() is
11837         reached, so no need to clean up threads.
11838
11839 2003-01-22  Martin Baulig  <martin@ximian.com>
11840
11841         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
11842         `gpointer func' arguments.      
11843         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
11844         but added `MonoThread *thread' argument.
11845         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
11846
11847         * threads.c (mono_new_thread_init): Added `gpointer func' argument
11848         and pass it to the mono_thread_start_cb callback.
11849         (mono_install_thread_callbacks): New public function to install a
11850         set of callbacks which are set by the debugger.
11851         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
11852
11853 2003-01-22  Martin Baulig  <martin@ximian.com>
11854
11855         * Makefile.am: Install debug-mono-symfile.h.
11856
11857 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
11858
11859         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
11860
11861 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
11862
11863         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
11864         * class.c (mono_ptr_class_get): correctly set access levels of pointers
11865         (mono_array_class_get): correctly set access levels of arrays
11866
11867 2003-01-20      Patrik Torstensson
11868         * image.h (MonoAssemblyName): changed major, minor, build, revision
11869         from signed to unsigned.
11870
11871 2003-01-20  sean kasun <skasun@azstarnet.com>
11872
11873         * reflection.c (load_cattr_value): Now this handles
11874         MONO_TYPE_SZARRAY.  Fixes bug #35629
11875
11876 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
11877
11878         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
11879         integer value
11880
11881 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11882
11883         * decimal.c: fixed bug #26056.
11884
11885 2003-01-17  Martin Baulig  <martin@ximian.com>
11886
11887         * gc.c: Raise an ExecutionEngineException instead of using g_error().
11888
11889 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11890
11891         * exception.[ch]:
11892         (mono_get_exception_type_initialization): new function.
11893
11894         * object.c: throw a TypeInitializationException when an exception is
11895         thrown invoking the class constructor.
11896
11897 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11898
11899         * reflection.c: fixed attribute reading.
11900
11901 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11902
11903         * icall.c:
11904         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
11905         provided, look for the type in the calling assembly and then in
11906         mscorlib; if the assembly name is provided, only try that one.
11907
11908 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
11909
11910         * object.c: register the vtable before there is a chance it's
11911         queried again recursively.
11912
11913 2003-01-13  Duncan Mak  <duncan@ximian.com>
11914
11915         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
11916         gc-internal.h. 
11917         
11918 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
11919
11920         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
11921
11922 2003-01-11  Martin Baulig  <martin@ximian.com>
11923
11924         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
11925         this to 20 for the release.
11926
11927 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
11928
11929         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
11930
11931         * loader.c (mono_method_get_marshal_info): bug fix
11932
11933         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
11934         structures with explicit layout
11935
11936 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
11937
11938         * profiler.c: made the output more readable (and sorted). 
11939         Added caller information for the allocation profiler.
11940
11941 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
11942
11943         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
11944
11945 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11946
11947         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
11948         to get value types.
11949         
11950 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
11951
11952         * object.c, profiler.h, profiler.c, profiler-private.h:
11953         Added object allocation profiler.
11954
11955 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
11956
11957         * reflection.h, reflection.c: handle global methods.
11958         Compress blob entries.
11959
11960 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
11961
11962         * marshal.c: fix compilation.
11963
11964 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
11965
11966         * loader.c (mono_method_get_marshal_info): impl.
11967
11968         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
11969
11970 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11971
11972         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
11973         for reference types.
11974
11975 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
11976
11977         * loader.c: fixed off by one error in loaded parameter names.
11978
11979 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
11980
11981         * marshal.c (mono_marshal_get_icall_wrapper): like
11982         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
11983         instead of a MonoMethod.
11984
11985 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11986
11987         * decimal.c: fixed bug #36537.
11988
11989 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
11990
11991         * marshal.c: throw a missing method exception if a
11992         P/Invoke method is not found.
11993
11994 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
11995
11996         * icall.c: allow a null this for constructors.
11997
11998 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
11999
12000         * icall.c: raise the proper exceptions if the arguments to the
12001         internal Invoke are incorrect.
12002
12003 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
12004
12005         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
12006
12007 2003-01-03  Martin Baulig  <martin@ximian.com>
12008
12009         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
12010
12011 2002-12-31  Martin Baulig  <martin@ximian.com>
12012
12013         * debug-mono-symfile.c: Completely rewrote the type section.
12014         Instead of using individual malloc()ed fields, we use one big
12015         continuous memory area and offsets into this area.
12016         See the comments in the source code for details.
12017
12018 2002-12-30  Martin Baulig  <martin@ximian.com>
12019
12020         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
12021
12022 2002-12-30  Martin Baulig  <martin@ximian.com>
12023
12024         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
12025         line number table in this data blob instead of using an external
12026         pointer.
12027
12028 2002-12-28  Martin Baulig  <martin@ximian.com>
12029
12030         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
12031
12032 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
12033
12034         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
12035         as a boxed return type.
12036
12037 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
12038
12039         * appdomain.c
12040         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
12041         g_build_filename to properly get separators on the filename created.
12042
12043         * object.h: Small change, introduce MonoMarshalByRefObject to
12044         track the layout of that structure in the C# universe as we make
12045         changes there.
12046
12047 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
12048
12049         * object.c: removed assert to allow static fields on interfaces.
12050         * loader.c: a TypeSpec may be used for any type, not just arrays.
12051
12052 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12053
12054         * class.c, class.h: added mono_class_array_element_size ().
12055         Ignore static methods in interfaces.
12056
12057 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12058
12059         * threads.c: fixed the build under cygwin.
12060
12061 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12062
12063         * reflection.c: handle nullref constants. Allocate keys for
12064         reflection handles with the GC.
12065
12066 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
12067
12068         * threads.c, threads.h: added mono_thread_get_abort_signal()
12069         to get a suitable signal for thread abort.
12070
12071 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
12072
12073         * metadata.c: fix handling of ExportedType table.
12074
12075 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12076
12077         * icall.c: added WriteWindowsDebugString internal call.
12078
12079 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12080
12081         * reflection.h: added fields to match C# implementation.
12082
12083 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12084
12085         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
12086
12087 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
12088
12089         * gc.h, gc-internal.h: Rename header for GC internal calls to
12090         gc-internal.h from gc.h as to not clash with Boehm GC having its
12091         header installed as <gc.h> in outside include paths.
12092         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
12093         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
12094
12095 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12096
12097         * icall.c: assign minor, build and revision in FillName.
12098
12099 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
12100
12101         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
12102         Added support for running code generated by Reflection.Emit.
12103
12104 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12105
12106         * appdomain.c: check for NULL argument in LoadFrom.
12107
12108 2002-12-10  Dick Porter  <dick@ximian.com>
12109
12110         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
12111
12112 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12113
12114         * appdomain.c: fix buglet when building exe file name.  Handle full
12115         assembly name (needed after latest changes to AssemblyName).
12116         * image.c:
12117         (mono_image_close): free some hashtables.
12118
12119 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
12120
12121         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
12122         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
12123         on some systems (redhat 7.3) 
12124
12125 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
12126
12127         * threads.c: delete the critical section of a sync block,
12128         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
12129
12130 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
12131
12132         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
12133
12134 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12135
12136         * appdomain.[ch]: handle the assembly preload event to try loading the
12137         assemblies using the paths we have in the current domain.
12138
12139         * assembly.[ch]: created an assembly preload hook that is called to try
12140         loading the assembly by other means that the ones provided here.
12141
12142         * domain.c: initialize the domain search path.
12143
12144         From now on, assemblies (TODO: except corlib and System) are loaded
12145         according to these rules when using mono_assembly_load ():
12146
12147                 1. It tries to load the assembly from the ApplicationBase
12148                 of the current domain appending .dll and .exe (TODO: have to
12149                 try loading from name/name.dll and name/name.exe).
12150
12151                 2. It tries the search path specified in PrivateBinPath for the
12152                 current domain (if any).
12153
12154                 3. Previous behavior.
12155
12156 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
12157
12158         * icall.c: implemented GetInterfaceMap() related icall.
12159         * domain.c, loader.h: load MethodInfo in mono_defaults.
12160
12161 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12162
12163         * gc.c: disable the finalizer thread for now, untill all the issues
12164         with it are resolved.
12165
12166 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12167
12168         * string-icalls.c: handle embedded nulls in string ctor when the
12169         length is specified.
12170
12171 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12172
12173         * class.c: look for explicit interface implementation in parent
12174         classes, too.
12175
12176 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
12177
12178         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
12179
12180 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12181
12182         * gc.c: protect handles with a critical section.
12183
12184 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12185
12186         * icall.c:
12187         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
12188         parameters. If no assembly specified, try getting the type from all
12189         the assemblies in the current domain, else, load the assembly and get
12190         the type from it.
12191
12192 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12193
12194         * marshal.c: applied patch from Aleksey Demakov that fixes
12195         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
12196
12197 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12198
12199         * icall.c: fixed get_location.
12200
12201 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
12202
12203         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
12204         declarations to make it work with older gcc. 
12205
12206         * loader.c (mono_get_method): set signature->pinvoke for native calls
12207
12208 2002-11-20  Dick Porter  <dick@ximian.com>
12209
12210         * threads.c (mono_thread_init): Set the main thread's handle
12211
12212 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12213
12214         * gc.c: allow compilation without GC support. Changed to match the
12215         mono coding style.
12216
12217 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12218
12219         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
12220
12221 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
12222
12223         * reflection.c: set a public key token on the core assemblies.
12224
12225 2002-11-18  Dick Porter  <dick@ximian.com>
12226
12227         * threads.c: Split out some thread initialisation so that other
12228         files can set the start callback function.
12229
12230         * gc.c: Run finalisers in a separate thread, to avoid stack
12231         overflow.  Fixes bug 31333.
12232
12233         * appdomain.c: Set up GC finalisation thread.
12234
12235         * reflection.c: 
12236         * object.c: 
12237         * domain.c: Use gc.h macros for GC_malloc
12238         
12239 2002-11-15  Dick Porter  <dick@ximian.com>
12240
12241         * threadpool.c: 
12242         * threads.c:
12243         * appdomain.c: Removed mono_runtime_init_with_attach(),
12244         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
12245         merging the extra parameter with the existing function.  Removed
12246         unneeded code in mono_thread_attach().
12247
12248 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
12249
12250         * image.c (mono_image_loaded_by_guid): a method to get loaded
12251         images by guid. 
12252         (load_metadata_ptrs): we store the guid as string.
12253
12254 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
12255
12256         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
12257
12258         * metadata.c (mono_guid_to_string): imported method form Zoltan
12259         Varga (slightly modified)
12260
12261         * assembly.c (mono_assembly_open): load precompiled code
12262
12263         * loader.h (MonoMethod): we store the method token for use in the
12264         aot compiler. 
12265
12266 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12267
12268         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
12269         the hook function called when an assembly is loaded.
12270         
12271         * domain.c: Modified file.
12272         (mono_domain_assembly_load): removed hash table insertion of assemblies.
12273
12274         Fixes bug #33196.
12275
12276 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
12277
12278         * reflection.c: Map PEFileKind to the value expected by the WinNT
12279         image loader. 
12280
12281 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12282
12283         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
12284         Read until the buffer is filled completely.
12285
12286 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12287
12288         * icall.c: implemented MonoType.InternalGetEvent ().
12289
12290 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12291
12292         * appdomain.c: implemented InitAppDomainSetup. Delayed
12293         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
12294         the entry_assembly.
12295
12296         * assembly.c: base_dir is now an absolute path ending with
12297         G_DIR_SEPARATOR.
12298
12299         * icall.c: modified get_location according to the above changes.
12300
12301         * object.c: init AppDomain.SetupInformation for the default domain after
12302         we have the entry assembly.
12303
12304         * domain.c: when unloading a domain, setup = NULL.
12305
12306 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
12307
12308         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
12309
12310 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
12311
12312         * object.h, object.c: introduced mono_object_get_virtual_method ()
12313         to lookup the method invoked on an object when a callvirt is done on
12314         a method.
12315         * icall.c: make MethodInfo::Invoke() always do a virtual call.
12316
12317 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12318
12319         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
12320         current domain when loaded an assembly and failed to load it.
12321
12322         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
12323
12324 2002-10-31  Dick Porter  <dick@ximian.com>
12325
12326         * icall.c: 
12327         * file-io.h: 
12328         * file-io.c: Return the error status in a parameter, as the
12329         GetLastError() value has long since been blown away if we try and
12330         look it up in a subsequent internal call invocation.  Delete the
12331         GetLastError() internal call, because it's useless.
12332
12333 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
12334
12335         * class.[ch]: added cast_class to fix bug 29517
12336
12337 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
12338
12339         * marshal.c: create valid IL code in the filter clause:
12340         the new JIT is less forgiving:-)
12341
12342 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12343
12344         * icall.c: removed get_property internal call.
12345
12346 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
12347
12348         * appdomain.h domain.c: Added an ID to appdomains.
12349         
12350         * threads.c threads.h icall.c: Implement icall
12351         Thread:GetDomainID(), and remove unused icall 
12352         CurrentThreadDomain_internal.
12353
12354 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12355
12356         * icall.c: Don't recurse through the base types in GetConstructor.
12357         Fixes bug #32063. 
12358
12359 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
12360
12361         * mempool.h, mempool.c: added mono_mempool_empty() and
12362         mono_mempool_stats().
12363
12364 2002-10-23  Dick Porter  <dick@ximian.com>
12365
12366         * file-io.c: 
12367         * file-io.h: 
12368         * icall.c: Added MonoIO.GetFileType internal call
12369
12370 2002-10-17  Dick Porter  <dick@ximian.com>
12371
12372         * appdomain.c (mono_runtime_cleanup): Don't signal the async
12373         delegate semaphore before waiting for all threads to finish,
12374         because new threads can also call async delegates.  Fixes bug
12375         32004.
12376
12377         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
12378         of 3 seconds, in case another async job is queued.  (This part is
12379         needed because the bug fix reintroduced the 3s exit lag.)  This
12380         makes the mono_runtime_shutdown flag superfluous.
12381
12382 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
12383
12384         * reflection.c: include ehader size in method section headers.
12385         Really check for suplicated modules entries.
12386
12387 2002-10-17  Martin Baulig  <martin@gnome.org>
12388
12389         * debug-mono-symfile.c: Added back support for locals.
12390
12391 2002-10-14  Martin Baulig  <martin@gnome.org>
12392
12393         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
12394         MONO_TYPE_VOID.
12395
12396 2002-10-14  Martin Baulig  <martin@gnome.org>
12397
12398         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
12399         mono_class_get() instead of looking in the class cache. 
12400
12401 2002-10-13  Martin Baulig  <martin@gnome.org>
12402
12403         * debug-mono-symfile.c: Set version number to 28, include the
12404         signature in method names.
12405
12406 2002-10-13  Martin Baulig  <martin@gnome.org>
12407
12408         * debug-mono-symfile.h: Set version number to 27.
12409
12410 2002-10-11  Martin Baulig  <martin@gnome.org>
12411
12412         * gc.c: Don't register/unregister NULL pointers as disappearing links.
12413
12414 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
12415
12416         * metadata.c, metadata.h: added helper function to allocate signatures.
12417
12418 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12419
12420         * icall.c: added internal call to get the location of machine.config.
12421
12422 2002-10-08  Martin Baulig  <martin@gnome.org>
12423
12424         * debug-mono-symfile.c: Ignore classes with a pending init for the
12425         moment.
12426
12427 2002-10-03  Dick Porter  <dick@ximian.com>
12428
12429         * threads.c: Freebsd pthread_t is a pointer
12430
12431 2002-10-03  Dick Porter  <dick@ximian.com>
12432
12433         * socket-io.c: Implemented GetHostName_internal
12434
12435 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12436
12437         * mono-config.c:
12438         (mono_config_parse_file): don't leak the text.
12439
12440 2002-10-02  Martin Baulig  <martin@gnome.org>
12441
12442         * debug-mono-symfile.c: Added support for methods.
12443
12444 2002-10-01  Martin Baulig  <martin@gnome.org>
12445
12446         * debug-mono-symfile.c: Don't emit methods and line numbers for
12447         the dynamic symbol file, just write the type table.  We can easily
12448         have an external helper program which creates a symbol file for an
12449         IL file.        
12450
12451 2002-10-01  Dick Porter  <dick@ximian.com>
12452
12453         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
12454         Only add the handle to the cleanup array when we're about to
12455         launch the thread.  Bug 31425 deadlocked when the test was run on
12456         mono under w32.
12457
12458 2002-10-01  Martin Baulig  <martin@gnome.org>
12459
12460         * debug-mono-symfile.c: Added support for properties.
12461
12462 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
12463
12464         * reflection.c: unaligned store fix from Mark Crichton
12465         <crichton@gimp.org>.
12466
12467 2002-09-27  Martin Baulig  <martin@gnome.org>
12468
12469         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
12470         New interncall.
12471
12472 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
12473
12474         * assembly.h, assembly.c: use a sane API to hook into the assembly
12475         loading process instead of a useless special-purpouse hack
12476         (ngen needs a hook, too, for example).
12477
12478 2002-09-27  Dick Porter  <dick@ximian.com>
12479
12480         * threads.c (mono_thread_init): Call GetCurrentProcess() so
12481         io-layer can set up some process handle info.  Not needed on w32,
12482         but doesn't hurt either.
12483
12484         * process.c: Pass the program name in the second parameter to
12485         CreateProcess, so the path is searched.  Include the working
12486         directory. Implemented process name, process enumeration, and some
12487         process detail internal calls.
12488         
12489         * icall.c: Added internal calls for process lookup, and some
12490         process details
12491
12492 2002-09-26  Martin Baulig  <martin@gnome.org>
12493
12494         * assembly.c (mono_install_open_assembly_hook): New global
12495         function to install a function to be invoked each time a new
12496         assembly is loaded.
12497         (mono_assembly_open): Run this callback function if set.
12498
12499         * debug-mono-symfile.c: Put back line numbers for the dynamic
12500         symbol file and also record the .il file as source file.  This
12501         allows us to install the temporary symbol file as `file.dbg' just
12502         like a compiler-generated one.
12503
12504 2002-09-26  Nick Zigarovich <nick@chemlab.org>
12505
12506         * Corrected typo in gc.c (BOHEM vs BOEHM).
12507
12508 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12509
12510         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
12511         GetProperties. Also avoid calling g_slist_length in GetProperties and
12512         GetMethods.
12513
12514 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
12515
12516         * reflection.c: avoid unaligned stores (bug spotted by
12517         Mark Crichton  <crichton@gimp.org>).
12518
12519 2002-09-25  Martin Baulig  <martin@gnome.org>
12520
12521         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
12522         instead of guint64 for addresses and added prologue/epilogue info.
12523
12524 2002-09-25  Martin Baulig  <martin@gnome.org>
12525
12526         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
12527         store line number info.  For the dynamic symbol file, we only need
12528         to provide the JIT generated dynamic line number info for the dynamic
12529         symbol file.
12530
12531 2002-09-25  Martin Baulig  <martin@gnome.org>
12532
12533         * debug-mono-symfile.h: Incremented version number.
12534
12535 2002-09-24  Martin Baulig  <martin@gnome.org>
12536
12537         * class.c (mono_debugger_class_init_func): New global function
12538         pointer variable.
12539         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
12540         call it.
12541
12542         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
12543         function.  This is called via the mono_debugger_class_init_func
12544         hook to add all types to the dynamic type table.
12545         (ves_icall_MonoDebugger_GetType): New interncall to get a class
12546         from its metadata token.
12547
12548         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
12549         New interncall for the debugger.
12550
12551 2002-09-24  Nick Drochak <ndrochak@gol.com>
12552
12553         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
12554         before using it in case it is null.
12555         
12556 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12557
12558         * metadata.c: allow custom modifiers in local var signatures
12559         (bug spotted by Zoltan Varga).
12560
12561 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
12562
12563         * class.c: deal with the <Module> class that may have a NULL vtable.
12564         Eliminate warnings.
12565
12566 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12567
12568         * image.c, image.h: more strong name helpers.
12569         * monosn.c: more work: convert pem keys to cryptoapi format.
12570
12571 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
12572
12573         * string-icalls.c: speedup IndexOf.
12574
12575 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12576
12577         * icall.c: updates from Zoltan.2.Varga@nokia.com.
12578
12579 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
12580
12581         * icall.c: cleanup: use mono_object_domain ().
12582
12583 2002-09-23  Martin Baulig  <martin@gnome.org>
12584
12585         * debug-mono-symfile.c: Improved type support.
12586
12587 2002-09-22  Martin Baulig  <martin@gnome.org>
12588
12589         * debug-mono-symfile.c: Added support for reference types and strings.
12590
12591 2002-09-22  Martin Baulig  <martin@gnome.org>
12592
12593         * debug-mono-symfile.c: Started to work on the type table.
12594
12595 2002-09-21  Martin Baulig  <martin@gnome.org>
12596
12597         * debug-mono-symfile.c: Largely reworked the symbol table format.
12598         The symbol table is now incrementally updated each time a new
12599         method is added.  We're now also using our own magic and version
12600         so that you don't need to recompile all your classes if the
12601         dynamic table changes.
12602         (mono_debug_update_mono_symbol_file): Removed.
12603         (mono_debug_symfile_add_method): New function to add a method.
12604
12605 2002-09-21  Martin Baulig  <martin@gnome.org>
12606
12607         * icall.c
12608         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
12609         New interncall.
12610
12611         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
12612         New interncall to get a method from its metadata token.
12613
12614 2002-09-21  Martin Baulig  <martin@gnome.org>
12615
12616         * debug-mono-symfile.c: Create type table.
12617
12618 2002-09-20  Martin Baulig  <martin@gnome.org>
12619
12620         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
12621
12622 2002-09-20  Martin Baulig  <martin@gnome.org>
12623
12624         * debug-mono-symfile.c: Provide information about params and locals.
12625
12626 2002-09-20  Martin Baulig  <martin@gnome.org>
12627
12628         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
12629         New interncall.
12630
12631         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
12632         interncall to get a method from its metadata token.
12633
12634 2002-09-20  Martin Baulig  <martin@gnome.org>
12635
12636         * debug-mono-symfile.c: Added a few checks for method->header
12637         being non-NULL.  This should never happen, but for the moment
12638         let's use a g_warning() rather than a g_assert().
12639
12640 2002-09-19  Mark Crichton  <crichton@gimp.org>
12641
12642         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
12643         even if support for it isn't present.  Added an #ifdef to fix this.
12644
12645         * socket-io.c: Added checks back for Solaris support.
12646
12647 2002-09-19  Martin Baulig  <martin@gnome.org>
12648
12649         * debug-mono-symfile.c (read_string, write_string): Reflect latest
12650         changes in the symbol file format.
12651
12652 2002-09-18  Martin Baulig  <martin@gnome.org>
12653
12654         * debug-mono-symfile.c: Set version number to 21.
12655
12656 2002-09-18  Dick Porter  <dick@ximian.com>
12657
12658         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
12659         on netbsd.  Fixes bug 30051.
12660
12661 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12662
12663         * reflection.c:
12664         (set_version_from_string): little fix.
12665
12666 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12667
12668         * monosn.c, Makefile.am: added strong name utility.
12669         * reflection.h, reflection.c: implemented delayed signing,
12670         locale, version and hash id assembly attributes.
12671
12672 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12673
12674         * loader.c, metadata.c: load param attributes in signatures.
12675
12676 2002-09-16  Martin Baulig  <martin@gnome.org>
12677
12678         * debug-mono-symfile.c: Added string table with all method names.
12679
12680 2002-09-14  Martin Baulig  <martin@gnome.org>
12681
12682         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
12683         fast method lookup.
12684
12685 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
12686
12687         * reflection.c: record the public key token of referenced assemblies.
12688
12689 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12690
12691         * image.c, image.h: added functions to get the strong name and the
12692         public key of an assembly.
12693         * pedump.c: use them.
12694
12695 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
12696
12697         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
12698
12699 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
12700
12701         * marshal.c (mono_marshal_get_managed_wrapper): Added
12702         MONO_TYPE_BOOLEAN 
12703
12704 2002-09-11  Martin Baulig  <martin@gnome.org>
12705
12706         * gc.c: Call GC_unregister_disappearing_link() on all links when
12707         finalizing them, this is necessary to aviod a crash in boehm's
12708         finalize handler.
12709
12710 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12711
12712         * gc.c: handle GetTarget for finalized objects spotted and fixed by
12713         nick@chemlab.org.
12714
12715 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
12716
12717         * icall.c: implemented MonoType::Module.
12718         * reflection.c, reflection.h: mono_module_get_object () from
12719         Tomi Pakarinen <tomi.pakarinen@welho.com>.
12720
12721 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
12722
12723         * icall.c: ignore overridden methods in GetMethods ().
12724         Fix for FieldInfo::SetValue().
12725         * object.c: handle float/double in runtime invoke.
12726
12727 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
12728
12729         * object.c: allow a constructor to be called again on an object.
12730
12731 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12732
12733         * class.h, class.c: move field layout code to it's own function and
12734         export it. Get an interface id earlier. Move fields in MonoClass
12735         so they are more cache friendly and align the bitfields.
12736         * loader.c: temporary handle get_param_names() for a runtime method.
12737         * reflection.c, reflection.h: more code to handle runtime creation of
12738         types.
12739
12740 2002-09-09  Martin Baulig  <martin@gnome.org>
12741
12742         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
12743         signature with the pinvoke field being set for the actual call.
12744
12745 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12746
12747         * icall.c: removed some unused icalls. Start of map of glib charsets
12748         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
12749
12750 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
12751
12752         * debug-helpers.c: break infinite loop (found and fixed by
12753         Holger Arnold <harnold@gmx.de>).
12754
12755 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
12756
12757         * icall.c: target may be null in create_delegate.
12758
12759 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12760
12761         * marshal.c: handle a boolean return type.
12762
12763 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12764
12765         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
12766
12767 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
12768
12769         * gc.c: fix weakreferences.
12770
12771 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
12772
12773         * icall.c: added icall to get default codepage.
12774
12775 2002-09-03  Dick Porter  <dick@ximian.com>
12776
12777         * threads.h: 
12778         * threads.c: Use MonoThread instead of MonoObject where
12779         apropriate.
12780
12781         Store running thread objects in a hash table, so that we have all
12782         the info to hand when waiting for them to finish
12783         (means we don't need OpenThread() any more, so mingw builds should
12784         be fully functional again.)
12785
12786         * verify.c:
12787         * object.h: Added thread ID to MonoThread
12788
12789 2002-09-03  Martin Baulig  <martin@gnome.org>
12790
12791         * icall.c (System.Reflection.Assembly::get_location): New interncall.
12792
12793 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12794
12795         * icall.c: fixed leak in get_temp_path. Thanks lupus.
12796
12797 2002-09-03  Martin Baulig  <martin@gnome.org>
12798
12799         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
12800         argument to store the end address of the disassembled instruction.
12801
12802         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
12803         here from debug-symfile.h.
12804         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
12805         JIT into this struct.
12806         (MonoSymbolFile): Added `char *image_file' field.
12807         (MonoDebugGetMethodFunc): Removed.
12808         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
12809         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
12810         (mono_debug_find_method): New method.
12811
12812         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
12813         create a full symbol file.
12814         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
12815         and static symbol files.
12816         (mono_debug_find_method): The symbol file keeps an internal method hash,
12817         call this to get a MonoDebugMethodInfo from a MonoMethod.
12818
12819         * debug-symfile.[ch]: Removed.
12820
12821 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
12822
12823         * image.c (do_mono_image_open): Remove linker version check.
12824
12825 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
12826
12827         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
12828         wrappers for instance methods.
12829         
12830 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12831
12832         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
12833
12834 2002-08-28  Dick Porter  <dick@ximian.com>
12835
12836         * Makefile.am: Export HOST_CC for w32 builds
12837
12838 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
12839
12840         * file-io.c process.c: MonoString are null terminated, no
12841         need for mono_string_to_utf16() anymore.
12842
12843 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12844
12845         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
12846
12847 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
12848
12849         * icall.c, reflection.h: speedup System.MonoType.
12850
12851 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
12852
12853         * reflection.c: allow null as the value of a string argument in
12854         custom attributes constructors.
12855
12856 2002-08-27  Martin Baulig  <martin@gnome.org>
12857
12858         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
12859         `trampoline_address' field.
12860
12861 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
12862
12863         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
12864         check (fixes bug #29486) 
12865
12866 2002-08-27  Martin Baulig  <martin@gnome.org>
12867
12868         * debug-mono-symfile.c: Changed the file format in a way that allows us
12869         open it read-only and to use a specially malloced area for all the
12870         dynamic data.  We can now also generate a symbol file on-the-fly if we're
12871         debugging IL code and there is no MCS generated symbol file for it.
12872
12873 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
12874
12875         * object.c: added a define for a good string and array
12876         creation speedup (not enabled by default because we need to deal with
12877         the synch stuff).
12878
12879 2002-08-26  Martin Baulig  <martin@gnome.org>
12880
12881         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
12882         function to create a dynamic symbol file.  This is used by the
12883         debugger to create a symbol file for IL code on-the-fly.
12884
12885 2002-08-26  Martin Baulig  <martin@gnome.org>
12886
12887         * loader.c (mono_lookup_pinvoke_call): Include the error message
12888         from g_module_error() in the error message.
12889
12890 2002-08-24  Martin Baulig  <martin@gnome.org>
12891
12892         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
12893         function to update the symbol file.  The symbol file is mmap()ed
12894         writable, but private.  This allows us to install the symbol file
12895         together with the assembly.
12896
12897 2002-08-24  Martin Baulig  <martin@gnome.org>
12898
12899         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
12900         but they can read the new symbol file format which mcs is now creating.
12901
12902         * debug-symfile.c (mono_debug_find_source_location): Moved to
12903         debug-mono-symfile.c; this is now operating on the new symbol file.
12904
12905 2002-08-23  Martin Baulig  <martin@gnome.org>
12906
12907         * debug-helpers.c (mono_method_desc_from_method): New function to get
12908         a MonoMethodDesc from a MonoMethod.
12909
12910 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
12911
12912         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
12913         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
12914
12915 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
12916
12917         * string-icalls.[ch]: make helper methods static.
12918
12919 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12920
12921         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
12922         types to it and to SetValueInternal.
12923
12924         * object.c: Moved handle_enum label to its proper place. This was the
12925         f... bug! ;-)
12926
12927         This time i compiled mcs and gtk-sharp and they both work.
12928
12929 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12930
12931         * icall.c: reverted partially my previous patch until 
12932         object.c:set_value handles enums correcly.
12933
12934 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12935
12936         * icall.c:
12937         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
12938         (ves_icall_System_Environment_get_MachineName): removed warning when
12939         compiling under cygwin.
12940
12941 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
12942
12943         * object.c: fixed field_get_value() for reference types.
12944
12945 2002-08-22  Dick Porter  <dick@ximian.com>
12946
12947         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
12948         Don't free a buffer while it's still needed.  Patch from Jonathan
12949         Liger <Jonathan.liger@wanadoo.fr>
12950
12951 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
12952
12953         * icall.c (ves_icall_System_Environment_get_Platform): Add new
12954         internal call.
12955
12956 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
12957
12958         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
12959         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
12960
12961         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
12962         we call unmanaged code which throws exceptions.
12963
12964 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12965
12966         * appdomain.h: added per-domain entry_assembly.
12967         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
12968         arguments.
12969         * icall.c: Assembly::GetEntryAssembly icall.
12970         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
12971         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
12972
12973 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12974
12975         * appdomain.h, gc.c: added mono_domain_finalize ().
12976
12977 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12978
12979         * object.c:
12980         (mono_print_unhandled_exception): changed g_warning by g_printerr
12981         because g_log has a 1024 characters limit (yeah, i got a big stack
12982         trace). Don't print exception name, that should be in ToString 
12983         returned string.
12984
12985 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12986
12987         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
12988         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
12989
12990 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12991
12992         * object.c:
12993         (mono_print_unhandled_exception): after previous commit, i realized
12994         that MS calls ToString on the exception. I changed this function to
12995         do that. This way we get stack_trace for free.
12996
12997 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12998
12999         * object.c:
13000         (mono_print_unhandled_exception): invoke Message property instead of
13001         getting 'message' field from Exception. Don't allocate memory for
13002         'trace' and 'message' if not needed.
13003
13004 2002-08-18  Dick Porter  <dick@ximian.com>
13005
13006         * unicode.c: Fix asserts to match Encoder.cs checks
13007
13008 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13009
13010         * marshal.c: fix unaligned store issue and a few wrong
13011         opcode argument types.
13012
13013 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13014
13015         * icall.c: added GetUninitializedObjectInternal internal call.
13016
13017 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
13018
13019         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
13020         to the right domain.
13021
13022 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
13023
13024         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
13025
13026         * class.c (class_compute_field_layout): set blittable to false for Strings
13027
13028         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
13029
13030 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13031
13032         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
13033         first chunk of code to create types at runtime. Code to
13034         handle ReflectedType/DeclaringType. Make reflection handles
13035         domain specific.
13036
13037 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
13038
13039         * class.c: set correct name in arrays.
13040
13041 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
13042
13043         * appdomain.c (mono_domain_transfer_object): make it work with
13044         valuetypes. bug fixes.
13045
13046 2002-08-12  Dick Porter  <dick@ximian.com>
13047
13048         * object.h: Rename some parameters to avoid c++ keywords (Patch
13049         from Joseph Wenninger <kde@jowenn.at>)
13050
13051 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
13052
13053         * icall.c: added icall to implement Assembly.GetFile*.
13054
13055 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
13056
13057         * reflection.h, reflection.c: code to embed managed resources.
13058
13059 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
13060
13061         * class.c: move all the type size stuff into
13062         class_compute_field_layout().
13063
13064 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
13065
13066         * class.c: ensure enums have always the correct instance size.
13067         * unicode.c: remove wrong assert.
13068
13069 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
13070
13071         * assembly.c: fix mem corruption issue.
13072         * image.h, image.c: added mono_image_get_resource () to access
13073         managed resources.
13074         * icall.c: implemented Assembly.EntryPoint property and some
13075         Managed Resources related internalcalls.
13076
13077
13078 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
13079
13080         * image.c, image.h: impemented mono_image_get_entry_point ().
13081         * appdomain.c: use mono_image_get_entry_point.
13082
13083 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
13084
13085         * reflection.c: support the object type argument when loading
13086         custom attributes.
13087
13088 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
13089
13090         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
13091         String as return type.
13092
13093 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
13094
13095         * reflection.c: fix encoding of named args for custom attrs to match
13096         the ms implementation. Read them back when instantiating custom
13097         attributes.
13098
13099 2002-08-02  Radek Doulik  <rodo@ximian.com>
13100
13101         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
13102         by Dietmar as quick fix
13103         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
13104         16 as stack size, used on more places as quick fix before Dietmar
13105         will fix it properly
13106
13107 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
13108
13109         * object.h, object.c: added accessors for fields and properties.
13110
13111 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
13112
13113         * class.c, class.h: made mono_class_get_field_from_name ()
13114         loop on parent types.
13115         Added mono_class_get_property_from_name ().
13116
13117 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13118
13119         * class.c, class.h: move the code to setup the type vtable in its own
13120         function so that it can be reused also for types created at runtime.
13121         Eliminate the "class" identifier from the header file.
13122         * reflection.c: setup the vtable for enums so that we can create
13123         objects for use in SetConstant ().
13124
13125 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
13126
13127         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
13128         instead of the delegate itself as this pointer (bug #28383)
13129
13130 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
13131
13132         * marshal.c (mono_marshal_get_managed_wrapper): added return type
13133         conversions.
13134
13135 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13136
13137         * loader.c: don't set the pinvoke bit on icalls.
13138
13139 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
13140
13141         * debug-helpers.c (mono_method_full_name): only print a number to
13142         indicate wrapper type (so that the output is more readable in traces).
13143
13144 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
13145
13146         * class.c (mono_class_init): include method override patch from Paolo
13147
13148 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
13149
13150         * icall.c: fixed GetTypeCode().
13151
13152 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
13153
13154         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
13155         use real delegate invoke function to make it work with multicast
13156         delegates (fix bug# 28291).
13157
13158 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13159
13160         * object.c: load constant strings.
13161
13162 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13163
13164         * reflection.c: no magic numbers.
13165         * tabledefs.h: security action enum.
13166
13167 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13168
13169         * assembly.c: fix possible memory corruption.
13170
13171 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
13172
13173         * reflection.h, reflection.c: added support for linking resources.
13174         * verify.c: check we have an updated corlib.
13175
13176 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
13177
13178         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
13179         string arrays.
13180         (mono_marshal_string_array): null terminate unmanaged string arrays.
13181         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
13182
13183 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13184
13185         * icall.c: Type.GetType () can now return also types from the
13186         calling assembly.
13187
13188 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
13189
13190         * loader.h, loader.c: stack walking support.
13191         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
13192         GetCallingAssembly.
13193
13194 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
13195
13196         * marshal.c: added optimisations for blittable types 
13197
13198         * class.c (mono_array_class_get): do not set blittable attribute on arrays
13199         (mono_class_setup_mono_type): set blittable attribute for single
13200         and double.
13201
13202         * marshal.c (mono_string_utf8_to_builder): impl.
13203         (mono_string_builder_to_utf8): impl.
13204         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
13205
13206 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
13207
13208         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
13209         (mono_marshal_get_managed_wrapper): impl. byref types
13210
13211 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13212
13213         * icall.c:
13214         (search_method): don't display debug message. 
13215
13216 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
13217
13218         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
13219
13220 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
13221
13222         * appdomain.c: set the missing filename when throwing exception.
13223
13224 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
13225
13226         * metadata.c (mono_type_size): code cleanup
13227         (mono_type_stack_size): removed some test code
13228
13229 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
13230
13231         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
13232         mono_get_exception_file_not_found now.
13233
13234         * exception.c (mono_exception_from_name_two_strings): New version
13235         that will call a constructor with two string arguments. 
13236         (mono_get_exception_file_not_found): New helper routine, used to
13237         report file-not-found errors.
13238
13239 2002-07-20  Dick Porter  <dick@ximian.com>
13240
13241         * process.h:
13242         * process.c: Pass file handles to CreateProcess
13243         
13244         * icall.c:
13245         * file-io.h:
13246         * file-io.c: Implemented CreatePipe
13247
13248 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
13249
13250         * metadata.c (mono_get_param_info): set alignment for value types
13251
13252 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13253
13254         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
13255         Constify mono_domain_assembly_open().
13256         * loader.c: handle null namespace in icalls.
13257
13258 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
13259
13260         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
13261         (emit_str_to_ptr_conv): marshal object as structs
13262
13263         * metadata.c (mono_type_to_unmanaged): marshal object as structs
13264
13265         * marshal.c (mono_marshal_get_runtime_invoke): support value types
13266
13267 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
13268
13269         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
13270         (mono_marshal_get_native_wrapper): we an now return value types
13271
13272 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13273
13274         * verify.c: more checks implemented.
13275
13276 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
13277
13278         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
13279         (fix bug #27695)
13280         (mono_marshal_get_native_wrapper): allow byref arguments
13281         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
13282         impl. PtrToStringXXX methods
13283         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
13284         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
13285         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
13286         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
13287         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
13288
13289 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13290
13291         * reflection.c: fix buglet in parsing an assembly name.
13292
13293 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
13294
13295         * marshal.c (emit_ptr_to_str_conv): first impl.
13296
13297 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
13298
13299         * object.c, class.h: cache the vtable in the class as suggested by
13300         vargaz@freemail.hu (Zoltan Varga).
13301
13302 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13303
13304         * class.h, loader.c: added mono_field_from_token().
13305         * verify.c: first cut of type checking code.
13306
13307 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
13308
13309         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
13310
13311 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
13312
13313         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
13314         (fix bug #27782)
13315         (mono_marshal_get_remoting_invoke): impl.
13316         (mono_delegate_begin_invoke): impl.
13317         (mono_mb_emit_save_args): impl.
13318         (mono_delegate_end_invoke): impl.
13319         (mono_marshal_get_delegate_begin_invoke):
13320         (mono_marshal_get_delegate_end_invoke):
13321         (mono_marshal_get_delegate_invoke): generate a special name for
13322         those methods (including the signature) and associate them whith
13323         the delegate class. 
13324
13325 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
13326
13327         * reflection.[ch]: 
13328         (mono_reflection_type_from_name): now it has a MonoImage parameter
13329         which is used as the default image to search the type in. If the image
13330         is NULL or getting the type from it fails, it defaults to corlib.
13331
13332         * icall.c: changed 1 call to mono_reflection_type_from_name to match
13333         new parameter.
13334
13335 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
13336
13337         * reflection.c: update the parameter table index.
13338
13339 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
13340
13341         * domain.c: don't include the mark byte in the string hash.
13342
13343 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
13344
13345         * icall.cs: icall for Type.GetTypeCode ().
13346         * verify: a couple of fixes and disabled local initialization checks.
13347
13348 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
13349
13350         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
13351
13352         * debug-helpers.c (mono_method_full_name): print the type of the
13353         runtime wrapper
13354
13355         * metadata.c (mono_signature_hash): a hash function for signatures
13356         (mono_signature_hash): better hash algorithm
13357
13358         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
13359
13360         * debug-helpers.c (mono_method_full_name): this can now generate
13361         method names with signatures
13362
13363         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
13364         method dont have this pointers.
13365
13366 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
13367
13368         * reflection.c: fixup typebuilder tokens.
13369         * image.c: fix buglet.
13370         * marshal.h: remove whitespace.
13371         * metadata.h, metadata.c: reinstate code that was removed.
13372         * verify.c: handle catch directives and fix another couple of bugs.
13373
13374 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
13375
13376         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
13377         (mono_marshal_get_native_wrapper): make it comp. with the old code
13378         (mono_marshal_get_native_wrapper): support boolean
13379         (mono_marshal_get_managed_wrapper): support more types
13380
13381 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
13382
13383         * class.c (class_compute_field_layout): compute class->blittable attribute.
13384
13385 2002-07-09  Dick Porter  <dick@ximian.com>
13386
13387         * threads.c: Make the thread cleaning up cope with threads that
13388         call ExitThread()
13389
13390 2002-07-08  Radek Doulik  <rodo@ximian.com>
13391
13392         * reflection.c (method_encode_code): use non-translated values to
13393         compute finally_start, this fixes exception handling on ppc, yay!
13394
13395         * decimal.h (struct signscale): fix endianess
13396
13397 2002-07-07  Radek Doulik  <rodo@ximian.com>
13398
13399         * reflection.c: swap box_val and not val
13400
13401 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
13402
13403         * reflection.c, reflection.h: handle full assembly info in type name.
13404         Handle Type arguments when loading custom attributes.
13405         * icall.c: updated to use new mono_reflection_type_from_name () method.
13406
13407 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13408
13409         * loader.c:
13410         (method_from_memberref): also print assembly name when method not found.
13411
13412 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13413
13414         * icall.c:
13415         (ves_icall_TypeGetProperties): fixed bug #27473. 
13416
13417 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13418
13419         * reflection.c: display image name and token when cannot find the
13420         .ctor for an attribute.
13421
13422 2002-07-05  Martin Baulig  <martin@gnome.org>
13423
13424         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
13425
13426 2002-07-04  Dick Porter  <dick@ximian.com>
13427
13428         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
13429         compile on mingw.  This will cause mingw builds to not wait for
13430         subthreads to terminate after the main thread does.  I've lodged a
13431         bug with the mingw developers for them to wrap OpenThread().
13432
13433 2002-07-03  Dick Porter  <dick@ximian.com>
13434
13435         * threads.c: Store thread IDs instead of handles, because
13436         GetCurrentThread() returns a pseudohandle and therefore stores
13437         useless values.  mono_thread_cleanup() continues checking the
13438         array of threads until it is empty, to cope with subthreads
13439         spawning new threads after the main thread has finished.
13440
13441         * profiler.h:
13442         * profiler.c:
13443         * profiler-private.h: Pass the thread ID to thread profiler
13444         functions, instead of a handle
13445
13446 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13447
13448         * verify.c: fixes to make it more usable.
13449         * pedump.c: added --verify code to verify IL code in an assembly.
13450
13451 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13452
13453         * reflection.c: turn errors into warnings to allow compiling corlib.
13454
13455 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
13456
13457         * reflection.c: add special cases to compile corlib.
13458
13459 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
13460
13461         * reflection.c: handle properties with only a set method.
13462
13463 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13464
13465         * opcodes.h: add enum with opcodes in opval order.
13466
13467 2002-07-01  Dick Porter  <dick@ximian.com>
13468         
13469         * object.h:
13470         * object.c (mono_runtime_run_main): Removed unneeded argument
13471
13472 2002-06-28  Martin Baulig  <martin@gnome.org>
13473
13474         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
13475
13476 2002-06-27  Dick Porter  <dick@ximian.com>
13477
13478         * threads.c: Store the handle in both the parent thread and in the
13479         subthread, to minimise the time between starting a new thread and
13480         storing its ID.
13481
13482 2002-06-26  Dick Porter  <dick@ximian.com>
13483
13484         * appdomain.c (mono_runtime_cleanup): Close the socket library
13485         after all the threads have finished, not before
13486
13487 2002-06-26  Martin Baulig  <martin@gnome.org>
13488
13489         * debug-symfile.c (mono_debug_find_source_location): Added
13490         `guint32 *line_number' argument.  If it's not NULL, store the line number
13491         there and return the file name without the line number.
13492
13493 2002-06-25  Dick Porter  <dick@ximian.com>
13494
13495         * icall.c:
13496         * process.h:
13497         * process.c: Process forking and other support functions
13498
13499 2002-06-25  Dick Porter  <dick@ximian.com>
13500
13501         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
13502         things dont happen when the image is closed.
13503         (mono_image_lookup_resource): Walk the resource section looking
13504         for a particular entry
13505
13506         * cil-coff.h: PE resource section decoding
13507
13508 2002-06-25  Dick Porter  <dick@ximian.com>
13509         
13510         * assembly.h:
13511         * assembly.c: 
13512         (mono_assembly_foreach): Accessor functions to walk the list of
13513         loaded assemblies
13514         (mono_assembly_set_main):
13515         (mono_assembly_get_main): Process methods need to know which
13516         assembly is the "main" one
13517
13518         * object.c (mono_runtime_run_main): Record the main assembly
13519
13520         * debug-helpers.c: Fix typo
13521
13522 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
13523
13524         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
13525         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
13526
13527 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
13528
13529         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
13530
13531 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
13532
13533         * image.c (do_mono_image_open): Initialize reference count,
13534         otherwise we leak the MonoImage.
13535
13536 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
13537
13538         * reflection.c: small tweak to handle self-hosting.
13539
13540 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
13541
13542         * reflection.c: fix type name parse code.
13543
13544 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13545
13546         * reflection.c: break out of the loop.
13547         * image.c: special case corlib.
13548
13549 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13550
13551         * reflection.c: add all the custom attrs at the end to ensure the
13552         ctors have been properly initialized when the attributes are defined
13553         in the current assembly.
13554
13555 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
13556
13557         * reflection.c: handle correctly multiple-nested types.
13558
13559 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
13560
13561         * row-indexes.h: fix typos.
13562         * reflection.c: adjust for typos and fix method_def_or_ref
13563         encoding in MethodImpl table.
13564
13565 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13566
13567         * reflection.c: fix entry point patching (thanks Serge!).
13568
13569 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
13570
13571         * verify.c: add check for System.Exception
13572
13573 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
13574
13575         * image.c, class.c: minifix for code just c&p'ed.
13576         * reflection.c: warning fix.
13577         * object.h, loader.h, domain.c: load also StringBuilder.
13578
13579 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
13580
13581         * marshal.h, marshal.c: some support code to handle complex marshaling.
13582
13583 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13584
13585         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
13586         Better signatures with vtable error dump.
13587
13588 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
13589
13590         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
13591
13592 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
13593
13594         * icall.c (ves_icall_Type_GetField): impl.
13595
13596 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13597
13598         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
13599         to retrieve a marshal description blob for a field or param.
13600
13601 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
13602
13603         * reflection.h, reflection.c: change order of nested type emission
13604         to avoid table corruption. The NestedTypes table is sorted.
13605         * icall.c: change order of GetConstructor results to workaround mcs bug.
13606
13607 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13608
13609         * reflection.h, reflection.c: handle field and param marshal
13610         information.
13611
13612 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13613
13614         * icall.c, marshal.c marshal.h: more Marshal class implementation.
13615
13616 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
13617
13618         * reflection.c: fix call convention.
13619
13620 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
13621
13622         * reflection.h, reflection.c: mono_image_get_memberref_token()
13623         takes a type instead of a class, now. Added
13624         mono_image_get_array_token() to create tokens for the special
13625         multi-dim array methods.
13626
13627 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
13628
13629         * assembly.c: handle modules (no assembly table). Split
13630         loading references in its own function.
13631         * class.c: handle moduleref resolution scope.
13632         * image.c, image.h: cache module name in image.
13633
13634 2002-06-07  Martin Baulig  <martin@gnome.org>
13635
13636         * reflection.c (mono_image_get_type_info): Only add a class layout entry
13637         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
13638
13639 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
13640
13641         * icall.c: more signature fixes that used uint instead of int.
13642
13643 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13644
13645         * reflection.c: fixed signature of field refs.
13646
13647 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13648
13649         * class.c, reflection.c: handle typerefs of nested types
13650         (both on read and when writing files).
13651
13652 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
13653
13654         * icall.c: fix method signatures that tried to workaround the previous
13655         typo, d'oh!
13656
13657 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
13658
13659         * debug-helpers.c: fix typo.
13660
13661 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
13662
13663         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
13664         rewrote the PE/COFF writing code (our programs are understood by the
13665         ms runtime, now).
13666
13667 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
13668
13669         * gc.c, gc.h, icall.c: weakreference support.
13670
13671 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
13672
13673         * Makefile.am, mono-config.c: use $(sysconfdir).
13674
13675 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13676
13677         * icall.c: changed default precision of Double.ToString() to 15.
13678         Fixed memory leak. Unified with Single.ToString.
13679
13680 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
13681
13682         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
13683
13684 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
13685
13686         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
13687         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
13688         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
13689         and myself.
13690
13691 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13692
13693         * debug-symfile.c, sysmath.c: yet more compilation fixes.
13694
13695 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13696
13697         * reflection.c, socket-io.c: more compilation fixes.
13698
13699 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13700
13701         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
13702         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
13703         unicode.c: warning and compiler compatibility fixes.
13704
13705 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13706
13707         * class.h, metadata.c: fixed warnings/compilation errors.
13708
13709 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
13710
13711         * Makefile.am, mono-config.c, mono-config.h: configuration file
13712         support routines.
13713         * loader.c, loader.h: make Dll mapping configurable at runtime in the
13714         config file. Export methods to insert and lookup mappings.
13715
13716 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
13717
13718         * reflection.c: handle types and boxed objects in custom attr
13719         constructors.
13720
13721 2002-05-30  Martin Baulig  <martin@gnome.org>
13722
13723         * debug-symfile.c
13724         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
13725
13726 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
13727
13728         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
13729         to lookup the implmap row for a P/Invoke method.
13730         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
13731         P/Invoke method from the runtime on an as needed basis.
13732
13733 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
13734
13735         * metadata.c (mono_metadata_parse_signature): impl.
13736
13737 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13738
13739         * class.c: handle .pack directive.
13740
13741 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
13742
13743         * object.c: initialize static fields with RVA data.
13744
13745 2002-05-25  Martin Baulig  <martin@gnome.org>
13746
13747         * debug-symfile.c
13748         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
13749
13750 2002-05-24  Martin Baulig  <martin@gnome.org>
13751
13752         * debug-symfile.c
13753         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
13754         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
13755         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
13756
13757 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
13758
13759         * object.c: special case string ctros in invoke.
13760         * gc.c: silly whitespace changes.
13761
13762 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
13763
13764         * threadpool.[ch]: impl. a threadpool that can
13765         be used by mint and mono.
13766
13767 2002-05-22  Martin Baulig  <martin@gnome.org>
13768
13769         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
13770         The first argument is now a `MonoReflectionModuleBuilder *', the return
13771         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
13772         `methods' field to get the method builder.  The `token' argument is the
13773         unfixed token.
13774
13775         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
13776         invalid characters instead of g_assert_not_reached()ing.  This seems
13777         to be the behaviour of mscorlib.
13778
13779 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
13780
13781         * object.c (mono_runtime_invoke_array): applied patch from Rachel
13782         Hestilow to fix bug #25104
13783
13784 2002-05-21  Martin Baulig  <martin@gnome.org>
13785
13786         * debug-symfile.c (mono_debug_find_source_location): New function.
13787         Looks up an IL offset in the line number table and returns the source
13788         location as a string.
13789
13790 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13791
13792         * icall.c:
13793         (mono_double_ToStringImpl): changed %f by %g until we have something
13794         better.
13795
13796 2002-05-21  Nick Drochak  <ndrochak@gol.com>
13797
13798         * icall.c : Use different name for Math.Pow's icall.  Needed to check
13799         parameters first in C#.
13800
13801 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13802
13803         * icall.c, reflection.h: added icall to get info about an event.
13804
13805 2002-05-20  Radek Doulik  <rodo@ximian.com>
13806
13807         * object.c (mono_value_box): don't use memcpy for boxing on BIG
13808         endian
13809         (mono_value_box): don't use memcpy for small sizes on
13810         architectures with unaligned access
13811
13812 2002-05-20  Martin Baulig  <martin@gnome.org>
13813
13814         * reflection.c (mono_reflection_setup_internal_class): Don't crash
13815         if `tb->parent == NULL'.
13816         (mono_reflection_create_internal_class): New function.  This is
13817         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
13818         for enum types.
13819
13820         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
13821         New interncall.
13822
13823 2002-05-19  Martin Baulig  <martin@gnome.org>
13824
13825         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
13826         argument to get the length, don't default to the array length.
13827
13828 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
13829
13830         * assembly.c (mono_assembly_setrootdir): New function used to
13831         override the MONO_ASSEMBLIES directory.
13832
13833 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13834
13835         * icall.c: ValueType_GetHashCode() initialize local var.
13836
13837 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13838
13839         * reflection.c: sort custom attributes table.
13840
13841 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
13842
13843         * reflection.c: support named args in custom attributes (write support).
13844
13845 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
13846
13847         * reflection.c: fix finally position calculation.
13848
13849 2002-05-15  Radek Doulik  <rodo@ximian.com>
13850
13851         * reflection.c: fixed endianess at many places
13852
13853         * icall.c (ves_icall_InitializeArray): comment out debug msg
13854
13855 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
13856
13857         * object.c (mono_unhandled_exception): new function to handle
13858         unhandled exceptions.
13859         (mono_unhandled_exception): call the UnhandledException event.
13860         (mono_runtime_delegate_invoke): impl.
13861
13862 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
13863
13864         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
13865         returns the RVA, not the direct pointer to the data. Handle the case
13866         when the class size is fixed.
13867
13868 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
13869
13870         * reflection.c: fix some endianess issues.
13871
13872 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
13873
13874         * object.c (mono_runtime_invoke): is now able to catch exceptions.
13875
13876         * threads.c (mono_thread_init): added a callback which is invoked
13877         at thread start.
13878
13879 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
13880         
13881         * icall.c: make GetHashCode return non-negative values.
13882
13883 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
13884
13885         * object.c, icall.c, gc.c: revert to address-based hashcode.
13886
13887 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
13888
13889         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
13890
13891 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13892
13893         * icall.c, class.c: special case <Module>.
13894
13895 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
13896
13897         * icall.c: fix bug in GetNow().
13898
13899 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
13900
13901         * object.c (mono_runtime_class_init): make sure that we call all
13902         static class constructors.
13903
13904 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
13905
13906         * reflection.c: sort methodsemantics table.
13907
13908 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
13909
13910         * reflection.h, reflection.c: honour init locals setting.
13911
13912 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
13913
13914         * icall.c: copied Double ToStringImpl for Single ToStringImpl
13915
13916 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
13917
13918         * reflection.c: support ContructorBuilders in attribute blob creation.
13919
13920 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13921
13922         * reflection.c: some changes to build a binary that can be run
13923         directly in windows.
13924
13925 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
13926
13927         * loader.c: print a big message when an icall can't be found.
13928
13929 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13930
13931         * string-icalls.c: fix bug 24248.
13932
13933 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
13934
13935         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
13936         icall.c, reflection.h: separate assembly loading by pathname and by
13937         assembly name. Use the MONO_PATH env var to search for assemblies.
13938
13939 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13940
13941         * assembly.c, image.h: add some support for assemblies
13942         with multiple modules.
13943         * class.c, class.h: export mono_class_from_typeref().
13944         * loader.c: remove duplicated code and use mono_class_from_typeref(),
13945         instead.
13946
13947 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13948
13949         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
13950         documentation says (the ECMA one is correct).
13951
13952 2002-05-02  Dick Porter  <dick@ximian.com>
13953
13954         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
13955         Don't name the synchronisation mutex.
13956
13957 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
13958
13959         * rand.c
13960         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
13961         Make the prototypes match.
13962         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
13963         Same.
13964
13965         * icall.c
13966         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
13967         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
13968         all systems have tm.tm_zone, so use strftime() with %Z to print
13969         the timezone abreviation into a temp string.
13970
13971         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
13972         rather than mono_array_addr() on a MonoString on Big Endian
13973         machines.
13974
13975 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
13976
13977         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
13978         fix bug 24041
13979
13980 2002-04-30  Dick Porter  <dick@ximian.com>
13981
13982         * socket-io.c: Cope with SOCKET being an integer rather than a
13983         pointer now.
13984
13985         * threads.c: Added Thread_free_internal, to deal with thread
13986         handle cleanup.  Moved calls to handle_store() and handle_remove()
13987         to start_wrapper(), so each can only be called once.  Allocate
13988         synchronisation blocks with GC_malloc(), and use GC finalisation
13989         to close the handles.
13990
13991         * icall.c: added System.Threading.Thread::Thread_free_internal
13992
13993 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13994
13995         * icall.c: support Environment.Exit, CommandLineArgs().
13996
13997 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13998
13999         * object.c, object.h: added mono_runtime_run_main () and
14000         mono_runtime_get_main_args () for use in System.Environment.
14001
14002 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
14003
14004         * gc.c: fix thinko, enable actual finalization since the jit is now
14005         fixed.
14006
14007 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
14008
14009         * gc.c, object.c: take into account that an object may be offset wrt the address
14010         returned by GC_malloc().
14011
14012 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
14013
14014         * image.c: handle files without entries in the assembly table (modules).
14015
14016 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
14017
14018         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
14019         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
14020         allowed to be null when it's System.Object class setup.
14021
14022 2002-04-27  Martin Baulig  <martin@gnome.org>
14023
14024         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
14025         if `tb->parent == NULL' rather than crashing.
14026
14027 2002-04-28  Nick Drochak  <ndrochak@gol.com>
14028
14029         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
14030         calling acos() where asin() should have been called.
14031
14032 2002-04-26  Martin Baulig  <martin@gnome.org>
14033
14034         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
14035         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
14036         there's a subdirectory called `System', but we don't want to read that
14037         subdirectory as an assembly.
14038
14039 2002-04-25  Martin Baulig  <martin@gnome.org>
14040
14041         * debug-symfile.c: Reflect latest MonoString changes.
14042
14043 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
14044
14045         * rand.c, rand.h: instance method icalls need to have an explicit
14046         this pointer as first argument in the C implementation.
14047
14048 2002-04-25  Nick Drochak <ndrochak@gol.com>
14049
14050         * icall.c: Fix typo in map for GetNonZeroBytes
14051
14052 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
14053
14054         * string-icalls.c : String does now passes unit tests without any 
14055         errors, the following changes has been made:
14056         
14057         Implemented replace methods.
14058         Renaming of methods to (try) follow the standard.
14059         Fixed compare ordinal
14060         Made all memory allocated directly to function instead of via icall function.
14061         Small performance fix in is_in_array function
14062                         
14063  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
14064
14065         c (mono_string_Internal_ctor_charp_int_int):
14066         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
14067         sindex < 0, throw ArgumentOutOfRangeException instead of
14068         ArgumentNullException.
14069
14070         Added new check for length == 0, however
14071         I need to make it return String.Empty from the C code.
14072         
14073         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
14074         that calculate the length for us here.
14075         
14076         (mono_string_Internal_ctor_sbytep_int_int): Replaced
14077         mono_string_new_utf16 with mono_string_new, since value is utf8.
14078
14079 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
14080
14081         * object.c: register the object for finalization if needed.
14082         Allocate one more char in the string for the terminating 0 char.
14083
14084 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
14085
14086         * class.c, class.h, image.c: check if a type implemenst a destructor.
14087         Use the proper key for array class lookups.
14088         * icall.c: register the icalls in the System.GC class.
14089         * gc.c, gc.h: GC-related functions and icalls.
14090
14091 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14092
14093         * icall.c:
14094         * socket-io.c:
14095         * unicode.c: free some strings gotten from mono_string_to_utf8 and
14096         changed a couple of free () by g_free ().
14097
14098         * decimal.c: one-liner in the comments for decimal2string ().
14099
14100 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
14101
14102         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
14103
14104 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
14105
14106         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
14107         * object.c (mono_runtime_invoke_array) : handle null in params
14108
14109 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
14110
14111         * string-icalls.c: fixed bug in split (one off bug)
14112
14113 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
14114
14115         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
14116         * icalls.c: added String::Equals as internal method
14117
14118 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
14119
14120         * threads.c: fixed bug in the double interlocked functions
14121
14122 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
14123
14124         * threads.c: implemented all of the new interlocked icalls.
14125         * string-icalls.c: fix a bug in insert.
14126         * icalls.c: added the icalls for interlocked, removed old string functions.
14127         
14128 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
14129
14130         * loader.c: fix off-by-one error when reading argument names.
14131
14132 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
14133
14134         * profiler.c: win32 counter implementation (untested).
14135         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
14136         (the latter needs testing and more complete impl. from win32 folks).
14137
14138 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
14139
14140         * object.c: mono_array_new_full workaround mono_array_class_get
14141         problem.
14142
14143 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
14144
14145         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
14146         * object.h (mono_string_chars): Changed casting type.
14147
14148 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
14149
14150         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
14151                            method signatures to use gunichar2 instead of gint16.
14152
14153 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
14154
14155         * object.h, object.c: domain-specific versions of mono_object_new and
14156         mono_array_new.
14157
14158 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
14159
14160         * object.c: changed String layout
14161
14162         * string-icalls.c (mono_string_Internal_ctor_chara): added
14163         internal string constructors.
14164
14165 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
14166
14167         * threads.c: pass 'this' to the thread start routine.
14168
14169 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14170
14171         * string-icalls.c: fix IndexOf and LastIndexOf. Now
14172         InternalCompareStr don't call twice mono_string_cmp_char for the last
14173         character. Improved performance in mono_string_cmp_char.
14174
14175 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
14176
14177         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
14178         code into its own library: libmonoruntime.
14179
14180 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
14181
14182         * object.h, object.c: changed array format so that szarrays do not
14183         require a bounds structure.
14184         * icall.c, appdomain.c: support for new szarray format.
14185
14186 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
14187
14188         * metadata.c: compare also the retuns type when comparing signatures:
14189         we didn't do this as an optimization since really overloaded methods
14190         must differ also in the arguments, but this doesn't work with
14191         low-level IL code (or when using explicit conversion operators: see
14192         bug#23498 for an example).
14193
14194 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
14195
14196         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
14197
14198 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
14199
14200         * icall.c: make MonoType::GetElementType its own icall.
14201
14202 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
14203
14204         * icall.c: remove MonoMethod_get_Name().
14205         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
14206         object.
14207
14208 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
14209
14210         * string-icalls.c: optimized a few methods.
14211
14212 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
14213
14214         * icall.c: added all new string internal calls
14215         * string-icalls.c: added, new string internal call implementation.
14216         * object.c: added mono_string_new_size for allocating a string a size
14217
14218 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
14219
14220         * object.c (mono_object_isinst): use the same code as in the
14221         optimized x86 version.
14222
14223 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
14224
14225         * profiler.c: TSC-based timer code (faster and more accurate).
14226         Not hooked up in configure, yet (set USE_X86TSC to 1).
14227
14228 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
14229
14230         * profiler.c, profiler.h: track time spent compiling methods.
14231         * threads.c: track thread creation/destruction.
14232
14233 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
14234
14235         * profiler.c, profiler.h, profiler-private.h: profiling interface
14236         and sample implementation. Moved here so that it can be used also by
14237         the jit.
14238
14239 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
14240
14241         * reflection.c, reflection.h: keep types and other handles separate in
14242         the hash tables for referred tokens. Add guid for modules.
14243
14244 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
14245
14246         * assembly.c: fix bugs found with valgrind.
14247         * metadata.h, metadata.c: added mono_metadata_guid_heap().
14248
14249 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
14250
14251         * threads: added icall support for getting current domain for
14252                    the thread.
14253  
14254 2002-04-13  Martin Baulig  <martin@gnome.org>
14255
14256         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
14257         (MonoDebugVarInfo): Added `index' field for register based addresses.
14258         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
14259         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
14260         `MonoDebugVarInfo *params' and `guint32 this_offset' with
14261         `MonoDebugVarInfo *this_var'.
14262
14263         * debug-symfile.c (relocate_variable): New static function to write
14264         a location description for a local variable or method parameter.
14265
14266 2002-04-12  Martin Baulig  <martin@gnome.org>
14267
14268         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
14269         stack offset and begin/end scope address of a local variable.
14270         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
14271         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
14272         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
14273
14274         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
14275         Added new relocation types for start/end scope of a local variable.
14276
14277 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
14278
14279         * object.h: add mono_object_domain() macro.
14280         * reflection.c: handle typespecs.
14281         * icall.c: MonoMethod::get_Name() implementation.
14282
14283 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
14284
14285         * icall.c: String::GetHashCode() icall implementation.
14286
14287 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
14288
14289         * icall.c: String::IndexOfAny icall.
14290         * object.c, object.h: make array->max_length more useful.
14291         Intrduced mono_object_class() and mono_string_length() macros.
14292
14293 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14294
14295         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
14296         instead of g_unichar_isdigit.
14297
14298 2002-04-11  Nick Drochak  <ndrochak@gol.com>
14299
14300         * icall.c: Implement a simple Double.ToString().
14301
14302 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
14303
14304         * appdomain.h: only io-layer.h is supposed to be included.
14305         * icall.c: explicitly import environ. Fix warning.
14306
14307 2002-04-10  Nick Drochak  <ndrochak@gol.com>
14308
14309         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
14310                 return true even if it's not Daylight Savings time.
14311                 Only return false for the case where the function isn't
14312                 implemented for a plaform (read Windows).
14313
14314 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
14315
14316         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
14317         data with a mutex.
14318
14319 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
14320
14321         * mempool.c (mono_mempool_alloc): only use g_malloc when
14322         absolutely necessary.
14323
14324 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
14325
14326         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
14327
14328         * class.c (mono_class_vtable): use domain mempool to allocate vtable
14329         (mono_class_proxy_vtable): use domain mempool
14330
14331 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
14332
14333         * appdomain.h, appdomain.c: split initialization that requires the
14334         execution engine support into mono_runtime_init().
14335
14336 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
14337
14338         * class.c (mono_class_init): don't include vtable inside MonoClass
14339         to save some memory, gather some statistics.
14340         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
14341
14342 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
14343
14344         * icall.c: internalcall implementation for ValueType.Equals().
14345
14346 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
14347
14348         * object.c (mono_message_init): moved 
14349         (mono_runtime_exec_main): new arch. independent impl.
14350         (mono_runtime_invoke_array): new method - like
14351         mono_runtime_invoke, but you can pass an array of objects.
14352         (mono_remoting_invoke): new arch. independent impl.
14353         (mono_message_invoke): new arch. independent impl.
14354         (mono_runtime_class_init): new arch. independent impl.
14355         (mono_runtime_object_init): new arch. independent impl.
14356
14357 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
14358
14359         * metadata.c, object.c, reflection.c: documented the exported
14360         functions.
14361
14362 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
14363
14364         * icall.c: simpler code to pass the assembly builder data to corlib.
14365         Implement GetNestedTypes() internalcall.
14366
14367 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
14368
14369         * class.c: warn if a type can't be loaded.
14370
14371 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
14372
14373         * image.h: typedef MonoImageOpenStatus
14374         * types.h: removed unused file
14375         
14376 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
14377
14378         * icall.c: Enum_ToObject accepts enum value arguments.
14379
14380 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
14381
14382         * class.c: move initialization of properties, events and nested
14383         classes, so that they happen for interfaces, too.
14384
14385 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
14386
14387         * icall.c: cleanup some ugly casts in Array_SetValue*.
14388
14389 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
14390
14391         * icall.c: the values array fro enums is of the correct type, now.
14392         Implement (correctly) getFullName instead of assQualifiedName for
14393         MonoType.
14394         * reflection.h, reflection.c: added mono_type_get_name ().
14395
14396 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
14397
14398         * assembly.c, image.h: for each MonoImage, record from wich assembly
14399         it was loaded.
14400         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
14401         Make Type.Assembly work.
14402
14403 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
14404
14405         * debug-symfile.h: use char* instead of gpointer to avoid
14406         unnecessary casts.
14407
14408         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
14409
14410         * icall.c (ves_icall_InternalExecute): impl. FielSetter
14411         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
14412
14413 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
14414
14415         * icall.c (mono_message_init): impl. (code cleanup)
14416         (ves_icall_InternalExecute): impl. FieldGetter
14417
14418         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
14419         defined we call all (non-static)methods through the vtable. 
14420
14421 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
14422
14423         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
14424         finalizer even though the memory is still referenced (and the chunk of
14425         memory is not freed).
14426
14427 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
14428
14429         * assembly.c: fix brokeness.
14430
14431 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
14432
14433         * class.c: kill some warnings. Check explicit interface method
14434         implementation also without considering the namespace.
14435         Load also literal strings in static class data.
14436
14437 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
14438
14439         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
14440         (default_assembly_name_resolver): Make the resolver take the
14441         "base" directory where the assembly was originally defined, so we
14442         can load DLLs that are in the same directory as the assembly that
14443         is being referenced.
14444
14445 2002-03-28  Dick Porter  <dick@ximian.com>
14446
14447         * file-io.h: 
14448         * file-io.c:
14449         * socket-io.c: 
14450         * unicode.h: 
14451         * unicode.c: Warning cleanups
14452
14453 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
14454
14455         * object.h, reflection.h: use the correct type instead of MonoObject.
14456
14457 2002-03-28  Martin Baulig  <martin@gnome.org>
14458
14459         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
14460         (mono_debug_update_symbol_file): Initialize classes if necessary.
14461
14462 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
14463
14464         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
14465         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
14466
14467 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
14468
14469         * assembly.h: fix function prototype.
14470         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
14471         * mono-endian.h: use const cast.
14472
14473 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
14474
14475         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
14476
14477 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
14478
14479         * loader.c: don't assert when a typeref can't be loaded, give
14480         a chance to the runtime to trow an exception instead.
14481         * loader.h: fix warning.
14482
14483 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
14484
14485         * class.c (mono_class_proxy_vtable): added proxy support
14486
14487 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
14488
14489         * icall.c: removed last of PAL calls, added System.Environment
14490         * file-io.h, file-io.c: MonoIO implementation
14491         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
14492
14493 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
14494
14495         * appdomain.c: do not use the byte marker in ldstr table lookup.
14496         * debug-helpers.c: allow two ':' to separate class and method name.
14497         * object.c: allocate arrays bounds with the GC, too.
14498         * verify: add a few more checks.
14499
14500 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
14501
14502         * reflection.c: output also literal strings. Allocate parameter data
14503         with GC_malloc() (thanks, Martin, for catching this!).
14504
14505 2002-03-26  Martin Baulig  <martin@gnome.org>
14506
14507         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
14508         include the `this' offset in the `param_offsets'.
14509
14510 2002-03-25  Martin Baulig  <martin@gnome.org>
14511
14512         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
14513         mono_debug_get_class() function to get the classes. Added new
14514         relocation types for arrays and strings.
14515         (mono_debug_get_class): New static function to search in all
14516         referenced assemblies for a metadata token.
14517
14518         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
14519
14520 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
14521
14522         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
14523         hold gc-allocated objects. Make the string heap a stream like the
14524         others. Removed duplicated code when writing stream info.
14525         Added asserts to catch possible buffer overflows. Set the sorted map
14526         for tables that need sorting. Added some documentation.
14527
14528 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
14529
14530         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
14531         for interned strings and vtables.
14532
14533 2002-03-24  Martin Baulig  <martin@gnome.org>
14534
14535         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
14536         it in the array since it was created with g_slist_prepend().
14537
14538 2002-03-24  Martin Baulig  <martin@gnome.org>
14539
14540         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
14541         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
14542         (mono_debug_method_from_token): Renamed to
14543         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
14544         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
14545
14546         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
14547         relocation types.
14548
14549         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
14550
14551 2002-03-24  Martin Baulig  <martin@gnome.org>
14552
14553         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
14554         (mono_debug_method_from_token): New func.
14555
14556         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
14557         New interncall, calls mono_debug_local_type_from_signature().
14558         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
14559         calls mono_debug_method_from_token().
14560
14561 2002-03-23  Martin Baulig  <martin@gnome.org>
14562
14563         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
14564         specifies the number of bytes to be converted, not the array size.
14565         Return the number of chars, not the number of bytes.
14566         (ves_icall_iconv_get_chars): The `byteCount' argument
14567         specifies the number of bytes to be converted, not the array size.
14568
14569 2002-03-23  Martin Baulig  <martin@gnome.org>
14570
14571         * reflection.h (MonoReflectionSigHelper): New type.
14572
14573         * reflection.c (mono_reflection_sighelper_get_signature_local),
14574         (mono_reflection_sighelper_get_signature_local): New functions.
14575
14576         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
14577         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
14578         interncalls.
14579
14580 2002-03-23  Martin Baulig  <martin@gnome.org>
14581
14582         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
14583         is_writeable is set.
14584         (mono_raw_buffer_update): New function to write the modified map
14585         back to disk.
14586
14587         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
14588
14589         * debug-symfile.c (mono_debug_update_symbol_file): Call
14590         mono_raw_buffer_update() when done writing.
14591
14592 2002-03-23  Martin Baulig  <martin@gnome.org>
14593
14594         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
14595
14596         * debug-symfile.c: Added support for arguments and local variables.
14597
14598 2002-03-23  Dick Porter  <dick@ximian.com>
14599
14600         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
14601         protected by ifdefs, hence breaking the w32 build.
14602
14603 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14604
14605         * object.c: implement is_interned() the right way.
14606
14607 2002-03-21  Martin Baulig  <martin@gnome.org>
14608
14609         * debug-symfile.[ch]: New files to handle debugging information
14610         files. There's also support to dynamically update these symbol
14611         files to include machine dependent information.
14612
14613 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
14614
14615         * threads.c (mono_thread_create): new function to create thread
14616         from C
14617
14618 2002-03-20  Martin Baulig  <martin@gnome.org>
14619
14620         * icall.c (ves_icall_InternalInvoke): Create a new object if the
14621         method is a constructor.
14622         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
14623         points to ves_icall_InternalInvoke().
14624
14625 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
14626
14627         * file-io.c: Flush shouldn't throw exceptions.
14628
14629 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
14630
14631         * file-io.c: FileStream flush support; FileSetLength now
14632         restores file pointer.
14633
14634 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
14635
14636         * class.c: set image for pointer classes.
14637
14638 2002/03/19  Nick Drochak <ndrochak@gol.com>
14639
14640         * sysmath.c: Forgot one.
14641
14642 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
14643
14644         * sysmath.c: Avoid redefining existing names.
14645
14646 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
14647
14648         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
14649         handled by runtime as icall rather than dllimport from libm.so
14650         * file-io.c, file-io.h: fixed handle argument type.
14651
14652 2002-03-18  Dick Porter  <dick@ximian.com>
14653
14654         * reflection.c (mono_image_get_type_info): rename interface to
14655         iface, because of "#define interface struct" on windows.
14656
14657 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
14658
14659         * class.c, class.h: rename and export mono_ptr_class_get().
14660         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
14661         * reflection.c, reflection.h, icall.c: better/saner type name
14662         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
14663         method signatures.
14664
14665 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
14666
14667         * class.c (mono_class_init): removed hardcoded GHC_SLOT
14668
14669         * icall.c (ves_icall_InternalInvoke): impl.
14670
14671 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
14672
14673         * reflection.c: output the interface map table, too.
14674
14675 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
14676
14677         * class.c (class_compute_field_layout): separate computation of 
14678         static field layout
14679
14680 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
14681
14682         * icall.c: added System.Buffer support.
14683         * file-io.c: moved file icalls from PAL to FileStream.
14684
14685 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
14686
14687         * icall.c (ves_icall_System_Object_GetHashCode): impl.
14688
14689 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
14690
14691         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
14692
14693 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14694
14695         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
14696
14697 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
14698
14699         * debug-helpers.{c,h}: moved here from monograph some useful functions
14700         to locate a method by name/signature in a class or image. Included
14701         also a small and flexible IL disassembler.
14702
14703 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14704
14705         * reflection.c: fixup tokens in methods with small header size, too.
14706
14707 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
14708
14709         * object.c (mono_string_to_utf8): remove assert(!error), instead
14710         print a warning. 
14711
14712 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
14713
14714         * icall.c: update to the new mono_Array_class_get interface.
14715
14716 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
14717
14718         * appdomain.c, object.c: Boehm-GC enable.
14719         * icall.c: make get_data_chunk() support split data requests.
14720         Ensure a class is initialized in more cases. Return only the first
14721         property found in GetProperties() or the compiler gets confused. 
14722         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
14723         * reflection.h, reflection.c: add fixup mechanism for field and method
14724         tokens. Initialize assembly->typeref in a single place. Output
14725         properties after events. Support custom attributes for events, too.
14726         Typo fix for paramter custom attrs.
14727
14728 2002-03-07  Martin Baulig  <martin@gnome.org>
14729
14730         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
14731
14732 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
14733
14734         * class.c (mono_array_class_get): fix. for multi. dim. arrays
14735
14736 2002-03-06  Martin Baulig  <martin@gnome.org>
14737
14738         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
14739         non-zero lower bounds. See testcases #F10-#F13.
14740
14741 2002-03-05  Martin Baulig  <martin@gnome.org>
14742
14743         * exception.c (mono_get_exception_argument_out_of_range): New exception.
14744
14745         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
14746         ves_icall_System_Array_GetValue(), only calculate the absolute array position
14747         here.
14748         (ves_icall_System_Array_SetValue): Likewise.
14749         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
14750         as argument and does the actual work. This function is used when copying a
14751         multi-dimensional array.
14752         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
14753         now do all the widening conversions of value types.
14754         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
14755
14756 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14757
14758         * class.c: remove some magic numbers and use the smbolic names,
14759         instead. Added init_events() to load event info at class init time.
14760         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
14761         and mono_metadata_methods_from_event().
14762         * reflection.h, reflection.c: added support for writing out the evnets
14763         related information.
14764
14765 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
14766
14767         * reflection.h, icall.c: use a different method (GetInterfaces)
14768         to gather interface info and add isbyref, isprimitive and
14769         ispointer to the ves_icall_get_type_info() return value.
14770
14771 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
14772
14773         * class.h: stared adding support for events.
14774         * icall.c: split find_members implementation. Added debug icall to get
14775         the address of an object.
14776         * reflection.c: handle TypeBuilders in mono_type_get_object().
14777
14778 2002-03-01  Martin Baulig  <martin@gnome.org>
14779
14780         * icall.c (ves_icall_System_Array_GetLength): This must throw an
14781         ArgumentOutOfRangeException(), not an ArgumentException().
14782         (ves_icall_System_Array_GetLowerBound): Likewise.
14783         (ves_icall_System_Array_GetValue): Improved argument checking.
14784         (ves_icall_System_Array_SetValue): Improved argument checking.
14785
14786 2002-03-01  Martin Baulig  <martin@gnome.org>
14787
14788         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
14789         called with invalid arguments rather than just dying with g_assert().
14790         (ves_icall_System_Array_SetValue): Likewise.
14791         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
14792         raise a NotImplementedException instead.
14793         (ves_icall_System_Array_GetLength): Added argument checking.
14794         (ves_icall_System_Array_GetLowerBound): Added argument checking.
14795
14796 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
14797
14798         * object.h (mono_assert): new macros mono_assert and
14799         mono_assert_not_reached
14800
14801 2002-02-28  Martin Baulig  <martin@gnome.org>
14802
14803         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
14804         and "System::String::IsInterned" to "System::String::_IsInterned".
14805
14806 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
14807
14808         * icall.c: remove hacks for typebuilder. Added icall to create a
14809         modified type from a tybebuilder.
14810         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
14811         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
14812         to create a backing MonoClass for a TypeBuilder.
14813
14814 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14815
14816         * class.c, class.h: more refactoring of class init.
14817         Export mono_class_setup_mono_type() and mono_class_setup_parent().
14818
14819 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
14820
14821         * marshal.c, marshal.h: start of marshaling interface.
14822
14823 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
14824
14825         * icall.c: fix order in assembly qualified name icall.
14826
14827 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
14828
14829         * class.c: do not free str, since we store it in the hash table.
14830         * reflection.h: add label field to MonoILExceptionInfo.
14831         * reflection.c: handle references to more than one assembly. Handle
14832         case when there isn't a module created in the assembly.
14833
14834 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
14835
14836         * class.c: Fix typo. Start refactoring of class init code.
14837
14838 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
14839
14840         * appdomain.c: exit with 1 on error.
14841         * class.c: we already have the name in MonoClassField.
14842         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
14843         MonoStreamHeader instead of an offset of image->raw_metadata.
14844
14845 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
14846
14847         * appdomain.c (mono_init): Be even more descriptive about the error.
14848
14849 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
14850
14851         * appdomain.c: give the user an informative message when corlib can't
14852         be loaded.
14853
14854 2002-02-26  Martin Baulig  <martin@gnome.org>
14855
14856         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14857         New icall to get the time zone data.
14858
14859 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14860
14861         * reflection.c: set virtual and raw size of section correctly.
14862         * threads.c: transfer domain information to newly created threads.
14863
14864 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
14865
14866         * class.c: when instancing a class in a domain, load the default
14867         vaules for static fields from the constant table. Fix System.Enum to
14868         not be an enum.
14869         * icall.c: implement Object::GetType() internalcall. Implemented
14870         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
14871         Fixed checking of binding flags in find_members().
14872         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
14873         * reflection.c: handle enumerations when writing to the constant
14874         table. Use a different object cache for types.
14875
14876
14877 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
14878
14879         * object.c (mono_object_isinst): fix for arrays
14880
14881         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
14882
14883 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
14884
14885         * object.c: don't use mprotect ()  and fix intern pool hash table
14886         lookup for big endian systems.
14887
14888 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14889
14890         * icall.c: change type_is_subtype_of () signature.
14891
14892 2002-02-21  Mark Crichton  <crichton@gimp.org>
14893
14894         * rand.c, rand.h: Added random number generator for
14895         System.Security.Cryptography classes.
14896
14897         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
14898
14899         * icall.c: Added System.Security.Cryptography calls.
14900
14901 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
14902
14903         * class.c, icall.c, metadata.c: better support for pointer types.
14904         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
14905         * reflection.c: Add support for getting custom attrs for properties
14906         and simplify some code.
14907
14908 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14909
14910         * icall.c: change getToken () and add custom attribute GetBlob()helper
14911         method.
14912         * reflection.h: add custom attrs array to the reflection builder structures.
14913         * reflection.c: encode and emit custom attributes for all the relevant
14914         reflection objects. Cache fieldref and methodref tokens. Change
14915         mono_image_create_token() interface to take a MonoDynamicAssembly.
14916         More complete custom attributes decoder. Load custom attributes for
14917         Assembly, Field, Method and Constructor objects, too. Make the
14918         returned array an Attribute[] one, not object[]. Added
14919         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
14920         custom attribute constructor.
14921
14922 2002-02-20  Dick Porter  <dick@ximian.com>
14923
14924         * icall.c:
14925         * rawbuffer.c:
14926         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
14927         problem code out for now).
14928
14929 2002-02-19  Radek Doulik  <rodo@ximian.com>
14930
14931         * object.c (mono_ldstr): use hash table to avoid multiple swapping
14932
14933 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
14934
14935         * icall.c: register the GetCustomAttributes method.
14936         * object.c, object.h: add mono_string_new_len ().
14937         * reflection.h, reflection.c: added mono_runtime_invoke(),
14938         mono_install_runtime_invoke(). Added
14939         mono_reflection_get_custom_attrs () to load custom attributes and
14940         create the attribute objects.
14941
14942 2002-02-19  Dick Porter  <dick@ximian.com>
14943         * threads-dummy-types.c:
14944         * threads-dummy-types.h:
14945         * threads-dummy.c:
14946         * threads-dummy.h:
14947         * threads-pthread-types.c:
14948         * threads-pthread-types.h:
14949         * threads-pthread.c:
14950         * threads-pthread.h:  Deleted obsolete files
14951
14952 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
14953
14954         * class.c (mono_class_vtable): runtime init the class when we
14955         allocate static class data.
14956
14957         * icall.c (ves_icall_System_Array_SetValue): check for null values.
14958
14959         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
14960         and String - but we will need generic marshalling support in the
14961         future. 
14962         (mono_init): set the domain name in a ms compatible way
14963
14964         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
14965         String[].
14966
14967 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
14968
14969         * object.c (mono_array_clone): use alloca() instead of g_malloc  
14970         for sizes
14971
14972         * appdomain.c (mono_domain_unload): impl.
14973
14974 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
14975
14976         * appdomain.c, object.c: fix intern pool implementation.
14977         * class.c: fix alignment code.
14978
14979 2002-02-16  Radek Doulik  <rodo@ximian.com>
14980
14981         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
14982         and s2 > s1, just copy lower bytes to be compatible with little
14983         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
14984         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
14985
14986         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
14987         force big_endian to be 1 for big endian machines 
14988         (ves_icall_iconv_new_decoder): ditto
14989
14990 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
14991
14992         * socket-io.c (convert_sockopt_level_and_name): If the system
14993         doesn't define SOL_IP or SOL_TCP, get them by hand using
14994         getprotobyname() and caching the values (because this could be a
14995         slow operation).
14996         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
14997         Use the appropriate struct when the system does support it. Ie,
14998         not all systems have struct ip_mreqn so use struct ip_mreq when
14999         appropriate.
15000
15001 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
15002
15003         * reflection.c: handle finally clauses.
15004
15005 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
15006
15007         * socket-io.c: use g_snprintf() instead of snprintf.
15008
15009 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
15010
15011         * reflection.c (mono_param_get_objects): Cast second argument to
15012         mono_method_get_param_names to a const char** to silence the
15013         compiler warning.
15014
15015         * appdomain.c (mono_domain_assembly_open): Put parens around the
15016         truth statement in the for-loop.
15017
15018         * unicode.c (iconv_convert): Got rid of a compiler warning about
15019         int i being unused when the system has a new iconv.
15020         (iconv_get_length): Same.
15021
15022         * image.c (load_class_names): Cast the second argument to
15023         g_hash_table_insert() to char* to hush compiler warnings about the
15024         arg being a const.
15025         (mono_image_open): Same here.
15026
15027         * socket-io.c: Don't conditionally include sys/filio.h or
15028         sys/sockio.h here anymore since we now get them from
15029         io-layer/io-layer.h
15030         (inet_pton): If the system doesn't support inet_aton, implement
15031         using inet_addr and also #define INADDR_NONE if it isn't defined
15032         by the system.
15033
15034 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
15035
15036         * metadata.c, metadata.h: added function to get packing and size info
15037         of a typedef.
15038         * reflection.h, reflection.c: handle field RVA data. Save info about
15039         the table layout if needed. Assign typedef indexes to all the types
15040         before dumping the info about them to avoid forward reference problems.
15041
15042 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
15043
15044         * socket-io.c (convert_sockopt_level_and_name): ifdef
15045         SO_ACCEPTCONN because it is not defined on my system (old debian)
15046
15047 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
15048
15049         * opcode.c: use stddef.h to get NULL.
15050
15051 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
15052
15053         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
15054         for FIONBIO, FIONREAD and SIOCATMARK.
15055         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
15056         define INADDR_NONE and besides, inet_addr() is deprecated and
15057         should not be used. Use inet_pton() instead - it also has the
15058         added bonus that it can easily handle IPv6 addresses as well.
15059         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
15060
15061 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
15062
15063         * decimal.c: remove _MSC_VER conditional.
15064
15065 2002-02-13  Dick Porter  <dick@ximian.com>
15066
15067         * socket-io.c: 
15068         * icall.c: Internal calls for Blocking, Select, Shutdown,
15069         GetSocketOption and SetSocketOption
15070
15071 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
15072
15073         * assembly.cs: better resolver: use it instead of some kludgy
15074         code.
15075
15076 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
15077
15078         * reflection.c: the best way to speed-up the compiler is to avoid
15079         infinite loops.
15080
15081 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
15082
15083         * class.c (mono_class_vtable): changed the object layout
15084         (obj->vtable->class). 
15085         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
15086
15087 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
15088
15089         * assembly.c: look for assemblies in the assembly dir, too.
15090
15091 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
15092
15093         * class.c: fix thinko in mono_class_from_type().
15094
15095 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
15096
15097         * exception.h, exception.c: added TypeLoadException.
15098         * object.h, object.c: added mono_array_clone ().
15099         * icall.c: handle throwOnError in AssemblyGetType().
15100         Added Array.Clone().
15101         * opcode.h, opcode.c: use a single value for the opcode val.
15102         Compile fix for non-gcc compilers.
15103
15104 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
15105
15106         * opcodes.c, opcodes.h: export interesting info about opcodes.
15107
15108 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
15109
15110         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
15111         icalls. 
15112
15113         * class.c (class_compute_field_layout): set element_class for enums
15114         (mono_class_create_from_typedef): set element_class for normal classes
15115
15116         * icall.c (ves_icall_System_Enum_get_value): impl.
15117
15118         * class.c (mono_class_create_from_typedef): do not set valuetype
15119         flag for System.ValueType and System.Enum
15120
15121 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
15122
15123         * unicode.c (iconv_convert): fix big endian problem.
15124
15125 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
15126
15127         * class.c: add asserts if we are ever going to scribble over memory.
15128         * socket-io.c: not all systems have AF_IRDA defined.
15129
15130 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
15131
15132         * class.c (class_compute_field_layout): do not consider static
15133         fields to compute alignment
15134
15135 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
15136
15137         * appdomain.c (mono_appdomain_get): impl.
15138         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
15139
15140 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
15141
15142         * icall.c: ignore "file://" prefix when loading an assembly.
15143
15144 2002-01-23  Dick Porter  <dick@ximian.com>
15145
15146         * socket-io.c:
15147         * icall.c:
15148         * Makefile.am: Added socket support
15149
15150 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
15151
15152         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
15153         code back.  This should return the assemblies that are loaded by
15154         the runtime on behalf of an application domain. 
15155
15156         The current implementation is still broken, it just returns every
15157         assembly loaded, but until we get real applications domain this
15158         will do.
15159
15160 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
15161
15162         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
15163         AppDomain object.
15164
15165 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
15166
15167         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
15168         the mono_class_from_name lookup.
15169         (ves_icall_get_parameter_info): ditto.
15170         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
15171         method.
15172         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
15173
15174 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
15175
15176         * class.c: load also nested classes on class init.
15177         System.ValueType instance methods gets passed boxed
15178         values, unless methods in derived classed that get a pointer to the
15179         data.
15180         * icall.c: use better name parsing code in GetType().
15181         * image.c, image.h: add mono_image_loaded ().
15182         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
15183         * reflection.c, reflection.h: added mono_reflection_parse_type().
15184
15185 2002-01-22  Veronica De Santis <veron78@interfree.it>
15186
15187         * icall.c : Added mapping of internal calls for Manual and Auto reset events
15188         * threads.c : Added the implementation of internal calls for events
15189         * threads.h : Added prototypes of internal calls for events
15190         
15191 2002-01-21  Radek Doulik  <rodo@ximian.com>
15192
15193         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
15194
15195 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
15196
15197         * class.c (mono_class_init): set min_align to 1 (instead of 0)
15198         (mono_class_value_size): use min_align
15199
15200 2002-01-20  Dick Porter  <dick@ximian.com>
15201
15202         * threads.h:
15203         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
15204         so it compiles on w32.
15205
15206 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
15207
15208         * metadata.c (mono_type_stack_size): impl.
15209
15210         * class.c (mono_class_get_field): impl. memberref token
15211
15212 2002-01-16 Veronica De Santis <veron78@@interfree.it>
15213
15214         * icall.h : Added the internal calls mapping for CreateMutex_internal
15215                     and ReleaseMutex_internal.
15216         * threads.h : Added the prototype of mutexes internal calls.
15217         * threads.c : Added the implementations of mutexes internal calls.
15218
15219 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
15220
15221         * metaparse.h: removed unused file.
15222         * reflection.c, reflection.h: added stream_data_align () function 
15223         to align data in streams and keep stream aligned. Add support for
15224         exception support in method headers.
15225
15226 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
15227
15228         * unicode.c: make iconv_convert () return the number of bytess written
15229         in the output buffer.
15230
15231 2002-01-15  Dick Porter  <dick@ximian.com>
15232         * threads.c: Make the runtime's idea of infinite timeouts coincide
15233         with the class library's
15234
15235         Fix a particularly egregious bug in mono_thread_cleanup(). That
15236         code was so utterly bogus it must have been written on a Monday.
15237
15238 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
15239
15240         * reflection.h: add subtypes field to TypeBuilder.
15241         * reflection.c: encode constants for literal fields.
15242         Handle subtypes. Fix user string token (and add a zero byte)
15243         at the end.
15244         
15245 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
15246
15247         * class.c (mono_class_init): bug fix: assign slot numbers for
15248         abstract methods.
15249
15250 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
15251
15252         * reflection.c: don't try to output a code RVA for abstract methods.
15253         Small fixes for method header format. Output parameter info to the
15254         ParamDef table. Save method overriding info to MethodImpl table.
15255         Fix property support. Allow typedef.extends to be a type in the
15256         building assembly.
15257         * verify.c: fix off-by-one error.
15258
15259 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
15260
15261         * class.c: fix mono_class_from_mono_type () for szarray types.
15262         Remove unused cache check in mono_class_from_type_spec().
15263         * icall.c: *type_from_name () functions handle simple arrays and byref.
15264         * reflection.c: handle byref and szarray types. Handle methods without
15265         body (gets P/Invoke compilation working). Handle types and fields in
15266         get_token ().
15267         * reflection.h: add rank to MonoTypeInfo.
15268
15269 2002-01-10  Dick Porter  <dick@ximian.com>
15270
15271         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
15272         internal calls
15273
15274 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
15275
15276         * icall.c: initialize class in type_from_handle ().
15277         Loop also in parent classes for get_method ().
15278         * reflection.c: properly encode class and valuetype types.
15279         Start on encoding TypeBuilder types. Handle fieldrefs.
15280         Use correct length when registering a user string.
15281         Handle ConstructorBuilder and MonoMethod in get_token ().
15282         Make mono_type_get_object () aware of cached types.
15283         * object.c: back out change to mono_string_new ().
15284
15285 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
15286         * object.c: mono_string_new should return a NULL when the string 
15287         passed in is NULL -- not try to deference it.
15288         
15289 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
15290
15291         * icall.c: hack to make IsSubType work for TypeBuilders.
15292         * reflection.c: emit constructors before methods.
15293         Retrieve param names in mono_param_get_objects().
15294
15295 2002/01/05  Nick Drochak  <ndrochak@gol.com>
15296
15297         * Makefile.am: fix list of headers and sources so automake 1.5
15298         doesn't complain. Removed \# at end of list.
15299
15300 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
15301
15302         * reflection.c: get token for a method ref. Set return type of
15303         constructor to void.
15304         * loader.c: debug message.
15305         * class.c: typo fix.
15306
15307 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
15308
15309         * icall.c: fix array init with rank > 1. FindMembers
15310         loops in parent class as well.
15311         * image.c: do not insert nested types in name cache.
15312         * reflection.c: warning fix.
15313         * reflection.h: add override method (for interface impl).
15314
15315 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
15316
15317         * metadata.c: fix customattr decoding.
15318
15319 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
15320
15321         * rawbuffer.cs: Added native Win32 implementation, avoids using
15322         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
15323
15324 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
15325
15326         * class.c: make the low-level routines handle the cache.
15327
15328 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
15329
15330         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
15331
15332 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
15333
15334         * class.c: fix mono_array_element_size() for objects.
15335         * class.h, class.c: add properties to MonoClass and load them
15336         at init time.
15337         * icall.c: check with isinst() when assigning a value to an array
15338         instead of requiring the classes to match exactly.
15339         Implemented icall for System.Type::GetType().
15340         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
15341         enums. Handle bindingflags when looking for methods and fields.
15342         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
15343         and mono_metadata_methods_from_property().
15344         * reflection.h, reflection.c: added structures for propreties,
15345         parameters and enums. Implemented mono_property_get_object() and
15346         mono_param_get_objects().
15347
15348 2001-12-18  Dick Porter  <dick@ximian.com>
15349
15350         * file-io.c: Use mono_string_to_utf16() instead of
15351         mono_string_chars()
15352
15353         * object.c: Added mono_string_to_utf16(), which copies the non
15354         NULL-terminated MonoString into a new double-null-terminated
15355         buffer.
15356
15357 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
15358
15359         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
15360
15361 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
15362
15363         * file-io.c: raise exceptions if handle is invalid.
15364
15365 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
15366
15367         * assembly.c: yet another check for mscorlib.
15368         * class.c, class.h: load nesting info for classes.
15369         * icall.c: many new functions to support the Reflection classes.
15370         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
15371         * reflection.h, reflection.c: mono_image_create_token(),
15372         mono_assembly_get_object(), mono_type_get_object(),
15373         mono_method_get_object(), mono_field_get_object(): methods to return
15374         objects that parallel the C representation of assemblies, types,
15375         methods, fields.
15376
15377 2001-12-11  Dick Porter  <dick@ximian.com>
15378
15379         * icall.c:
15380         * file-io.c: Internal calls for file IO.
15381
15382 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
15383
15384         * tabledefs.h: missing FileAttributes.
15385         * verify.h, verify.c: use is_valid_string () to simplify and check for
15386         valid strings more correctly. Fix warnings and speeling.
15387         Check more tables: Filed, File, ModuleRef, StandAloneSig.
15388         Check code: branches, maxstack, method calls.
15389
15390 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
15391
15392         * object.c (mono_object_allocate): removed static, so that the jit
15393         can allocate value types.
15394
15395         * icall.c (ves_icall_System_DateTime_GetNow): impl.
15396
15397 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
15398
15399         * class.c: init enum types right away and register the
15400         token->MonoClass map in mono_class_create_from_typedef ().
15401         * verify.h, verify.c: first cut of the verifier.
15402         * pedump.c: add --verify switch to verify metadata tables.
15403         * tabledefs.h: add some missing enums.
15404
15405 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
15406
15407         * class.c (mono_install_runtime_class_init): impl.
15408         (mono_class_init): renamed mono_class_metadata_init to
15409         mono_class_init, also removed the metadata_inited flag
15410
15411         * object.c (mono_object_isinst): use faster algorithm
15412
15413 2001-11-30  Radek Doulik  <rodo@ximian.com>
15414
15415         * mono-endian.h: reverted last change
15416         added function prototypes
15417
15418         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
15419         add mono-endian.c back
15420
15421         * mono-endian.c: returned back, as Paolo pointed out, it's needed
15422         for unaligned access, I've mistaked it with endianess. I am
15423         sorry.
15424         (mono_read16): fix reverted endianess
15425         (mono_read64): ditto
15426         (mono_read32): ditto
15427
15428 2001-11-30  Dick Porter  <dick@ximian.com>
15429
15430         * exception.c: Implement mono_exception_from_name()
15431
15432 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
15433
15434         * metadata.h, metadata.c: remove params_size and locals_size and their
15435         calculation from the metadata code: they are only usefult to the
15436         interp.
15437
15438 2001-11-29  Radek Doulik  <rodo@ximian.com>
15439
15440         * object.c (mono_ldstr): swap bytes here, it's probably not the
15441         best place, but works for me now, I'll redo it once I know mono
15442         better, also note that I add PROT_WRITE and don't reset back, also
15443         note that it's only affects big endians, so x86 should be OK
15444
15445         * mono-endian.h (read16): use just glib macros for both endians
15446
15447         * mono-endian.c: removed as glib macros are used in in
15448         mono-endian.h so we don't need to care about endianess for read
15449         macros as glib does that for us already
15450
15451 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
15452
15453         * class.h, class.h: take minimum alignment into consideration so
15454         that the fields of a class remain aligned also when in an array.
15455
15456 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
15457
15458         * loader.h, loader.c: add mono_method_get_param_names().
15459         * class.c: 0-init class fields.
15460
15461 2001-11-26  Dick Porter  <dick@ximian.com>
15462
15463         * icall.c:
15464         * threads-types.h:
15465         * threads.c: New file that handles System.Threading on all platforms
15466
15467         * object.c: 
15468         * object.h: Remove the synchronisation struct from MonoObject,
15469         replace it with a pointer that gets initialised on demand
15470
15471         * Makefile.am: Replace all the system-specific threading code with
15472         a single file that uses the new wrapper library
15473
15474 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
15475
15476         * class.c, class.h: add mono_install_trampoline() so that the runtime
15477         can register a function to create a trampoline: removes the ugly
15478         requirement that a runtime needed to export arch_create_jit_trampoline.
15479         * object.h, object.c: added mono_install_handler() so that the runtime
15480         can install an handler for exceptions generated in C code (with
15481         mono_raise_exception()). Added C struct for System.Delegate.
15482         * pedump.c: removed arch_create_jit_trampoline.
15483         * reflection.c: some cleanups to allow registering user strings and
15484         later getting a token for methodrefs and fieldrefs before the assembly
15485         is built.
15486         * row-indexes.h: updates and fixes from the new ECMA specs.
15487
15488 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
15489
15490         * class.h, class.c: add enum_basetype field to MonoClass.
15491         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
15492         to get index in the constant table reated to a field, param or
15493         property.
15494         * reflection.h, reflection.c: handle constructors. Set public-key and
15495         version number of the built assembly to 0.
15496         * row-indexes.h: update from new ECMA spec.
15497
15498 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
15499
15500         * class.h, class.c: add a max_interface_id to MonoClass.
15501         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
15502         since it's used to do that. Added mono_type_type_from_obj().
15503         Make GetType() return NULL instead of segfaulting if the type was not
15504         found. Handle simple arrays in assQualifiedName.
15505         * object.h: add a struct to represent an Exception.
15506         * reflection.c: output call convention in method signature.
15507         Add code to support P/Invoke methods and fixed offsets for fields.
15508
15509 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
15510
15511         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
15512         the value.
15513         * icall.c: use mono_array_addr instead of array->vector: fixes the
15514         reflection image writing.
15515         * reflection.c: init call convention byte to 0 in method signature.
15516         Encode the property signature. Don't output property-related methods
15517         twice. Really process the properties for a type (don't cast a field to
15518         a property, my mom always told me that).
15519         Fix 64 bit issues in pointer alignment in a different and more
15520         readable way.
15521
15522 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
15523
15524         * loader.h: Removed type class from MonoDefaults, added monotype
15525
15526         * loader.c: Loaded MonoType, removed loading of Type
15527
15528         * icall.c (my_mono_new_object): Now returns a System.MonoType,
15529         and fills in System.Type._impl with a RuntimeTypeHandle rather
15530         than the actual MonoClass *
15531
15532         (ves_icall_type_from_handle): change from type_class to
15533         monotype_class
15534
15535         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
15536         implemented
15537
15538         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
15539         implemented
15540
15541         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
15542
15543         (ves_icall_System_Reflection_Assembly_GetType): implemented
15544
15545         (ves_icall_System_MonoType_assQualifiedName): implemented
15546
15547         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
15548
15549 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
15550
15551         * assembly.c (mono_assembly_open): Implement a cache for the
15552         assemblies. 
15553
15554         (mono_assembly_close): only destroy the assembly when the last
15555         reference is gone.
15556         
15557 2001-11-09  Dick Porter  <dick@ximian.com>
15558
15559         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
15560
15561 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
15562
15563         * class.c (mono_class_metadata_init): bug fix: compute the right slot
15564
15565 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
15566
15567         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
15568         from Martin Weindel.
15569         * object.h: add mono_string_chars ().
15570
15571 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
15572
15573         * reflection.c (build_compressed_metadata): Eliminates warnings
15574         and uses 64-bit clean code.
15575
15576         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
15577         (mono_type_equal): Change signature to eliminate warnings.
15578
15579 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
15580
15581         * icall.c, loader.c: remove the internalcall array constructors.
15582         Changes to match the new MonoArray structure.
15583         * object.h, object.c: an array object doesn't allocate an extra
15584         vector. Add mono_array_new_full () to create jagged arrays easily.
15585
15586 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
15587
15588         * metadata.h, metadata.c: add mono_metadata_field_info () to
15589         retreive all the info about a field from vairous tables.
15590         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
15591         * class.h, class.c: augment MonoClassField with more info.
15592         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
15593         policy and load a field's RVA if needed.
15594
15595 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
15596
15597         * class.c (mono_class_metadata_init): create a trampoline for all
15598         virtual functions instead of actually compiling them.
15599
15600 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
15601
15602         * class.h, class.c: include name in MonoClassField.
15603         * class.c: fix fundamental type of System.Object and System.String.
15604         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
15605         tokens in ldtoken.
15606         * icall.c: remove internalcalls for the Reflection stuff that is now
15607         done in C# code.
15608         * loader.c: mono_field_from_memberref () implementation.
15609         * mono-endian.c: thinko (s/struct/union/g).
15610         * object.c, object.h: make the mono_string_* prototypes actually use
15611         MonoString instead of MonoObject.
15612         * reflection.c, reflection.h: updates for changes in the reflection
15613         code in corlib: we use C structures that map to the actual C# classes.
15614         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
15615         fat method header if needed and use the info from the ILGenerator for
15616         methods. Handle fields in types. Misc fixes.
15617
15618 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
15619
15620         * class.c (mono_class_metadata_init): bug fix: always allocate
15621         space for static class data
15622
15623 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
15624
15625         * class.c (mono_compute_relative_numbering): use relative
15626         numbering to support fast runtime type checks.
15627
15628 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
15629
15630         * class.c (mono_class_create_from_typeref): added debugging output
15631         to print class name when MonoDummy is returned instead of real class
15632
15633 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
15634
15635         * class.c (mono_class_metadata_init): interface offset table now
15636         contains pointers into the vtable - this is more efficient for the jit
15637
15638 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
15639
15640         * class.c (mono_class_metadata_init): use a temporary vtable (the
15641         old algorithm only worked for the interpreter, but not for the jit)
15642
15643 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
15644
15645         * loader.c (method_from_memberref): use mono_class_get to get the
15646         class of an array instead of using System.Array directly.
15647         (mono_get_method): also add MEMBERREF methods to the method cache
15648         which usefull for arrays.
15649
15650 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
15651
15652         * pedump.c (arch_compile_method): added to compute vtable entry
15653
15654         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
15655         number of interfaces.
15656         
15657         * class.h: merged MonoArrayClass into MonoClass
15658
15659         * class.c (mono_class_create_from_typedef): compute the vtable size and
15660         allocate space to include the vtable inside MonoClass
15661         (mono_class_metadata_init): initialize the vtable
15662
15663 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
15664
15665         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
15666         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
15667         * image.c: endian fixes by Laurent Rioux.
15668         * object.h, object.c: rename MonoStringObject to MonoString and
15669         MonoArrayObject to MonoArray. Change some function names to conform to
15670         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
15671         guint16* as first argument, so don't use char*.
15672         Provide macros to do the interesting things on arrays in a portable way.
15673         * threads-pthread.c: updates for the API changes and #include <sched.h>
15674         (required for sched_yield()).
15675         * icall.c: updates for the API changes above.
15676         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
15677         platforms that need them.
15678
15679 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
15680
15681         * class.c: set the correct type for all the fundamental
15682         type when loading the class.
15683
15684 2001-10-05  Dick Porter  <dick@ximian.com>
15685
15686         * threads-pthread.c (pthread_mutex_timedlock): Simple
15687         compatibility version for C libraries that lack this call.
15688
15689 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15690
15691         * class.c: MonoTypes stored in MonoClass are stored as
15692         fundamental MonoTypes when the class represents a
15693         fundamental type (System.Int32, ...).
15694         The TypeHandle return by ldtoken is a MonoType*.
15695         * icall.c: ves_icall_get_data_chunk () write out all the
15696         PE/COFF stuff. Implement ves_icall_define_method (),
15697         ves_icall_set_method_body (), ves_icall_type_from_handle ().
15698         * image.c: properly skip unknown streams.
15699         * loader.h, loader.c: add type_class to mono_defaults.
15700         * metadata.c, metadata.h: export compute_size () as
15701         mono_metadata_compute_size () with a better interface.
15702         Typo and C&P fixes.
15703         * pedump.c: don't try to print the entry point RVA if there is no entry point.
15704         * reflection.c, reflection.h: many cleanups, fixes, output method
15705         signatures and headers, typedef and typeref info, compress the metadata
15706         tables, output all the heap streams, cli header etc.
15707         * row-indexes.h: typo fixes.
15708
15709 2001-10-04  Dick Porter  <dick@ximian.com>
15710
15711         * object.h: Add a synchronisation mutex struct to MonoObject
15712
15713         * object.c (mono_new_object): Initialise the object
15714         synchronisation mutexes
15715
15716         * icall.c: System.Threading.Monitor internal calls
15717         
15718         * threads-pthread.h:
15719         * threads-pthread.c: System.Threading.Monitor internal calls
15720
15721         * threads-types.h: New file, includes the system-specific thread
15722         structures
15723         
15724         * threads-pthread-types.h:
15725         * threads-pthread-types.c: New files, handle pthread-specific
15726         synchronisation types
15727
15728         * threads-dummy-types.h: 
15729         * threads-dummy-types.c: New files of dummy support for
15730         thread-specific types
15731
15732         * metadata.c:
15733         * image.c:
15734         * pedump.c: include mono-endian.h not endian.h
15735         
15736         * Makefile.am: More threads files.
15737         Name mono-endian.h not endian.h
15738
15739 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
15740
15741         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
15742         stuff and implement a few more bits.
15743         * icall.c: a field needs to be dereferenced twice. Do not use the same
15744         name for two variables in the same scope.
15745         * image.c, image.h: cleanups.
15746
15747 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
15748
15749         * class.c (mono_class_metadata_init): bug fix: compute the right size
15750
15751 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
15752
15753         * icall.c: implemented some of the Reflection internalcalls.
15754         * image.c, image.h: start writing out the PE/COFF image.
15755         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
15756         that does the reverse than decode_blob_size ().
15757         * object.c: use mono_metadata_encode_value (). Move here
15758         temporary implementation of mono_string_to_utf8 ().
15759         * rawbuffer.c: make malloc_map static.
15760
15761 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15762
15763         * metadata.c: fix type comparison for arrays.
15764         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
15765         Added a couple of new classes to monodefaults.
15766         * icall.c: added a couple of Reflection-related internalcalls.
15767         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
15768         Added a byval_arg MonoType to MonoClass.
15769
15770 2001-09-28  Dick Porter  <dick@ximian.com>
15771
15772         * icall.c:
15773         * threads-pthread.h: 
15774         * threads-pthread.c: Implemented internal calls for
15775         LocalDataStoreSlot operations.  Applied mutexes around all shared
15776         data.  Reworked the thread creation and Start() operations to
15777         avoid a race condition.
15778         
15779         * threads-dummy.h:
15780         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
15781
15782 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
15783
15784         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
15785
15786 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
15787
15788         * class.c, loader.c: warn and return NULL instead of erroring out.
15789         * icall.c: added System.AppDomain::getCurDomain().
15790         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
15791
15792 2001-09-25  Dick Porter  <dick@ximian.com>
15793
15794         * threads-pthread.h:
15795         * threads-pthread.c: Implemented timed thread joining and added
15796         System.Threading.Thread::Join_internal internal call
15797
15798         * icall.c: Added System.Threading.Thread::Join_internal internal call
15799
15800         * threads-dummy.h:
15801         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
15802
15803 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
15804
15805         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
15806         mono_string_intern () to implement the semantics of the ldstr opcode
15807         and the interning of System.Strings.
15808         * icall.c: provide hooks to make String::IsIntern and String::Intern
15809         internalcalls.
15810
15811 2001-09-23  Dick Porter  <dick@ximian.com>
15812
15813         * threads-dummy.c: 
15814         * threads-dummy.h: New files of dummy threading routines
15815
15816         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
15817         support code based on system specifics
15818
15819         Rename PTHREAD_LIBS to THREAD_LIBS
15820         
15821 2001-09-23  Dick Porter  <dick@ximian.com>
15822
15823         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
15824         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
15825         internal calls.
15826         (mono_thread_init): Set up a Thread object instance to return when
15827         the main thread calls Thread.CurrentThread
15828         (mono_thread_cleanup): Wait for all subthreads to exit
15829
15830         * icall.c: New internal calls for System.Threading.Thread::Sleep
15831         (including Schedule) and CurrentThread
15832
15833         * threads.h: New file, to insulate thread-specific stuff from the
15834         rest of the code
15835
15836 2001-09-21  Dick Porter  <dick@ximian.com>
15837
15838         * threads-pthread.h: 
15839         * threads-pthread.c: New file, for handling pthreads-style
15840         threading support.  Start() now starts a new thread and executes
15841         the ThreadStart delegate instance.
15842
15843         * icall.c: Added the internalcall for
15844         System.Threading.Thread::Start_internal
15845
15846         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
15847
15848 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
15849
15850         * loader.c: work around the different signatures for delegates
15851         constructors csc generates in compiled code vs the ones compiled in mscorlib.
15852
15853 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
15854
15855         * class.h, class.c: add mono_class_get_field_from_name ().
15856         * *: Fix C comments and other ANSI C issues.
15857
15858 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
15859
15860         * endian.h, assembly.c: fix some endianness issues.
15861
15862 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
15863
15864         * loader.h, load.c: add delegate_class to mono_defaults.
15865         Handle runtime provided methods in mono_get_method ().
15866
15867 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
15868
15869         * loader.c (mono_get_method): use pinvoke for internal call
15870
15871         * icall.c: use pinvoke for internal call
15872
15873         * loader.c (method_from_memberref): set the method name
15874
15875 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
15876
15877         * metadata.c: help the compiler generate better code for
15878         mono_class_from_mono_type ().
15879
15880 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
15881
15882         * class.c (mono_class_metadata_init): delayed computing of the
15883         class size to mono_class_metadata_init ()
15884
15885 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
15886
15887         * class.c, class.h: add an interfaces member to MonoClass.
15888         * image.c, image.h: add assembly_name field to MonoImage
15889         from the assembly table.
15890         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
15891
15892 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
15893
15894         * class.c: Handle Array in mono_class_from_mono_type ().
15895         * metadata.c, pedump.c: some endian fixes.
15896
15897 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
15898
15899         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
15900         * metadata.c: fix small problem introduced with the latest commit.
15901
15902 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
15903
15904         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
15905         We don't need a MonoMetadata pointer anymore to compare signatures in
15906         mono_metadata_signature_equal (), update callers.
15907         Reduced memory usage an number of allocations for MonoMethodHeader and
15908         MonoMethodSignature.
15909
15910 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
15911
15912         * metadata.c: added compare for szarray.
15913
15914 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
15915
15916         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
15917         and add a couple more types to it and mono_defaults. Give an hint on
15918         classes that need implementing in our corlib and are referenced
15919         in mscorlib.
15920
15921 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
15922
15923         * class.h, class.c: keep track if a class is also an Enum.
15924         * loader.c: Implement a couple more types for use in libffi
15925         marshalling. Gives better diagnostics when failing to dlopen
15926         a library. Set method->klass for P/Invoke methods, too.
15927
15928 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
15929
15930         * class.c, class.h: add a MonoType this_arg to MonoClass that
15931         represents a pointer to an object of the class' type that
15932         can be used by the interpreter and later the type cache.
15933         Add best guess alignment info for valuetype objects.
15934
15935 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
15936
15937         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
15938         into MonoType: one less level of indirection and allocation and
15939         simplifies quite a bit of code. Added cache for MonoTypes that are
15940         used frequently, so that we don't need to allocate them all the time.
15941
15942 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
15943
15944         * class.c (mono_class_create_from_typedef): System.Enum is also a
15945         value type, although it does not derive from System.ValueType
15946         (maybe a bug in the ms compiler?)
15947
15948         * metadata.c (mono_type_size): return the right size for value types
15949
15950         * loader.c (mono_get_method): only initialize method header if not abstract
15951
15952         * class.c (mono_class_from_mono_type): use mono_default values. 
15953
15954 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
15955
15956         * *: use MonoClass pointers instead of <type_tokens>
15957         
15958         * class.h: new flag: metadata_inited.
15959
15960         * class.c (mono_class_metadata_init): impl.
15961         (mono_class_instance_size): impl.
15962         (mono_class_data_size): impl.
15963
15964 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15965
15966         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
15967         MonoClass now has the name and name_space fields. 
15968         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
15969         mono_get_method () takes and optional MonoClass as argument.
15970         Removed mono_typedef_from_name() and added mono_class_token_from_name()
15971         instead that takes advantage of a map from class names to typedef
15972         tokens in MonoImage.
15973
15974 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
15975
15976         * metadata.c: zero is not a valid alignment boundary.
15977         Merge MONO_TYPE_VOID in default decoding code.
15978
15979 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
15980
15981         * image.h: merged MonoMetadata into MonoImage
15982
15983         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
15984         identify the type of elements.
15985
15986 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
15987
15988         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
15989         * cil-coff.h: split MonoMSDOSHeader and add size info.
15990         * image.c: add some consistency checks.
15991         * metadata.c: fix row size computation: one programmer
15992         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
15993         add explanation for the locator routine.
15994         Fix decoding of size in method header.
15995         
15996 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
15997
15998         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
15999         (g_concat_dir_and_file): Bring g_concat_dir_and_file
16000         function from gnome-libs.  This uses the right path separator
16001         based on the OS, and also works around a bug in some systems where
16002         a double slash is not allowed. 
16003         (default_assembly_name_resolver): Use g_concat_dir_and_file
16004         (mono_assembly_open): ditto.
16005
16006 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
16007
16008         * metadata.c (mono_metadata_signature_equal): impl.
16009
16010         * *: void is now a realy MonoType (instead of using NULL)
16011         
16012         * metadata.c (do_mono_metadata_parse_type): use
16013         mono_metadata_parse_type to parse void value.
16014
16015 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
16016
16017         * metadata.c, metadata.h: in the signature and method header store
16018         only the space required for holding the loca vars and incoming arguments.
16019
16020 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
16021
16022         * metadata.c (do_mono_metadata_parse_type): treat void like any
16023         other type (instead of assigning NULL);
16024
16025 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
16026
16027         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
16028
16029 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
16030
16031         * image.c (do_mono_image_open): added a cache for arrays.
16032
16033 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
16034
16035         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
16036         decode a single column from a row in a metadata table and changes
16037         to take advantage of it in the typedef locator (gives a nice speed up).
16038         Store offset info for function params.
16039
16040 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
16041
16042         * image.h (MONO_IMAGE_IS_CORLIB): removed 
16043
16044 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
16045
16046         * assembly.c: how could mono_assembly_close () had ever worked?
16047         * metadata.c, metadata.h: provide offset info for local vars.
16048         Implement mono_type_size () to take care of alignment as well
16049         as size (it was mono_field_type_size in cli/class.c before).
16050
16051 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
16052
16053         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
16054
16055         * assembly.h (CORLIB_NAME): set to corlib.dll
16056
16057         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
16058
16059 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
16060
16061         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
16062         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
16063         tokentype.h: massive namespace cleanup.
16064
16065 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
16066
16067         * metadata.h, metadata.c: decode exception clauses when parsing method header.
16068
16069 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
16070
16071         * metadata.c (mono_metadata_free_type): added check for type !=
16072         NULL (void) before calling mono_metadata_free_type()
16073
16074 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
16075
16076         * metadata.h, row_indexes.h: added header with enumerations to use
16077         to index in the columns from tables in metadata and to decode coded
16078         tokens: we should start using this instead of embedding magic numbers
16079         all over the code.
16080
16081 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
16082
16083         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
16084         Move metadata_t info from cli_image_info_t to MonoImage, where
16085         it's easily accessible. Changed all the uses accordingly.
16086         Added the method and class caches to MonoImage.
16087         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
16088         and mono_metadata_decode_value () signature to be more consistent
16089         with the other parse functions (and simplify code). Taken advantage
16090         of zero-length array allocation with GCC. Removed reduntant (and
16091         wrong) MonoFieldType struct and use MonoParam instead. Changed
16092         mono_metadata_parse_field_type () to use common code for parsing.
16093         Added mono_metadata_typedef_from_field () and
16094         mono_metadata_typedef_from_method () to lookup a typedef index from a
16095         field or method token.
16096         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
16097
16098 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
16099
16100         * metadata.c (mono_metadata_parse_field_type): Implement. 
16101         (do_mono_metadata_parse_type): Split engine from
16102         mono_metadata_parse_type, so that we can create smaller structures
16103         for things that just have one pointer to the MonoType (look at
16104         the MonoFieldType)
16105
16106 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
16107
16108         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
16109         as Jan Gray found out, it is incorrect. 
16110
16111 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
16112
16113         * assembly.c: Implement asssembly loading.  This loads an image
16114         and loads all the referenced assemblies.  Come to think of it, we
16115         could always do lazy loading of the assemblies. 
16116
16117         * image.c (mono_image_open): Keep loaded images in a hashtable.
16118
16119         * image.h (MonoImage): Add reference count.
16120
16121 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
16122
16123         * assembly.c (mono_assembly_open): Keep track of the file name in
16124         case the assembly has no ASSEMBLY table.
16125
16126         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
16127         from get.c here.
16128
16129 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
16130
16131         * metadata.c, metadata.h: decode local vars in method header
16132         parse function. Change callers accordingly.
16133
16134 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
16135
16136         * metadata.h, cil-coff.h: protect against multiple inclusion.
16137         Added some new structures to hold information decoded from metadata:
16138         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
16139         and relevant decoding/free functions.
16140         * metadata.c: implement decoding functions. Add warning for out of bounds
16141         index in mono_metadata_locate(). Implement mono_get_method () to retreive
16142         all the info about a method signature and invocation. Remove check on
16143         uninitialized local var in parse_mh() and fix memory leak.
16144
16145 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
16146
16147         * metadata.h: More macros.
16148
16149         * tokentype.h: New file.
16150
16151 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
16152
16153         * assembly.c: added a consistency check and initialize
16154         some structures with g_new0().
16155         * metadata.c: fixed a couple more bugs in table size computation
16156         and add other checks for out-of bound access to metadata.
16157
16158 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
16159
16160         * metatada.c: fix bugs computing table sizes. Spew a
16161         warning when index in string heap is out of bounds.
16162
16163 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
16164
16165         * metadata.h: Add a couple of macros to manipulate tokens. 
16166
16167 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
16168
16169         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
16170         cli_section_tables).
16171
16172 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
16173
16174         * metadata.c (mono_metadata_user_string): New function, provides
16175         access to the UserString heap. 
16176
16177 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
16178
16179         * metadata.c: Add inline documentation.
16180
16181 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
16182
16183         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
16184         files. 
16185
16186 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
16187
16188         * typeattr.h: New file, TypeAttribute flags. 
16189
16190 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
16191
16192         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
16193         mono_assembly_ensure_section): Section loading code.
16194         (load_section_tables): Load the sections.
16195
16196         * mono/metadata/metadata.c (mono_metadata_locate_token,
16197         mono_metadata_locate): Functions to locate the information
16198         definition given a token or a table and an index.
16199         (mono_metadata_compute_table_bases): New.
16200         (compute_size): New function to compute the sizes of the various
16201         tables.
16202
16203         * mono/metadata/metadata.h: Finish listing the different index
16204         types. 
16205
16206         * mono/metadata/pedump.c: Improve to dump new information.
16207
16208 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
16209
16210         * mono/metadata/metadata.c: Entered all the tables matching
16211         Beta2. 
16212
16213         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
16214
16215