2005-09-16 Martin Baulig <martin@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2005-09-16  Martin Baulig  <martin@ximian.com>
2
3         * mono-debug.c
4         (mono_debug_add_method): Ignore inflated methods for the moment.
5
6 2005-09-14  Martin Baulig  <martin@ximian.com>
7
8         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
9
10 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
11
12         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
13         return a success/failure indication.
14         (mono_metadata_interfaces_from_typedef_full): Ditto.
15         (get_constraints): Ditto.
16
17 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
18
19         * marshal.c (emit_marshal_array): Fix handling of null arrays.
20         
21         * marshal.c (emit_marshal_array): Add support for returning string
22         arrays from delegates. Fixes #76063.
23
24         * marshal.c: Use the emit_ldloc/stloc macros where possible.
25
26 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
27
28         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
29         icall.
30
31 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
32
33         * reflection.c icall.c: Fix after mono_get_exception_type_load
34         signature change.
35
36         * assembly.c (mono_assembly_get_assemblyref): New helper function.
37         (mono_assembly_load_reference): Use the new helper.
38
39         * class-internals.h (MonoLoaderError): New structure containing 
40         information about type loading errors.
41
42         * class-internals.h loader.c: Add APIs to store per-thread loader
43         error information.
44
45         * loader.c class.c: Set the loader error if needed.
46
47         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
48
49 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
50
51         * decimal.c: fixed to handle the broken ARM fp format.
52
53 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
54
55         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
56         broken.
57
58 2005-09-06  Martin Baulig  <martin@ximian.com>
59
60         * domain.c (supported_runtimes): Added v2.0.50727.
61
62 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
63
64         * culture-info.h: reduce the size of some structures.
65
66 2005-09-05  Martin Baulig  <martin@ximian.com>
67
68         Reflect latest API changes in the August CTP.
69
70         * icall.c
71         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
72         ("MonoType.HasGenericArguments"): Removed.
73         ("MonoMethod.BindGenericParameters"): Renamed to
74         "MakeGenericMethod".
75         ("MethodBuilder.BindGenericParameters"): Renamed to
76         "MakeGenericMethod".    
77
78 2005-09-05  Martin Baulig  <martin@ximian.com>
79
80         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
81
82 2005-09-05  Martin Baulig  <martin@ximian.com>
83
84         Applying a patch from Michal Moskal <malekith@nemerle.org>.
85
86         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
87         generic_container is non-NULL.
88
89 2005-09-05  Martin Baulig  <martin@ximian.com>
90
91         Applying a patch from Michal Moskal <malekith@nemerle.org>.
92
93         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
94
95 2005-08-29  Michal Moskal  <malekith@nemerle.org>
96
97         * reflection.c (encode_locals,
98         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
99         for large generic types.
100
101 2005-09-05  Martin Baulig  <martin@ximian.com>
102
103         Applying a patch from Michal Moskal <malekith@nemerle.org>.
104
105         * class.c (mono_dup_array_type): New public method.
106         (mono_metadata_signature_deep_dup): New public method.
107         (dup_type): Correctly duplicate array and function types.
108
109 2005-09-05  Martin Baulig  <martin@ximian.com>
110
111         Applying a patch from Michal Moskal <malekith@nemerle.org>.
112
113         * reflection.c (get_default_param_value_blobs): Handle generic types
114         and generic methods.
115
116 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
117
118         * class.c: Fixed error reporting (method/class were inversed) for 
119         inheritance demands.
120         * security-manager.c|h: Added the AppDomain when calling the managed
121         System.Security.SecurityManager.InheritanceDemand method.
122
123 2005-09-01  Raja R Harinath  <rharinath@novell.com>
124
125         * reflection.c (encode_marshal_blob): 'marshaltype' and
126         'marshaltyperef' are alternate sources for the custom marshaler
127         name.
128
129 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
130
131         * class.c: fix creation of array classes with rank == 1
132         (patch by Ankit Jain <jankit@novell.com>).
133
134 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
135
136         * object.c: fix check for creating the bound data for arrays vs
137         szarrays.
138
139 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
140
141         * object.c: configuration file name is now based on the executable name,
142         not the image name. Fixes bug #75931.
143
144 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
145
146         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
147         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
148
149 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
150
151         * rand.c: Use wincrypt.h instead of WinCrypt.h.
152
153 2005-08-24  Ankit Jain  <jankit@novell.com>
154             Raja R Harinath  <rharinath@novell.com>
155
156         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
157           called by it recursively.
158           (mono_class_init): Remove special case in pending_init handling, since it's
159           superseded by the fix to mono_class_from_typeref.
160
161 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
162
163         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
164         BROKEN_THREAD_START stuff.
165
166 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
167
168         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
169         trampoline.
170
171         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
172         
173         * object.c (mono_delegate_ctor): Replace the original function address with
174         a delegate trampoline.
175
176 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
177
178         * icall.c: add boolean argument to base64_to_byte_array and 
179         InternalFromBase64String to control whether a whitespace-only string
180         is allowed (or should casue a FormatException to be thrown). We need
181         this as the behavior has changed between MS.NET 1.x and 2.0, and we
182         to match the MS behaviour in both profiles.
183         * appdomain.c: Bump corlib version.
184
185 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
186
187         This patch implements a big portion of publisher policy
188         support, used to bind assembly versions and redirect
189         one assembly from version A to version B.
190
191         * assembly.c:
192         New GSList loaded_assembly_bindings, for storing the cached
193         assembly bindings.
194         (assembly_binding_maps_name): New static function for checking if a 
195         assembly binding information maps an assembly name.
196         (mono_assembly_binding_info_free): New function for freeing
197         assembly binding information resources.
198         (get_publisher_policy_info): New static function for retrieving 
199         assembly binding information from a MonoImage.
200         (compare_versions): New static function for comparing an assembly
201         binding information data and the version of an assembly name.
202         (check_policy_versions): New static function for checking if an
203         assembly binding info mapping an assembly name is valid for it.
204         (mono_assembly_load_publisher_policy): New static function for
205         loading the 'policy.major.minor.MyAssembly' image for an assembly
206         with an assembly name 'aname'.
207         (mono_assembly_bind_version): New static function for updating
208         assembly redirection.
209         (mono_assembly_apply_binding): New static function for applying
210         assembly binding.
211         (search_binding_loaded): New static function for searching 
212         loaded assembly binding infos in the cache domain.
213         (mono_assembly_load_full): Don't apply assembly binding for
214         reflection only assemblies.
215
216         * metadata-internals.h: Add MonoAssemblyBindingInfo,
217         which contains information about assembly binding. Also
218         declare signature for mono_config_parse_publisher_policy ()
219         function, used to retrieve pub policy info.
220         
221         * mono-config.c:
222         (publisher_policy_start): New static function used to parse publisher 
223         policy config files.
224         (publisher_policy_parser): New static MonoParseHandler containing 
225         the functions used when parsing config files.
226         (mono_config_parse_publisher_policy): New function for parsing
227         publisher policy files.
228         
229 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
230
231         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
232
233         * marshal.c (mono_delegate_free_ftnptr): Ditto.
234
235         * object.c (mono_get_addr_from_ftnptr): New helper function.
236
237         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
238
239         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
240
241 2005-08-19  Dick Porter  <dick@ximian.com>
242
243         * threads.c, threads.h, appdomain.c, appdomain.h,
244         profiler-private.h, monitor.c, object.c, object-internals.h,
245         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
246         store the thread ID, so it can hold a 64 bit value if needed.
247
248 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
249
250         * reflection.c (mono_reflection_create_dynamic_method): Store the
251         handle class into the method references as well so ldtoken works in
252         dynamic methods.
253
254         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
255         types.
256
257 2005-08-19  Ankit Jain <jankit@novell.com>
258
259         Fix #75847.
260         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
261           here rather than using the method signature of a arbitrary function
262           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
263           two arguments.
264           Hack done with Harinath.
265
266 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
267
268         * threadpool.c: disable printing stack traces when we get a exception
269         in a threadpool thread. I need to do more testing to figure out which
270         cases actually print this. Fixes bug #75828.
271
272 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
273
274         * icall.c: there might be ignored whitespace after the last '='. This
275         fixes length computation and bug #75840.
276
277 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
278
279         * assembly.c (mono_assembly_load_full): Consider .exe extension as
280         well. Fixes #75809.
281
282         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
283         #75784.
284         
285         * reflection.c (create_custom_attr_data): Ditto.
286
287 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
288
289         * locales.c, culture-info.h : removed RegionLCIDMap.
290         * culture-info-tables.h : regenerated.
291
292 2005-08-16  Martin Baulig  <martin@ximian.com>
293
294         * class.c (mono_type_get_name_recurse): Small fix.
295
296 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
297
298         * locales.c : indentation fixie.
299
300 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
301
302         * object-internals.h,
303           locales.h,
304           locales.c,
305           culture-info.h,
306           icall.c : added RegionInfo table support.
307         * culture-info-table.h : regenerated for region support.
308
309 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
310
311         * reflection.c (resolve_object): handle all kinds of MonoMethod
312         including generic ones
313
314 2005-08-12  Ankit Jain <jankit@novell.com>
315
316         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
317           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
318
319 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
320
321         * process.c: Don't close a thread handle when it's NULL. This is a
322         workaround for bug #75733.
323
324 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
325
326         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
327
328 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
329
330         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
331
332 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
333
334         * threadpool.c: if a work item in the thread pool has a callback that
335         catches a exception, don't propagate it after invoking the callback.
336         Fixes bug #75336.
337
338 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
339
340         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
341
342         * class-internals.h (MonoCachedClassInfo): Add some new fields.
343
344         * class.c (mono_class_init): Load field info lazily in the AOT case.    
345
346         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
347
348 2005-08-03  Ankit Jain  <jankit@novell.com>
349
350         Fix #75683.
351         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
352           PInvoke calling convention is 0.
353
354 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
355
356         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
357         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
358
359 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
360
361         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
362         to handle threads not started by the GC (patch by Michael Meeks
363         <michael.meeks@novell.com>).
364
365 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
366
367         * reflection.c: Make buffer used in emitting types larger for some
368         big generic types (patch by Michal Moskal).
369
370 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
371
372         * mono-debug.c: Fix some (not all) alignment problems.
373
374 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
375
376         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
377         Invoke mono_image_load_from_data_full passing the refonly
378         parameter.
379
380         * assembly.c
381         (mono_assembly_open_from_bundle): Add the refonly argument, 
382         in order to pass it to other methods it calls to.
383         (do_mono_assembly_open): Add the refonly argument, in order 
384         to pass it to other methods it calls to.
385         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
386         the refonly parameter to it.
387
388         * image.c: Add loaded_images_refonly_hash and
389         loaded_images_refonly_guid_hash to cache the reflection
390         only loaded images.
391         (mono_images_init): Initialize the hash tables used for
392         caching the reflection only images.
393         (load_modules): Invoke mono_image_open_full passing the refonly
394         parameter to load the modules the correct way.
395         (build_guid_table): Add the refonly argument, to re-build the 
396         correct hash table.
397         (do_mono_image_open): Added the refonly argument, in order to
398         define it for the loaded image.
399         (mono_image_loaded_full): New function, which receives an
400         additional parameter to look for the image in the refonly or
401         non-refonly section.
402         (mono_image_loaded): Updated, using mono_image_loaded_full.
403         (mono_image_loaded_by_guid_full): The same case that happens
404         with mono_image_loaded_full.
405         (mono_image_loaded_by_guid): Likewise.
406         (register_image): Use the ref_only variable inside MonoImage
407         to decide in which hash table store the current image.
408         (mono_image_open_from_data_full): Rename
409         mono_image_open_from_data to mono_image_open_from_data_full,
410         adding the refonly argument, to define the ref_only variable 
411         inside MonoImage.
412         (mono_image_open_from_data): Return 
413         mono_image_open_from_data_full.
414         (mono_image_open_full): Rename mono_image_open to
415         mono_image_open_full, receiving the new refonly argument,
416         to pass it to inner methods.
417         (mono_pe_file_open): Update this function, to open
418         a MonoImage as a non-refonly image.
419         (mono_image_close): Use the refonly variable inside
420         MonoImage to remove the image from the correct caches.
421
422         * image.h: Add the signatures of mono_image_open_full,
423         mono_image_open_from_data_full, mono_image_loaded_full,
424         mono_image_loaded_by_guid_full.
425
426         * metadata-internals.h: Add the ref_only field to 
427         MonoImage.
428         
429 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
430
431         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
432         Fix the last behavior, which used to load the assemblies and
433         extract MonoReflectionAssemblyName information, instead of
434         extract it from the metadata tables. Needed for Reflection
435         Only assemblies.
436         
437 2005-07-29  Martin Baulig  <martin@ximian.com>
438
439         * mono-debug-debugger.c
440         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
441         not initialized.
442
443         * mono-debug.c
444         (mono_debug_address_from_il_offset): Check whether we have
445         debugging support before attempting to take the lock.
446         (mono_debug_source_location_from_address): Likewise.
447         (mono_debug_source_location_from_il_offset): Likewise.
448         (mono_debug_il_offset_from_address): Likewise.
449         (mono_debug_address_from_il_offset): Likewise.
450
451 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
452
453         * class.c (mono_class_from_name_case): Add support for dynamic images.
454         Fixes #75650.
455
456         * object.c (mono_class_compute_gc_descriptor): Add a workaround
457         for #75479.
458
459 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
460         
461         * reflection.c (mono_method_get_object): Fix warning.
462
463 2005-07-28  Martin Baulig  <martin@ximian.com>
464
465         * mono-debug.c
466         (mono_debug_add_wrapper): Also write the wrapper type.
467
468 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
469
470         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
471         
472         * class.c (mono_class_init): Avoid reading nested classes if the AOT
473         data indicates the class has none.
474
475 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
476
477         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
478         loader lock with the debugger lock. Prevents deadlocks for beagle.
479
480         Beagle can now run on an smp box for a weekend without any
481         issues. Woohoo!
482
483 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
484
485         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
486         in a module. Fixes #75629.
487
488 2005-07-26  Martin Baulig  <martin@ximian.com>
489
490         * mono-debug.c (mono_debug_add_wrapper): New static method.
491         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
492         interncall or a wrapper.
493
494         * mono-debug.h (MonoDebugWrapperData): New public typedef.
495         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
496         (MONO_DEBUGGER_VERSION): Bump to 51.
497
498         * mono-debug-debugger.c
499         (mono_debugger_add_type): Removed this empty function.
500         (mono_debugger_add_method): Likewise.
501
502 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
503
504         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
505         before accessing method->slot.
506
507 2005-07-21  Jb Evain  <jbevain@gmail.com>
508
509         * reflection.c (method_encode_clauses/class): Handle filters clauses.
510         Fixes #75010.
511
512 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
513
514         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
515         #75587.
516
517 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
518
519         * image.h image.c: Add mono_image_get_guid () API function.
520
521 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
522
523         There were issues when multiple threads tried to load
524         assemblies. A deadlock was created between assemblies_mutex and
525         mono_domain_assemblies_lock. This fixes the issue by making the
526         assembly ref counting be lock free. See bug 75586.
527         
528         * image.c (mono_image_close): The add ref function here was using
529         Interlocked operations while the unref was using a mutex and a
530         --. I don't think this was ever a bug that would be exposed in a
531         non-pendantic way (ie, by an embedder doing a ref on one thread
532         and an unref on another), but for the sake of correctness, this is
533         now Interlocked.
534
535         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
536         (mono_assembly_load_reference): Call mono_assembly_addref rather
537         than touching the refcount ourselves.
538         (mono_assembly_close): Use InterlockedDecrement to unref the
539         assembly. Don't acquire the lock unless it is actually needed.
540
541 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
542
543         * class.c (mono_class_layout_fields): Fix calculation of has_references
544         for generic types.
545
546 2005-07-12  Martin Baulig  <martin@ximian.com>
547
548         Applying a patch from Michal Moskal <malekith@nemerle.org>.
549
550         * metadata.c
551         (mono_type_hash): Provide better hashing for generic instances.
552         (mono_generic_inst_hash): Improve hashing.
553         (mono_generic_class_hash): Likewise.
554
555         * reflection.c (mymono_metadata_type_hash): Improve hashing for
556         generic instances.
557
558 2005-07-12  Martin Baulig  <martin@ximian.com>
559
560         * reflection.c (mono_reflection_create_runtime_class): Remove the
561         hack for generic type definitions and non-`Run' assemblies.
562         (mono_reflection_bind_generic_parameters): Also use
563         `klass->wastypebuilder' to check for TypeBuilders.
564
565 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
566
567         * class.c (mono_class_layout_fields): Fix calculation of has_references
568         for generic types.
569
570         * class.c (inflate_generic_class): Fix a leak.
571         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
572         for generic types.
573
574 2005-07-11  Martin Baulig  <martin@ximian.com>
575
576         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
577         on error.
578
579 2005-07-11  Martin Baulig  <martin@ximian.com>
580
581         * loader.c (find_method): Also lookup in
582         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
583
584 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
585
586         * appdomain.c (mono_domain_unload): Don't free the error message
587         before passing it to mono_get_exception_...
588
589         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
590         
591 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
592
593         * threads.c: try to better guess an available RT signal (bug #75387).
594
595 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
596
597         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
598         and CACHE_OBJECT.
599
600 2005-07-07  Martin Baulig  <martin@ximian.com>
601
602         * class.c (mono_type_get_name_full): Return NULL for
603         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
604         fixes #75408.
605
606 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
607
608         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
609         exit the appdomain as well being aborted.
610
611         * threadpool.c: Create all threadpool threads inside the root appdomain, and
612         change back to the root domain after calling managed code. This enables
613         appdomains using threadpools to be unloaded.
614
615 2005-07-07  Martin Baulig  <martin@ximian.com>
616
617         * class-internals.h
618         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
619         into `MonoDynamicGenericClass' since we only need it for dynamic
620         types.
621
622         * reflection.c (mono_class_bind_generic_parameters): We don't need
623         to compute the `parent' here.
624
625 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
626
627         * culture-info-table.h : regenerated.
628
629 2005-07-06  Martin Baulig  <martin@ximian.com>
630
631         * icall.c
632         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
633
634         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
635
636 2005-07-06  Martin Baulig  <martin@ximian.com>
637
638         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
639         we're doing a signature-only comparision; fixes #74945.
640
641 2005-07-06  Martin Baulig  <martin@ximian.com>
642
643         * class-internals.h (MonoGenericClass): Moved some things out into
644         a new `MonoInflatedGenericClass' type.  
645         (MonoInflatedGenericClass): New type; the `klass' of a
646         `MonoGenericClass' is now computed lazyly in
647         mono_get_inflated_generic_class().      
648
649         * class.c (mono_get_inflated_generic_class): New public function.
650         (mono_class_inflate_generic_method): Removed the unused
651         `MonoClass *' argument.
652         (setup_generic_vtable): Don't call mono_get_inflated_method() on
653         all the methods.
654         (mono_class_create_generic): Make this static and merge it with
655         mono_class_create_generic_2(); we're now called automatically from
656         mono_get_inflated_generic_class().
657
658         * loader.c (mono_method_signature): Call
659         mono_get_inflated_method() here.
660
661 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
662
663         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
664         type of fields with RVA.
665
666         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
667         for this pseudo class.
668         (my_mono_class_from_generic_parameter): Likewise.
669         (mono_class_init): Allow interfaces to have cctors.
670
671 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
672
673         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
674         lazily for AOT methods.
675
676 2005-07-05  Martin Baulig  <martin@ximian.com>
677
678         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
679         returns FALSE for a successful match, not TRUE.
680
681 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
682
683         * loader.c (mono_method_get_index): Optimize this a bit.
684
685 2005-07-04  Martin Baulig  <martin@ximian.com>
686
687         * class.c
688         (class_compute_field_layout): Move the check for generic type
689         definitions into mono_class_layout_fields().  Fixes #74684.
690         (mono_class_from_generic_parameter): Correctly compute
691         `klass->parent'; fixes #75457.
692
693         * reflection.c (register_assembly, register_module): Make sure
694         `domain->rejobject_hash' is already created.
695
696 2005-07-02  Martin Baulig  <martin@ximian.com>
697
698         * class-internals.h
699         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
700         `MonoDynamicGenericClass'.      
701
702 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
703
704         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
705         returned by a field getter is null, since null is a valid value.
706
707 2005-07-01  Martin Baulig  <martin@ximian.com>
708
709         * reflection.c (mono_reflection_generic_class_initialize): Update
710         the `dgclass->fields [i].parent' to the correct class.
711         (mono_image_get_fieldref_token): Use the declaring type, not the
712         reflected type.
713
714 2005-07-01  Martin Baulig  <martin@ximian.com>
715
716         * loader.c (find_method): Also look in the interfaces; fixes #75429.
717
718 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
719
720         * threads.c (thread_cleanup): assert that thread != NULL
721         (wait_for_tids_or_state_change): We were using the wrong variable
722         when accessing wait->threads. `i' was always out of the bounds of
723         the array.
724
725 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
726
727         * loader.c: map user32 and kernel32 to libMonoSupportW
728
729 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
730
731         * appdomain.c (unload_thread_main): Mark this as WINAPI.
732
733 2005-06-28  Martin Baulig  <martin@ximian.com>
734
735         * loader.c (method_from_methodspec): Fix #75334.
736
737 2005-06-28  Martin Baulig  <martin@ximian.com>
738
739         Fix #74953 - Arrays now implement the generic IList<T> interface
740         on the 2.0 platform.
741
742         * class-internals.h (MonoDefaults): Added `generic_array_class'.
743
744         * reflection.c (mono_class_bind_generic_parameters): New public
745         function; similar to mono_reflection_bind_generic_parameters(),
746         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
747
748         * domain.c (mono_init_internal): Try to initialize.
749         `mono_defaults.generic_array_class' here; this'll only succeed if
750         we're using the 2.0 corlib.
751
752         * icall.c
753         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
754         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
755         (mono_lookup_internal_call): Added support for nested classes.
756
757         * loader.c
758         (mono_get_method_from_token): Set `result->signature->pinvoke' if
759         we're an interncall and have generic arguments.
760
761         * class.c
762         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
763         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
764         instance of System.Array.InternalArray<T> for arrays, so they
765         implement the generic IList<T> interface.
766
767 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
768
769         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
770         (chastamar@yahoo.com). Fixes #75374.    
771
772 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
773
774         * culture-info-table.h: regenerated.
775
776 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
777
778         * icall.c: handle spaces correctly for base64 strings.
779
780 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
781
782         * *.c: Kill some warnings.
783
784 2005-06-23  Duncan Mak  <duncan@novell.com>
785
786         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
787         that this builds on Solaris 10 (x86).
788
789 2005-06-23  Martin Baulig  <martin@ximian.com>
790
791         * class.c
792         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
793         generic type definitions.
794
795 2005-06-23  Martin Baulig  <martin@ximian.com>
796
797         Fix #75331.
798
799         * metadata.c (mono_class_get_overrides): Renamed to
800         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
801         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
802         pass it to mono_get_method_full().
803
804 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
805
806         * reflection.c (mono_reflection_create_runtime_class): take the
807         mono_domain_lock in this method. Prevents deadlocks
808
809 2005-06-22  Martin Baulig  <martin@ximian.com>
810
811         * loader.c (method_from_methodspec): Fix #75330.
812
813 2005-06-22  Martin Baulig  <martin@ximian.com>
814
815         * reflection.c (type_get_qualified_name): Use
816         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
817         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
818         argument; use it if we don't have an assembly name.
819
820 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
821
822         * object.c: In mono_message_init, set "copy out" flag for in
823         parameters with the [Out] flag.
824
825 2005-06-21  Martin Baulig  <martin@ximian.com>
826
827         * class.c
828         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
829         and MONO_TYPE_PTR.
830
831 2005-06-21  Martin Baulig  <martin@ximian.com>
832
833         * class.c (mono_class_init): Don't initialize `class->fields' for
834         generic instances since they're initialized again in
835         compute_field_layout(). 
836         (compute_field_layout): Set the field's `generic_info' here; fix
837         #75320. 
838
839 2005-06-21  Martin Baulig  <martin@ximian.com>
840
841         * class-internals.h
842         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
843
844         * metadata.c (mono_metadata_generic_method_equal): Also
845         distinguish the `generic_class'; fixes #75334.
846
847 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
848
849         * domain.c:
850         * appdomain.c:
851         * domain-internals.h:
852         * reflection.c: 'domain_assemblies' field is now protected by its own
853         lock. Don't call into managed code to run the AssemblyLoad event if we
854         now there are no registered delegates for it.
855
856 2005-06-20  Martin Baulig  <martin@ximian.com>
857
858         * class.c (mono_class_is_assignable_from): Use a custom version of
859         mono_class_has_parent() to make things work for generic instances;
860         fix #75300.
861
862 2005-06-20  Martin Baulig  <martin@ximian.com>
863
864         * loader.c (method_from_methodspec): Apply a patch from
865         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
866
867 2005-06-20  Martin Baulig  <martin@ximian.com>
868
869         * class.c (mono_class_init): Reverted Zoltan's last change; it
870         breaks generics.
871
872 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
873
874         * threads.c (wait_for_tids_or_state_change): Add missing locking.
875
876 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
877
878         * socket-io.c: fix the index in the socket array for writable/error
879         sockets. Fixes bug #75306.
880
881 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
882
883         * class.c (mono_class_init): Allow interfaces to have static ctors.
884
885 2005-06-17  Martin Baulig  <martin@ximian.com>
886
887         * loader.c (method_from_methodspec): Use `context->container' when
888         parsing the `gmethod->inst'.
889
890 2005-06-17  Martin Baulig  <martin@ximian.com>
891
892         * class.c (mono_type_get_name_recurse): Don't add the assembly
893         name for type arguments.
894
895 2005-06-15  Martin Baulig  <martin@ximian.com>
896
897         * reflection.c (mono_image_get_inflated_method_token): Encode
898         correct klass; fixes #75260.
899
900 2005-06-13 Michal Moskal <malekith@nemerle.org>
901
902         * icall.c: Make GetCorrespondingMethod/Constructor take
903         MonoReflectionMethod method not MonoMethod. Removed
904         MonoType.GetCorrespondingField, and make
905         MonoGenericType.GetCorrespondingField take name not
906         MonoClassField.
907
908 2005-06-13  Michal Moskal <malekith@nemerle.org>
909
910         * reflection.c (field_encode_signature, encode_locals):
911          Make sizes of buffers for types larger (for big generic types).
912          (create_generic_typespec,
913          mono_reflection_sighelper_get_signature_local,
914          mono_reflection_sighelper_get_signature_field):
915          Add asserts for too small buffers.
916
917 2005-06-15  Martin Baulig  <martin@ximian.com>
918
919         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
920         if our parent is not a dynamic type.
921
922 2005-06-15  Martin Baulig  <martin@ximian.com>
923
924         * class-internals.h (MonoTypeNameFormat): New enum.
925
926         * class.c
927         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
928         (mono_type_get_full_name): Removed.
929         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
930         argument instead of the boolean's.
931
932         * icall.c (ves_icall_System_MonoType_getFullName):
933         Added `gboolean assembly_qualified'.    
934
935         * reflection.h
936         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
937
938         * reflection.c (mono_reflection_parse_type): Parse the new type
939         name format.
940
941 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
942
943         * icall.c: no need to convert from utf16 to utf8 and then back again
944         after the call to GetLogicalDrives.
945
946 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
947
948         * icall.c: frombase64. Fix problems exposed by new tests.
949
950 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
951
952         * icall.c: added internal calls for converting char [] and strings in
953         base64 into byte [].
954
955 2005-06-10  Martin Baulig  <martin@ximian.com>
956
957         * class.c (mono_class_create_generic_2): Read the nested classes
958         from the metadata rather than from `gklass->nested_classes' since
959         `gklass' might not be initialized yet.
960
961 2005-06-09  Duncan Mak  <duncan@novell.com>
962
963         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
964         all public headers. Fixes #74919.
965
966 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
967
968         * domain.c: The key for proxy_vtable_hash is now a pointer
969         array. Added new GHashFunc and GCompareFunc functions for this.
970
971         * class.h: The list of interfaces in MonoRemoteClass is known in
972         advance and can't grow (we create a new MonoRemoteClass if needed),
973         so now the interface array can be allocated together with
974         MonoRemoteClass.
975         
976         * object.c: Added a new method create_remote_class_key.
977         Fixed mono_remote_class so it does not depend on
978         mono_upgrade_remote_class.
979         Removed extend_interface_array.
980         Added new method clone_remote_class(), which makes a copy of a remote
981         class and adds a new interface or class to it.
982         mono_upgrade_remote_class() now creates a new remote class (or gets
983         it from the cache) if an vtable upgrade is needed. In this way
984         we make sure that other objects sharing the same remote class
985         don't get the new vtable with unwanted interfaces.
986         
987         * object-internals.h:
988         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
989         
990         * marshal.c: Track changes in mono_upgrade_remote_class().
991
992 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
993         * icall.c: Add runtime methods for obtaining members of inflated
994         class, which were created from supplied non-inflated members. It
995         is used in internal Get{Method,Constructor,Field} methods in
996         System.Type
997
998 2005-06-09  Martin Baulig  <martin@ximian.com>
999
1000         * reflection.c
1001         (mono_reflection_bind_generic_method_parameters): Fix #75169.
1002
1003 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1004         * reflection.c (mono_image_basic_init): Define
1005         Version in MonoDynamicAssembly. 
1006         
1007 2005-06-08  Martin Baulig  <martin@ximian.com>
1008
1009         Fix #75136.
1010
1011         * loader.c
1012         (mono_method_signature_full): New public method; takes a
1013         `MonoGenericContext *'.
1014         (find_method): Use mono_method_signature_full() and pass the
1015         klass'es context to it.
1016
1017         * class.c (mono_class_is_inflated_method): Use
1018         mono_method_signature_full() and pass the context to it.
1019
1020 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
1021
1022         * object.c: add proper locking in mono_remote_class_vtable(),
1023         fixes possible memory corruption.
1024
1025 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
1026
1027         * marshal.c (mono_remoting_marshal_init): set
1028         initialized after initialization.
1029
1030 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
1031
1032         * locales.c : hush.
1033
1034 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
1035
1036         * object.c (extend_interface_array): fix really silly
1037         memory corrupting / comparison bug.
1038
1039 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1040
1041         * reflection.c: Functions added to support the creation
1042         of CustomAttributeData, which includes Attribute data
1043         used by ReflectionOnly methods.
1044
1045         * reflection.h:  mono_reflection_get_custom_attrs_data and
1046          mono_custom_attrs_data_construct added (functions exposed).
1047
1048          * icall.c: Added mono_reflection_get_custom_attrs_data
1049          as icall.
1050         
1051 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
1052
1053         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
1054         lupus's request.
1055
1056 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
1057
1058         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
1059
1060         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
1061         dynamic DllImportAttribute.
1062
1063         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
1064         dynamic DllImportAttribute.
1065
1066         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
1067         Fixes #75162.
1068
1069 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1070
1071         * threads.c: avoid segfault when an unstarted thread is aborted.
1072
1073 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
1074
1075         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
1076         Returns the name and version of the runtime for reporting.
1077
1078 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1079
1080         * appdomain.c: bump corlib version.
1081         * object-internals.h: new field in MonoReflectionAssembly.
1082
1083 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1084
1085         * object-internals.h: Carlos forgot to add this field.
1086
1087 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1088
1089         * icall.c: Added create_version to create instances
1090         of Version of MonoReflectionAssemblyName. This change helps
1091         the AssemblyName tests to keep running fine.
1092         
1093 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
1094   
1095         * object.c (mono_method_return_message_restore): A somehow less
1096         intrusive fix for #75138.
1097
1098 2005-06-03  Raja R Harinath  <rharinath@novell.com>
1099
1100         * object.c (mono_method_return_message_restore): Fix computation
1101         of expected number of out args.
1102
1103 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
1104
1105         * reflection.c (mono_image_get_method_info): Fix the case when the
1106         charset is empty.
1107
1108 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
1109
1110         * object.c: Added missing null check in
1111           mono_method_return_message_restore.
1112
1113 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
1114
1115         * reflection.c (mono_image_get_method_info): Handle the case when
1116         dllentry is empty.
1117
1118 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
1119
1120         * object.c: When creating the vtable for a proxy, take into account
1121         all inherited interfaces, not only the ones registered in
1122         iclass->interfaces. This fixs bug #74996.
1123         Also, in mono_method_return_message_restore, verify that the array
1124         of out args has the expected lengh.
1125
1126 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1127
1128         * socket-io.c: update the timeout in Poll when the call is interrupte.
1129
1130 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1131
1132         * socket-io.c: support abort/suspend in Select_internal after last
1133         change.
1134
1135 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1136
1137         * threadpool.c: remove warning.
1138
1139 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1140
1141         * icall.c:
1142         * socket-io.[ch]: Select_internal uses poll() now when available, thus
1143         removing the 1024 limit from select(). Runtime part of the fix for
1144         bug #71203.
1145
1146 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1147
1148         * socket-io.c: when resolving the addresses for the same
1149         host returned by gethostname(), get the local IPs from the interface
1150         list. Loopback addresses are discarded if the are interfaces up with
1151         non-loopback ones. Fixes bug #63265.
1152
1153 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
1154
1155         * appdomain.c, verify.c, object-internals.h, reflection.c:
1156         bumped corlib number to 36, and added new extra_flags field
1157         to ReflectionMethodBuilder and friends.  Fixes #75060.
1158
1159 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
1160
1161         * gc.c: register a new weak link only if the object is non-null
1162         (fixes bug#75047).
1163
1164 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1165
1166         * culture-info.h : short time pattern too.
1167
1168 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1169
1170         * culture-info.h : expand long time pattern string length.
1171
1172 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1173
1174         * culture-info-table.h : update (more French date format; #72788).
1175
1176 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
1177
1178         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
1179         the method is static. Fixes #75029.
1180
1181 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
1182
1183         * reflection.c: Update the table_idx field of method builders after
1184         saving the module, since it can change. This is a workaround for
1185         bug #74914. 
1186
1187 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1188
1189         * culture-info-table.h : update (additional French date format).
1190
1191 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
1192
1193         * icall.c (ves_icall_type_Equals): Revert last change.
1194         
1195         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
1196
1197         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
1198
1199 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
1200
1201         * class-internals.h: Added executioncontext_class field to 
1202         MonoDefaults structure.
1203         * domain.c: Cache System.Threading.ExecutionContext class in 
1204         mono_defaults.
1205         * object.c: Capture the ExecutionContext for asynchroneous calls in
1206          mono_async_result_new.
1207         * object-internals.h: Added execution_context and original_context 
1208         fields to MonoAsyncResult. Added execution_context to MonoThread.
1209         * security-manager.c|.h: Added mono_get_context_capture_method to 
1210         return the capture method (if required by the security manager or by
1211         the framework version used).
1212         * threadpool.c: Apply capture (if present) ExecutionContext in 
1213         mono_async_invoke and revert to original context after it completes.
1214
1215 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
1216
1217         * culture-info-table.h : updated (real hacky solution for zh-CHT).
1218
1219 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
1220
1221         * culture-info-table.h : zh-CHT related workaround.
1222
1223 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
1224
1225         * marshal.c (emit_marshal_custom): Add some error checking and call the
1226         methods in the ICustomMarshaler interface. Fixes #74875.
1227         
1228         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
1229         native->managed wrappers.
1230
1231 2005-05-12  Martin Baulig  <martin@ximian.com>
1232
1233         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
1234         here and use the loader lock.
1235
1236         * mono-debug.c: Properly lock when the debugger is not attached.
1237         (mono_debug_init): Release the initial lock if we're not running
1238         in the debugger.
1239
1240 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
1241
1242         * marshal.c (emit_marshal_custom): Pass through NULL values without
1243         calling the custom marshalling routines.
1244
1245         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
1246         conversion in structures. Fixes #74882.
1247
1248 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
1249
1250         * culture-info-table.h : zh-* cultures were missing.
1251
1252 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
1253
1254         * threads.c: Added a new event background_change_event which is signaled
1255         when a thread changes its background mode.
1256         Moved here several checks previously done in managed code. The checks
1257         require the thread lock, and using the thread lock in managed code
1258         can result in deadlocks.
1259         Merged Start_internal and Thread_internal into a single method. Now 
1260         Thread_internal does all work of creating and starting a thread.
1261         Added icalls for setting and getting the state of the object. Moved from
1262         managed code to avoid locking there.
1263         Added wait_for_tids_or_state_change() which is called instad of
1264         wait_for_tids when waiting for non-backround threads to end. This method
1265         will return if one of the threads ends or the background_change_event
1266         is signaled.
1267         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
1268         the background mode. This method signals the background_change_event
1269         event.
1270         * icall.c:
1271         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
1272         removed Start_internal.
1273         
1274 2005-05-11  Martin Baulig  <martin@ximian.com>
1275
1276         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
1277         to order of some fields to get proper alignment on 64-bit machines.
1278
1279 2005-05-11  Martin Baulig  <martin@ximian.com>
1280
1281         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
1282         changes as they're broken and completely fuck up the debugger.
1283
1284         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
1285
1286 2005-05-10  Martin Baulig  <martin@ximian.com>
1287
1288         * reflection.c (mono_reflection_generic_class_initialize): Don't
1289         call mono_class_setup_parent() here.
1290
1291 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1292
1293         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
1294         send/receive timeout use an integer in milliseconds. We were using a
1295         struct timeval.
1296
1297 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1298
1299         * locales.c:
1300         (internal_get_cultures): reserve the first slot of the array for the
1301         InvariantCulture, which will be filled in managed code.
1302
1303 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
1304
1305         * reflection.c (mono_image_fill_module_table): Initialize the
1306         GENERATION field as well.
1307
1308 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1309
1310         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
1311         Monitor.Enter on the object.
1312
1313 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
1314
1315         * threads.c: Enable the wait for running threads when exiting.
1316         * icall.c: Suspend all threads before exiting.
1317
1318 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
1319
1320         * assembly.c (mono_assembly_load_reference): Fix warning.
1321
1322 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1323
1324         * threadpool.c: changed the default number of threads per cpu. From now
1325         on, the default will be 20 + (5 * number of cpus) instead of 50.
1326
1327 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
1328
1329         * loader.c (mono_method_get_signature_full): Add locking here.
1330
1331 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
1332
1333         * appdomain.c: Moved methods for parsing and freeing assembly
1334         names to assembly.c.
1335         * assembly.c, domain-internals.h: Created public methods for parsing
1336         assembly names. Fixed mono_assembly_load_with_partial_name:
1337         it now finds the best match, taking into account the version,
1338         token and culture specified in the partial name. Also return
1339         the latest version if no version information is specified.
1340
1341 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
1342
1343         * threadpool.c: replace check for SocketAsyncCall class.
1344
1345 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1346
1347         * threadpool-internals.h:
1348         * Makefile.am: added threadpool-internals.h
1349
1350         * threadpool.c: call mono_unhandled_exception on exceptions not handled
1351         that happen in threadpool threads (tested on MS).
1352         (mono_thread_pool_remove_socket): new function that dispatch any pending
1353         AIO call on a socket that is closing. By now only epoll really needs it,
1354         as select/poll wake up when the socket closes.
1355
1356
1357         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
1358
1359 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
1360
1361         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
1362
1363 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
1364
1365         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
1366
1367 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
1368
1369         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
1370         has an abort request, convert it into a suspend request.
1371
1372 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
1373
1374         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
1375         warning for the usage of `UnmanagedFunctionPointerAttribute' which
1376         is not supported yet.
1377
1378 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1379
1380         * image.c: register assemblies loaded from data (bundles) in the loaded
1381         assemblies hash. Fixes bug #74772.
1382
1383 2005-04-29  Martin Baulig  <martin@ximian.com>
1384
1385         * class.c (mono_type_get_name_recurse): Update to the new naming
1386         schema from the latest .NET 2.x beta2.
1387         (mono_class_setup_vtable_general): If we're a generic instance,
1388         copy the vtable from our generic type definition and inflate all
1389         the methods in it.
1390
1391         * loader.c (find_method): Update to the new naming schema from the
1392         latest .NET 2.x beta2.
1393
1394 2005-04-29  Raja R Harinath  <harinath@gmail.com>
1395
1396         * class.c (mono_class_init): Add a mono_loader_unlock to the
1397         #74734 fix.
1398
1399 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
1400
1401         * icall.c (ves_icall_System_Environment_Exit): Remove the 
1402         suspend_all_other_threads () call for the time being, since it can hang.
1403
1404         * threads.c (mono_thread_manage): Similarly, disable the waiting for
1405         the background threads to exit, since it can also hang.
1406
1407         * class.c (mono_class_init): Applied patch from Ankit Jain 
1408         (radical@gmail.com). Avoid pending init errors when a field refers
1409         to a nested class using a typeref. Fixes #74734.
1410
1411         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
1412         this for dynamic modules.
1413
1414 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1415
1416         * threads.c: don't wait for threads that are in the process of aborting
1417         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
1418         and waiting for background threads to finish. This makes xsp and
1419         mod-mono-server exit without random length delays and/or hangs.
1420
1421 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1422
1423         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
1424
1425 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
1426
1427         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
1428         dynamic types to prevent infinite loops. Fixes #74727.
1429
1430         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
1431         ..._is_assignable_to.
1432
1433 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
1434
1435         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
1436
1437 2005-04-25  Martin Baulig  <martin@ximian.com>
1438
1439         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
1440
1441         * domain.c
1442         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
1443
1444         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
1445
1446         * reflection.c (build_compressed_metadata): Set metadata header
1447         version to 2.0.
1448
1449 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
1450
1451         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
1452         number into an integral and a decimal part. Fixes #70473.
1453
1454         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
1455
1456 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
1457
1458         * culture-info-table.h : reflected the latest locale-builder output.
1459
1460 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1461
1462         * threadpool.c: check for SuspendRequested too when deciding if
1463         mono_thread_interruption_checkpoint should be called.
1464
1465 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1466
1467         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
1468         * threads.c: remove interruption_mutex and use Interlocked instead. When
1469         suspending all the threads, wait for all the suspended events at once.
1470         If we're shutting down and get an APC that is going to be queued,
1471         call mono_thread_execute_interruption immediately, as the thread might
1472         be sleeping on a pthread condition or mutex.
1473
1474         * icall.c: call mono_runtime_set_shutting_down before suspending the
1475         threads.
1476
1477         Fixes bug #74693. And now xsp is happier when exiting.
1478
1479 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
1480
1481         * loader.c (mono_stack_walk): Fix #74690.
1482
1483 2005-04-22  Martin Baulig  <martin@ximian.com>
1484
1485         * mono-debug.h (MonoDebugMethodJitInfo): Added
1486         `MonoDebugMethodJitInfo *jit'.
1487
1488         * mono-debug.c (mono_debug_read_method): Cache the
1489         MonoDebugMethodJitInfo in `address->jit'.
1490         (mono_debug_free_method_jit_info): New public method.
1491
1492 2005-04-22  Martin Baulig  <martin@ximian.com>
1493
1494         * class.c (mono_class_is_assignable_from): Disallow
1495         type parameter -> interface.
1496
1497 2005-04-21  Dick Porter  <dick@ximian.com>
1498
1499         * threads.c (mono_thread_create): Turn an assertion into an error.
1500
1501 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
1502
1503         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
1504         
1505         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
1506         Fix some gcc 4.0 warnings.
1507
1508 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
1509
1510         * file-io.c: fix alt dir separator char on unix systems
1511         and cleanup (fixes bug #71214).
1512
1513 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
1514
1515         * marshal.c: Use CALLVIRT instead of CALL when dispatching
1516         a call to a remote domain, since the method may be an
1517         interface method in the client domain. This fixes bug #74192.
1518
1519 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1520
1521         * threadpool.c: recv/send are now performed before going back to managed
1522         code to save one transition.
1523
1524 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1525
1526         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
1527
1528         * metadata/threadpool.c: removed hack to workaround the bug above.
1529
1530         Fixes bug #74618.
1531
1532 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
1533
1534         * reflection.c reflection.h: Fix handling of parameter defaults in
1535         dynamic methods. Also fixes handling of parameter attributes.
1536         Fixes #74609.
1537
1538         * mono-debug.c (mono_debug_close_image): Fix warning.
1539
1540 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1541
1542         * socket-io.h: replaced old unused field with new 'blocking'.
1543         * threadpool.c: restore socket blocking state on windows(tm).
1544
1545 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
1546
1547         * icall.c: don't return the codebase in the AssemblyName[] returned by
1548         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
1549         * object-internals.h: Removed FIXME (fields were presents) and fixed
1550         versioncompat declaration.
1551
1552 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1553
1554         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
1555         not closed, so don't cleanup when it happens.
1556
1557 2005-04-13  Chris Toshok  <toshok@ximian.com>
1558
1559         * mono-debug-debugger.h: change prototype for
1560         mono_debugger_lookup_type.
1561
1562         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
1563         this function, although it should probably be named
1564         mono_debugger_init_type.
1565
1566 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1567
1568         * threadpool.c: fix non-AIO case.
1569
1570 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
1571
1572         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
1573         the built-in profiler to measure just JIT compilation times.
1574
1575 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1576
1577         * threadpool.c: the epollfd might be closed by another thread at
1578         any time, so ignore EBADF at treat it as a "we're closing" sign.
1579
1580 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1581
1582         * threadpool.c: release the semaphores with a count equals to the number
1583         of working threads in both IO and regular pools. Fixed typo that messed
1584         up the count of IO pool threads. Don't initialize the pipe handles if
1585         we're using epoll.
1586
1587 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1588
1589         * threadpool.c: some systems don't like a NULL when deleting the socket
1590         from epoll.
1591
1592 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1593
1594         * threadpool.c: fix semaphore allocation.
1595
1596 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1597
1598         * threadpool.c: added epoll() based implementation for asynchronous IO
1599         that is used instead of the default poll() when available.
1600         It can be disabled by setting MONO_DISABLE_AIO.
1601
1602 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1603
1604         * threadpool.c: windows needs 'closesocket' and instead of returning
1605         0 when the stream is closed while in select, it returns -1. Fixes bug
1606         #74573.
1607
1608 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
1609
1610         * class.c (class_compute_field_layout): Fix the regression caused by
1611         the previous try.
1612
1613 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1614
1615         * threadpool.c: separate pool for socket async. IO.
1616         * threadpool.h: mono_max_worker_threads is not a global any more.
1617
1618 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
1619
1620         * class.c (class_compute_field_layout): Fix #74549.
1621
1622 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1623
1624         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
1625         use 2 connected sockets instead.
1626
1627 2005-04-08  Miguel de Icaza  <miguel@novell.com>
1628
1629         * mono-config.c: Add new entry point for mkbundle
1630         mono_config_parse_memory. 
1631
1632 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1633
1634         * threadpool.c: removed another unused function.
1635
1636 2005-04-08  Ankit Jain  <radical@corewars.org>
1637
1638         * reflection.c (get_default_param_value_blobs): Add 'types'
1639         parameter to get the types encoded in the constant table.
1640         (mono_param_get_objects): Use the type from the constant table,
1641         not the type of the parameter, when creating default values.
1642         Handle null default values correctly.
1643
1644 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1645
1646         * file-io.c:
1647         * file-io.h:
1648         * threadpool.c:
1649         * threadpool.h:
1650         * icall.c:
1651         * socket-io.c: removed dead code for async IO.
1652
1653 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1654
1655         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
1656
1657         * threadpool.c: intercept socket async. calls and pass them to a thread
1658         that is polling and dispatching the job items to the threadpool as
1659         socket become ready. Fixes bugs #71217, #71933.
1660
1661         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
1662         between char and short/ushort arrays.
1663
1664         * socket-io.c: remove dead code.
1665
1666 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
1667
1668         * locales.c,
1669           icall.c : removed InternalToUpper_Comp() and
1670           InternalToLower_Comp().
1671
1672 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
1673
1674         * char-conversions.h : The tables were incorrectly generated. Should
1675           be generated against invariant culture.
1676
1677 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
1678
1679         * object.c (mono_runtime_invoke_array): Fix return value when 
1680         passing pre-created valuetype objects to ctors.
1681
1682         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
1683         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
1684         Fixes #74338.
1685
1686 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
1687
1688         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
1689         only used with --security and hides the wrong corlib version error.
1690
1691 2005-03-30  Joshua Tauberer  <tauberer@for.net>
1692
1693         * class.c: Changed mono_class_name_from_token so that types
1694         outside of a namespace don't have an initial period.  Improved
1695         the g_warning message used in _mono_class_get when loading
1696         fails.
1697         * assembly.c: In mono_assembly_load_reference, when an assembly
1698         can't be found, "No such file or directory" is misleading and
1699         unhelpful because a few paths were checked for the presence of
1700         the assembly.  When that happens (ENOENT), display a nicer
1701         message indicating the directories that were searched.  In all
1702         cases, the warning is made easier to read for non-hackers.
1703
1704 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
1705
1706         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
1707         project/solution.
1708         * appdomain.h|domain.c: Removed inline from functions.
1709         * appdomain.c: Reduced warnings when compiling on windows.
1710         * icall.c: Fixed output_debug declaration to gunichar2*.
1711         * mono-config.c: Reduced warnings when compiling on windows.
1712         * rand.c: Added missing "windows.h". Added missing return value.
1713         * rawbuffer.c: Added missing winsock2.h for windows.
1714         * sysmath.h: Added mono-compiler.h header to allow/ease 
1715         compilation with non-GCC compilers.
1716         * threads.c: Fixed declarations to compile with VS.NET C compiler.
1717         Removed cast warnings.
1718
1719         Adapted from the work of J Lothian (for VC6).
1720
1721 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
1722
1723         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
1724         from default_path.
1725
1726 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
1727
1728         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
1729         the 2.0 profile.
1730
1731 2005-03-27  Raja R Harinath  <harinath@gmail.com>
1732
1733         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
1734         has to be in $(exec_prefix).  $(prefix) is for arch-independent
1735         stuff, and it would probably use $(prefix)/share rather than
1736         $(prefix)/lib.
1737
1738 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1739
1740         * console-io.c: added 2 includes that might be missing.
1741
1742 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
1743
1744         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
1745         profile.
1746
1747         * reflection.c (create_custom_attr): Allocate the params array using
1748         alloca so it gets GC tracking.
1749
1750 2005-03-23  Chris Toshok  <toshok@ximian.com>
1751
1752         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
1753         out some spew.
1754
1755 2005-03-24  Raja R Harinath  <rharinath@novell.com>
1756
1757         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
1758         changes to pick up any changes in prefix, etc.
1759
1760 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
1761
1762         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
1763         
1764         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
1765         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
1766
1767 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
1768
1769         * class-internals.h object-internals.h class.c reflection.c: Extend the
1770         mono_lookup_dynamic_token () function to return the class of the
1771         token as well. 
1772
1773         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
1774         well. Fixes #73848.
1775
1776 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
1777
1778         * security-manager.c: Skip inheritance checks for intra-corlib
1779         class inheritance and method overrides. This skips a lot of checks
1780         and (anyway) permissions cannot work until corlib is loaded.
1781
1782 2005-03-23  Martin Baulig  <martin@ximian.com>
1783
1784         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
1785         MONO_TYPE_GENERICINST.  
1786
1787 2005-03-23  Martin Baulig  <martin@ximian.com>
1788
1789         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
1790
1791 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1792
1793         * class.c: added locking comments to some functions.
1794         Cache the interface offsets arrays (saves about 20 KB
1795         of runtime memory in a typical app).
1796         Reduce the time overhead in mono_class_setup_supertypes ().
1797
1798 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
1799
1800         * icall.c: speedup and fix leaks in GetMethodsByName and
1801         GetPropertiesByName.
1802
1803 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1804
1805         * reflection.c: some locking fixes.
1806
1807 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
1808
1809         * metadata.c: added missing break in case statement.
1810
1811 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
1812
1813         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
1814         typedbyref return values. Fixes #73941.
1815
1816 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
1817
1818         * security-manager.c|h: Added demandunmanaged method and 
1819         suppressunmanagedcodesecurity class to MonoSecurityManager.
1820         Renamed aptc class to allowpartiallytrustedcallers.
1821
1822 2005-03-17  Martin Baulig  <martin@ximian.com>
1823
1824         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
1825
1826 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1827
1828         * file-io.c: disabled file async. IO using aio_*. It uses the
1829         threadpool now. Workaround for bug #73718.
1830
1831 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1832
1833         * assembly.h, mono-config.c: added code to deal with bundled configs
1834         for bundled assemblies.
1835
1836 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
1837
1838         * *.c, private.h: cleanup, removing old private.h header file.
1839
1840 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
1841
1842         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
1843         and throw_on_unmappable_char attributes.
1844
1845 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
1846
1847         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
1848         _ProcessName_internal.
1849
1850 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
1851
1852         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
1853         #73631.
1854
1855         * icall.c threads.c threads-types.h: Remove slothash icalls as they
1856         are no longer used.
1857
1858 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
1859
1860         * object.c (compute_class_bitmap): Add support for generics. Fixes
1861         #73527.
1862
1863 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
1864
1865         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
1866
1867 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1868
1869         * filewatcher.c: commented out the code for windows watcher, as we don't
1870         use it (we use the managed implementation instead).
1871
1872 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
1873
1874         * object-internals.h (MonoThread): Remove 'unused1' field.
1875
1876         * appdomain.c: Bump corlib version.
1877
1878         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
1879
1880         * reflection.c (mono_reflection_create_runtime_class): Remove the
1881         AssemblyBuilder.Save optimization since it causes too many problems.
1882
1883 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
1884
1885         * exception.c|h: Added mono_get_exception_reflection_type_load to
1886         create a ReflectionTypeLoadException object.
1887         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
1888         to return NULL is a InheritanceDemand fails during reflection. Updated
1889         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
1890         ReflectionTypeLoadException if an InheritanceDemand fails during 
1891         reflection. Added icall mapping for GetLinkDemandSecurity.
1892         * security-manager.c|h: Added ves_icall_System_Security_
1893         SecurityManager_GetLinkDemandSecurity internal call to return the
1894         class and methods permissions set for a LinkDemand. Removed unused
1895         fields in MonoSecurityManager.
1896
1897 2005-03-10  Martin Baulig  <martin@ximian.com>
1898
1899         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
1900         it's a generic instance.
1901
1902 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
1903
1904         * reflection.c (mono_get_object_from_blob): Applied patch from
1905         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
1906
1907         * class.c (mono_class_is_assignable_from): Another try at fixing 
1908         #73469 without breaking anything.
1909
1910 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
1911
1912         * class.c: (mono_class_is_assignable_from): Revert the last changes
1913         since they don't work with generics.
1914         
1915         * class.c (mono_class_is_assignable_from): Fix build bustage.
1916
1917         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
1918         the managed IsAssignableFrom method. Fixes #73469.
1919
1920         * reflection.c (mono_reflection_call_is_assignable_from): New helper
1921         function.
1922
1923 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
1924
1925         * object.c (mono_load_remote_field_new): Fix returning uninitialized
1926         memory when the remoting callback does not sets the out arguments.
1927         Fixes #73007.
1928
1929         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
1930         by mistake.
1931
1932         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
1933
1934         * object-internals.h (MonoStackFrame): Sync with managed object layout.
1935
1936         * appdomain.c: Bump corlib version.
1937
1938 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
1939
1940         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
1941         function.
1942
1943         * threads.c (mono_thread_attach): Detect threads which are not started
1944         by the GC pthread wrappers.
1945
1946 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
1947
1948         * icall.c: Added new icall for RNG.
1949         * rand.c|h: Added new icall to open the RNG. This allows to share a 
1950         single handle on Linux to access /dev/urandom and fix #73183.
1951
1952 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
1953
1954         * object.c: setting the new vtable in a transparent proxy object must
1955         not change the GC descriptor.
1956
1957 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1958
1959         * object.c: fixed compilation without GCJ support.
1960         * reflection.c: for runtime-created types ensure klass->has_references
1961         is correct (bug #73215).
1962
1963 2005-03-02  Martin Baulig  <martin@ximian.com>
1964
1965         * class.c (mono_class_is_assignable_from): Make this work if
1966         `oklass' is a generic instance; fixes #72831.
1967
1968 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1969
1970         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
1971         with hasthis set.
1972         
1973         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
1974
1975         * marshal.c: Reorganize native->managed marshalling code to also use
1976         the emit_marshal_... functions.
1977
1978 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
1979
1980         * object.c: typed allocs have issues with bitmap sizes > 30,
1981         so check for max_set >= 30.
1982
1983 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1984
1985         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
1986         managed code. Fixes #73012.
1987
1988         * metadata.h (MonoMarshalSpec): Add elem_mult field.
1989
1990         * metadata.c reflection.c: Load/Emit elem_mult as well.
1991         
1992         * metadata.h (MonoMarshalSpec): Add comment.
1993
1994         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
1995
1996         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
1997         num_elem to -1 if not given.
1998
1999         * object-internals.h (MonoReflectionMarshal): Add has_size field.
2000
2001         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
2002         given values.
2003
2004 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
2005
2006         * null-gc.c (mono_gc_free_fixed): Was not compilable.
2007
2008 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
2009
2010         * reflection.c (encode_marshal_blob): Encode param_num field as well.
2011
2012         * object-internals.h (MonoReflectionMarshal): Add param_num field.
2013
2014 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
2015
2016         * object.c: generalized the reference bitmap creation
2017         and added hooks for the new GC.
2018         * class-internals.c: removed the gc_bitmap field from MonoClass.
2019
2020 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
2021
2022         * domain.c: help the compiler to produce better code
2023         in mono_jit_info_table_find ().
2024
2025 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
2026
2027         * object.c: make all allocations look typed.
2028
2029 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
2030
2031         * socket-io.c: load Mono.Posix if it's not loaded already
2032         (fixes bug#73033).
2033
2034 2005-02-24  Martin Baulig  <martin@ximian.com>
2035
2036         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
2037         * reflection.c (dup_type): Likewise.
2038
2039 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
2040
2041         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
2042         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
2043
2044 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
2045
2046         * domain.c, threads.c, object-internals.h: make the critical thread
2047         local vars use the fast access mode (even when we're compiled in
2048         a lib). Provide accessors to be used by the jit during codegen.
2049
2050 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2051
2052         * appdomain.c: Changed hook functios behavior to include
2053         support for the reflection only assemblies. Some icalls were changed
2054         to support the mentioned assemblies too. Signatures of static methods
2055         try_assembly_resolve and real_load now have an additional parameter:
2056         refonly.
2057
2058         * assembly.c: General changes to mono_assembly_ methods to support
2059         reflection only api. Functions mono_assembly_open, mono_assembly_load,
2060         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
2061         suffix, to support an additional gbool parameter to specify whether
2062         the assembli is reflection only or not. Created some new hook functions 
2063         to add support for reflection only assemblies. Signatures of static 
2064         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
2065         have now an additional parameter: refonly.
2066
2067         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
2068         indicating whether the assembly is reflection only or not.
2069
2070         * exception.c: Add mono_get_exception_invalid_operation.
2071
2072         * icall.c: Throw an InvalidOperationException when trying to invoke
2073         a property/method/event, or trying to set/get the value of a field.
2074         Also add an icall to retrieve the ref_only flag to the
2075         MonoReflectionAssembly.
2076
2077 2005-02-23  Chris Toshok  <toshok@ximian.com>
2078
2079         Part of fix for #72827.
2080         * mono-debug.c (mono_debug_add_method): add lexical block data to
2081         the info we write.  Kind of a hack at the moment - we copy the
2082         lexical block info from the MonoDebugMethodInfo to the
2083         MonoDebugMethodJitInfo here, before writing it.
2084         (mono_debug_read_method): read the lexical block info.
2085
2086         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
2087
2088         * debug-mono-symfile.h: add lexical block support.
2089
2090         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
2091         support.
2092
2093 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
2094
2095         * loader.c (mono_lookup_pinvoke_call): Fix warning.
2096
2097         * object.c (mono_runtime_free_method): Call mono_free_method () and
2098         put the TODOs there.
2099
2100         * loader.c (mono_free_method): Free up most memory allocated for 
2101         dynamic methods.
2102
2103 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
2104
2105         * reflection.c: properly flag a Type argument to a
2106         named custom attr value (bug #72248).
2107
2108 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
2109
2110         * reflection.c: reduce code duplication in named custom
2111         attribute encoding.
2112
2113 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
2114
2115         * reflection.c: properly encode custom attrs of type object
2116         (bug #72649).
2117
2118 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
2119
2120         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
2121
2122 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
2123
2124         * socket-io.c: load System.dll if it's not loaded already
2125         (bug #72850 and #70477).
2126
2127 2005-02-21  Martin Baulig  <martin@ximian.com>
2128
2129         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
2130         generic instances.
2131
2132 2005-02-21  Martin Baulig  <martin@ximian.com>
2133
2134         * reflection.c (mono_image_build_metadata): We also need to
2135         "fixup" the MethodImpl table after we computed the final method
2136         indices.  Call fixup_methodimpl() to do that.
2137         (fixup_methodimpl): New private method.
2138
2139 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
2140
2141         * assembly.c: special case mscorlib.dll (bug#72536),
2142         patch from Carlos Alberto Cortez.
2143
2144 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
2145
2146         * threads-types.h threads.c: Fix build bustage.
2147
2148         * threads.c: Use a union for long<->double conversions.
2149
2150         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
2151         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
2152
2153         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
2154         containing the checkpoint call with NOT_TAKEN.
2155         
2156         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
2157         checkpoint before pushing the arguments, so they won't have to be
2158         spilled to stack.
2159
2160 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
2161
2162         * domain.c, assembly.c, domain-internals.h: make some data
2163         const and relocation-free.
2164
2165 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
2166
2167         * object.c, appdomain.c, class-internals.h: introduce the
2168         MonoClassRuntimeInfo structure to hold the info needed to
2169         use a class at runtime. Made mono_class_vtable() lock-free
2170         for all the appdomains.
2171
2172 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
2173
2174         * metadata-internals.h, image.c: introduce a per-image mempool to
2175         be used for memory that has the same lifetime as the image.
2176
2177 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
2178
2179         * domain.c: In mono_init_internal(), instead of selecting the first
2180         runtime version supported by an executable, get a list of all
2181         supported versions and select the one for which an mscorlib exists
2182         (since even if the runtime supports a given version, it doesn't mean
2183         that the framework for that version is installed).
2184         Modified get_runtimes_from_exe to support this behavior.
2185         In supported_runtimes, added information about additional system
2186         assembly versions.
2187         
2188         * assembly.c: Added support for more than one system assembly version
2189         per runtime version. Updated the assembly list.
2190         In mono_assembly_remap_version, removed the initial version check,
2191         since we don't know to which version we need to compare until we
2192         get the version set on which the assembly is based.
2193         Moved the code for loading corlib into the new method
2194         mono_assembly_load_corlib(), so it can be used by the initialization
2195         code.
2196         
2197         * domain-internals.h: Updated data structures and added declaration
2198         for mono_assembly_load_corlib.
2199
2200 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
2201
2202         * reflection.c (resolve_object): Fix the creation of the signature in 
2203         the SignatureHelper case.
2204
2205         * assembly.c (mono_assembly_remap_version): Fix binary search.
2206         
2207 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
2208  
2209         * class.c: Added inheritance check when a method is overloaded (from a
2210         virtual method or when implementing an interface) and when a class is
2211         inherited. Added functions to set a failure for a class and to 
2212         retreive the exception from a failure.
2213         * class-internals.h: Added fields to MonoClass to keep the exception
2214         information status for inheritance (or other exceptions) to be thrown
2215         later (i.e. not at load time).
2216         * object.c: Throw the inheritance SecurityException when a type is to 
2217         be created with either class or method inheritance violations.
2218         * reflection.c|h: Fix when getting declsec from a class. Removed 
2219         unrequired code for class. Improved sanity in parameter naming.
2220         * security-manager.c|h: Added functions to check for class and method
2221         inheritance.
2222
2223 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
2224
2225         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
2226         and has_finalize in dynamic types as well.
2227
2228 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
2229
2230         * culture-info-table.h : fixed currency format for en-GB (and so on).
2231
2232 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
2233
2234         * gc.c: ensure the GC handles never have 0 as a value.
2235
2236 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
2237
2238         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
2239         a pointer to a struct to unmanaged code. Fixes #72625.
2240
2241 2005-02-16  Martin Baulig  <martin@ximian.com>
2242
2243         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
2244
2245 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
2246
2247         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
2248
2249 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
2250
2251         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
2252
2253         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
2254         UnmanagedFunctionPointerAttribute, use it for determining calling convention
2255         etc. Fixes #71471.
2256
2257         * reflection.c (mono_custom_attrs_get_attr): New helper function.
2258
2259         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
2260
2261 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
2262
2263         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
2264         changes to make the current context a field in MonoThread.
2265
2266 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
2267
2268         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
2269         the last change.
2270         
2271         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
2272         extracted from mono_marshal_get_native_wrapper.
2273
2274         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
2275         to create wrappers around native functions.
2276
2277         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
2278         delegates for arbitrary function pointers. Fixes #71472.
2279
2280 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
2281
2282         * threads.c: cleaned up the code a little.
2283
2284 2005-02-15  Martin Baulig  <martin@ximian.com>
2285
2286         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
2287         the data table.
2288
2289         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
2290         allocate larger chunks if needed.
2291
2292 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
2293
2294         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
2295         in by mistake.
2296
2297 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
2298
2299         * domain.c: keep the domains in an array and ensure the domain ids
2300         are kept small, so they can be used as indexes to domain-specific data
2301         with a small memory overhead.
2302
2303 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
2304
2305         * icall.c: Handle byref types in Type icalls. Fixes #72544.
2306
2307 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
2308
2309         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
2310
2311 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
2312
2313         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
2314
2315         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
2316         values.
2317
2318         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
2319         
2320 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
2321
2322         * domain-internals.h: add the hashtable here.
2323
2324         * class-internals.h: Remove `info' from MonoMethod
2325
2326         * domain.c: Add a new hashtable, jit_trampoline_hash
2327
2328 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
2329
2330         * object.c: don't set the value of static fields
2331         (fixes bug#72494).
2332
2333 2005-02-11  Martin Baulig  <martin@ximian.com>
2334
2335         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
2336         (mono_debug_add_method): Silently ignore the method if it's too big.
2337         (mono_debug_add_type): Likewise.
2338
2339 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
2340
2341         * threads.c, appdomain.c: remove #ifdefs from the code.
2342
2343 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
2344
2345         * metadata-internals.h: Added flags to MonoAssembly to cache the most
2346         common security informations. This allows us to stay in unmanaged code
2347         when doing LinkDemand and it's special cases (except for the first 
2348         time for initialization). The flags a very much used with --security.
2349         * reflection.c|h: Added code to get declarative security attributes 
2350         for LinkDemand and InheritanceDemand. This required to refactor the
2351         existing code for Demand.
2352         * security-manager.c|h: Added new method fields for the special cases
2353         of LinkDemand.
2354
2355 2005-02-10  Martin Baulig  <martin@ximian.com>
2356
2357         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
2358         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
2359
2360 2005-02-10  Martin Baulig  <martin@ximian.com>
2361
2362         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
2363         debugging code; this is almost a complete rewrite.
2364
2365         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
2366
2367 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
2368
2369         * domain.c, object.h: expose mono_string_equal () and 
2370         mono_string_hash ().
2371         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
2372         it's implemented in managed code.
2373
2374 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
2375
2376         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
2377         lo leak objects between appdomains.
2378
2379 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
2380
2381         * assembly.c: old compilers compilation fix from 
2382         robertj@gmx.net (Robert Jordan).
2383
2384 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
2385
2386         * class-internals.h: Little reminder for the future.
2387
2388         * debug-helpers.c: Fix up wrapper_type_names
2389
2390 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
2391
2392         * image.c, metadata-internals.h: when loading an image from a file,
2393         mmap all of it and use the same codepaths as when using a
2394         in-memory image: the code is simpler and we use less memory
2395         (both writable and readonly).
2396
2397 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
2398
2399         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
2400         API to alloc runtime data structures that need to be tracked by the
2401         GC and contain pointers.
2402         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
2403         make the code more readable and eventually use a different GC.
2404
2405 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
2406
2407         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
2408         for out arguments.
2409         
2410 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
2411
2412         * object.c: In release_type_locks(), don't release the cctor lock
2413         if it has already been released. This fixes a crash in the
2414         thread5 test.
2415
2416 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
2417
2418         * gc.c, marshal.c, icall.c: register a delegate for finalization
2419         only when the native function pointer has been allocated for it.
2420
2421 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
2422
2423         * object.c: cleaned up some code, allocate objects that are
2424         pointer free with the atomic malloc variant. Allocate memory
2425         for static data from the mempool if it's pointer-free.
2426         Allocate the bounds array at the end of the array data, when needed.
2427         * object-internals.h, object.h: move a private function in a private
2428         header.
2429         * class.c: handle missing case in tracking references in fields.
2430
2431 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
2432
2433         * class.c, class-internals.h: keep track if a type has
2434         reference fields in either the instance or static fields.
2435
2436 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
2437
2438         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
2439         and renamed to MonoRuntimeInfo. Added fields to store the expected
2440         framework assembly version. Changed mono_get_framework_version and
2441         mono_get_runtime_version for a single mono_get_runtime_info method.
2442         
2443         * assembly.c: Added method to remap system assembly versions to the
2444         current executing runtime version. Removed old mapping code.
2445         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
2446         
2447         * icall.c, reflection.c: Track api changes.
2448
2449 2005-02-06  Miguel de Icaza  <miguel@novell.com>
2450
2451         * loader.c (method_from_memberref): Improve error reporting,
2452         produce the class name instead of the typeref/typedef index. 
2453
2454 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
2455
2456         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
2457
2458 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
2459
2460         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
2461         stdcall and charset name mangling.  Reorganize the code and add
2462         some tracing stuff.
2463
2464 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
2465
2466         * monodiet.c: More iters!
2467
2468         * marshal.c: Iter usage.
2469
2470         * icall.c: Iter usage.
2471
2472         * object.c: Use iters.
2473
2474         * debug-helpers.c: More iters
2475
2476 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
2477
2478         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
2479         under win32.
2480
2481 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
2482
2483         * mono-debug-debugger.c: use iters
2484
2485         * class.c, class-internals.h: mono_class_setup_events is static
2486         now
2487
2488         * All callers: use iters
2489
2490 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
2491
2492         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
2493         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
2494
2495 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
2496
2497         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
2498
2499         * marshal.h: Add prototypes for ldfld/stfld_remote.
2500
2501         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
2502         this is called during startup.
2503         
2504 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
2505
2506         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
2507         MonoThreadsSync struct private in monitor.c. Changed the way
2508         MonoThreadsSync is allocated so it's faster and there is no
2509         need to keep track of it with a finalizer and it uses less memory.
2510         This also finally allows us to allocate mono objects as ptrfree when
2511         there are no reference fields.
2512
2513 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
2514
2515         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
2516         disappearing link to the GC interface and use them to simplify
2517         the gchandles code.
2518
2519 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
2520
2521         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
2522         stfld_remote which call mono_load/store_field_new. This allows methods
2523         calling ldfld/stfld wrappers to be AOTed.
2524
2525         * console-io.c: Include sys/filio.h under solaris.
2526         
2527         * console-io.c: Include curses.h if needed correctly.
2528
2529 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
2530         
2531         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
2532         method->klass as well.
2533
2534         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
2535
2536         * class.c (mono_class_init): Switch on lazy initialization of 
2537         methods.
2538
2539         * class.c (mono_class_get_finalizer): Handle the case when the 
2540         finalizer is inherited.
2541
2542 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2543
2544         * console-io.c: <curses.h> is needed by term.h on solaris.
2545
2546 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
2547
2548         * icall.c, class-internals.h, monodiet.c, class.c: Remove
2549         mono_class_setup_properties where possible. Remove this ftn from
2550         the header file, and make it static.
2551
2552 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
2553
2554         * loader.c: Add missing setup_... call.
2555
2556         * class.c: Add missing setup_... calls.
2557
2558         * class.c (mono_class_init): Switch on lazy initialization of 
2559         the generic vtable.
2560         
2561         * class.c (mono_class_init): Fix generics broken by the recent changes.
2562
2563         * monodiet.c (handle_type): Add missing setup_... calls.
2564
2565         * class.c: Back out garbage in previous patch.
2566         
2567         * class.c: Add missing setup_... calls.
2568
2569         * class.c (mono_class_get_method_from_name_flags): Avoid calling
2570         mono_class_setup_methods () if possible.
2571
2572         * class-internals.h (MonoClass): Add 'has_cctor' flag.
2573
2574         * class-internals.h (MonoCachedClassInfo): New structure.
2575
2576         * class.c: Initialize properties and events fields of MonoClass lazily.
2577
2578         * class.c: Add infrastructure for lazily initializing the methods and
2579         vtable fields of MonoClass. Not yet used.
2580
2581         * class.c (mono_class_get_finalizer): New helper function.
2582
2583         * class.c: Add infrastructure for loading some class related data from
2584         an AOT file.
2585
2586         * object.c: Add infrastructure for initializing the vtable from data
2587         in the AOT file.
2588
2589         * gc.c (run_finalize): Use mono_class_get_finalizer ().
2590
2591         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
2592         appropriate initialization function before accessing parts of the
2593         MonoClass structure.
2594
2595         * marshal.c: Fix warnings.
2596         
2597         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
2598
2599         * mono-debug-debugger.c (get_exception_message): Use 
2600         mono_class_get_method_from_name_flags ().
2601
2602 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
2603
2604         * reflection.c, appdomain.c: Replace a few manual searches that
2605         Zoltan missed. (Paolo approved this part of my initial patch).
2606
2607 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
2608
2609         * profiler.c: disable recording statistical events at report time.
2610
2611 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
2612
2613         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
2614         to byteswap arrays of enum values, too (bug #72080).
2615
2616 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
2617
2618         * appdomain.c (set_domain_search_path): Allow this to be called if
2619         domain->setup is not yet set.
2620
2621         * loader.c (mono_method_get_index): New helper function.
2622
2623         * loader.c reflection.c: Use mono_method_get_index ().
2624
2625         * class.c (mono_class_get_method_from_name_flags): New helper method.
2626
2627         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
2628         this.
2629
2630         * class.c (mono_class_get_cctor): New helper method.
2631
2632         * string-icalls.c object.c class.c marshal.c reflection.c: Use
2633         mono_class_get_method () to look up methods.
2634
2635 2005-02-01  Miguel de Icaza  <miguel@novell.com>
2636
2637         * console-io.c: Fix the build, this should work on Windows.
2638
2639 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
2640
2641         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
2642         be set to null to keep things valid
2643
2644 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2645
2646         * icall.c: added Console 2.0 icalls.
2647         * Makefile.am: added console-io.[ch]
2648         * console-io.[ch]: internal calls for Console 2.0 API.
2649
2650 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
2651
2652         * class.c: make sure we consider all the interfaces
2653         when calculating max_interface_id (bug found by
2654         Jeroen Frijters running ikvm).
2655
2656 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
2657
2658         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
2659         valuetype fields to null.
2660
2661         * object.c (set_value): Ditto. Fixes #71669.    
2662
2663 2005-01-31  Martin Baulig  <martin@ximian.com>
2664
2665         * metadata.c (mono_metadata_has_generic_params): New public
2666         function; checks whether something is a generic method.
2667
2668 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
2669
2670         * appdomain.c: fix infinite recursion when adding assemblies.
2671
2672 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
2673
2674         * object.c: Fix small typo to return all items for Environment.
2675         GetCommandLineArgs.
2676
2677 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
2678
2679         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
2680         reflection.c: more domain and assembly-unload related fixes
2681         and memory leaks plugs.
2682
2683 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
2684
2685         * 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.
2686
2687 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
2688
2689         * loader.c (mono_method_signature): Make this method lazy
2690         (mono_get_method_from_token): Don't computate the signature here.
2691
2692         Doing this saves quite a bit of memory. I got 90 kb on starting up
2693         monodoc. It should also save some disk reads on startup.
2694
2695         * *: MonoMethod->signature might be NULL now. You *MUST* use
2696         mono_method_signature.
2697
2698 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
2699
2700         * object.c (mono_runtime_get_main_args): Return an array from the
2701         current domain here. Fixes #71938.
2702
2703 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
2704
2705         * monitor.c: formatting changes to comply with the
2706         mono coding style and remove #ifdefs from the code.
2707
2708 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
2709
2710         * metadata.c, private.h: remove some unneeded data
2711         and use a more compact representation for table schemas.
2712
2713 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
2714
2715         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
2716         to get a better distribution in hash tables.
2717         * *.c: use mono_aligned_addr_hash() where appropriate.
2718         * assembly.c: make var static.
2719
2720 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
2721
2722         * domain-internals.h: Put MonoJitInfo on a diet.
2723
2724         * domain.c: Fix a warning.
2725
2726 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
2727
2728         * gc.c: rework the gc handles code to reuse handles
2729         when freed.
2730
2731 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
2732
2733         * domain.c: fixed long standing bug in mono_string_equal() which
2734         was brought to light with the ldstr changes.
2735
2736 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
2737
2738         * reflection.c: Remove warning by adding missing include for marshal.h
2739
2740 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
2741
2742         * domain.c, object.c: change the ldstr_table to hold
2743         MonoString* as keys: makes the runtime isinterned lookup
2744         faster and simplifies memory management.
2745
2746 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
2747  
2748         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
2749         possible to add imperative security checks before calling the icall.
2750         * reflection.c: Return security attributes on the original MonoMethod
2751         (and not the wrapped one). This fix permissions on icalls.
2752
2753 2005-01-25  Dick Porter  <dick@ximian.com>
2754
2755         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
2756         the check for mktime() support actually test the mktime() return
2757         value.  "Fixes" bug 71682, though the output is still different to
2758         MS.
2759
2760 2005-01-25  Martin Baulig  <martin@ximian.com>
2761
2762         * class.c (mono_class_is_assignable_from): Make this work for
2763         generic instances.
2764
2765 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
2766
2767         * marshal.c (mono_string_utf8_to_builder)
2768         (mono_string_builder_to_utf16): We might not have ownership of the
2769         string. In thise case, we need to create a new buffer.
2770
2771         * object-internals.h (mono_stringbuilder_capacity): sb->str might
2772         be null, in which case, use the default capacity.
2773
2774 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
2775
2776         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
2777         GC events to the profiler.
2778
2779 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
2780
2781         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
2782         if you don't want the GC to run.
2783
2784 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
2785
2786         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
2787         start providing a GC API and keeping different implementations in
2788         their own file.
2789         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
2790
2791 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
2792
2793         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
2794         mmap rather than allocating a huge buffer.
2795         (mono_debug_close_mono_symbol_file): Free the buffer allocated
2796         above.
2797
2798 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
2799
2800         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
2801         and CheckExecutionRights.
2802         * reflection.c|h: Keep the index of the declarative security to be 
2803         used, instead of the pointer, when AOT compiler is used. Also add 
2804         class initialization when requesting demands.
2805         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
2806         CheckExecutionRights. Both properties are now FALSE by default, and
2807         unmodifiable, unless the --security option is used.
2808
2809 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
2810
2811         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
2812         reflection.c: properly refcount images and assemblies, many leaks fixed.
2813
2814 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2815
2816         * threadpool.c: increase the timeout for threads in the thread pool to
2817         10s.  Fixes bug #67159.
2818
2819 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
2820
2821         * class-internals.h: Sun's compiler insists on explicit
2822         signed on bit fields to handle then correctly.
2823
2824 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
2825
2826         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
2827         Make the size of the array fit only the number of invalid path
2828         chars that we have.
2829
2830         * class.c (_mono_class_get): Improve the error reporting when a
2831         class referenced is not found, to assist debugging. 
2832
2833 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
2834
2835         * threads.c: fix off-by-one error.
2836         * domain.c: free data allocated in the domain.
2837
2838 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
2839
2840         * reflection.c (mono_method_body_get_object): Fill out exception info
2841         as well.
2842
2843         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
2844         structure.
2845         
2846 2005-01-19  Martin Baulig  <martin@ximian.com>
2847
2848         * loader.c (mono_get_method_constrained): Make this work again.
2849
2850 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
2851
2852         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
2853         guint16 to match the managed side.
2854
2855         * reflection.c (mono_reflection_body_get_object): Fill out local
2856         variables array.
2857
2858         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
2859         as well.
2860
2861         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
2862         'local_var_sig_token'.
2863
2864 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
2865
2866         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
2867         System.Drawing.
2868
2869         * reflection.c (mono_method_body_get_object): Handle abstract and
2870         runtime methods.
2871
2872 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
2873
2874         * marshal.c, loader.c, class-internals.h, reflection.c:
2875         store the emthod data for a wrapper in an array instead of a list.
2876
2877 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
2878
2879         * marshal.c: change the code to allocate memory more
2880         conservatively for method wrappers.
2881
2882 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
2883
2884         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
2885         fields from MonoClass to the marshal info structure where they belong.
2886
2887 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
2888
2889         * class.c, object.c, class-internals.h, marshal.c: rearrange
2890         some fields and tweak some types to lower memory usage.
2891
2892 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
2893
2894         * threads.c (signal_thread_state_change): Handle the case when the
2895         target thread is the current thread.
2896
2897         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
2898
2899         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
2900         emit_ptr_to_object_conv. 
2901
2902         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
2903         marshalling. Fixes #71352.
2904
2905 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
2906
2907         * metadata.h, blob.h: move table enum to blob.h so it can be included
2908         in any header.
2909         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
2910         cut the size of MonoImage/MonoDynamicImage.
2911
2912 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
2913
2914         * profiler.c (mono_profiler_install_simple): Fix default arguments.
2915
2916 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2917
2918         * reflection.c, reflection.h, icall.c: add a function to check
2919         if an attribute type is defined for a metadata object.
2920
2921 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
2922
2923         * object-internals.h: Added some needed fields from StringBuilder class.
2924         * marshal.c: Set the maxCapacity when creating a StringBuilder.
2925
2926 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
2927
2928         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
2929         threads before shutting down the runtime.
2930
2931         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
2932
2933 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
2934
2935         * object-internal.h, threads.c: implement stacksize and 
2936         parameterized thread start functionality (requires
2937         matching corlib). Marked broken code for later removal.
2938
2939 2005-01-12  Martin Baulig  <martin@ximian.com>
2940
2941         * class-internals.h (MonoGenericClass): Moved the `initialized'
2942         flag to MonoDynamicGenericClass, removed `init_pending'.
2943         (MonoGenericInst): Added `is_reference' flag.
2944
2945 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
2946
2947         * reflection.c (mono_image_create_pefile): Only set the pe_offset
2948         inside the MSDOS header. Fixes #71201.
2949
2950         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
2951         gc thread.
2952         (mono_domain_finalize): Ditto.
2953
2954 2005-01-12  Martin Baulig  <martin@ximian.com>
2955
2956         * class.c (mono_get_shared_generic_class): Use the cache for
2957         non-dynamic generic classes.
2958
2959         * class-internals.h (mono_class_create_generic_2): Removed
2960         function prototype, this function is now static inside class.c.
2961
2962         * class.c (mono_class_create_generic_2): Made this static, only
2963         call it from mono_class_init() and mono_class_setup_parent().
2964         (collect_implemented_interfaces_aux): Call mono_class_init() on
2965         the interfaces we collect.
2966         (mono_class_setup_vtable): Call mono_class_init (class->parent).
2967
2968 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
2969
2970         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
2971         it a real thread handle.
2972
2973         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
2974         MonoJitExceptionInfo, since each catch clause needs its own variable.
2975         
2976 2005-01-11  Dick Porter  <dick@ximian.com>
2977
2978         * image.c (mono_pe_file_open): New variant on mono_image_open()
2979         that does not set up the CLI metadata; used for FileVersionInfo so
2980         it can get the data for windows binaries too.
2981         
2982         * process.c (process_read_string_block): Don't read off the end of
2983         the StringTable block.
2984
2985         These both fix bug 70766.
2986
2987 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
2988
2989         * gc.c: set some fields to NULL at GC cleanup time.
2990         * threads.c: if we quit the main thread, call exit ().
2991
2992 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
2993
2994         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
2995
2996 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
2997
2998         * threads.h, threads.c, object.c: added accessor and settor for
2999         main_thread. Handle it specially when exiting from it: wait
3000         for other foreground threads to exit.
3001
3002 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
3003
3004         * process.c, verify.c: remove some bloat.
3005
3006 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
3007
3008         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
3009         the calling convention to cdecl under win32.
3010
3011 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
3012
3013         * object.c (mono_object_get_size): New function to get the size of
3014         an object instance.
3015
3016         * profiler.c (simple_allocation): Use above.
3017
3018 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
3019
3020         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
3021         ves_icall_System_AppDomain_getRootDomain (as it's not required to
3022         get an appdomain by it's id and we can't assume the root's id is 0).
3023         * domain-internals.h: Change the function prototype to match.
3024         * icall.c: Change the icall table for AppDomain.
3025
3026 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
3027
3028         * locales.c (string_invariant_compare_char): Only compute
3029         GUnicodeTypes in the case where we need them.  Test for ordinality
3030         first and return if so.
3031
3032         From the commit:
3033
3034                 /*
3035                  * FIXME: here we must use the information from c1type and c2type
3036                  * to find out the proper collation, even on the InvariantCulture, the
3037                  * sorting is not done by computing the unicode values, but their
3038                  * actual sort order.
3039                  */
3040
3041 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
3042
3043         * loader.c: for P/Invoke methods, allow the "Internal" shared
3044         library name to refer to the calling process symbol namespace.
3045
3046 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
3047
3048         * Makefile.am: Add the security manager to the build.
3049         * security-manager.c|h: New. Initialization of the security manager.
3050
3051 2005-01-07  Dick Porter  <dick@ximian.com>
3052
3053         * threads.c: 
3054         * monitor.c: Update thread state during Monitor and WaitHandle
3055         waits.  Fixes bug 71031.
3056
3057 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
3058
3059         * reflection.c (property_encode_signature): Correctly handle when the
3060         property has no methods.
3061
3062 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
3063
3064         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
3065         
3066         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
3067         fields from mb, not rmb. Fixes #71017.
3068
3069         * marshal.c (emit_ptr_to_str_conv): Add support for 
3070         ByValTStr -> string conversion. Fixes #71015.
3071
3072         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
3073
3074         * mempool.c (mono_mempool_contains_addr): New helper function.
3075
3076 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
3077
3078         * metadata.c (mono_metadata_compute_size): Fix size calculation of
3079         HasSematics encoded fields.
3080         
3081         * metadata.c (mono_type_to_unmanaged): Improve error message for 
3082         invalid string marshalling.
3083
3084         * metadata.c: Fix warnings.
3085         
3086 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
3087
3088         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
3089         profiler support.
3090
3091 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
3092
3093         * domain.c object.c domain-internals.h: Revert part of r38077 since the
3094         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
3095         tests.
3096
3097 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
3098
3099         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
3100         so methods containing these can be AOTed.
3101
3102 2005-01-03  Martin Baulig  <martin@ximian.com>
3103
3104         * loader.c (find_method): Removed the hack for generic instances.
3105         (method_from_memberref): If our parent is a generic instance, pass
3106         its generic type definition to find_method() and then inflate the
3107         method.
3108         (mono_get_method_constrained): Pass the generic type definition to
3109         find_method() and inflate the method later.
3110
3111         * class-internals.h (MonoStats): Added `generic_class_count'.
3112
3113         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
3114         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
3115
3116         * reflection.c (mono_custom_attrs_from_params): Don't ignore
3117         generic type definitions.
3118
3119 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
3120
3121         * loader.c icall.c: Fix warnings.
3122
3123 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
3124
3125         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
3126         blittable types. Fixes #70864.
3127
3128 2004-12-29  Martin Baulig  <martin@ximian.com>
3129
3130         * icall.c
3131         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
3132
3133         * reflection.c (mono_method_get_object): Create a
3134         "System.Reflection.MonoGenericMethod" for inflated methods; don't
3135         call mono_get_inflated_method().
3136
3137         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
3138
3139 2004-12-27  Martin Baulig  <martin@ximian.com>
3140
3141         * class-internals.h (MonoMethod): Added `is_inflated' flag.
3142         (MonoMethodInflated): Added `inflated' field.
3143
3144         * class.c (mono_class_inflate_generic_method): Don't really
3145         inflate the method here; just set the `is_inflated' flag in the
3146         MonoMethod.
3147         (mono_class_get_inflated_method): Actually inflate the method here
3148         if it's not already inflated; we use the MonoMethodInflated's new
3149         `inflated' field as a cache.
3150
3151 2004-12-26  Martin Baulig  <martin@ximian.com>
3152
3153         * class.c
3154         (inflate_generic_class): Moved some code out of inflate_generic_type().
3155         (mono_class_inflate_generic_method): If we're already inflated,
3156         inflate the context and use the declaring method; ie. make sure
3157         the declaring method of an inflated method is always the generic
3158         method definition.
3159         (mono_class_create_from_typedef): Create
3160         `class->generic_container->context->gclass'.
3161
3162 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
3163
3164         * metadata-internals.h, marshal.c, reflection.c: More
3165         MonoGHashTable->GHashTable.
3166
3167         * domain-internals.h, class.c: Change MonoGHashTable's into
3168         GHashTables for some cases where no gc stuff is used
3169
3170         All users: update apis
3171
3172 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
3173
3174         * metadata.c (builtin_types): Make this `const'. Makes this get
3175         put into the shareable section.
3176         (mono_metadata_init): Casts to make gcc happy.
3177
3178 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
3179
3180         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
3181
3182 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
3183
3184         * icall.c: Added an internal call to retrieve the position and length
3185         of assembly-level declarative security attributes (RequestMinimum, 
3186         RequestOptional and RequestRefuse). This is used by the Assembly class
3187         to re-create the corresponding permission sets.
3188
3189 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
3190
3191         * marshal.c: fix the stelemref wrapper to be type correct
3192         (and faster).
3193
3194 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
3195
3196         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
3197         to do key & 0x7fffffff. Hashtable already does this. It just
3198         results in longer code.
3199
3200 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
3201
3202         * appdomain.c: Bump corlib version.
3203         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
3204         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
3205         * reflection.c|h: Add functions to get declarative security infos
3206         (blob position and length) for assemblies, classes and methods.
3207
3208 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
3209
3210         * reflection.c: sort the constant table (bug #70693).
3211
3212 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
3213
3214         * object-internals.h, threads.c, domain.c: add accessors for
3215         the MonoThread and MonoDomain tls keys.
3216
3217 2004-12-18  Martin Baulig  <martin@ximian.com>
3218
3219         * class.c (inflate_generic_type): If we're inflating a generic
3220         instance, set `ngclass->context->container = context->container';
3221         ie. the container we inflated into.
3222
3223         * metadata.c (mono_metadata_parse_generic_param): Reflect above
3224         inflate_generic_type() changes.
3225
3226 2004-12-17  Martin Baulig  <martin@ximian.com>
3227
3228         * class-internals.h
3229         (MonoGenericClass): Replaced `MonoType *generic_type' with
3230         `MonoClass *generic_class'.  Removed `dynamic_info'; if
3231         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
3232         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
3233
3234 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
3235
3236         * exception.c (mono_exception_from_token): New helper function.
3237
3238 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
3239
3240         * assembly.c (mono_assembly_load_with_partial_name): Call 
3241         mono_assembly_loaded before invoking the preload hooks. Fixes
3242         #70564.
3243
3244         * object-internals.h (MonoThread): Change culture_info and 
3245         ui_culture_info into an array.
3246
3247         * threads.c: Cache culture info objects from more than one appdomain.
3248
3249         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
3250         current UI culture.
3251
3252 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
3253
3254         * threads.h threads.c appdomain.c: Clear the culture_info field of
3255         all threads during unloading if they point to an object in the dying
3256         appdomain.
3257
3258 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
3259
3260         * culture-info.h (TextInfoEntry): New struct
3261         * object-internals.h: sync with managed
3262         * locales.c: fill the `text_info_data' field
3263         * culture-info-tables.h: update
3264
3265 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
3266
3267         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
3268         collector.
3269
3270 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
3271
3272         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
3273         (ves_icall_ModuleBuilder_getMethodToken): Ditto
3274
3275 2004-12-12  Martin Baulig  <martin@ximian.com>
3276
3277         * mono-debug-debugger.c (write_type): If we're an enum and the
3278         builtin types have already been initialized, call mono_class_init().
3279
3280 2004-12-11  Martin Baulig  <martin@ximian.com>
3281
3282         * metadata.c (mono_metadata_load_generic_params): Added
3283         `MonoGenericContainer *parent_container' argument; automatically
3284         compute `container->is_method'; pass the correct owner to
3285         get_constraints().      
3286
3287         * reflection.c (compare_genericparam): Sort the GenericParam table
3288         according to increasing owners. 
3289
3290 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
3291
3292         * profiler.c: allow disabling the default profiler.
3293
3294 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
3295
3296         * decimal.c, icall.c: allow disabling System.Decimal support.
3297
3298 2004-12-09  Marek Safar <marek.safar@seznam.cz>
3299
3300         * reflection.c: Add support for null attribute arguments.
3301
3302 2004-12-09  Martin Baulig  <martin@ximian.com>
3303
3304         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
3305         names to get rid of compiler warnings.
3306
3307 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
3308
3309         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
3310         mono_marshal_load_type_info (). Fixes #69625.
3311         (mono_marshal_get_ptr_to_struct): Likewise.
3312
3313 2004-12-08  Martin Baulig  <martin@ximian.com>
3314
3315         * mono-debug.h: Bumped version number to 47.
3316
3317         * mono-debug-debugger.c
3318         (mono_debugger_event_handler, mono_debugger_event): Take two
3319         guint64 arguments insteed of a gpointer and a guint32.  
3320
3321 2004-12-08  Martin Baulig  <martin@ximian.com>
3322
3323         * debug-mono-symfile.h
3324         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
3325         `address' to `native_offset'.
3326
3327 2004-12-08  Martin Baulig  <martin@ximian.com>
3328
3329         * class.c (mono_class_create_from_typespec): Only inflate if we
3330         either have `context->gclass' or `context->gmethod'.
3331
3332 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
3333
3334         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
3335
3336         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
3337
3338         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
3339
3340         * reflection.c (mono_assembly_get_object): Remove the workaround put
3341         in for the release.
3342         
3343         * appdomain.c: Use the corlib_internal field from MonoAssembly.
3344
3345         * appdomain.c: Bump corlib version.
3346
3347         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
3348         be visible in other appdomains.
3349
3350 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
3351
3352         * threads.c: Interlocked inc and dec for longs were messed up,
3353         use a KISS based impl for this. Fixes 70234
3354
3355 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
3356
3357         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
3358
3359 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
3360
3361         * icall.c: fix to follow policy not to allow struct
3362         arguments in icalls.
3363
3364 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3365
3366         * process.c: make the patch that handles spaces in file paths work
3367         on mono/windows too.
3368
3369 2004-12-06  Martin Baulig  <martin@ximian.com>
3370
3371         * class.c (mono_class_create_generic): Call
3372         mono_class_setup_supertypes() if we're dynamic.
3373         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
3374
3375 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
3376
3377         * object-internals.h: Add new fields to MonoThread.
3378
3379         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3380
3381         * icall.c threads-types.h threads.c: Add new icalls.
3382
3383         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
3384
3385         * object-internals.h (MonoReflectionAssembly): Sync object layout with
3386         managed side.
3387
3388         * appdomain.c: Bump corlib version.
3389
3390         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
3391         internal assemblies. Fixes #69181.
3392
3393 2004-12-05  Martin Baulig  <martin@ximian.com>
3394
3395         * class.c (mono_class_inflate_generic_signature): Make this a
3396         no-op if `context' is NULL or we don't have any type parameters;
3397         also copy `sentinelpos'.        
3398
3399 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
3400
3401         * image.c: Add unbox_wrapper_cache.
3402
3403         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
3404
3405         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
3406         function generator.
3407         
3408         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
3409         Fixes #70173.
3410
3411         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
3412         
3413 2004-12-04  Martin Baulig  <martin@ximian.com>
3414
3415         * loader.c (mono_method_get_signature_full): New public function;
3416         like mono_method_get_signature(), but with an additional
3417         `MonoGenericContext *' argument.
3418
3419         * class.c (mono_class_inflate_generic_signature): Formerly known
3420         as inflate_generic_signature(); make this public.
3421
3422 2004-12-04  Martin Baulig  <martin@ximian.com>
3423
3424         * metadata.c
3425         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
3426         instead of a `MonoGenericContainer *'.  
3427         (mono_metadata_parse_array_full): Likewise.
3428         (mono_metadata_parse_signature_full): Likewise.
3429         (mono_metadata_parse_method_signature_full): Likewise.
3430         (mono_metadata_parse_generic_inst): Likewise.
3431         (mono_metadata_parse_generic_param): Likewise.
3432         (mono_metadata_parse_mh_full): Likewise.
3433         (mono_type_create_from_typespec_full): Likewise.
3434
3435 2004-12-03  Martin Baulig  <martin@ximian.com>
3436
3437         * class-internals.h (MonoGenericContainer): Replaced the
3438         `MonoGenericContext * pointer with a `MonoGenericContext'
3439         structure and made it the first element.
3440
3441 2004-12-03  Martin Baulig  <martin@ximian.com>
3442
3443         * class.c
3444         (inflate_generic_type): Set the `context->container' when creating
3445         a new MonoGenericContext.
3446         (mono_class_inflate_generic_method): Likewise.
3447         (mono_class_create_from_typespec): Just use `context->container'
3448         to get the container.
3449
3450         * loader.c (method_from_methodspec): Set `context->parent' from
3451         `context->container' - and if that's a method container, use its
3452         parent.  Also set the `context->container' when creating a new
3453         MonoGenericContext.
3454         (mono_get_method_from_token): Use just `context->container' to get
3455         the container.
3456
3457         * metadata.c (do_mono_metadata_parse_generic_class): Also set
3458         `gclass->context->container'.
3459
3460         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
3461         the `context->container' when creating a new MonoGenericContext.
3462
3463 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
3464
3465         * reflection.c (compare_genericparam): Sort params with identical
3466         owner by their number. Fixes gen-111 on sparc.
3467
3468 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
3469
3470         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
3471         around the domain changes.
3472
3473         * appdomain.c (mono_domain_unload): Handle the case when the thread
3474         calling Unload is itself being aborted during unloading. Fixes #70022.
3475
3476         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
3477
3478         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
3479         checkpoint_func as an icall so it gets a wrapper.
3480         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
3481         in the cross-appdomain wrappers too.
3482
3483         * threads.c (mono_thread_has_appdomain_ref): Make this public.
3484
3485         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
3486
3487         * reflection.c: Fix some memory leaks.
3488         
3489 2004-12-02  Martin Baulig  <martin@ximian.com>
3490
3491         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
3492
3493         * metadata.c (generic_class_cache): New static hashtable.
3494         (mono_metadata_lookup_generic_class): New public method.
3495
3496 2004-12-02  Martin Baulig  <martin@ximian.com>
3497
3498         * class.c (mono_class_create_from_typedef): Call
3499         mono_class_setup_parent() and mono_class_create_mono_type() before
3500         parsing the interfaces.
3501
3502 2004-12-02  Martin Baulig  <martin@ximian.com>
3503
3504         * metadata.c (generic_inst_cache): New static hashtable.
3505         (mono_metadata_lookup_generic_inst): New public function.
3506         (mono_metadata_inflate_generic_inst): New public function.
3507         (mono_metadata_parse_generic_inst): New public function.
3508         (do_mono_metadata_parse_generic_class): Use the new
3509         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
3510         since this'll also use the cache.
3511
3512         * reflection.c (mono_reflection_bind_generic_method_parameters):
3513         Use mono_metadata_lookup_generic_inst() to use the new cache.
3514
3515         * class.c (inflate_mono_type): Use
3516         mono_metadata_inflate_generic_inst() to inflate a generic
3517         instance; this'll also use the new cache.
3518
3519         * loader.c (method_from_methodspec): Use
3520         mono_metadata_parse_generic_inst() and
3521         mono_metadata_inflate_generic_inst() rather than parsing it
3522         manually, so we can use the new cache.
3523
3524 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
3525
3526         * threads.c (wait_for_tids): Do not incorrectly free threads when 
3527         the wait times out.
3528
3529 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
3530
3531         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
3532         iter->args based on whether parameters are passed in registers (i.e.
3533         MONO_ARCH_REGPARMS is defined)
3534
3535 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
3536
3537         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
3538         the exception message. Fixes #70070.
3539         (method_from_methodspec): Fix warnings.
3540
3541 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3542
3543         * process.c: (complete_path) return the path quoted
3544
3545 2004-12-01  Martin Baulig  <martin@ximian.com>
3546
3547         * class-internals.h (MonoGenericInst): New structure.
3548         (MonoGenericClass): Replaced `type_argc', `type_argv' and
3549         `is_open' with `MonoGenericInst *inst'.
3550         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
3551         `is_open' with `MonoGenericInst *inst'.
3552
3553 2004-11-30  Martin Baulig  <martin@ximian.com>
3554
3555         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
3556
3557         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
3558         to `generic_class_cache'.
3559
3560         * metadata.c
3561         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
3562         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
3563         (mono_generic_inst_is_valuetype): Renamed to
3564         mono_generic_class_is_valuetype().
3565
3566         * class-internals.h
3567         (MonoGenericInst): Renamed to MonoGenericClass.
3568         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
3569         (MonoClass): Renamed `generic_inst' to `generic_class'.
3570         (MonoGenericContext): Renamed `ginst' to `gclass'.
3571
3572         * object-internals.h
3573         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
3574
3575         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
3576         mono_reflection_generic_class_initialize().
3577
3578         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
3579         now known as "System.Reflection.MonoGenericClass".
3580         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
3581
3582 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
3583
3584         * class-internals.h: Added a flag field to MonoClass to cache the
3585         declarative security attributes actions associated with the class.
3586         * domain-internals.h: Added booleans to MonoJitInfo to cache the
3587         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
3588         applicable to the JITted method.
3589         * reflection.c|h: Added functions to extract (as flags) which security
3590         actions are available (declaratively) for a method, class or assembly.
3591         * metadata.c|h: Added functions to search the declarative security
3592         table in the metadata.
3593         
3594 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
3595
3596         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
3597         EXPORTEDTYPES are already in the class name cache, so there is no
3598         need to add extra code here to look at them. Just removes a bit of
3599         cruft.
3600
3601         (ves_icall_System_Environment_get_TickCount): No need for #if
3602         WINDOWS. We already have the code in io-layer.
3603
3604 2004-11-28  Martin Baulig  <martin@ximian.com>
3605
3606         * loader.c
3607         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
3608         Fixes gen-112.cs.
3609
3610 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
3611
3612         * assembly.c (do_mono_assembly_open): Instead of having a
3613         conditional WITH_BUNDLE, incorporate support for bundles here, by
3614         having a global `bundles' variable holding a pointer to the actual
3615         bundles. 
3616
3617         (mono_register_bundled_assemblies): New API call used by the
3618         bundle code. 
3619
3620         See mkbundle.1 for details.
3621         
3622 2004-11-27  Martin Baulig  <martin@ximian.com>
3623
3624         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
3625         the vtable for generic methods.
3626
3627 2004-11-26  Martin Baulig  <martin@ximian.com>
3628
3629         * metadata.c
3630         (mono_metadata_generic_method_hash): New public function.
3631         (mono_metadata_generic_method_equal): Likewise.
3632
3633         * class-internals.h
3634         (MonoGenericContainer): Added `GHashTable *method_hash'.
3635
3636         * reflection.c (ReflectionMethodBuilder): Added
3637         `MonoGenericContainer *generic_container'.
3638         (reflection_methodbuilder_to_mono_method): Don't create a new
3639         MonoGenericContainer each time we're called.
3640         (mono_reflection_bind_generic_method_parameters): Use
3641         `container->method_hash' to cache the results so we don't create a
3642         different method if we're called several times with the same
3643         arguments.
3644
3645         * loader.c (method_from_methodspec): Use the new
3646         `container->method_hash' here, too.
3647
3648 2004-11-26  Martin Baulig  <martin@ximian.com>
3649
3650         * class.c (inflate_generic_signature): Correctly compute
3651         `res->has_type_parameters'.
3652         (mono_class_vtable): Use the `has_type_parameters' flag to
3653         determine whether we're a generic method.
3654
3655         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
3656
3657 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
3658
3659         * object.c (mono_runtime_run_main): Fix a small memory leak.
3660
3661 2004-11-25  Martin Baulig  <martin@ximian.com>
3662
3663         * class.c (set_generic_param_owner): Fixed the loop.
3664
3665 2004-11-25  Martin Baulig  <martin@ximian.com>
3666
3667         * object.c (mono_class_vtable): Don't create any JIT wrappers for
3668         generic methods.
3669
3670 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
3671
3672         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
3673         names. Fixes #69787.
3674
3675 2004-11-24  Martin Baulig  <martin@ximian.com>
3676
3677         * class.c (mono_class_create_generic_2): If we don't have a
3678         `ginst->parent', inflate `gklass->parent' to get our parent.
3679
3680 2004-11-24  Martin Baulig  <martin@ximian.com>
3681
3682         * reflection.c (compare_genericparam): Correctly sort the
3683         GenericParam table; fixes #69779.
3684
3685 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
3686
3687         * reflection.c: When writing a PE file, don't create a huge
3688         buffer in memory. Just write the arrays we have to the file.
3689         This reduces memory usage.
3690
3691         * metadata-internals.h: MonoDynamicStream pefile is no longer used
3692         globally.
3693
3694 2004-11-17  Martin Baulig  <martin@ximian.com>
3695
3696         * class.c (mono_class_init): Don't setup `class->parent' for
3697         dynamic instances; moved this to mono_class_generic_2().
3698         (mono_class_create_generic): Also set `klass->inited' for dynamic
3699         generic instances.
3700         (mono_class_create_generic_2): Don't do anything for dynamic
3701         generic instances.  Set `klass->parent' here and also call
3702         mono_class_setup_parent() here. 
3703
3704         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
3705         `MonoType *parent' argument; set `ginst->parent' before calling
3706         mono_class_create_generic_2(), so we set the correct parent.
3707
3708 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
3709
3710         * reflection.c: allow getting attributes from ModuleBuilder
3711         (used by ikvm).
3712
3713 2004-11-17  Martin Baulig  <martin@ximian.com>
3714
3715         * class.c (mono_class_create_from_typedef): If a type parameter is
3716         inherited from an outer class, set its owner to that class.
3717
3718 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
3719
3720         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
3721           for (int*) written size. This fixes bug #69592.
3722
3723 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
3724
3725         * icall.c: Added IsAuthenticodePresnet internal call.
3726         * image.c|h: New function that check a MonoImage for an Authenticode
3727         signature in the certificate PE data directory.
3728         * security.c|h: New internal call to ask the runtime if an 
3729         Authenticode signature seems referenced in the PE header.
3730
3731 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
3732
3733         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
3734
3735         * reflection.c (mono_image_create_pefile): Free the assembly streams
3736         after writing out the assembly file.
3737
3738         * object.c (mono_runtime_run_main): Fix small memory leak.
3739
3740         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
3741         property access modifiers. Fixes #69389.
3742
3743 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
3744
3745         * domain.c, object.c, object-internals.h, domain-internals.h,
3746         object.h, marshal.c: keep dynamic code info per domain.
3747
3748 2004-11-15  Martin Baulig  <martin@ximian.com>
3749
3750         * class.c (mono_type_get_name_recurse): Put type arguments in
3751         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
3752         see bug #68387.
3753
3754 2004-11-15  Martin Baulig  <martin@ximian.com>
3755
3756         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
3757         (mono_class_setup_vtable): When computing `the_cname' for a
3758         generic instance, don't include the namespace since we'd otherwise
3759         add it twice.
3760
3761 2004-11-15  Martin Baulig  <martin@ximian.com>
3762
3763         * class.c (mono_class_create_generic): Changed return type to void.
3764         (mono_class_create_generic_2): New public function; setup
3765         `class->method', `class->field' and `class->interfaces' here
3766         instead of in mono_class_init().
3767
3768         * class.h (mono_class_create_generic): Moved to class-internals.h.
3769
3770 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
3771
3772         * reflection.c (mono_image_create_pefile): take a file HANDLE.
3773         rather than writing to memory, write to this file. Right now,
3774         we are just writting into a buffer, and copying that. However
3775         we can avoid the buffer later.
3776
3777         (mono_dynamic_stream_reset): new function
3778
3779         * icall.c, object-internals.h: update for the above.
3780
3781 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
3782
3783         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
3784         have been using gc'd memory. First it is slower, unlikely
3785         the comment in the source code said, secondly, it increases
3786         our footprint to do it in the gc.
3787
3788         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
3789         the method so that it does not have to copy to managed code.
3790
3791 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
3792
3793         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
3794
3795 2004-11-12  Martin Baulig  <martin@localhost>
3796
3797         * reflection.c (mono_image_create_token): Allow generic method
3798         definitions here, since they may appear in an `.override'; see
3799         gen-98/gen-99 for an example.
3800
3801 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
3802
3803         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
3804         #69365.
3805
3806         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
3807         descriptive.
3808
3809 2004-11-11  Martin Baulig  <martin@ximian.com>
3810
3811         * class.c (mono_class_setup_vtable): In an explicit interface
3812         implementation, the method name now includes the arity.
3813
3814 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
3815
3816         * object.c (mono_array_full_copy): Fix warning.
3817
3818 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
3819
3820         * appdomain.c: Removed look_for_method_by_name(). Use the new method
3821         mono_class_get_method_from_name() instead.
3822         
3823         * class-internals.h: Added two new types of wrappers. 
3824         Added MonoRemotingTarget enum. Added new trampoline function type, which
3825         takes an additional MonoRemotingTarget value as parameter, so it is
3826         possible to request a trampoline for a specific target.
3827         
3828         * class.c: Added new mono_class_get_method_from_name() method.
3829         
3830         * class.h: In MonoRemoteClass, we can have now to vtables, one for
3831         general remoting sinks and one specific for cross domain calls.
3832         
3833         * debug-helpers.c: Added new wrapper names.
3834         
3835         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
3836         of a remote class.
3837         
3838         * image.c: Porperly delete value objects form the remoting invoke hashtable.
3839         
3840         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
3841         with several other methods (mono_marshal_get_xappdomain_dispatch,
3842         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
3843         and others) can generate a fast remoting wrapper for cross domain calls.
3844         More information can be found in docs/remoting.
3845         Other changes: Removed mono_find_method_by_name, and used
3846         mono_class_get_method_from_name instead.
3847         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
3848         is stored in the remoting invoke hashtable.
3849         
3850         * marshal.h: published the new method for getting the xdomain wrapper,
3851         and also added a method for getting the adequate wrapper for a given
3852         method and target.
3853         
3854         * object-internals.h, object.c: Added a couple of methods for capying and
3855         cloning arrays.
3856         Modified mono_install_remoting_trampoline, which takes the new remoting
3857         trampoline that has a remoting target as parameter.
3858         mono_class_proxy_vtable now also takes a remoting target as parameter, and
3859         will return the most suitable vtable for the target.
3860         Added mono_remote_class_vtable, which returns the vtable of a remote class
3861         (which can be the normal remoting vtable or the xdomain vtable).
3862         
3863         * threads.c: the xdomain invoke and dispatch wrappers must also be
3864         protected against interruptions.
3865
3866 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3867
3868         * icall.c: use memmove in BlockCopyInternal when the source and
3869         destination arrays are the same.
3870
3871 2004-11-09  Martin Baulig  <martin@ximian.com>
3872
3873         * class-internals.h (MonoGenericContainer): Removed `method' and
3874         `signature', replaced them with `is_method' and `is_signature'
3875         flags.  Added `context'.
3876
3877         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
3878         instead of a `MonoGenericContainer *'.
3879
3880         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
3881         for dynamic type parameters.
3882         (mono_metadata_load_generic_params): Setup `container->context'.
3883
3884         * reflection.c (mono_reflection_setup_generic_class): Setup
3885         `tb->generic_container->context'.
3886         (do_mono_reflection_bind_generic_parameters): Use
3887         mono_class_inflate_generic_type() to correctly inflate types,
3888         rather than using our own hack just for MONO_TYPE_VAR.
3889
3890 2004-11-09  Martin Baulig  <martin@ximian.com>
3891
3892         * class.c (mono_class_inflate_generic_method): Small fix; don't
3893         crash here.
3894
3895         * icall.c
3896         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
3897         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
3898         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
3899         (ves_icall_Type_BindGenericParameters): Likewise.
3900         (ves_icall_Type_get_IsGenericInstance): Likewise.
3901         (ves_icall_Type_GetGenericParameterPosition): Likewise.
3902         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
3903         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3904         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3905
3906 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
3907
3908         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
3909         assembly versions and public key tokens. Fixes #69113.
3910
3911 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
3912
3913         * metadata.c: fix bug introduced with the type cache changes
3914         on 2004-11-06.
3915
3916 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
3917
3918         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
3919         the MonoClass pointer instead of the token in exception clauses.
3920         * reflection.c: updates for the above and make the code not depend
3921         on the structure of MonoExceptionClause.
3922
3923 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
3924
3925         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3926         Add support for dynamic assemblies. Fixes #69114.
3927
3928         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
3929
3930 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
3931
3932         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
3933         since most only those methods use it. the code member of
3934         MonoMethodPInvoke was dead, so that can be removed too. Also,
3935         remove inline_count (again, not used), and move slot so that it
3936         can share bits with some other flags. This saves 8 bytes in the
3937         structure and gives us about 50 kb back for mcs helloworld.cs
3938
3939         * *.[ch]: Do naming changes for the above.
3940
3941         * loader.c (mono_method_get_header): Lazily init the header
3942         on first access.
3943         (mono_get_method_from_token): don't init the header here
3944         (mono_free_method): the header may never be allocated
3945
3946         Overall, this saves 150 kb of unmanaged allocations
3947         for mcs helloworld.cs. That accounts for 10% of the unmanaged
3948         memory at runtime.
3949         
3950         * loader.c, loader.h (mono_method_get_header): new accessor.
3951
3952         * *.[ch]: use the above method. Prepares us to lazily load
3953         the header.
3954
3955         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
3956         three warnings, which are actual bugs (see 69206).
3957
3958         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
3959         unused. Saves a cool 4 bytes / method.
3960
3961 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
3962
3963         * metadata.c (builtin_types): Add types for System.Object here.
3964         (mono_metadata_parse_type_full): Cache MonoType*'s that are
3965         for a class or valuetype from klass->this_arg or klass->byval_arg.
3966
3967         On mcs for a hello world, this gets us down from 21836 MonoType's
3968         to 14560.
3969
3970         (mono_metadata_free_type): Account for the above change.
3971
3972 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
3973
3974         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
3975         exception instead of asserting if name is null.
3976         (ves_icall_System_AppDomain_GetData): Ditto.
3977
3978 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
3979
3980         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
3981         EnumBuilder.
3982
3983         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
3984         Return NULL when the domain does not have entry_assembly set.
3985
3986         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
3987         Add a 'resource_modules' argument.
3988         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
3989
3990         * reflection.c (mono_reflection_create_runtime_class): Move setting
3991         of wastypebuilder here, so mono_get_type_object () returns a MonoType
3992         for enums too.
3993
3994         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
3995         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
3996         Throw an ArgumentNullException if 'ptr' is null.
3997
3998         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
3999         assemblies here. Fixes #69020.
4000
4001 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
4002
4003         * reflection.c (build_compressed_metadata): Fix the previous patch for
4004         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
4005         the stack.
4006
4007 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
4008
4009         * assembly.c (mono_assembly_names_equal): Allow a match if one of
4010         the cultures is false. Fixes #69090.
4011
4012         * reflection.c (build_compressed_metadata): Fix invalid memory read 
4013         detected by valgrind.
4014         
4015         * reflection.c (mono_reflection_get_type): Avoid triggering a 
4016         TypeResolve multiple times for the same type. Fixes #65577.
4017
4018 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
4019
4020         * marshal.c: Avoid using ldftn to call managed functions. It is
4021         much slower than just a call.
4022
4023         * reflection.c (mono_module_get_object): free the basename we
4024         allocate here from glib.
4025         
4026         * reflection.c (ensure_runtime_vtable): make sure to free
4027         overrides.  Also, we were allocating an array of MonoMethod not an
4028         array of MonoMethod*.
4029
4030         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
4031
4032         * image.c (mono_image_close): free image->guid here.
4033
4034 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
4035
4036         * reflection.c: Fix some spec conformance issues with the PE file
4037         structures so mcs compiled apps run on the Net 2.0 beta.
4038
4039 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
4040
4041         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
4042         Implement this. Fixes #67264.
4043
4044         * debug-helpers.h debug-helpers.c marshal.c: Move 
4045         mono_find_method_by_name to debug-helpers.c.
4046
4047 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
4048
4049         * object.c (mono_release_type_locks): type_initialization_hash is
4050         a GHashTable.
4051
4052         * reflection.c object.c object-internals.h: Fix warnings.
4053
4054         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
4055         without accessors. Fixes #61561.
4056
4057         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
4058         application base from the root domain if not set. Fixes #65641.
4059         (mono_runtime_init): Fix warning.
4060
4061 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4062
4063         * appdomain.c: call mono_thread_pool_init.
4064         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
4065         of worker threads based on the number of CPUs and the environment
4066         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
4067         for non-windows (windows) systems.
4068
4069 2004-10-27  Chris Toshok  <toshok@ximian.com>
4070
4071         * mono-debug-debugger.c (write_class): don't call mono_class_init
4072         here, as even with the check for (!klass->init_pending), we get
4073         into a situation where we're hitting cycles in class
4074         initialization.  Fixes #68816.
4075
4076 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
4077
4078         * image.c: Avoid overwriting values in the loaded_images_hash when an
4079         assembly is loaded multiple times. Fixes #61152.
4080
4081         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
4082         so multiple satellite assemblies for the same name can be loaded.
4083         Fixes #68259.
4084
4085         * mono_domain_assembly_preload: Actually return the loaded assembly, 
4086         not NULL.
4087
4088         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
4089         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
4090
4091         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
4092         pending finalizers are not invoked after the appdomain has been 
4093         unloaded. Fixes #67862.
4094
4095 2004-10-22  Martin Baulig  <martin@ximian.com>
4096
4097         * mono-debug-debugger.c
4098         (mono_debugger_runtime_invoke): Don't box valuetypes.
4099
4100 2004-10-22  Chris Toshok  <toshok@ximian.com>
4101
4102         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
4103         don't hide private methods.
4104
4105 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
4106
4107         * icall.c: Allows the runtime to "share" (when known) the public key
4108         token of an assembly. This avoid the need to recalculate the token 
4109         (from the public key) in managed code.
4110
4111 2004-10-21  Chris Toshok  <toshok@ximian.com>
4112
4113         * debug-helpers.c (append_class_name): argh, revert last patch.
4114         
4115 2004-10-21  Chris Toshok  <toshok@ximian.com>
4116
4117         * debug-helpers.c (append_class_name): use '+' as the delimiter,
4118         not '/', so that it matches what the debugger uses to look up
4119         methods.
4120
4121 2004-10-21  Martin Baulig  <martin@ximian.com>
4122
4123         * mono-debug-debugger.c (mono_debugger_throw_exception): New
4124         public method; this is called each time an exception is thrown and
4125         allows the debugger to use exception catch points.
4126
4127 2004-10-21  Martin Baulig  <martin@ximian.com>
4128
4129         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
4130         the stack pointer and the exception object in some struct and pass
4131         that to the debugger.
4132
4133 2004-10-21  Chris Toshok  <toshok@ximian.com>
4134
4135         * mono-debug-debugger.c (do_write_class): add instance/static
4136         event support.  We don't expose "raise" or "other" yet.
4137         (event_is_static): new method.
4138
4139 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
4140
4141         * mono-debug-debugger.c
4142         (mono_debugger_handle_exception): Remove
4143         bogus return value for fussy compilers.
4144
4145 2004-10-20  Martin Baulig  <martin@ximian.com>
4146
4147         * mono-debug-debugger.c
4148         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
4149         (mono_debugger_handled_exception): Likewise.
4150
4151 2004-10-20  Martin Baulig  <martin@ximian.com>
4152
4153         * mono-debug-debugger.h (MonoDebuggerEvent): Added
4154         MONO_DEBUGGER_EVENT_EXCEPTION.
4155
4156         * mono-debug-debugger.c (mono_debugger_handle_exception): New
4157         public function to send the debugger a notification for an
4158         exception and inform it about a catch/finally clause.
4159
4160 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
4161
4162         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
4163         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
4164         fix 2.95 build. 
4165
4166         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
4167
4168 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
4169
4170         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
4171         marshalled as [In,Out]. Fixes #58325.
4172
4173 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
4174
4175         * reflection.c (mono_method_body_get_object): Implement some fields.
4176
4177 2004-10-12  Martin Baulig  <martin@ximian.com>
4178
4179         * reflection.c (mono_reflection_bind_generic_parameters): Small
4180         fix, correctly retrieve our parent from a generic instance.
4181
4182 2004-10-12  Martin Baulig  <martin@ximian.com>
4183
4184         * metadata.c (mono_metadata_generic_param_equal): We always have
4185         an owner.
4186
4187         * class.c
4188         (mono_class_from_generic_parameter): We need to have an owner.
4189         (my_mono_class_from_generic_parameter): Likewise.
4190
4191         * reflection.c (mono_reflection_setup_generic_class): Renamed to
4192         mono_reflection_create_generic_class() and added a new
4193         mono_reflection_setup_generic_class().  
4194         (mono_reflection_initialize_generic_param): If we're a nested
4195         generic type and inherited from the containing class, set our
4196         owner to the outer class.
4197
4198 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
4199
4200         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
4201
4202         * reflection.c (mono_method_body_get_object): New function to create
4203         a MethodBody object.
4204
4205         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
4206
4207 2004-10-11  Martin Baulig  <martin@ximian.com>
4208
4209         * metadata.c (_mono_metadata_type_equal): Renamed to
4210         do_mono_metadata_type_equal() and made static.
4211
4212 2004-10-11  Martin Baulig  <martin@ximian.com>
4213
4214         * appdomain.c: Bump corlib version number to 28.
4215
4216 2004-10-10  Martin Baulig  <martin@ximian.com>
4217
4218         * class-internals.h
4219         (MonoGenericInst): Added `MonoGenericContainer *container'.
4220         (MonoGenericMethod): Likewise.
4221         (MonoGenericContext): Likewise.
4222         (MonoGenericParam): Added `MonoGenericContainer *owner'.
4223
4224         * metadata.c
4225         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
4226         (do_mono_metadata_parse_generic_inst): Likewise.
4227         (mono_metadata_parse_type_full): New public method.  This is the actual
4228         mono_metadata_parse_type() implementation - with an additional
4229         `MonoGenericContainer *' argument.
4230         (mono_metadata_parse_array_full): Likewise.
4231         (mono_metadata_parse_signature_full): Likewise.
4232         (mono_metadata_parse_method_signature_full): Likewise.
4233         (mono_metadata_parse_mh_full): Likewise.
4234         (mono_type_create_from_typespec): Likewise.
4235         (mono_metadata_interfaces_from_typedef_full): New public method;
4236         this is similar to the other _full() methods, but we take a
4237         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
4238         (mono_metadata_parse_generic_param): Take an additional
4239         `MonoGenericContainer *' argument and lookup the MonoGenericParam
4240         from that container.
4241         (mono_metadata_generic_param_equal): New static method to compare
4242         two type parameters.
4243         (_mono_metadata_type_equal): New static method; takes an
4244         additional `gboolean signature_only' argument - if true, we don't
4245         compare the owners of generic parameters.
4246         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
4247         with a TRUE argument - do a signature-only comparision.
4248
4249         * loader.c: Use the new _full() methods and pass the
4250         MonoGenericContainer to them.
4251
4252         * object-internals.h (MonoReflectionTypeBuilder): Added
4253         `MonoGenericContainer *generic_container' field.
4254         (MonoReflectionMethodBuilder): Likewise.
4255
4256 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
4257
4258         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
4259         case initial images of dynamic assemblies.
4260
4261         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
4262
4263         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
4264
4265         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
4266         length of event->other array.
4267         (typebuilder_setup_events): Ditto.
4268
4269         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
4270         'assembly_by_name' and add an 'assemblies' list.
4271
4272         * assembly.h assembly.c: Add a new search hook for determining whenever
4273         an assembly is already loaded. Use this instead of searching in the
4274         loaded_assemblies list.
4275
4276         * domain.c appdomain.c: Implement the new search hook so loaded 
4277         assemblies are now scoped by appdomain. Fixes #67727.
4278
4279 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
4280
4281         * threads.c (mono_thread_attach): Initialize synch_lock field so
4282         mono_thread_detach works again.
4283
4284         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
4285         'lib' too. Fixes #63130.
4286
4287 2004-10-06  Jackson Harper  <jackson@ximian.com>
4288
4289         * culture-info-tables.h: regenerated.
4290
4291 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
4292
4293         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
4294         implemented by other interfaces in the result. Fixes #65764.
4295         
4296         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
4297         Handle unloadable modules without crashing.
4298
4299         * image.c (load_modules): Revert the previous patch since modules must
4300         have a fixed index inside the array.
4301         
4302         * image.c (load_modules): Don't include native modules in the modules
4303         array.
4304
4305 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
4306
4307         * reflection.h: Add param_defaults field.
4308
4309         * reflection.c: Add support for parameter defaults in dynamic methods.
4310         Fixes #64595.
4311
4312         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
4313         an empty string when a type has no namespace. Fixes #64230.
4314
4315 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
4316
4317         * tabledefs.h: Added "internal" security actions to support non-CAS
4318         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
4319         Note: they do not seems to be used anymore in 2.0 (new metadata format)
4320
4321 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
4322
4323         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
4324         constructor of abstract class. Fixes #61689.
4325
4326 2004-10-04  Martin Baulig  <martin@ximian.com>
4327
4328         * class-internals.h (MonoGenericContainer): New type.
4329         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
4330         `MonoGenericContainer *generic_container'.
4331         (MonoClass): Replaced `gen_params' and `num_gen_params' with
4332         `MonoGenericContainer *generic_container'.
4333
4334         * metadata.c (mono_metadata_load_generic_params): Return a
4335         `MonoGenericContainer *' instead of a `MonoGenericParam *';
4336         removed the `num' argument.
4337
4338 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
4339
4340         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
4341         for dynamic images.
4342
4343         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
4344         machine fields.
4345
4346         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
4347
4348         * reflection.c: Save pe_kind and machine values into the generated
4349         image file.
4350
4351         * appdomain.c: Bump corlib version number.
4352
4353         * object-internals.h: Reorganize layout of LocalBuilder.
4354
4355         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
4356         New helper function.
4357
4358         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
4359         created MonoType for dynamic types. Fixes #66180.
4360
4361 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
4362
4363         * threadpool.c: the ares hashtable needs a critical section around it.
4364         this prevents some nasty segfaults
4365
4366 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
4367
4368         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
4369         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
4370         bug 67324).
4371         
4372 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
4373
4374         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
4375         
4376 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
4377
4378         * image.c: Always canonicalize image file names, to avoid loading
4379         the same assembly twice when referenced using a relative path.
4380
4381 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
4382
4383         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
4384
4385         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
4386
4387         * marshal.c: Fix warnings.
4388
4389 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
4390
4391         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
4392         attempting to marshal the delegate_trampoline as the method_addr.
4393         This patch has a static hashtable of marshalled delegates so that 
4394         we can map delegate_trampoline addresses back to delegates.  This
4395         allows a delegate passed to managed code to be passed back into native
4396         code.  Fixes #67039
4397
4398 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
4399
4400         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
4401
4402         * reflection.c (method_encode_code): Align method headers properly.
4403         Fixes #66025.
4404
4405 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
4406
4407         * marshal.c: In the runtime invoke wrapper, reset the abort
4408         exception if it is cached. This avoids the automatic rethrowal of 
4409         the exception after the catch of the wrapper. Also check for pending
4410         interruptions before calling the managed method. This is done using
4411         the new method emit_thread_force_interrupt_checkpoint, since the
4412         normal checkpoint method is ignored when running the invoke wrapper.
4413         * object.c: If the abort exception is rethrown, set the abort_exc
4414         field of the thread, so it will be rethrown aftere every catch.
4415         * threadpool.c: Only run an interruption checkpoint if what has been
4416         requested is a stop of the thread (aborts will be ignored).
4417         * threads.c: By default, a thread will now never be interrumped while
4418         running the runtime invoke wrapper (this ensures that runtime_invoke
4419         will always return to the caller if an exception pointer is provided).
4420         There is a new special method mono_thread_force_interruption_checkpoint()
4421         to force an interruption checkpoint even if running a protected
4422         wrapper, which is used by the same runtime invoke wrapper to do a check
4423         at a safe point.
4424
4425 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
4426
4427         * object.c, object-internals.h: Implemented mono_release_type_locks,
4428         which releases the cctor locks held by a thread.
4429         * threads.c, threads.h: In thread_cleanup, release cctor locks held
4430         by a thread. Added mono_thread_exit() method to be used to safely stop
4431         a thread.
4432
4433 2004-09-28  Raja R Harinath  <rharinath@novell.com>
4434
4435         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
4436         Move null check before dereference.  Avoid indexing beyond the end
4437         of the 'modules' array.
4438
4439 2004-09-28  Raja R Harinath  <rharinath@novell.com>
4440
4441         * metadata-internals.h (MonoImage): Add module_count field.
4442         * image.c (load_modules): Set image->module_count.
4443         (mono_image_load_file_for_image): Use image->module_count.
4444         * reflection.c (mono_image_load_module): Append to image->modules array 
4445         of dynamic assembly.
4446         (mono_module_get_object): Fix loop to actually increment index.
4447         Use image->module_count.
4448         * assembly.c (mono_assembly_load_references): Use image->module_count.
4449         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
4450         Likewise.
4451
4452 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
4453
4454         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
4455         Avoid assert on generic types.
4456
4457 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
4458
4459         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
4460
4461         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
4462
4463         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
4464         function to convert a MarshalSpec structure to its managed counterpart.
4465
4466         * reflection.c: Fix warnings.
4467         
4468         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
4469         field.
4470
4471         * icall.c (mono_create_icall_signature): Fix build.
4472
4473 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
4474
4475         * icall.c: Add MakePointType icall.
4476
4477         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
4478         warnings.
4479
4480 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4481
4482         * threadpool.c: reuse allocated slots in the queue.
4483
4484 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
4485
4486         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
4487
4488         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
4489
4490         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
4491         previous change.
4492
4493         * tabledefs.h: Add constants for pinvoke attributes BestFit and
4494         ThrowOnUnmappableChar.
4495
4496         * icall.c (ves_icall_Type_GetPacking): New icall.
4497
4498 2004-09-24  Martin Baulig  <martin@ximian.com>
4499
4500         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
4501
4502 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4503
4504         * appdomain.c:
4505         (mono_domain_set): allow setting a domain that is being unloaded.
4506         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
4507         being unloaded.
4508
4509 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
4510
4511         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
4512         the GetCustomAttributes icall.
4513
4514 2004-09-23  Martin Baulig  <martin@ximian.com>
4515
4516         * object-internals.h (MonoReflectionGenericParam): Replaced
4517         'has_ctor_constraint', `has_reference_type' and `has_value_type'
4518         with `guint32 attrs'.
4519
4520 2004-09-23  Martin Baulig  <martin@ximian.com>
4521
4522         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
4523
4524 2004-09-23  Martin Baulig  <martin@ximian.com>
4525
4526         * object-internals.h (GenericParameterAttributes): New enum.
4527
4528 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
4529
4530         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
4531         
4532         * class.c (init_events): Fill out event->other field.
4533
4534         * class.c: Fix warnings.
4535
4536         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
4537
4538 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
4539
4540         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
4541         walk which doesn't supply the IL offset.
4542
4543 2004-09-22  Martin Baulig  <martin@ximian.com>
4544
4545         * reflection.c (mono_reflection_setup_internal_class): If we're
4546         System.ValueType, System.Object or System.Enum, set
4547         `klass->instance_size' and create the vtable.
4548         (mono_reflection_create_internal_class): If we're an enum type,
4549         get the base class from our current corlib.
4550
4551 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
4552
4553         * reflection.h (MonoResolveTokenError): New type.
4554
4555         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
4556         icall.
4557
4558         * icall.c: Add an 'error' argument to the ResolveToken icalls.
4559
4560 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
4561
4562         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
4563         Support also calling constructors, but only for already allocated objects.
4564
4565 2004-09-17  Geoff Norton <gnorton@customerdna.com>
4566
4567         * reflection.c (type_get_qualified_name): If the klass is null
4568         return the typename to avoid a NullRefEx.
4569         (encode_cattr_value): Get the qualified name of the boxed type,
4570         not the underlying enumtype.  Fixes #62984.
4571
4572 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
4573
4574         * marshal.c: Fix problems with previous checkin.
4575
4576 2004-09-21    <vargaz@freemail.hu>
4577
4578         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
4579         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
4580
4581         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
4582
4583 2004-09-21  Geoff Norton <gnorton@customerdna.com>
4584
4585         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
4586         should only return a type for pointers, arrays, and passbyref types.
4587         Fixes bug #63841.
4588
4589 2004-09-21  Martin Baulig  <martin@ximian.com>
4590
4591         * domain.c (mono_debugger_check_runtime_version): New public
4592         function.
4593
4594         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
4595
4596 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
4597
4598         * reflection.c: Added missing sort to the declarative security 
4599         attributes table. MS implementation stops seeing the attributes if the
4600         token number regress in the table (as shown by ildasm and permview).
4601
4602 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
4603
4604         * object-internals.h (MonoReflectionModule): Add 'token' field.
4605         
4606         * reflection.c (mono_reflection_get_token): Add support for Module
4607         and Assembly.
4608         (mono_module_get_object): Set 'token' field.
4609         (mono_module_file_get_object): Set 'token' field.
4610
4611         * icall.c: Add new Assembly and Module icalls.
4612
4613         * appdomain.c: Bump corlib version.
4614
4615 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
4616
4617         * loader.h loader.c class.h class.c: Add helper functions for obtaining
4618         tokens of metadata objects.
4619
4620         * reflection.h reflection.c (mono_reflection_get_token): New function
4621         to obtain the token of a metadata object.
4622
4623         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
4624
4625 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
4626
4627         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
4628         
4629         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
4630
4631 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
4632
4633         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
4634         * object-internals.h: Added 3 MonoArray* members to MonoReflection
4635         AssemblyBuilder to access the permissions set in the class lib.
4636         * reflection.c: Added security attributes encoding step in 
4637         mono_image_build_metadata.
4638         * tabledefs.h: Added new security actions defined in 2.0:
4639         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
4640
4641 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
4642
4643         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
4644         macro parameter.
4645
4646 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
4647  
4648         * locales.c: nullify the ICU_collator member of CompareInfo when it is
4649           finalized. There where random SIGSEVs at program termination, when
4650           an object being finalized was trying to do a string comparison and
4651           the current culture was already finalized.
4652  
4653 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4654
4655         * threads.c: call thread_cleanup before finishing the thread if we get
4656         there.
4657
4658 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
4659
4660         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
4661         assemblies from the parent. Fixes #65665.
4662
4663 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
4664
4665         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
4666         modifiers.
4667
4668 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
4669
4670         * reflection.h: add prototype for mono_get_dbnull_object
4671         * reflection.c: add prototypes for get_default_param_value_blobs 
4672         and mono_get_object_from_blob for fussier compilers
4673
4674 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
4675  
4676         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
4677         false deadlock checks in class initialization.
4678  
4679 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
4680
4681         * image.c (mono_image_addref): Fix comment.
4682
4683         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
4684         possible.
4685
4686 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
4687
4688         * reflection.c (mono_param_get_objects): Modified to return
4689         ParameterInfo.DefaultValue object.
4690
4691         (get_default_param_value_blobs):
4692         (mono_get_object_from_blob):
4693         (mono_get_dbnull_object): New helper routines. 
4694
4695         * object.c (mono_get_constant_value_from_blob): New helper routine
4696         carved out from get_default_field_value ()
4697
4698         * object-internals.h (mono_get_constant_value_from_blob): Added
4699         function declaration.
4700
4701 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
4702
4703         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
4704         referenced assemblies. Fixes #62135.
4705
4706         * exception.h exception.c (mono_get_exception_file_not_found2): New
4707         helper function.
4708
4709 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
4710
4711         * class.h class.c: Add mono_type_get_underlying_type ().
4712
4713 2004-09-09  Geoff Norton <gnorton@customerndna.com>
4714
4715         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
4716         Fix GetTypes() to support dynamically created assemblies.
4717
4718 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
4719
4720         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
4721         
4722         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
4723         previous patch.
4724
4725         * reflection.h reflection.c loader.c: Allow dynamic construction of
4726         pinvoke methods. Fixes #65571.
4727         
4728         * reflection.c (mono_reflection_get_type): Revert previous change since
4729         it causes regressions.
4730
4731 2004-09-08  Martin Baulig  <martin@ximian.com>
4732
4733         * class.c (class_compute_field_layout): Don't call
4734         mono_class_layout_fields() for open generic instances.
4735
4736 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
4737         * threads.c appdomain.c: fix typo in GC macro
4738
4739 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4740
4741         * threads.c: don't call mono_thread_detach() in start_wrapper(),
4742         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
4743
4744 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
4745
4746         * image.c (mono_image_close): Applied patch from 
4747         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
4748         assembly is loaded multiple times from data.
4749         
4750         * image.c (mono_image_open): Fix warning.
4751
4752 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
4753
4754         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
4755         once. Fixes #58334.
4756         
4757         * reflection.c (mono_reflection_create_runtime_class): Initialize
4758         klass->nested_classes. Fixes #61224.
4759
4760 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
4761
4762         * threads.c: sched_yield() on exit, to allow threads to quit.
4763
4764 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
4765
4766         * object.c (mono_unhandled_exception): Remove leftover debug code.
4767
4768 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
4769
4770         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
4771
4772 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
4773
4774         * marshal.c (emit_marshal_array): Really null terminate string arrays.
4775         
4776         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
4777
4778 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
4779
4780         * marshal.c (emit_marshal_array): Null terminate string arrays.
4781         
4782         * marshal.c (raise_auto_layout_exception): Fix warning.
4783
4784         * reflection.c (mono_param_get_objects): Initialize the default value
4785         with DBNull.Value, not null. Fixes #62123.
4786
4787 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
4788
4789         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
4790         throw an exception with a cute explanation.
4791
4792 2004-09-06  Dick Porter  <dick@ximian.com>
4793
4794         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
4795         Close the new process's thread handle, as we don't use it.  The
4796         handle stays around forever otherwise.
4797
4798 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
4799
4800         * object.c (arith_overflow): Fix warning.
4801
4802         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
4803         calling conventions in method refs. Fixes #65352.
4804
4805         * reflection.c: Fix warnings.
4806
4807 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
4808
4809         * icall.c: Add a new icall for Array.Clear
4810
4811 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
4812
4813         * object.c: When allocating an array, we have to throw
4814         an overflow exception if any of the lengths are < 0.
4815
4816 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
4817
4818         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
4819         properly. Also move implementation of string array marshalling to 
4820         managed code. Fixes #42316.
4821
4822 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4823
4824         * assembly.c: provide more information when loading an assembly fails.
4825
4826 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4827
4828         * filewatcher.c: don't expect the development fam package to be
4829         installed.
4830
4831 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
4832
4833         * marshal.c: Make a copy of the signature cookie since it will be
4834         freed by the caller.
4835         
4836         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
4837
4838         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
4839
4840         * metadata.c (mono_metadata_free_marshal_spec): New function to free
4841         marshal specs.
4842
4843         * marshal.c: More refactoring.
4844         
4845         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
4846         smaller functions.
4847
4848 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
4849
4850         * object.c: In mono_message_invoke, fill the output parameter array after
4851           calling the managed method (it was done before the call). This fixes
4852           bug #59299.
4853
4854 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
4855
4856         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
4857         as well.
4858
4859 2004-09-02  Martin Baulig  <martin@ximian.com>
4860
4861         * class.c (mono_class_instance_size): Don't allow generic type
4862         definitions or open generic instances.
4863         (mono_class_array_element_size): If we're a value type, call
4864         mono_class_instance_size() on the original class.
4865
4866         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
4867         handle generic instances.
4868
4869         * mono-debug-debugger.c (write_type): Handle generic instances
4870         like classes.
4871
4872 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
4873
4874         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
4875         the allocation request fails. Fixes #65089.
4876
4877         * object.c (mono_runtime_free_method): Do not call mono_free_method.
4878         
4879         * object.c (mono_runtime_free_method): New function to free a dynamic
4880         method.
4881
4882         * marshal.c (mono_delegate_free_ftnptr): New function to free the
4883         delegate trampoline.
4884
4885         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
4886         with hasthis as dynamic,
4887
4888         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
4889
4890         * domain.c (mono_jit_info_table_remove): New function to remove an
4891         entry from the jit info table.
4892
4893         * class-internals.h (MonoMethod): Add 'dynamic' field.
4894
4895         * loader.c: Fix warnings.
4896
4897 2004-09-01  Martin Baulig  <martin@ximian.com>
4898
4899         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
4900         instead of mono_debugger_lock() because the latter one is a no-op
4901         unless running in the debugger.
4902
4903 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
4904
4905         * class.c (class_compute_field_layout): Classes with auto-layout or
4906         reference fields are not blittable.
4907         
4908 2004-09-01  Dick Porter  <dick@ximian.com>
4909
4910         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
4911         mono_image_get_filename() to get the assembly location.
4912
4913         * icall.c:
4914         * metadata.h: Fix compile warnings
4915
4916 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
4917
4918         * class.c (class_compute_field_layout): System.Object is blittable.
4919
4920         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
4921         as in/out. Fixes #59909.
4922
4923 2004-09-01  Martin Baulig  <martin@ximian.com>
4924
4925         * metadata.h (MONO_TYPE_ISREFERENCE): Call
4926         mono_metadata_generic_inst_is_valuetype() if we're a generic
4927         instance to check whether our underlying type is a reference type.
4928
4929 2004-09-01  Martin Baulig  <martin@ximian.com>
4930
4931         * metadata.c (mono_type_size): If we're a generic instance, call
4932         mono_class_value_size() for value types.
4933
4934 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
4935
4936         * marshal.c: Implement more custom marshalling functionality. Fixes
4937         #64915.
4938
4939 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
4940
4941         * mono-debug.c, debug-mono-symfile.c: add some locking love.
4942
4943 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
4944
4945         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
4946
4947         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
4948
4949         * icall.c: Fix some warnings.
4950
4951         * threads.c (abort_appdomain_thread): Fix unref errors.
4952         (mono_thread_current): Fix THREAD_DEBUG define.
4953
4954 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
4955
4956         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
4957
4958         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
4959
4960 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
4961
4962         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
4963         string arrays.
4964
4965 2004-08-28  Martin Baulig  <martin@ximian.com>
4966
4967         * metadata.c
4968         (mono_metadata_generic_inst_is_valuetype): New public function.
4969
4970         * metadata.h (MONO_TYPE_ISSTRUCT): Call
4971         mono_metadata_generic_inst_is_valuetype() if we're a generic
4972         instance to check whether our underlying type is a valuetype.
4973
4974 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
4975
4976         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
4977         #63768.
4978
4979 2004-08-25  Martin Baulig  <martin@ximian.com>
4980
4981         * loader.c (mono_get_method_from_token): Abstract methods can also
4982         be generic and thus have type parameters.
4983
4984         * metadata-internals.h
4985         (MonoDynamicImage): Added `GPtrArray *gen_params'.
4986
4987         * reflection.c (mono_image_get_generic_param_info): Don't create a
4988         metadata row, just add an entry to the `gen_params' array.
4989         (build_compressed_metadata): Sort the `gen_params' array and then
4990         actually create the metadata.
4991
4992 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4993
4994         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
4995
4996 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
4997
4998         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
4999
5000 2004-08-24  Martin Baulig  <martin@ximian.com>
5001
5002         * class.cs (mono_class_is_subclass_of): Like an interface, a
5003         generic instance also derives from System.Object.
5004
5005 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
5006
5007         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
5008         custom modifiers to be in any order. Fixes #61990.
5009
5010 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
5011
5012         * object.c: Register mono_object_new_fast icall.
5013         
5014         * object.c (mono_class_get_allocation_ftn): Return to calling
5015         mono_object_new_fast, since it seems faster to compute the object 
5016         size in unmanaged code than passing it as a parameter.
5017
5018         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
5019
5020         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
5021         this function with Boehm as the oom handler, so we don't have to check
5022         the result of GC_malloc.
5023
5024         * object.c: Remove checks for oom.
5025
5026         * object.h object.c (mono_class_get_allocation_ftn): New function to
5027         return the icall which can be used to allocate an instance of a given
5028         class. 
5029
5030         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
5031
5032         * class-internals.h: Add 'enabled' field.
5033
5034 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
5035
5036         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
5037
5038 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
5039         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
5040         value 0x0010.
5041
5042 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
5043
5044         * appdomain.c: use the Tls function for appdomain too,
5045         at Zoltan's request. Actually return in mono_context_get
5046
5047         * appdomain.c, profiler.c, threads.c: use __thread
5048
5049 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
5050
5051         * appdomain.c threads.c: Call GC_CreateThread on windows.
5052
5053         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
5054         multiple libraries since this don't work on windows.
5055
5056 2004-08-18  Martin Baulig  <martin@ximian.com>
5057
5058         * class-internals.h
5059         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
5060         MonoMethodHeader.
5061
5062         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
5063         MonoMethodNormal since we also need it for abstract and interface
5064         methods.
5065
5066         * reflection.c
5067         (build_compressed_metadata): Sort the GenericParam table.
5068         (mono_image_create_token): Added `gboolean create_methodspec'
5069         argument; this is false when generating a MethodImpl token.
5070         (reflection_methodbuilder_to_mono_method): Abstract and interface
5071         methods may also have generic parameters.
5072
5073 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
5074
5075         * appdomain.c: thread local alloc
5076
5077 2004-08-17  Martin Baulig  <martin@ximian.com>
5078
5079         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
5080
5081         * icall.c
5082         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
5083         argument.
5084
5085         * class.c (mono_type_get_full_name): New public function.
5086         (mono_type_get_name): Don't include the type arguments.
5087
5088 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
5089
5090         * Makefile.am: Build static versions of libmetadata and libmonoruntime
5091         for inclusion into the mono executable.
5092
5093 2004-08-16  Martin Baulig  <martin@ximian.com>
5094
5095         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
5096         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
5097
5098 2004-08-14  Martin Baulig  <martin@ximian.com>
5099
5100         * class.c (dup_type): Also copy the `byref' field.
5101
5102 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
5103
5104         * reflection.c (create_dynamic_mono_image): Revert the last change 
5105         since it breaks bootstrap.
5106
5107 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
5108
5109         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
5110
5111         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
5112         not free them with g_free.
5113
5114 2004-08-11  Martin Baulig  <martin@ximian.com>
5115
5116         * reflection.c (mono_reflection_setup_internal_class): Also call
5117         mono_class_setup_mono_type() if we already have a `tb->type.type'.
5118
5119 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
5120
5121         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
5122         called during default (first) AppDomain creation. Keep track of
5123         Evidence when loading assemblies.
5124
5125 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
5126
5127         * opcodes.c, opcodes.h: reduce runtime relocations.
5128
5129 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
5130
5131         * culture-info.h, locales.c: fixes and chages to sue the new
5132         optimized format of the locale data.
5133         * culture-info-tables.h: regenerated.
5134
5135 2004-08-06  Geoff Norton <gnorton@customerdna.com>
5136         
5137         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
5138
5139 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
5140
5141         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
5142         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
5143         * domain-internals.h: icall declaration.
5144         * icall.c: icall registration.
5145         * object-internals.h: New fields in MonoAssembly for CAS.
5146
5147 2004-08-05  Duncan Mak  <duncan@ximian.com>
5148
5149         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
5150         CEE_LDELEM_ANY.
5151
5152 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
5153
5154         * reflection.c: fix to deal with object[] arrays in custom ctors
5155         (bug #62550).
5156
5157 2004-08-05  Martin Baulig  <martin@ximian.com>
5158
5159         * class.c (mono_class_array_element_size): Added support for
5160         generic instances and correctly handle "recursive" types.
5161
5162 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
5163
5164         * assembly.c: Fix warnings.
5165
5166 2004-08-04  Martin Baulig  <martin@ximian.com>
5167
5168         * class.c
5169         (mono_type_get_name_recurse): Added `gboolean include_arity'
5170         argument specifying whether or not we should include the generic
5171         arity in the type name.
5172         (_mono_type_get_name): New static function.
5173         (mono_class_setup_vtable): If we're a generic instance, don't
5174         include the generic arity in the names of explicit method
5175         implementations.        
5176
5177 2004-08-03  Martin Baulig  <martin@ximian.com>
5178
5179         * class.c (mono_type_get_name_recurse): Enclose the generic type
5180         arguments in `<', '>'.
5181
5182 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
5183
5184         * gc.c: make GC warning messages use the trace API, they are just
5185         noise to most of the users.
5186
5187 2004-08-03  Martin Baulig  <martin@ximian.com>
5188
5189         * debug-mono-symfile.c (read_string): Correctly read the string.
5190
5191 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
5192
5193         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
5194         
5195         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
5196         icalls.
5197         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
5198
5199 2004-07-30  Martin Baulig  <martin@ximian.com>
5200
5201         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
5202         Reflect latest symbol writer changes.   
5203
5204 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
5205
5206         * object.c: always create an object if null is passed
5207         to Invoke() where a valuetype is expected.
5208
5209 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
5210
5211         * marshal.c (mono_marshal_init): make managed
5212         signatures match native ones better for 64bits.
5213
5214 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5215
5216         * appdomain.c: hack to build correctly the private bin path on windows.
5217         Fixes bug #61991.
5218
5219 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
5220
5221         * assembly.c: Load mscorlib from the correct framework directory
5222           (mono/<version>/mscorlib.dll).
5223         * appdomain.h: Added prototypes for new functions.
5224         * internals.h: Added some prototypes.
5225         * domain.c: When initializing the runtime, get from the executable and
5226           the configuration files the runtime version that the app supports.
5227           Added support methods for reading app.exe.config. Added list of versions
5228           supported by the JIT. Added two new methods: mono_init_from_assembly,
5229           which initializes the runtime and determines the required version from
5230           the provided exe file, and mono_init_version, which initializes
5231           the runtime using the provided version.
5232         * icall.c: Get machine.config from version-specific directory.
5233         * reflection.c: When generating an image, embed the version number
5234           of the current runtime.
5235
5236 2004-07-28  Dick Porter  <dick@ximian.com>
5237
5238         * socket-io.c
5239         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
5240         returned sockaddr size before creating the remote address object.
5241         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
5242         61608.
5243
5244 2004-07-28  Dick Porter  <dick@ximian.com>
5245
5246         * locales.c (string_invariant_compare_char): Fix invariant char
5247         compares between upper and lower cases.  Fixes bug 61458.
5248
5249 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
5250         
5251         * marshal.c: actually cache stelem.ref wrappers.
5252         
5253 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
5254
5255         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
5256         sections and remove the mono_cli_rva_map () function.
5257
5258 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
5259
5260         * debug-mono-symfile.c: fix one more endianess issue, from a patch
5261         by Geoff Norton (<gnorton@customerdna.com>).
5262
5263 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
5264
5265         * class.c: fix class loads for pointer types (typeof(int) !=
5266         typeof(int*)).
5267
5268 2004-07-27  Martin Baulig  <martin@ximian.com>
5269
5270         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
5271         reading the debugging information from an external ".mdb" file.
5272
5273 2004-07-24  Martin Baulig  <martin@ximian.com>
5274
5275         * reflection.c (mono_image_get_type_info): Only write a class
5276         layout entry if we actually have a size or a packing size.
5277
5278 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
5279
5280         * reflection.c (type_get_fully_qualified_name): 
5281         insert cast to get type checking of ?: with non-gcc compilers
5282
5283 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
5284
5285         * rand.c: use g_getenv for both lookups of
5286         MONO_EGD_SOCKET
5287
5288 2004-07-17  Martin Baulig  <martin@ximian.com>
5289
5290         * reflection.c (mono_reflection_bind_generic_method_parameters):
5291         Set `gmethod->reflection_info'.
5292
5293 2004-07-17  Martin Baulig  <martin@ximian.com>
5294
5295         * class.c (mono_class_create_from_typedef): Insert the newly
5296         created class into the hash table before computing the interfaces
5297         since we could be called recursively.
5298
5299 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
5300
5301         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
5302         function to implement stelem.ref in managed code
5303         * class-internals.h, debug-helpers.c: a new wrapper type
5304         for the above.
5305
5306 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
5307
5308         * gc.c: allow GC handles to work even when no GC is compiled in.
5309         Fix part of bug #61134 (GetAddrOfPinnedObject).
5310
5311 2004-07-13  Peter Williams  <peter@newton.cx>
5312  
5313         * process.c (complete_path): Make sure we don't attempt to execute
5314         directories.
5315  
5316 2004-07-12  Geoff Norton <gnorton@customerdna.com>
5317
5318         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
5319           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
5320           and will add/subtract the hour if needed
5321
5322 2004-07-12  Martin Baulig  <martin@ximian.com>
5323
5324         * reflection.c (mono_field_get_object): If we have
5325         `field->generic_info', take the attributes from
5326         `field->generic_info->generic_type'.    
5327
5328 2004-07-12  Martin Baulig  <martin@ximian.com>
5329
5330         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
5331         This function must be called before initializing the runtime.
5332         (mono_debug_init_1): New function; call this after initializing
5333         the runtime, but before loading the assembly.  It tells the
5334         debugger to load corlib and the builtin types.
5335
5336         * mono-debug-debugger.c: Did some larger changes in the debugging
5337         code; support recursive class declarations, make sure we actually
5338         add all classes.
5339
5340 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5341
5342         * debug-helpers.c: undo my previous patch and fixed the real issue in
5343         ../mini/exceptions-x86.c
5344
5345 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5346
5347         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
5348         when no HOME env. variable was set and a NullRef was thrown in a .cctor
5349         called from other .cctors.
5350
5351 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
5352
5353         * loader.c: Removed the mono_loader_wine_init hack now that we are
5354         doing a managed version of Windows.Forms.
5355
5356 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
5357
5358         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
5359         threadpool.c, threads.c: remove static data from rootset.
5360
5361 2004-07-09  Dick Porter  <dick@ximian.com>
5362
5363         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
5364         Don't do any more processing if the matched length was 0.  It was
5365         increasing the size of the string before.  Fixes bug 61167.
5366
5367 2004-07-09  Dick Porter  <dick@ximian.com>
5368
5369         * socket-io.h:
5370         * socket-io.c
5371         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5372         Add support for SO_PEERCRED if its available.
5373
5374 2004-07-09  Peter Bartok <pbartok@novell.com>
5375         * loader.c: winelib.exe.so error message is now only displayed if
5376         MONO_DEBUG is set. To help us avoid questions when people are trying
5377         out the new Managed.Windows.Forms.
5378
5379 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
5380
5381         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
5382         for isinst and castclass wrappers.
5383
5384         * class-internals.h icall.c: Move registration and lookup of JIT icalls
5385         to libmetadata from the JIT, so they could be used by the marshalling
5386         code and the interpreter.
5387
5388         * marshal.c: Register marshalling related JIT icalls here instead of
5389         in mini.c. Use CEE_MONO_ICALL instead of the family of 
5390         CEE_MONO_PROC<x> opcodes to call marshalling functions.
5391
5392         * metadata.h: Remove unneeded marshalling conversions.
5393
5394         * opcodes.c: Update for new opcodes.
5395         
5396 2004-07-08  Martin Baulig  <martin@ximian.com>
5397
5398         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
5399         (mono_debug_get_domain_data): Make this function static.
5400
5401 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
5402
5403         * gc.c, object.h: add nice GC handle API for embedders.
5404
5405 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
5406
5407         * reflection.c: more changes for the new api
5408
5409         * object.c: When we reflect on a field w/ a constant value, it
5410         will not have a memory location, so we must access metadata. Also,
5411         allow easier reading of strings so that we can read them from
5412         the constant data.
5413
5414         * class.c (mono_class_layout_fields): no need for literal fields here.
5415
5416         * class-internals.h: api changes for const fields
5417
5418         * icall.c (ves_icall_get_enum_info): use new apis for const fields
5419
5420 2004-07-06  Martin Baulig  <martin@ximian.com>
5421
5422         * mono-debug.h: Increment version number to 44.
5423
5424         * mono-debug.c (mono_debug_add_wrapper): The second argument is
5425         now a gpointer, rewrote this whole method.
5426
5427         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
5428         function.  Add information about the wrapper in a new "misc table".
5429
5430         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
5431         for the new misc table.
5432
5433 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
5434
5435         * metadata-internals.h image.c: Add a cache for helper signatures.
5436
5437         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
5438
5439 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
5440
5441         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
5442         delegates from a delegate. Fixes #61033.
5443         
5444         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
5445         marshalling of stringbuilder arrays. Fixes #59900.
5446
5447 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
5448
5449         * icall.c: Add EnumBuilder:setup_enum_type icall.
5450
5451 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
5452
5453         * icall.c: Added a new icall for the property version of
5454         OffsetOfStringData.
5455
5456 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
5457
5458         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
5459         it has a constant size across platforms.
5460
5461         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
5462         stack trace.
5463
5464 2004-06-29  Martin Baulig  <martin@ximian.com>
5465
5466         * mono-debug.c (mono_debug_add_method): Protect the whole function
5467         in mono_debugger_lock(), not just parts of it.
5468
5469 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
5470
5471         * reflection.c: make sure padding bytes in heaps are zeroed.
5472
5473 2004-06-24  David Waite  <mass@akuma.org>
5474
5475         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
5476         image.c, loader.c, locales.c, marshal.c, metadata.c,
5477         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
5478         string-icalls.c, threads.c: change to C90-style comments from C99 /
5479         C++ -style
5480
5481 2004-06-24  Dick Porter  <dick@ximian.com>
5482
5483         * threads.c
5484         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
5485         return createdNew.  Fixes bug 60412.
5486
5487         * threads-types.h: 
5488         * icall.c: Add createdNew parameter to CreateMutex icall
5489
5490 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
5491
5492         * reflection.c, object-internals.h: save default value in params.
5493
5494 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5495
5496         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
5497         no need to build a new path combining that with the application base.
5498         Fixes bug #60442.
5499
5500 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
5501
5502         * reflection.c: fixed minor standard compliance issues.
5503
5504 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
5505
5506         * reflection.c: fixed issue with encoding some custom attributes
5507         (arrays in properties and fields, bug #60411).
5508
5509 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5510
5511         * reflection.c: fix start address when copying the public key token.
5512
5513 2004-06-23  Martin Baulig  <martin@ximian.com>
5514
5515         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
5516         the `exc' object in a static object to put it into the GC's root set.
5517
5518 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
5519
5520         * reflection.c: make mono_reflection_setup_internal_class ()
5521         callable a second time to setup a new parent class.
5522
5523 2004-06-23  Dick Porter  <dick@ximian.com>
5524
5525         * threads.c: Check for WAIT_IO_COMPLETION return values.
5526
5527 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
5528
5529         * appdomain.c: Removed the g_free on the public key token. Now copy 
5530         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
5531         * assembly.c: Added public key token string value when loading 
5532         assemblies. Fix bug #60439.
5533         * icall.c: Added missing informations (like public key) in 
5534         GetReferencedAssemblies. Fix #60519.
5535         * image.h: Changed definition for public key token from const char*
5536         public_tok_value to guchar public_key_token [17];
5537         * reflection.c: Updated for changes to public key token.
5538
5539 2004-06-22  Lluis Sanchez Gual
5540
5541         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
5542         for the field in base classes.
5543
5544 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
5545
5546         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
5547         mark headers as not supported, they are installed only for use by the
5548         debugger.
5549
5550 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
5551
5552         * *.c, *.h: avoid namespace pollution in public headers.
5553
5554 2004-06-21  Martin Baulig  <martin@ximian.com>
5555
5556         * exception.c (mono_get_exception_security): It's in
5557         "System.Security", not in "System".
5558
5559         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
5560         the exception classes.
5561
5562 2004-06-21  Martin Baulig  <martin@ximian.com>
5563
5564         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
5565         Protect the exception object from being finalized.
5566
5567 2004-06-21  Martin Baulig  <martin@ximian.com>
5568
5569         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
5570         public function.
5571
5572 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
5573
5574         * reflection.c: Load the assembly in mono_reflection_type_from_name,
5575         if it was not loaded before. Fix parts of #60439.
5576
5577 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
5578
5579         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
5580         code that was broken since Ben's change: wrappers are now
5581         dependent on the method signature only again.
5582
5583 2004-06-21  Martin Baulig  <martin@ximian.com>
5584
5585         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
5586         added interface support.
5587
5588 2004-06-21  Martin Baulig  <martin@ximian.com>
5589
5590         * class.c (mono_vtable_get_static_field_data): New public method.
5591
5592 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
5593
5594         * filewatcher.c : Windows build fix to be compliant with API changes.
5595
5596 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
5597
5598         * class.h, class.c: more accessors.
5599         * metadata.h, metadata.c: prepare for hiding MonoType and
5600         MonoMethodSignature: people should use the accessors from now on
5601         outside of the tree.
5602
5603 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
5604
5605         * *.c, *.h: more API cleanups.
5606
5607 2004-06-18  Jackson Harper  <jackson@ximian.com>
5608
5609         * assembly.c: Trace loading assemblies.
5610         * loader.c: Trace loading native libraries.
5611         * mono-config.c: Trace loading config files.
5612         
5613 2004-06-18  Dick Porter  <dick@ximian.com>
5614
5615         * locales.c: Tell ICU the lengths of strings, it can cope with
5616         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
5617
5618 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
5619
5620         * image.c: swapped name/filename;
5621
5622 2004-06-18  Martin Baulig  <martin@ximian.com>
5623
5624         * mono-debug-debugger.c (write_class): Write the parent class at
5625         the end of the header.
5626
5627 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
5628
5629         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
5630
5631 2004-06-17  Raja R Harinath  <rharinath@novell.com>
5632
5633         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
5634         (bundle_obj): New conditional define.
5635         (BUILT_SOURCES): Remove.
5636         ($(bundle_srcs)): Make parallel-make safe.
5637         (libmonoruntime_la_LIBADD): Make unconditional.
5638         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
5639         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
5640
5641 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
5642
5643         * culture-info-tables.h: It was inconsistent with the latest
5644           supp info files.
5645
5646 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
5647
5648         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
5649         be loaded.
5650
5651         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
5652         with gcc 2.95.
5653
5654 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
5655
5656         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
5657         cleaned up public header threads.h.
5658
5659 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
5660
5661         * Makefile.am, *.c, *.h: more API cleanups.
5662
5663 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
5664
5665         * Makefile.am: removed monosn from compilation.
5666         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
5667         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
5668         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
5669         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
5670         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
5671         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
5672
5673 2004-06-15  Jackson Harper  <jackson@ximian.com>
5674
5675         * assembly.c: Make locales lower case when searching the GAC for
5676         assemblies. gacutil will always make locales lowercase when
5677         installing so this effectively makes them case insensitive.
5678         
5679 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
5680
5681         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
5682         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
5683           parameter which allows to choose whether the wait can be interrupted or 
5684           not. Also added the method mono_monitor_enter(), which locks the monitor
5685           using an infinite wait and without allowing interruption.
5686           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
5687           interrupted.
5688         * object.h: Added new fields in MonoThread. suspend_event holds the event
5689           used to susped/resume the thread. synch_lock is the lock object to use for
5690           modifying the thread state.
5691         * threads.c: Use the new synch_lock object for locking, instead of "this",
5692           which can generate deadlocks.
5693           Moved thread state change in Thread.Sleep and Thread.Join from managed
5694           to unmanaged code. This avoids a deadlock when the thread was suspended
5695           just after acquiring the thread lock.
5696           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
5697           Implemented Thread.Suspend using an event instead of ThreadSuspend,
5698           which is not fully implemented in the io-layer.
5699         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
5700
5701 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
5702
5703         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
5704         threads-types.h: more API cleanups.
5705
5706 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
5707
5708         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
5709         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
5710         threadpool.c, threads.c: first pass at the exported API cleanup.
5711
5712 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
5713
5714         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
5715
5716 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5717
5718         * icall.c: added internalGetHome.
5719
5720 2004-06-14  Dick Porter  <dick@ximian.com>
5721
5722         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
5723         possible to return successfully when '.' or '..' were the only
5724         entries in a directory, but were skipped.  The MonoIOStat was not
5725         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
5726         Fixes bug 59574.
5727
5728 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
5729
5730         * reflection.c: make binaries run on .Net 1.1 by default.
5731
5732 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
5733
5734         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
5735
5736 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
5737
5738         * marshal.c: keep track of struct size with explicit layout
5739         (bug #59979).
5740
5741 2004-06-12  Martin Baulig  <martin@ximian.com>
5742
5743         * mono-debug-debugger.c: Comment out a debugging g_message().
5744
5745 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
5746
5747         * reflection.c, reflection.h: do not free custom attrs that are cached.
5748         * icall.c: use braces to make code clearer.
5749
5750 2004-06-11  Martin Baulig  <martin@ximian.com>
5751
5752         * class.h (MonoInflatedField): New type.
5753         (MonoClassField): Replaced `MonoType *generic_type' with
5754         `MonoInflatedField *generic_info'.
5755
5756         * icall.c
5757         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
5758
5759 2004-06-11  Martin Baulig  <martin@ximian.com>
5760
5761         * reflection.c (mono_image_create_method_token): Correctly encode
5762         varargs methods.
5763
5764 2004-06-11  Martin Baulig  <martin@ximian.com>
5765
5766         * metadata.c (mono_metadata_parse_method_signature): When parsing
5767         a MethodDef which has VarArgs, also set sentinelpos if we don't
5768         have any parameters.
5769
5770 2004-06-11  Martin Baulig  <martin@ximian.com>
5771
5772         * verify.c (mono_method_verify): In CEE_CALL, use
5773         mono_method_get_signature() to get the method's signature, unless
5774         we're a PInvoke method.
5775
5776 2004-06-10  Jackson Harper  <jackson@ximian.com>
5777
5778         * assembly.c: Use <path>/lib/mono/gac for the extra paths
5779         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
5780         logical name as the supplied path is just a prefix to the gac not
5781         the direct path to it.
5782         
5783 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
5784
5785         * reflection.c: make the token for a created method match
5786         the token of the MethodBuilder it was created from
5787         (IKVM requires this behaviour now).
5788
5789 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
5790
5791         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
5792         reflection.c, socket-io.c: leak fixes.
5793
5794 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
5795
5796         * icall.c: handle sentinel pos in vararg methods in position different
5797         from 0.
5798
5799 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5800
5801         * culture-info-tables.h: freshly generated.
5802
5803 2004-06-09  Martin Baulig  <martin@ximian.com>
5804
5805         * loader.c (mono_get_method_constrained): Call `mono_class_init
5806         (constrained_class)'.   
5807
5808 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
5809
5810         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
5811         any methods. Fixes #59629.
5812
5813 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5814
5815         * culture-info-tables.h: reflecting locale-builder updates.
5816
5817 2004-06-08  Dick Porter  <dick@ximian.com>
5818
5819         * object.h:
5820         * locales.c: Fixed compile warnings, including a real bug in
5821         CompareInfo_internal_compare.
5822         
5823 2004-06-08  Dick Porter  <dick@ximian.com>
5824
5825         * locales.c
5826         (ves_icall_System_Globalization_CompareInfo_internal_index):
5827         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
5828         Double-check the resuls of usearches, because ICU currently
5829         ignores most of the collator settings here.  Fixes bug 59720.
5830         
5831 2004-06-08  Dick Porter  <dick@ximian.com>
5832
5833         * locales.c
5834         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
5835         Fix memory leak and segfault-causing typo.  No idea how this one
5836         lasted so long without being noticed.
5837
5838 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
5839
5840         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
5841         any methods. Fixes #59629.
5842
5843 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5844
5845         * assembly.c:
5846         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
5847         own the critical section before). Removed dead code (that's done
5848         in the preload hook).
5849
5850         (mono_assembly_load_with_partial_name): call the preload hook.
5851
5852 2004-06-08  Martin Baulig  <martin@ximian.com>
5853
5854         * metadata.c (mono_metadata_signature_alloc): Default
5855         `sentinelpos' to -1.
5856
5857         * reflection.c (mono_image_get_array_token): Likewise.
5858
5859 2004-06-08  Martin Baulig  <martin@ximian.com>
5860
5861         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
5862
5863         * metadata.c (mono_metadata_parse_method_signature): When parsing
5864         a MethodDef which has VarArgs, set sentinelpos.
5865
5866         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
5867         `gint16' since we're using -1 for non-varargs methods.
5868
5869         * reflection.c
5870         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
5871         (method_encode_signature): Added varargs support.
5872         (method_builder_encode_signature): Likewise.
5873         (mono_image_get_varargs_method_token): New static method.
5874         (mono_image_create_method_token): New public method; this is
5875         called via an icall instead of mono_image_create_token() when
5876         calling a varargs method.       
5877
5878 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
5879
5880         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
5881
5882 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5883
5884         * culture-info-tables.h : Reflecting the latest locale-builder that
5885           fixed empty array representation ({} to {0}).
5886
5887 2004-06-07  Jackson Harper  <jackson@ximian.com>
5888
5889         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
5890         looking up extra gac paths. This allows MONO_GAC_PATH to act
5891         exactly like a prefix.
5892         
5893 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
5894
5895         * reflection.c (mono_reflection_type_from_name): Make a copy of the
5896         type name before modifying it. Fixes #59405.
5897
5898 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5899
5900         * culture-info.h: added fields for "all datetime patterns".
5901         * locales.c: (  ves_icall_System_Globalization_CultureInfo
5902           _construct_datetime_format ()): fill xxx_patterns fields.
5903         * object.h: added fields for "all datetime patterns" to
5904           MonoDateTimeFormatInfo.
5905         * culture-info-tables.h: reflecting locale-builder updates.
5906
5907 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
5908
5909         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
5910         the event has no add and remove methods. Fixes #59629.
5911
5912 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
5913
5914         * object.c: Fixed possible integer overflow when allocating large
5915         strings.
5916
5917 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
5918
5919         * culture-info-tables.h: reflecting locale-builder updates.
5920
5921 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
5922
5923         * culture-info-tables.h: reflecting locale-builder updates.
5924
5925 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
5926
5927         * culture-info-tables.h: reflecting locale-builder updates.
5928
5929 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
5930
5931         * threads.c: Made Thread.Sleep abortable.
5932
5933 2004-06-02  Martin Baulig  <martin@ximian.com>
5934
5935         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
5936
5937         * debug-mono-symfile.h: Bumped symbol file version number to 37.
5938
5939 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
5940
5941         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
5942
5943 2004-05-30  Jackson Harper  <jackson@ximian.com>
5944
5945         * reflection.c: Do not hardcode assembly versions or public key
5946         tokens anymore. All of this except the corlib section was dead
5947         code anyways.
5948         
5949 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
5950
5951         * object.c (mono_runtime_invoke_array): Automatically create boxed
5952         objects for byref valuetypes if needed. Fixes #59300.
5953         
5954         * object.c (mono_method_return_message_restore): Handle 
5955         MONO_TYPE_OBJECT as well.
5956
5957 2004-05-28  Jackson Harper  <jackson@ximian.com>
5958
5959         * reflection.c: The modified type encoding was causing build
5960         problems. Reverted for now.
5961         
5962 2004-05-28  Jackson Harper  <jackson@ximian.com>
5963
5964         * reflection.c/h: Take an assembly ref so that we dont create
5965         fully qualified names when encoding types in the same assembly as
5966         the custom attribute being emitted.
5967         * appdomain.c: Increment version number.
5968         
5969 2004-05-26  Duncan Mak  <duncan@ximian.com>
5970
5971         * icall.c
5972         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
5973         Set the full version number (major, minor, build, revision).
5974
5975 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
5976
5977         * marshal.c (emit_struct_conv): increment src/dst after blit
5978         (mono_marshal_get_managed_wrapper,
5979         mono_marshal_get_native_wrapper): make sure we have marshalling
5980         info before marshalling params (info computation affects
5981         blittable)
5982
5983         * class.c (class_compute_field_layout): correctly deal with
5984         blittable
5985         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
5986         value types (as per what windows dows by default)
5987         (mono_class_setup_mono_type): System.ValueType is blittable
5988         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
5989         blittable
5990
5991         * marshal.c (mono_marshal_load_type_info): flag types  as
5992         non-blittable if the native layout doesn't match the managed
5993         layout
5994
5995 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5996
5997         * appdomain.c: don't add stuff in the private search path that is
5998         above the application base. If application base is not set, there's
5999         no private search path.
6000
6001 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
6002
6003         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
6004         byref struct arguments in native->managed marshalling.
6005
6006 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
6007
6008         * marshal.c (mono_marshal_get_runtime_invoke): correctly
6009         cache methods using signature (special case for methods
6010         that are value type or string class)
6011         
6012         * image.c (mono_image_close): clean up allocated GSList's
6013         in runtime_invoke_cache.
6014
6015 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6016
6017         * mono-config.c: set the correct path for mono_cfg_dir on windows when
6018         there's no MONO_CFG_DIR environment variable defined.
6019
6020 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6021
6022         * threads.c: windows version must be >= 0x0500 to include OpenThread.
6023
6024 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
6025
6026         * threadpool.c: Really wait for 500ms after the async call, even if the wait
6027           is interrumped.
6028         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
6029           before waiting for it, and call CloseHandle after the wait to unref it.
6030           This will make sure that handles are not disposed too early.
6031
6032 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6033
6034         * appdomain.c:
6035         * appdomain.h:
6036         * icall.c: removed
6037         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
6038         needed now.
6039
6040         * object.c: se the application_base only for the domain that runs
6041         Main. Fixes bug #59216,
6042
6043 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6044
6045         * appdomain.c:
6046         * object.c: only the domain in which Main is run have
6047         SetupInformation.ConfigurationFile set, so moved a few lines from
6048         appdomain.c to object.c.
6049
6050 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6051
6052         * appdomain.c: we tried to load [name].(dll|exe), but according
6053         to bug #57710, we must also try [culture]/[name].(dll|exe) and
6054         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
6055         There's a test case attached to bug #58922.
6056
6057 2004-05-27  Dick Porter  <dick@ximian.com>
6058
6059         * icall.c:
6060         * file-io.c: Implemented icalls for locking and unlocking regions
6061         in a file.
6062         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
6063         FALSE on error (fixes both compiler warning and real bug.)
6064
6065 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
6066
6067         * culture-info-tables.h: reflecting locale-builder updates.
6068
6069           (Added missing ChangeLog entry for 05/26)
6070
6071 2004-05-27  Jackson Harper  <jackson@ximian.com>
6072
6073         * locales.c: Fix some cut and paste errors.
6074         
6075 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6076
6077         * mono-config.c: set the correct path for config. directory on windows.
6078
6079 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6080
6081         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
6082           on win32.
6083
6084 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
6085
6086         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
6087         from pinvoke functions.
6088         
6089         * marshal.c (mono_ftnptr_to_delegate): Implement this.
6090
6091 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6092
6093         * culture-info-tables.h: reflecting locale-builder updates.
6094
6095 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
6096
6097         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
6098         #59086.
6099
6100 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
6101
6102         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
6103         * icall.c: Modified icalls for RNG.
6104         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
6105         Windows (CryptoAPI).
6106
6107 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
6108
6109         * locales.c: Fix build.
6110
6111 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6112
6113         * culture-info-tables.h: reflecting locale-builder updates.
6114
6115 2004-05-25  Jackson Harper  <jackson@ximian.com>
6116
6117         * locales.c: When creating the current culture use the $LANGs
6118         specific culture. So DateTimeFormat and NumberFormat entries are created.
6119         
6120 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
6121
6122         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
6123         a char array as parameter.
6124
6125 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
6126
6127         * image.c: In mono_image_open(), always use an absolute path name to
6128           look for already loaded images.
6129
6130 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
6131
6132         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
6133         missing in the windows build (like older cygwin include files).
6134
6135 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
6136
6137         * icall.c: Fixed check for possible integer overflow in Buffer_
6138         BlockCopy icall. Replaced comments style // by /* */.
6139
6140 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
6141
6142         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
6143         
6144         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
6145         check after MONO_VTADDR. Fixes pinvoke2.exe.
6146
6147         * marshal.h marshal.c metadata.h: Add beginnings of support for
6148         ftnptr -> delegate marshalling.
6149
6150 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
6151
6152         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
6153         * threads.c: Fix warnings.
6154
6155 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
6156
6157         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
6158         * icall.c: Registered icalls for Suspend and Resume.
6159         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
6160           Thread.Abort.
6161         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
6162         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
6163         * process.c: Use WaitForSingleObjectEx.
6164         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
6165           checkpoints.
6166         * threads.c, threads.h: Make use of new Ex wait methods. Improved
6167           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
6168           for Suspend and Resume. Added new mono_thread_stop, used for stoping
6169           background threads. Added basic support for Abort in Windows.
6170           Start new threads using a managed delegate invoke wrapper. This wrapper
6171           has an interruption checkpoint that is needed since an interruption
6172           can be requested before the thread leaves the unmanaged code that starts 
6173           the thread.
6174         * marshal.c: Added interruption checkpoint after every native call, and
6175           also before managed calls for wrappers called from unmanaged code to
6176           go into managed code.
6177         * object.h: Added new field in MonoThread to keep track of interruption
6178           requests.
6179
6180 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
6181
6182         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
6183         calls.
6184
6185 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6186
6187         * appdomain.c:
6188         * assembly.c:
6189         * gc.c:
6190         * locales.c:
6191         * mono-config.c:
6192         * rand.c: getenv -> g_getenv (windows!)
6193
6194         * process.c: complete_path is also used on non-windows platforms.
6195
6196 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6197
6198         * icall.c: new signature for Process_Start.
6199
6200         * process.[ch]: new signature for Process_Start. If we're on windows
6201         and UseShellExecute is false, we have to search for the program by
6202         ourselves if we don't get a full path.
6203
6204 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
6205
6206         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
6207         marshalling and call CleanUpNativeData if needed. Fixes #58646.
6208
6209 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6210
6211         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
6212         Fixes bug #58373.
6213
6214 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6215
6216         * process.c: use double quotes to quote program name and arguments on
6217         windows. Fixes bug #58575.
6218
6219 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6220
6221         * file-io.c: don't return "." and ".." when using windows Find*File.
6222
6223 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
6224
6225         * marshal.c: Don't pass wrappers to message init because method 
6226         addressed used to lookup metadata. part of remoting[2|3] fix.
6227
6228 2004-05-15  Jackson Harper  <jackson@ximian.com>
6229
6230         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
6231         path is essentially the same as MONO_PATH except that it points to
6232         GACs instead of lib directories.
6233         * loader.h: The user gac is gone so we dont need function to
6234         enable/disable it.
6235         * mono-config.c: user gac option is now gone.
6236         
6237 2004-05-15  Jackson Harper  <jackson@ximian.com>
6238
6239         * culture-info.h: Make defines more consistent, add calendar data
6240         to the culture info table.
6241         * culture-info-tables.h: Add basic calendar data. Basically
6242         everyone gets default gregorian until all the data is
6243         updated.
6244         * locales.c: Use the new consistent defines. Set calendar data for
6245         culture info objects.
6246         * object.h: add a field for calendar data to CultureInfo
6247         
6248 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
6249
6250         * image.c: image->runtime_invoke_cache is keyed on signatures now.
6251         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
6252         a signature.
6253         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
6254         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
6255         an extra param that is the pointer of the method to invoke. The IL for
6256         the invoke method is no longer specific to the method, but to the
6257         signature of the method. Thus, we can share the same code for multiple
6258         methods. This reduces the number of methods that have to be compiled.
6259
6260 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
6261
6262         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
6263
6264         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6265
6266         * icall.c: Optimize Buffer.BlockCopy.
6267
6268 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6269
6270         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
6271         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
6272         quote). Changed them to "MMMM yyyy".
6273
6274 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
6275
6276         * rand.c
6277         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
6278
6279 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
6280
6281         * reflection.h: Updated after changes to managed structures.
6282
6283         * appdomain.c: Bump corlib version.
6284
6285 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6286
6287         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
6288         windows.
6289
6290 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6291
6292         * Makefile.am: link to ../os/libmonoos.la on windows.
6293
6294         * assembly.c:
6295                 -If MONO_DEBUG, warn about non-existing directories in
6296                 MONO_PATH.
6297                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
6298                 compile time variable.
6299                 -Removed init_default_path and call mono_set_rootdir from
6300                 libmonoos.a instead (windows only).
6301
6302         * assembly.h: declare mono_assembly_getrootdir().
6303
6304         * domain.c:
6305         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
6306
6307         * loader.c: s/getenv/g_getenv/
6308
6309 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
6310
6311         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
6312
6313         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
6314
6315         * metadata.h: Add new marshalling conversions.
6316
6317         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
6318         function.
6319
6320         * reflection.c (mono_reflection_get_type): Lookup the type in all
6321         modules of a multi-module assembly. Fixes #58291.
6322
6323 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
6324
6325         * threads.c: Before aborting a background, set the StopRequested
6326         state.  This avoids throwing the Abort exception.
6327         In mono_thread_manage, don't continue with the shutdown until all
6328         aborted threads have actually stopped.
6329
6330 2004-05-10  Jackson Harper  <jackson@ximian.com>
6331
6332         * locales.c: Remove the modifier from culture names.
6333         
6334 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6335
6336         * Makefile.am: monosn is not installed any more. It has been deprecated
6337         in favor of sn.
6338
6339 2004-05-07  Jackson Harper  <jackson@ximian.com>
6340
6341         * locales.c
6342         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
6343         Fix array construction, add bailout if the length is 0.
6344
6345 2004-05-07  Dick Porter  <dick@ximian.com>
6346
6347         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
6348         machine doesn't have a DNS entry.  Patch by Urs Muff
6349         (umuff@quark.com), fixes bug 57928.
6350
6351 2004-05-06  Jackson Harper  <jackson@ximian.com>
6352
6353         * reflection.c: Handle null PublicTokens properly. alloc mem for
6354         assembly names culture so we dont crash when freeing it.
6355         
6356 2004-05-06  Jackson Harper  <jackson@ximian.com>
6357
6358         * assembly.c: Check the usergac when loading with partial names.
6359         
6360 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
6361
6362         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
6363         does nothing for now (not required for Linux/Windows) but the class
6364         library can call it (and a newer or modified runtime could need it).
6365         * icall.c: Registred icall.
6366
6367 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6368
6369         * loader.c: prints a message on module loading error we set MONO_DEBUG
6370         environment variable.
6371
6372 2004-05-05  Jackson Harper  <jackson@ximian.com>
6373
6374         * appdomain.c: Handle PublicKeyToken=null properly.
6375         
6376 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
6377
6378         * environment.c|h: Added icall ves_icall_System_Environment_
6379         GetOSVersionString to get the current OS version as a string.
6380         * icall.c: Registred icall.
6381
6382 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
6383
6384         * object.c: in mono_object_get_virtual_method(), take into account that
6385         non-virtual methods don't have a slot in the vtable. Check needed when
6386         the object is a proxy.
6387
6388 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
6389
6390         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
6391         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
6392
6393         * object.c (mono_class_compute_gc_descriptor): Fix warning.
6394
6395         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
6396         passed when a valuetype is expected.
6397
6398         * object.c (mono_unhandled_exception): Only set the exit code if the
6399         exception happens in the main thread. Fixes thread5.exe.
6400
6401         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
6402         invalid names. Fixes #58047.
6403
6404 2004-05-03  Jackson Harper  <jackson@ximian.com>
6405
6406         * assembly.c: This line was committed accidently and is unneeded.
6407         
6408 2004-05-03  Jackson Harper  <jackson@ximian.com>
6409
6410         * icall.c: Add new icall for Assembly::LoadWithPartialName
6411         * assembly.c/.h: new function that probes the GAC to load partial
6412         assembly names by Paolo Molaro.
6413         
6414 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6415
6416         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
6417         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
6418         (type_get_fully_qualified_name): Added PublicKeyToken when building a
6419         full type name.
6420
6421 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6422
6423         * appdomain.c: fixed check for 'neutral' culture and removed warning.
6424         * reflection.c: fix bug when parsing a full type name and Version is not
6425         the last thing in the string.
6426
6427 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
6428
6429         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
6430         crashes when it is freed.
6431
6432 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6433
6434         * assembly.c: print the compat warning to stderr.
6435
6436 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
6437
6438         * assembly.c (mono_assembly_load_references): Add a compatibility
6439         hack to run old applications that might be still referencing the
6440         3300-based assemblies, only do this for System.xxx.
6441
6442 2004-05-01  Jackson Harper  <jackson@ximian.com>
6443
6444         * appdomain.c: If the culture is neutral we set it to "".
6445         
6446 2004-04-29  Jackson Harper  <jackson@ximian.com>
6447
6448         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
6449
6450 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
6451  
6452         * string-icalls.c: added low overhead function for copying chars
6453         * icall.c: added needed icall for the above function
6454  
6455 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6456
6457         * icall.c: fix return value of get_global_assembly_cache.  Implemented
6458         Environment.GetLogicalDrives.
6459
6460 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
6461
6462         * rand.c: try and talk to egd or prngd
6463         for random bytes if opening devices fail.
6464
6465 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
6466
6467         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
6468         alignment for the type using the native alignment of its members 
6469         instead of using klass->min_align.
6470
6471         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
6472
6473 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6474
6475         * file-io.c:
6476         * socket-io.c: added check for sys/aio.h.
6477
6478 2004-04-28  Dick Porter  <dick@ximian.com>
6479
6480         * threads.c: Don't abort a thread thats already aborting, when
6481         terminating everything.
6482
6483 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6484
6485         * icall.c: added 2 new async calls for Socket.
6486
6487         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
6488         IO on *nix systems.
6489
6490         * threadpool.c: removed unused variable.
6491
6492 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
6493
6494         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
6495
6496 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
6497
6498         * locales.c: put back string_invariant_tolower () and
6499         string_invariant_toupper ().
6500
6501 2004-04-26 David Waite <mass@akuma.org>
6502
6503         * file-io.h:
6504         * socket-io.h:
6505         * threads.h:
6506         * unicode.h: remove comma from end of enumeration declarations
6507
6508 2004-04-26 David Waite <mass@akuma.org>
6509
6510         * debug-mono-symfile.h:
6511         * decimal.c:
6512         * mono_debug.h:
6513         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
6514
6515
6516 2004-04-26  Jackson Harper  <jackson@ximian.com>
6517
6518         * appdomain.c: Increment version number.
6519         
6520 2004-04-26  Jackson Harper  <jackson@ximian.com>
6521
6522         * appdomain.c: Set assembly references public token value when
6523         PublicKeyToken is specified, not the hash_value. Free public token
6524         values when free assembly name data. Previously the public key
6525         token was hex decoded, however we are using hex encoded public key
6526         tokens, so this is not neccasary.
6527         * assembly.c: Lookup assemblies in the gac if their public token
6528         value is set. Add function to allow enabling user gac
6529         lookups. Specify whether or not the assembly was loaded from the
6530         GAC. Compare full assembly names when checking the cache for
6531         assemblies (Temporarily disabled see comment in code). Remove
6532         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
6533         specifies trace-loader they get extra info to stdout on the
6534         loading of assemblies.
6535         * image.h: Add a field for an assembly references public token
6536         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
6537         whether an assembly has been loaded from the GAC.
6538         * image.c: Remove a corlib -> mscorlib name mapping.
6539         * loader.h: Add function to enable/disable the user gac.
6540         * mono-config.c: Check if the usergac is enabled in the config
6541         file.
6542         * icall.c: New icall to determine whether or not an assembly has
6543         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
6544         * tabldefs.h: Add constant for assemblyref flag that specifies a
6545         full public key is used instead of a public token.
6546         * reflection.c: Remove mscorlib -> corlib mappings. Set
6547         PublicTokenValue instead of hash value. This value is a hex
6548         string so it does not need to be expanded.
6549
6550 2004-04-26  Martin Baulig  <martin@ximian.com>
6551
6552         * mono-debug-debugger.c (mono_debugger_initialize): Set
6553         `mono_debugger_initialized' before calling mono_debug_lock().
6554
6555 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
6556
6557         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
6558           InternalToUpper/InternalToLower.
6559         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
6560           removed invariant culture shortcut.  This is now done in managed code.
6561         * locales.c: (string_invariant_toupper/tolower) removed.
6562
6563 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6564
6565         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
6566         Added Poll internal call.
6567
6568         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
6569         call for Poll. Select was too heavy for polling a single socket.
6570
6571         * threadpool.[ch]: added mono_threadpool_cleanup.
6572         * threads.c: use it. Don't use Thread_Abort on windows.
6573
6574 2004-04-23  Martin Baulig  <martin@ximian.com>
6575
6576         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
6577
6578 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
6579
6580         * icall.c: Registred new icalls for key pair protection and added an
6581         icall for Environment.GetFolderPath on Windows.
6582         * security.c|h: Added new icalls for key pair protection.
6583
6584 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6585
6586         * socket-io.c: don't display the non-supported family warning for known
6587         families. Now this is not displayed on windows when checking support
6588         for IPv4/IPv6.
6589
6590 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6591
6592         * class.c: don't display the layout warning for static fields.
6593
6594 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
6595
6596         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
6597         * locales.c, locales.h: Added new icalls for culture-specific
6598         Char.ToLower and Char.ToUpper.
6599
6600 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6601
6602         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
6603         by David Waite.
6604
6605 2004-04-20  Martin Baulig  <martin@ximian.com>
6606
6607         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
6608         of the type name before passing it to mono_reflection_type_from_name().
6609
6610 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
6611
6612         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
6613         encodings here. Fixes #56965.
6614
6615 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
6616
6617         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
6618         fix test on strstr result not that I can see anything that
6619         relies on the result.
6620
6621 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
6622
6623         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
6624         Fixes #57081.
6625
6626         * marshal.c (mono_marshal_get_string_encoding): New helper function.
6627
6628         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
6629         function to determine which marshalling to use for strings. Fixes
6630         #56965.
6631
6632         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
6633
6634         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
6635
6636 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
6637
6638         * icall.c: #include mono-config.h
6639
6640 2004-04-15  Jackson Harper  <jackson@ximian.com>
6641
6642         * culture-info-tables.h: Fix date formats for en-US culture.
6643         
6644 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
6645
6646         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
6647         ThreadPool.SetMinThreads.
6648         * threadpool.c: Implemented ThreadPool.GetMinThreads and
6649         ThreadPool.SetMinThreads.
6650
6651 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
6652
6653         * mono-config.c: also load the .config file in the directory
6654         where the assembly was found.
6655
6656 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
6657
6658         * assembly.c: load per-assembly config files.
6659         * icall.c: decrapified code to get the config dir and moved to
6660         mono-config.c.
6661         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
6662         per-assembly config files. When doing a dll map lookup give precedence
6663         to the per-assembly data.
6664
6665 2004-04-14  Martin Baulig  <martin@ximian.com>
6666
6667         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
6668         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
6669         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
6670
6671         * mono-debugger-debugger.c: While the debugger is locked, remember
6672         whether the symbol tables have changes and send one single
6673         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
6674
6675 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
6676
6677         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
6678
6679         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
6680         function.
6681
6682         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
6683         account when marshalling string arrays. Fixes #56965.
6684
6685 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
6686
6687         * icall.c: Add new icalls mapping for security.
6688         * security.c|h: Add internal calls for WindowsIdentity,
6689         WindowsImpersonationContext and WindowsPrincipal.
6690
6691 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
6692
6693         * class.c: Added comment to ensure the System.MonoDummy class
6694         is removed when no longer necessary
6695
6696 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
6697
6698         * appdomain.c: Pass arguments to the bootstraping exceptions to
6699         minimize JITed methods at boot
6700
6701         * metadata.c (mono_exception_from_name_two_strings): Allow for the
6702         second string to be null.
6703
6704         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
6705         Change the protocol to minimize the JIT methods at startup.  Now
6706         it Returns the internal codepage, if the value of "int_code_page"
6707         is 1 at entry, and we can not compute a suitable code page
6708         number, returns the code page as a string.
6709
6710 2004-04-13  Jackson Harper  <jackson@ximian.com>
6711
6712         * culture-info-tables.h: Fix number of decimal digits for all
6713         english locales.
6714
6715 2004-04-13  Jackson Harper  <jackson@ximian.com>
6716
6717         * icall.c: Clairfy out of sync error message. It is not always
6718         your corlib that is out of sync.
6719
6720 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
6721
6722         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
6723         properties when only the set accessor is overriden. Fixes #55874.
6724
6725 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
6726
6727         * assembly.c (mono_assembly_load_references): Make this thread safe.
6728         Fixes #56327.
6729
6730 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
6731
6732         * monosn.c: Add missing initialization calls.
6733
6734 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
6735
6736         * locales.c:
6737         ves_icall_System_Globalization_CultureInfo_construct_number_format
6738         Fix g_assert so it compiles on fussier compilers re int/ptr
6739         mismatch
6740
6741 2004-04-08  Dick Porter  <dick@ximian.com>
6742
6743         * socket-io.h:
6744         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
6745         53992.  Also rearrange the code so that the internal calls return
6746         an error value and exceptions are thrown from managed code.
6747
6748         * icall.c: Add type info to the socket icalls.
6749
6750 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6751
6752         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
6753         owes me a beer.
6754
6755 2004-04-07  Martin Baulig  <martin@ximian.com>
6756
6757         * class.c (mono_class_from_generic_parameter): Don't default
6758         `klass->parent' to `mono_defaults.object_type'.
6759
6760 2004-04-07  Martin Baulig  <martin@ximian.com>
6761
6762         * reflection.c (mono_reflection_initialize_generic_parameter): Set
6763         `param->pklass->reflection_info'.       
6764
6765 2004-04-07  Jackson Harper  <jackson@ximian.com>
6766
6767         * culture-info-tables.h: Fix date separator symbol.
6768         
6769 2004-04-07  Martin Baulig  <martin@ximian.com>
6770
6771         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
6772         from System.Type to System.MonoType.
6773
6774 2004-04-07  Martin Baulig  <martin@ximian.com>
6775
6776         * reflection.h
6777         (MonoReflectionGenericParam): Added `has_reference_type' and
6778         `has_value_type' fields.
6779
6780         * reflection.c (mono_image_get_generic_param_info): Encode the
6781         correct flags if we have the `class' or `struct' constraint.
6782
6783 2004-04-07  Martin Baulig  <martin@ximian.com>
6784
6785         * reflection.h
6786         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
6787
6788 2004-04-07  Jackson Harper  <jackson@ximian.com>
6789
6790         * appdomain.c: Revert extra patches, just wanted to bump the
6791         version number.
6792         
6793 2004-04-07  Jackson Harper  <jackson@ximian.com>
6794
6795         * Makefile.am: Add culture-info private headers.
6796         * icall.c: Add new icalls for contructing locales.
6797         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
6798         * locales.h: Declare new culture info construction methods.
6799         * object.h: Add new fields used to avoid the CultureMap to
6800         MonoCultureInfo.
6801         * culture-info.h: Definition of structs used in the culture info
6802         tables.
6803         * culture-info-tables.h: Autogenerated tables that contain culture
6804         info data. This file was generated with the locale-builder tool.
6805         * appdomain.c: Incement corlib version number.
6806         
6807 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
6808
6809         * appdomain.c: (mono_runtime_init) move mono_thread_init
6810         to before mono_object_new calls so critical sections
6811         are initialized before use.
6812
6813 2004-04-07  Martin Baulig  <martin@ximian.com>
6814
6815         * icall.c
6816         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
6817         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
6818         (ves_icall_MonoGenericParam_initialize): Removed.
6819         (monogenericparam_icalls): Removed.
6820         (generictypeparambuilder_icalls): Added new table for
6821         System.Reflection.Emit.GenericTypeParameterBuilder.
6822
6823         * reflection.c
6824         (mono_reflection_define_generic_parameter): Removed.
6825         (mono_reflection_initialize_generic_parameter): This is now called
6826         from GenericTypeParameterBuilder's .ctor.
6827
6828 2004-04-06  Martin Baulig  <martin@ximian.com>
6829
6830         * class.c (mono_class_init): Don't inflate nested classes in a
6831         generic instance.
6832         (mono_type_get_name_recurse): Include the generic arguments for
6833         generic instances and generic type declarations.
6834         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
6835         (_mono_class_get_instantiation_name): Removed.
6836         (mono_class_create_generic): Always use `gklass->name' as our name.
6837
6838         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
6839
6840         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
6841         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
6842         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
6843         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
6844         closed generic methods here.
6845
6846         * reflection.c
6847         (mono_reflection_generic_inst_get_nested_types): Removed.
6848         (inflate_mono_method): Copy the generic parameters from the
6849         MonoMethodHeader into out MonoGenericMethod.
6850
6851 2004-04-06  Martin Baulig  <martin@ximian.com>
6852
6853         * row-indexes.h
6854         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
6855
6856         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
6857
6858         * reflection.c (build_compressed_metadata): If we have any entries
6859         in the GenericParam, MethodSpec or GenericParamConstraint tables,
6860         set the header version to 1.1.
6861
6862 2004-04-06  Martin Baulig  <martin@ximian.com>
6863
6864         * class.c (mono_class_init): If we're a generic instance,
6865         initialize our nested classes, too.
6866         (_mono_class_get_instantiation_name): Deal with the new `!%d'
6867         suffix. 
6868
6869 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6870
6871         * process.c: quote the argument passed to the shell on windows.
6872
6873 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
6874
6875         * threads.c (mono_alloc_special_static_data): Allow this to be
6876         called during startup.
6877
6878 2004-04-02  Martin Baulig  <martin@ximian.com>
6879
6880         * icall.c
6881         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
6882
6883 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
6884
6885         * icall.c: Fix build.
6886
6887 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
6888
6889         * Makefile.am: Added security.c|h.
6890         * icall.c: Added icall for get_UserName;
6891         * security.c: New file for security related icalls. Added function
6892         get_UserName for System.Environment (fix #56144).
6893         * security.h: New. Header file for security.c
6894
6895 2004-04-02  Dick Porter  <dick@ximian.com>
6896
6897         * icall.c: Deleted the icalls that were obsoleted some time ago
6898         by the ICU string code, and which were mixed into the icall
6899         rearranging.  Fixes bug 55969.
6900
6901         * string-icalls.h: 
6902         * string-icalls.c: Deleted the code that those icalls reference.
6903
6904 2004-04-01  Martin Baulig  <martin@ximian.com>
6905
6906         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
6907
6908         * class.c (mono_class_from_generic_parameter): Don't set 
6909         TYPE_ATTRIBUTE_INTERFACE.
6910         (my_mono_class_from_generic_parameter): Likewise.
6911
6912 2004-04-01  Martin Baulig  <martin@ximian.com>
6913
6914         * loader.c (find_method): Added an optional `MonoClass *ic'
6915         argument to search in a specific interface.
6916         (mono_get_method_constrained): New public function.
6917
6918 2004-04-01  Martin Baulig  <martin@ximian.com>
6919
6920         * reflection.c (mono_image_get_generic_field_token): Use the
6921         `handleref' cache here.
6922
6923 2004-04-01  Martin Baulig  <martin@ximian.com>
6924
6925         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
6926
6927         * reflection.c (create_generic_typespec): Use the `typespec' hash
6928         here, not the `typeref' one.    
6929
6930 2004-04-01  Martin Baulig  <martin@ximian.com>
6931
6932         * class.c (mono_class_inflate_generic_type): Moved the
6933         functionality into a new static inflate_generic_type() which
6934         returns NULL if it didn't do anything.  Only increment the
6935         `mono_stats.inflated_type_count' if we actually inflated
6936         something.
6937         (mono_class_get_full): Check the classes type to see whether we
6938         need to inflate it; also inflate MONO_TYPE_(M)VAR.
6939
6940 2004-04-01  Jackson Harper  <jackson@ximian.com>
6941
6942         * reflection.c: Set culture for assembly references.
6943         
6944 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
6945
6946         * reflection.[ch], icall.[ch], Fix support for pinning variables.
6947
6948 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6949
6950         * assembly.c:
6951         (do_mono_assembly_open): the critical section also covers
6952         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
6953
6954 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6955
6956         * threads.c:
6957         (mono_manage_threads): abort the background threads when finishing.
6958         Fixes bug #47232.
6959
6960 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6961
6962         * gc.c: only close the done_event handle if there was no timeout.
6963         C-ified comments.
6964
6965 2004-03-30  Martin Baulig  <martin@ximian.com>
6966
6967         * icall.c (icall_entries): It's called "System.Activator", not
6968         "System.Activation".    
6969
6970 2004-03-30  Martin Baulig  <martin@ximian.com>
6971
6972         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
6973         (mono_class_create_from_typespec): Likewise.
6974
6975 2004-03-30  Martin Baulig  <martin@ximian.com>
6976
6977         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
6978         `has_ctor_constraint' and `initialized'.
6979
6980 2004-03-30  Martin Baulig  <martin@ximian.com>
6981
6982         * reflection.c (encode_new_constraint): New static function to add
6983         the constructor constraint attribute to a type parameter.
6984         (encode_constraints): Call encode_new_constraint() if necessary.
6985
6986         * reflection.h
6987         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
6988
6989         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
6990         
6991 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
6992
6993         * reflection.c, icall.c: add support for pinning variables. 
6994
6995 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
6996
6997         * marshal.c (mono_marshal_get_managed_wrapper):
6998         init bool local with zero rather than null.
6999
7000 2004-03-29  Martin Baulig  <martin@ximian.com>
7001
7002         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
7003         the "official" behavior here.
7004         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
7005
7006 2004-03-29  Martin Baulig  <martin@ximian.com>
7007
7008         * icall.c: Reflect latest API changes.
7009
7010 2004-03-29  Martin Baulig  <martin@ximian.com>
7011
7012         * loader.c (mono_get_method_from_token): Also call
7013         mono_metadata_load_generic_params () for abstract and interface
7014         methods; replace the type arguments in the method signature with
7015         the ones which are loaded from the metadata.
7016
7017 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
7018
7019         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
7020         of the lock is not the current thread. MS.NET don't do it, in spite of
7021         what the documentation says. See bug #56157.
7022
7023 2004-03-28  Martin Baulig  <martin@ximian.com>
7024
7025         * class.c (mono_class_init): Don't call init_properties() and
7026         init_events() for generic instances; set `prop->parent' when
7027         inflating properties.
7028
7029         * reflection.c (mono_generic_inst_get_object): Call
7030         `mono_class_init (ginst->klass)'.
7031         (mono_type_get_object): Only create a MonoGenericInst if your
7032         generic type is a TypeBuilder.
7033         (do_mono_reflection_bind_generic_parameters): Only set
7034         `ginst->is_dynamic' if our generic type is a TypeBuilder.
7035
7036 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
7037
7038         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
7039         Fixes #56091.
7040
7041 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7042
7043         * icall.c: added Kill_internal icall.
7044         * process.[ch]: added Kill_internal icall.
7045
7046 2004-03-25  Martin Baulig  <martin@ximian.com>
7047
7048         * class.h (MonoStats): Added `generic_instance_count',
7049         `inflated_method_count', `inflated_type_count' and
7050         `generics_metadata_size'.       
7051
7052 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7053
7054         * reflection.c: no warnings now.
7055
7056 2004-03-25  Martin Baulig  <martin@ximian.com>
7057
7058         * class.c (mono_class_get_full): New public function; does a
7059         mono_class_get(), but also takes a `MonoGenericContext *'.
7060
7061         * loader.c (mono_field_from_memberref): Renamed to
7062         `field_from_memberref', made static and added `MonoGenericContext *'
7063         argument.
7064         (mono_field_from_token): Added `MonoGenericInst *' argument.
7065         (method_from_memberef): Likewise.
7066         (mono_get_method_from_token): Likewise.
7067         (mono_get_method_full): New public function; does a
7068         mono_get_method(), but also takes a `MonoGenericContext *'.
7069
7070         * verify.c (mono_method_verify): Get the method's generic context
7071         and pass it to mono_field_from_token(), mono_get_method_full() and
7072         mono_class_get_full().
7073
7074 2004-03-25  Martin Baulig  <martin@ximian.com>
7075
7076         * class.c (mono_class_inflate_generic_type): Take a
7077         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
7078         `MonoGenericMethod *'.
7079
7080 2004-03-25  Martin Baulig  <martin@ximian.com>
7081
7082         * loader.h (MonoMethodInflated): Store the MonoGenericContext
7083         instead of the MonoGenericMethod here.
7084
7085 2004-03-25  Martin Baulig  <martin@ximian.com>
7086
7087         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
7088         each time we create a new MonoGenericInst, we also create a new
7089         context which points back to us.
7090
7091         * class.c (inflate_method): Use `ginst->context' instead of
7092         creating a new context.
7093
7094         * loader.c (method_from_memberref): Use
7095         `klass->generic_inst->context' instead of creating a new context.
7096
7097 2004-03-25  Martin Baulig  <martin@ximian.com>
7098
7099         * class.h (MonoGenericContext): New struct.
7100         (MonoGenericMethod): Removed `generic_inst'.
7101
7102         * class.c (mono_class_inflate_generic_method): Take a
7103         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
7104
7105 2004-03-25  Martin Baulig  <martin@ximian.com>
7106
7107         * loader.h (MonoMethodInflated): New typedef.
7108
7109         * metadata.h (MonoMethodSignature): Removed `gen_method', make
7110         `generic_param_count' consume just 30 bits, added `is_inflated'
7111         and `has_type_parameters' flags (one bit each).
7112
7113         * class.c (mono_class_inflate_generic_method): Create a
7114         MonoMethodInflated instead of a MonoMethodNormal and set
7115         `is_inflated' in the method signature.
7116
7117         * class.h (MonoGenericMethod): Removed `generic_method'.
7118
7119 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
7120
7121         * image.c: Make sure the name of a MonoImage is always an absolute path.
7122           This fixes bug #54415.
7123
7124 2004-03-24  Martin Baulig  <martin@ximian.com>
7125
7126         * class.c (mono_class_setup_vtable): If we're a generic instance,
7127         use our generic type's vtable size.
7128
7129 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
7130
7131         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
7132         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
7133         problems.
7134
7135 2004-03-23  Martin Baulig  <martin@ximian.com>
7136
7137         * class.h (MonoDynamicGenericInst): Added `int count_events' and
7138         `MonoEvent *events'.
7139
7140         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
7141         (typebuilder_icalls): Added "get_event_info"; calls
7142         mono_reflection_event_builder_get_event_info(). 
7143
7144         * reflection.c (mono_reflection_generic_inst_initialize): Added
7145         `MonoArray *events'.
7146         (mono_reflection_event_builder_get_event_info): New function.
7147
7148 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
7149
7150         * object.h: add mono_type_initialization_init
7151
7152         * object.c (mono_runtime_class_init): 
7153         implement class constructor synchronization rules
7154         to cope with threading issues.  
7155         add mono_type_initialization_init
7156
7157         * appdomain.c (mono_runtime_init): call 
7158         mono_type_initialization_init
7159
7160         * class.h: removing initializing field from MonoVTable
7161
7162 2004-03-23  Martin Baulig  <martin@ximian.com>
7163
7164         * class.c (my_mono_class_from_generic_parameter): Use
7165         `param->name' if it's not NULL. 
7166
7167 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
7168
7169         * class.c: do not insert non-virtual methods in the vtable.
7170         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
7171         that means the method is non-virtual. This never would have
7172         happened before.
7173
7174 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
7175
7176         * profiler.c: Added lock for accessing coverage_hash.
7177
7178 2004-03-22  Martin Baulig  <martin@ximian.com>
7179
7180         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
7181         `method->method->signature->generic_param_count != 0' to make it
7182         work for interface methods.
7183
7184 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7185
7186         * process.c: quote the string passed to the shell using g_shell_quote.
7187
7188 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7189
7190         * threads.c:
7191         (mono_threads_manage): don't remove the finalizer thread and self
7192         from the threads hash table so that mono_thread_manage can be called
7193         more than once.
7194
7195 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7196
7197         * process.c: quote the arguments when UseShellExecute is true. Fixes
7198         bug #55790.
7199
7200 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7201
7202         * threads.c: set mono_thread_detach as a cleanup routine for every
7203         thread. This way it's always executed upon thread termination, either
7204         aborted or finished normally. No more xsp hangs!
7205
7206 2004-03-17  Martin Baulig  <martin@ximian.com>
7207
7208         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
7209         `int count_nested' and a `MonoType **nested'.
7210
7211         * reflection.c (mono_reflection_bind_generic_parameters): Moved
7212         most of the functionality into a new static
7213         do_mono_reflection_bind_generic_parameters() and don't take a
7214         `MonoType *nested_in' argument any more.  Don't compute nested
7215         types here.
7216         (mono_reflection_generic_inst_get_nested_types): New public method
7217         to get nested types.
7218
7219         * class.c (mono_class_create_generic): Set `klass->nested_in' if
7220         we're a nested class.
7221
7222         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
7223         mono_reflection_generic_inst_get_nested_types() to compute the
7224         nested types.
7225
7226 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
7227
7228         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
7229         descriptive error message under windows.
7230         
7231 2004-03-17  Martin Baulig  <martin@ximian.com>
7232
7233         * class.c (dup_type): Added `const MonoType *original' argument;
7234         copy the attrs from the original type.
7235
7236 2004-03-17  Martin Baulig  <martin@ximian.com>
7237
7238         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
7239         `m->generic_inst_cache' here.
7240
7241 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
7242
7243         * exception.h exception.c: Add stack_overflow_exception.
7244
7245 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7246
7247         * threadpool.c:
7248         (overlapped_callback): call SetEvent *after* invoking the callback.
7249         No need to call CloseHandle.
7250
7251 2004-03-16  Martin Baulig  <martin@ximian.com>
7252
7253         * reflection.c (mono_image_get_fieldref_token): Take a
7254         `MonoReflectionField *' instead of a `MonoClassField *' and a
7255         `MonoClass *'; store the `MonoReflectionField *' in the hash.
7256
7257 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7258
7259         * appdomain.c: don't add the culture to the filename we're looking for
7260         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
7261
7262 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7263
7264         * locales.c: don't ignore symbols when doing case insensitive compares.
7265         Thanks Dick! Fixes bug #54046.
7266
7267         * threads.c: surround 'threads' usage with enter/leave in
7268         mono_thread_manage.
7269
7270 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
7271
7272         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
7273         implicitly marshalled as [Out]. Fixes #55450.
7274
7275         (mono_marshal_get_runtime_invoke): Zero out the result if there is
7276         an exception.
7277
7278 2004-03-16  Martin Baulig  <martin@ximian.com>
7279
7280         * class.c (mono_class_from_generic_parameter): Use the actual
7281         parameter name. 
7282
7283 2004-03-16  Martin Baulig  <martin@ximian.com>
7284
7285         * reflection.c (type_get_signature_size): New static function.
7286         Compues the size of the type in a method signature.
7287         (method_get_signature_size): New static function; calls
7288         type_get_signature_size() to compute the actual size of the
7289         method's signature.
7290         (method_encode_signature): Use method_get_signature_size() to get
7291         the signature's size rather than using `nparams * 10'.
7292
7293 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7294
7295         * file-io.h: define here WapiOverlapped on windows. I don't want the
7296         regular OVERLAPPED one.
7297
7298         * file-io.c:
7299         * threadpool.c: somehow, BindIoCompletionCallback is not found.
7300         Disabling AIO on windows.
7301
7302 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7303
7304         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
7305         bug #55385.
7306
7307 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7308
7309         * appdomain.c: upgraded corlib version.
7310
7311         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
7312         and BeginWrite. Allow opening files for asynchrnous operations.
7313
7314         * file-io.h: new struct that maps FileStreamAsyncResult.
7315         * icall.c: added new icalls.
7316         * process.[ch]: support setting child process environment variables
7317         and use the SHELL or COMSPEC when UseShellExecute is true.
7318
7319         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
7320         callback for async. IO is here and also BindHandle.
7321
7322         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
7323         from here.
7324
7325 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
7326
7327         * reflection.c (create_custom_attr): Allow len == 0.
7328
7329         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
7330         computation on big-endian machines.
7331
7332 2004-03-13  Martin Baulig  <martin@ximian.com>
7333
7334         * class.h (MonoGenericInst): Added `int count_ifaces'.
7335
7336         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
7337         `ginst->count_ifaces' instead `klass->interface_count' since we
7338         may get called before the vtable is created.
7339
7340         * loader.c (mono_method_get_param_names): If we're a generic
7341         instance, return and don't initialize the class.
7342
7343         * reflection.c (mono_reflection_setup_generic_class): Don't call
7344         ensure_runtime_vtable().
7345         (mono_reflection_bind_generic_parameters): Set
7346         `ginst->count_ifaces'.
7347
7348 2004-03-11  Jackson Harper <jackson@ximian.com>
7349
7350         * icall.c:
7351         * unicode.c:
7352         * unicode.h: Remove unused System.Char icalls.
7353         
7354 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
7355
7356         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
7357         code when we P/Invoke the first library in Windows.Forms, instead
7358         of when we first open the assembly.
7359
7360         * assembly.c: Drop the lookup from here.
7361
7362 2004-03-10  Martin Baulig  <martin@ximian.com>
7363
7364         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
7365         class for properties, fields and events.  Finally fixes #54945.
7366
7367 2004-03-10  Martin Baulig  <martin@ximian.com>
7368
7369         * metadata.c (mono_metadata_class_equal): New static function;
7370         checks whether two generic instances or two generic parameters are
7371         equal.
7372         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
7373         compare classes.        
7374
7375 2004-03-10  Martin Baulig  <martin@ximian.com>
7376
7377         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
7378
7379         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
7380         argument and write it into the `reflection_info' field.
7381
7382         * icall.c
7383         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
7384         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
7385
7386 2004-03-09  Jackson Harper  <jackson@ximian.com>
7387
7388         * char-conversions.h: use 8 bits for numeric data its all we need
7389         * icall.c: numeric data is only 8 bits now.
7390
7391 2004-03-09  Martin Baulig  <martin@ximian.com>
7392
7393         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
7394
7395         * class.c (init_properties, init_events): Initialize the new
7396         `parent' field.
7397
7398         * reflection.c (typebuilder_setup_properties): Likewise.
7399         (typebuilder_setup_events): Likewise.
7400
7401         * reflection.h (MonoEventInfo): Replaced `parent with
7402         `declaring_type' and `reflected_type'.
7403
7404         * icall.c (ves_icall_get_property_info): Distinguish between
7405         declaring and reflected type.
7406         (ves_icall_get_event_info): Likewise.
7407
7408 2004-03-09  Martin Baulig  <martin@ximian.com>
7409
7410         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
7411         (ves_icall_Type_GetField): Correctly set field->klass.
7412
7413 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
7414
7415         * loader.h: Fix warning.
7416
7417 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
7418
7419         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
7420         library routine if present.  Notice that it will still continue
7421         executing even if its missing, for those working on the Gtk#
7422         edition of Windows.Forms.
7423
7424         * assembly.c (do_mono_assembly_open): If loading the
7425         System.Windows.Forms call mono_loader_wini_init.
7426
7427 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
7428
7429         * class.h: Added MonoRemoteClass struct.
7430         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
7431         function for MonoStrings.
7432         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
7433         Added internal call for getting the proxy type.
7434         * marshal.c: Get the type of transparent proxies from its remote_class.
7435         Added methods that generate the IL for type checks and casts:
7436         mono_marshal_get_isinst, mono_marshal_get_castclass, 
7437         mono_marshal_get_proxy_cancast.
7438         * marshal.h: Declaration of the previous new methods.
7439         * object.c: Added new moethods for creating and updating MonoRemoteClass
7440         instances: mono_remote_class, mono_upgrade_remote_class, 
7441         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
7442         * verify.c: FIx transparent_proxy_fields layout.
7443         * appdomain.c: Bump corlib version.
7444
7445 2004-03-04  Jackson Harper  <jackson@ximian.com>
7446
7447         * icall.c: Add icall to access char conversion tables.
7448         * char-conversions.h: Character conversion tables.
7449         * Makefile.am: Add char-conversions.h private header file.
7450         
7451 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
7452
7453         * appdomain.c (unload_thread_main): Increase unloading timeout to
7454         10 sec as a temporary workaround for Nant problems.
7455
7456 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
7457
7458         * gc.c: Add checks for GC_enable and GC_disable.
7459
7460         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
7461         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
7462         (bug #54988).
7463         
7464 2004-02-27  Martin Baulig  <martin@ximian.com>
7465
7466         * reflection.c (mono_reflection_bind_generic_parameters): Take a
7467         `MonoReflectionType *' instead of a `MonoType *'.
7468
7469 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
7470
7471         * gc.c (run_finalize): Avoid finalizing the object representing the
7472         finalizer thread.
7473         (finalizer_thread): Fix warning.
7474
7475 2004-02-25  Martin Baulig  <martin@ximian.com>
7476
7477         * class.c (_mono_class_get_instantiation_name): Added `int offset'
7478         argument for nested types.
7479         (mono_class_create_generic): Added support for nested generictypes.
7480
7481         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
7482         `GList *nested'.
7483
7484         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
7485
7486         * reflection.c (method_encode_signature): Increase the minimum
7487         value of `size' from 10 to 11.
7488         (mono_reflection_bind_generic_parameters): Take `int type_argc'
7489         and `MonoType **types' arguments instead of the `MonoArray
7490         *types'; added `MonoType *nested_in'.  Recursively instantiate
7491         nested classes. 
7492
7493 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
7494
7495         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
7496         stack_overflow_ex members which are used by exception handling.
7497
7498         * appdomain.c (mono_runtime_init): Initialize the new members.
7499
7500         * gc.c (mono_gc_enable): New helper function.
7501         * gc.c (mono_gc_disable): New helper function.
7502
7503 2004-02-23  Martin Baulig  <martin@ximian.com>
7504
7505         * icall.c: I must have been really stupid - make it actually work
7506         this time ;-)
7507
7508 2004-02-23  Martin Baulig  <martin@ximian.com>
7509
7510         * loader.c (method_from_memberref): Only inflate the method if
7511         it's in another klass.
7512
7513 2004-02-23  Martin Baulig  <martin@ximian.com>
7514
7515         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
7516         (mono_class_init): If we're a generic instance and an interface,
7517         compute `class->interface_id'; also create `class->interfaces'
7518         here and inflate them.
7519
7520         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
7521         `ginst->is_open'.
7522         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
7523
7524         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
7525
7526 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
7527
7528         * reflection.c (method_encode_code): Improved the error message
7529         generated by the exception.
7530
7531 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7532
7533         * icall.c: Martin did not do what he said in the ChangeLog for
7534         2004-02-18, but put back the changes for properties and events.
7535         Commenting those changes out again and adding comment to bug #54518.
7536         
7537         * process.c: removed warning.
7538
7539 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
7540
7541         * marshal.c (emit_struct_conv): Print an error message instead of
7542         asserting when a type does not have the StructLayout attribute.
7543
7544 2004-02-20  Martin Baulig  <martin@ximian.com>
7545
7546         * reflection.c (mono_type_get_object): Also use the cache for
7547         generic instances.
7548         (mono_reflection_bind_generic_parameters): Always compute
7549         `ginst->ifaces'.        
7550
7551 2004-02-20  Martin Baulig  <martin@ximian.com>
7552
7553         * class.h (MonoGenericMethod): Removed `klass'.
7554
7555         * class.c (mono_class_inflate_generic_method): Added `MonoClass
7556         *klass' argument.
7557
7558 2004-02-20  Martin Baulig  <martin@ximian.com>
7559
7560         * reflection.c (method_encode_methodspec): Actually use the
7561         uninflated signature for the memberref.
7562
7563 2004-02-20  Martin Baulig  <martin@ximian.com>
7564
7565         * class.h (MonoGenericMethod): Removed `declaring'.
7566
7567         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
7568         is NULL, compute it here.
7569
7570 2004-02-20  Martin Baulig  <martin@ximian.com>
7571
7572         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
7573
7574         * metadata.c (mono_metadata_generic_inst_hash): New method.
7575         (mono_metadata_generic_inst_equal): New method.
7576
7577         * reflection.c (mono_reflection_bind_generic_parameters): Use the
7578         `klass->image->generic_inst_cache' cache to avoid creating
7579         duplicate MonoGenericInst's.
7580
7581         * class.c (mono_class_inflate_generic_type): Use the cache.
7582
7583 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7584
7585         * object.c: fixed gc descriptor calculation for embedded valuetypes.
7586
7587 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7588
7589         * icall.c: added Socket.WSAIoctl icall.
7590
7591         * socket-io.[ch]: implemented
7592         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
7593
7594 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
7595
7596         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
7597
7598 2004-02-18  Urs C Muff  <umuff@quark.com>
7599
7600         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
7601         this work on PPC and other big-endian architectures.
7602
7603         * debug-mono-symfile.h: Prepended the names of all the `guint32'
7604         fields with an underscore to make sure they're only accessed by
7605         the read32() macro.
7606
7607 2004-02-18  Martin Baulig  <martin@ximian.com>
7608
7609         * icall.c: Put the klass->refclass changes back for methods and
7610         fields, but not for properties and events.  We're currently not
7611         distinguishing between DeclaringType and ReflectedType for
7612         properties and events, that's what caused the regressions.
7613
7614 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7615
7616         * object.c:
7617         (mono_async_result_new): the handle can be NULL.
7618
7619         * threadpool.c: Use an event instead of a semaphore, don't initialize
7620         it until needed. This saves quite a few semaphores from being created
7621         when using the threadpool.
7622
7623 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
7624
7625         * object.c (mono_string_is_interned_lookup): Fix interning of long
7626         strings. Fixes #54473.
7627
7628         * domain.c (ldstr_equal): Optimize if the two strings are equal.
7629
7630         * icall.c: Revert the klass->refclass changes since they introduce
7631         regressions (bug #54518).
7632
7633 2004-02-18  Martin Baulig  <martin@ximian.com>
7634
7635         * class.c (mono_class_init): If we're a generic instance and don't
7636         come from a TypeBuilder, inflate our members here.
7637         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
7638         (mono_class_create_generic): New public method.
7639         (mono_class_initialize_generic): Removed.
7640         (get_instantiation_name): Renamed to
7641         _mono_class_get_instantiation_name() and made it public.
7642
7643 2004-02-18  Martin Baulig  <martin@ximian.com>
7644
7645         * class.c (mono_class_inflate_generic_type): Clear the new
7646         instance's `nginst->klass' when inflating a generic instance.
7647         (mono_class_is_subclass_of): Added (basic) support for generic
7648         instances.
7649
7650 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
7651
7652         * appdomain.h, domain.c: use a MonoCodeManager instead of a
7653         MonoMempool to hold compiled native code.
7654
7655 2004-02-17  Martin Baulig  <martin@ximian.com>
7656
7657         * class.h (MonoDynamicGenericInst): Added `count_properties' and
7658         `properties'.
7659
7660         * reflection.c (mono_reflection_generic_inst_initialize): Added
7661         `MonoArray *properties' argument.
7662
7663         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
7664
7665 2004-02-17  Martin Baulig  <martin@ximian.com>
7666
7667         * icall.c (ves_icall_Type_GetFields): Renamed to
7668         ves_icall_Type_GetFields_internal() and added a
7669         `MonoReflectionType *rtype' argument; pass it to
7670         mono_field_get_object() to set the field's "reflected" type.
7671         (ves_icall_Type_GetConstructors): Likewise.
7672         (ves_icall_Type_GetEvents): Likewise.
7673         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
7674         argument; pass it to mono_method_get_object() to set the method's
7675         "reflected" type.       
7676
7677 2004-02-17  Martin Baulig  <martin@ximian.com>
7678
7679         * class.h (MonoDynamicGenericInst): New type.
7680         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
7681
7682         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
7683         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
7684         (ves_icall_MonoGenericInst_GetFields): New interncall.
7685
7686         * class.c (mono_class_from_generic): Don't call
7687         mono_class_initialize_generic() if this is a dynamic instance;
7688         ie. it's being created from a TypeBuilder.
7689         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
7690         `class->byval_arg.type'.
7691
7692         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
7693         to `inflate_method' and made static.
7694         (mono_reflection_inflate_field): Removed.
7695         (mono_reflection_generic_inst_initialize): New public method.
7696
7697         * reflection.h (MonoReflectionGenericInst): Removed `methods',
7698         `ctors' and `fields'; added `initialized'.
7699
7700 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
7701
7702         * debug-helpers.c (mono_method_full_name): Fix output for empty
7703         namespaces.
7704
7705 2004-02-12  Martin Baulig  <martin@ximian.com>
7706
7707         * class.h (MonoClassField): Added `MonoType *generic_type'.
7708
7709         * reflection.c (mono_image_get_fieldref_token): Added support for
7710         instantiated generic types.
7711         (field_encode_inflated_field): Removed.
7712         (mono_image_get_inflated_field_token): Removed.
7713         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
7714
7715         * reflection.h (MonoReflectionInflatedField): Removed.
7716
7717 2004-02-12  Martin Baulig  <martin@ximian.com>
7718
7719         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
7720         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
7721
7722         * reflection.c (mono_image_get_methodspec_token): Take a
7723         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
7724         (mono_image_create_token): Check whether we have a
7725         `method->signature->gen_method' and call
7726         mono_image_get_methodspec_token() if appropriate.
7727         (inflated_method_get_object): Removed.
7728         (mono_reflection_bind_generic_method_parameters): Return a
7729         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
7730         (mono_reflection_inflate_method_or_ctor): Likewise.
7731
7732         * reflection.h (MonoReflectionInflatedMethod): Removed.
7733
7734 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
7735
7736         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
7737         for custom valuetype marshalling.
7738
7739         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
7740
7741 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7742
7743         * icall.c: fixed WSAGetLastError_internal name.
7744
7745 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
7746
7747         * threads.c (mono_thread_attach): Allow this to be called multiple
7748         times for a thread.
7749         
7750         * threads.c (build_wait_tids): Do not wait for ourselves.
7751
7752         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
7753         appdomain list is empty.
7754
7755         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
7756         memory returned by mono_string_builder_to_utf16, since it points into
7757         managed memory. Thanks to Bernie Solomon for noticing this.
7758
7759         * icall.c: Add AppDomainSetup icalls.
7760
7761         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
7762
7763         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
7764         types.
7765
7766         * reflection.c (reflection_methodbuilder_to_mono_method): Save
7767         custom attributes to the method_aux struct. Also fix array indexes etc.
7768
7769         * loader.c (mono_method_get_param_names): Make dynamic case work again.
7770         
7771 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
7772
7773         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
7774         (both static and runtime) and reduce startup time.
7775
7776 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
7777
7778         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
7779         AsAny marshalling conversion instead of crashing.
7780
7781         * marshal.c: Fix warnings.
7782
7783 2004-02-09  Martin Baulig  <martin@ximian.com>
7784
7785         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
7786
7787         * reflection.h (MonoReflectionInflatedMethod): Removed the
7788         `declaring' field, it's now in the unmanaged MonoGenericMethod.
7789
7790         * reflection.c (method_encode_methodspec): Removed the `method'
7791         argument; we get it from `gmethod->declaring'.
7792         (inflated_method_get_object): Removed the `declaring' argument.
7793
7794 2004-02-09  Martin Baulig  <martin@ximian.com>
7795
7796         * class.h (MonoGenericMethod): New type.
7797         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
7798         `generic_method'.
7799
7800         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
7801         a `MonoGenericMethod *gen_method' one.
7802
7803         * class.c (mono_class_inflate_generic_type): Take an additional
7804         `MonoGenericMethod * argument.  This is only non-NULL if we're
7805         inflating types for a generic method.   
7806         (mono_class_inflate_generic_signature): Renamed to
7807         inflate_generic_signature() and made static; take a
7808         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
7809         (inflate_generic_header): Take a `MonoGenericMethod *' argument
7810         instead of a `MonoGenericInst *' one.
7811         (mono_class_inflate_generic_method): Likewise.
7812
7813         * reflection.c (encode_generic_method_sig): Take a
7814         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
7815         (method_encode_methodspec): Likewise.
7816         (inflated_method_get_object): Likewise. 
7817
7818         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
7819         field with a `MonoGenericMethod *gmethod' one.  
7820
7821 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
7822
7823         * class.h (mono_class_has_parent): add parens to expansion
7824         so you can ! this.
7825
7826 2004-02-08  Martin Baulig  <martin@ximian.com>
7827
7828         * image.h (MonoImage): Removed `generics_cache'.
7829
7830         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
7831         instead of a `MonoType *' argument; removed the `inflate_methods'
7832         argument.  Don't inflate methods here.
7833
7834         * loader.c (find_method): If it's a generic instance, call
7835         mono_class_init() on the `sclass->generic_inst->generic_type'.
7836
7837         * metadata.c (mono_type_size): Make this work on uninitialized
7838         generic instances; call it on the `ginst->generic_type's class.
7839
7840         * reflection.c (mono_reflection_bind_generic_parameters): Call
7841         mono_class_from_generic() to create the `ginst->klass'.
7842
7843 2004-02-08  Martin Baulig  <martin@ximian.com>
7844
7845         * class.h (MonoClass): Changed type of `generic_inst' from
7846         `MonoType *' to `MonoGenericInst *'.
7847
7848 2004-02-08  Martin Baulig  <martin@ximian.com>
7849
7850         * icall.c (ves_icall_Type_BindGenericParameters): Just call
7851         mono_type_get_object(), this is now creating a `MonoGenericInst'
7852         for MONO_TYPE_GENERICINST.
7853         (ves_icall_MonoGenericInst_GetParentType): Likewise.
7854         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
7855
7856         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
7857         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
7858         (inflated_method_get_object): Added `MonoClass *refclass' argument.
7859         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
7860         and reflected type.
7861
7862         * reflection.h (MonoReflectionInflatedMethod): Removed
7863         `declaring_type' and `reflected_type'.
7864
7865 2004-02-08  Martin Baulig  <martin@ximian.com>
7866
7867         * class.h (MonoGenericInst): Added `MonoType *parent' and
7868         `MonoType **ifaces'.
7869
7870         * reflection.h (MonoReflectionGenericInst): Removed `klass',
7871         `parent' and `interfaces'.
7872
7873         * reflection.c (mono_reflection_bind_generic_parameters): Take a
7874         `MonoType *' argument and return a `MonoType *'.
7875
7876         * icall.c
7877         (ves_icall_MonoGenericInst_GetParentType): New interncall.
7878         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
7879
7880 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
7881
7882         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
7883         valuetype marshalling.
7884
7885 2004-02-06  Martin Baulig  <martin@ximian.com>
7886
7887         * class.c
7888         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
7889         (my_mono_class_from_generic_parameter): Likewise.
7890
7891 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
7892
7893         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
7894         contents of the symbol files lazily.
7895
7896         * object.h (MonoThread): Add 'name' and 'name_len' fields.
7897
7898         * threads.h threads.c icall.c: New icalls for getting and setting the
7899         threads name.
7900
7901 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
7902
7903         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
7904         Raise an exception when the domain is not found.
7905
7906 2004-02-03  Martin Baulig  <martin@ximian.com>
7907
7908         * reflection.c (mono_image_get_methodspec_token): Use the
7909         uninflated signature; fixes gen-33.
7910
7911 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
7912
7913         * gc.c threads.c: Make the finalizer thread a normal managed thread so
7914         the finalizer code can use thread functionality.
7915
7916         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
7917         the finalizer thread.
7918
7919         * threads.c: Make some functions more robust.
7920
7921         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
7922
7923         * metadata.h: Add new marshalling conventions.
7924
7925         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
7926         stringbuilder marshalling. Fixes #53700.
7927
7928         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
7929
7930         * reflection.c (mono_image_get_type_info): Save declarative security
7931         info.
7932
7933         * reflection.c (mono_image_get_field_info): Handle uninitialized 
7934         unmanaged fields as well.
7935
7936         * appdomain.c: Bump corlib version.
7937
7938 2004-02-01  Martin Baulig  <martin@ximian.com>
7939
7940         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
7941         method type arguments.  
7942
7943 2004-01-30  Duncan Mak  <duncan@ximian.com>
7944
7945         * marshal.h: Add prototype for
7946         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
7947         and
7948         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
7949         fix the build.
7950
7951 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
7952
7953         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
7954         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
7955
7956 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
7957
7958         * marshal.c (mono_marshal_get_native_wrapper): Add support for
7959         custom marshalling of valuetypes.
7960
7961         * marshal.c: Fix some warnings.
7962
7963 2004-01-29  Martin Baulig  <martin@ximian.com>
7964
7965         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
7966         for generic method parameters.
7967
7968         * reflection.c (method_encode_methodspec): Write the uninflated
7969         signature into the methodspec table.
7970         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
7971         is always the uninflated method.
7972         (reflection_methodbuilder_to_mono_method): Copy the generic
7973         parameters from the MethodBuilder into `header->gen_params'.
7974
7975 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
7976
7977         * class.c (mono_class_from_generic_parameter): Fix warning.
7978
7979 2004-01-27  Martin Baulig  <martin@ximian.com>
7980
7981         * class.c (mono_class_from_generic_parameter): Don't create
7982         `klass->methods' here.  
7983
7984 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
7985
7986         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
7987         extension since it does not work with libraries named lib<FOO>.dll.so.
7988
7989 2004-01-25  Martin Baulig  <martin@ximian.com>
7990
7991         * class.c (mono_class_inflate_generic_type): Added support for
7992         MONO_TYPE_GENERICINST.
7993
7994         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
7995         inflate methods on open constructed types.      
7996
7997 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7998
7999         * object.c: fire ProcessExit event in the root AppDomain after running
8000         Main. Fixes bug #53299.
8001
8002 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
8003
8004         * socket-io.c: include the new socket-wrappers.h header.
8005         Use the wrappers instead of the unix socket functions to make the code
8006         more clear.
8007
8008 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
8009
8010         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
8011
8012         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
8013         Fixes #22532.
8014
8015 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
8016
8017         * reflection.c (mono_image_create_pefile): Handle the case when the
8018         entry point is not a MethodBuilder.
8019
8020         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
8021         field to ReflectionMethod since it is not allways a builder.
8022
8023         * reflection.c (type_get_fully_qualified_name): New helper function to
8024         return the fully qualified name of a type.
8025
8026         * reflection.c (encode_marshal_blob): Always emit the fully qualified
8027         type name for custom marshallers.
8028
8029         * reflection.c (mono_marshal_spec_from_builder): Ditto.
8030
8031         * class.c (mono_class_setup_vtable): If a parent class already 
8032         implements an interface, use the implementing methods from that class.
8033         Fixes #53148.
8034
8035 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8036
8037         * threadpool.c: just return instead of ExitThread to allow for thread
8038         clean up earlier.
8039
8040 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
8041
8042         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
8043         when closing resource modules.
8044
8045         * reflection.c (mono_image_create_pefile): Handle the case when the
8046         entry point is not a MethodBuilder.
8047
8048         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
8049         field to ReflectionMethod since it is not allways a builder.
8050
8051 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
8052
8053         * marshal.c (mono_marshal_get_managed_wrapper): 
8054         mono_marshal_alloc takes native int so CONV_I
8055         the arg for 64bits.
8056
8057 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
8058
8059         * reflection.c (fixup_cattrs): New function to fixup the methoddef
8060         tokens in the cattr table. Fixes #53108.
8061
8062 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8063
8064         * loader.c: don't trim ".dll" before looking up in the config file.
8065         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
8066
8067 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
8068
8069         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
8070         Return the module which contains the resource as well.
8071         (ves_icall_System_Reflection_Module_Close): New icall.
8072
8073         * appdomain.c: Bump corlib version number.
8074
8075         * image.c (mono_image_addref): New public function.
8076
8077         * assembly.c: Call mono_image_addref.
8078
8079         * reflection.c (mono_module_get_object): Increase reference count of 
8080         the image.
8081
8082         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
8083         Fixes #22532.
8084
8085         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
8086         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
8087         proper exceptions on DllImport problems.
8088
8089 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
8090
8091         * class.c, metadata.c: eliminate CSIZE macro.
8092
8093 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
8094
8095         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
8096         * object.h: Added async_callback field in MonoAsyncResult.
8097         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
8098         * verify.c: Added async_callback in MonoAsyncResult layout.
8099
8100 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
8101
8102         * reflection.c (mono_reflection_get_custom_attrs): Add support
8103         for Modules.
8104
8105 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
8106
8107         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
8108         marshalling.
8109         (mono_marshal_method_from_wrapper): Add null pointer check.
8110
8111 2004-01-16  Martin Baulig  <martin@ximian.com>
8112
8113         * debug-mono-symfile.h: Set version number to 36 and reflect
8114         latest symbol writer changes.
8115
8116 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
8117
8118         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
8119         multi-dimensional arrays.
8120         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
8121         (mono_class_from_mono_type): Use bounded_array_class_get.
8122         
8123         * class.c (mono_bounded_array_class_get): New function which takes
8124         a 'bounded' bool argument to distinguish vectors from one dimensional
8125         arrays.
8126
8127         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
8128         bounded_array_class_get if the array has bounds.
8129
8130         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
8131         Search modules loaded using AssemblyBuilder:AddModule as well.
8132
8133 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8134
8135         * appdomain.c: increased corlib version.
8136         * filewatcher.c: removed g_print.
8137         * icall.c:
8138         (get_property_info): only allocate what is actually requested.
8139         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
8140
8141 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8142
8143         * Makefile.am: added filewatcher.[ch]
8144         * filewatcher.[ch]: FileSystemWatcher runtime support.
8145         * icall.c: added new FSW icalls.
8146
8147 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
8148
8149         * string-icalls.c: fix stringbuilder regression as suggested by
8150         Iain McCoy <iain@mccoy.id.au>.
8151
8152 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
8153
8154         * process.c (process_read_stringtable_block): Recognize '007f' as
8155         a language neutral stringtable block.
8156
8157 2004-01-12  Patrik Torstensson
8158
8159         * object.h (MonoStringBuilder) : Changed layout to support our
8160         new stringbuilder class.
8161         * marshal.c: Change marshalling to support the new layout of 
8162         string builder.
8163         * appdomain.c: increased version number because new layout of
8164         string builder.
8165
8166 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
8167
8168         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
8169         assembly name as an string instead of an AssemblyName, since it is
8170         easier to extract info from it.
8171
8172         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
8173         the culture subdirectories too. Fixes #52231.
8174
8175 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8176
8177         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
8178         It takes 2 new parameters with an optional name for the method to look
8179         for and case ignoring info.
8180
8181         * threadpool.c: removed unused variable.
8182
8183 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8184
8185         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
8186         It takes 2 new parameters with an optional name for the property to look
8187         for and case ignoring info.
8188         Fixes bug #52753.
8189
8190 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
8191
8192         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
8193         Fix #52451.
8194
8195 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8196
8197         * appdomain.c:
8198         * assembly.c: escape the uri before passing it to g_filename_from_uri.
8199         Fixes bug #52630.
8200
8201 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
8202
8203         * reflection.c: Add support for more than one unmanaged resource.
8204
8205         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
8206         in field->def_value, as done in all other cases.
8207
8208         * reflection.c (mono_reflection_get_custom_attrs): Add support for
8209         TypeBuilders.
8210
8211         * reflection.c (mono_reflection_create_runtime_class): Remove 
8212         errorneous assignment to klass->element_class, since it is already
8213         done in mono_reflection_setup_internal_class.
8214
8215 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8216
8217         * gc.c: added missing LeaveCriticalSection.
8218         * icall.c: indented a couple of lines.
8219         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
8220         if we call EndInvoke inside a callback. Fixes bug #52601.
8221
8222 2004-01-07  Martin Baulig  <martin@ximian.com>
8223
8224         * mono-debug-debugger.h
8225         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
8226
8227 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
8228
8229         * appdomain.c: Use messages in NotImplementedException.
8230
8231         * exception.c (mono_get_exception_not_implemented): Now this takes
8232         a message argument.
8233
8234         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
8235         exception instead of g_asserting an aborting when something is not
8236         implemented.
8237
8238         Add some inline docs.
8239
8240 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
8241
8242         * reflection.h: Update after changes to object layout.
8243
8244         * reflection.c: Implement saving of unmanaged aka win32 resources.
8245
8246         * appdomain.c: Bump version number.
8247
8248         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
8249         Handle missing domains gracefully.
8250
8251 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
8252
8253         * file-io.c : On Windows, there are much more invalid_path_chars.
8254
8255 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
8256
8257         * class.h, object.c: prepare for GetType () speedup.
8258
8259 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
8260
8261         * profiler.c: workaround for --profile null reference exception on
8262           cygwin. Patch by Patrik Torstensson.
8263
8264 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
8265
8266         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
8267         make work for unaligned access.
8268
8269 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
8270
8271         * class.c: small cleanup (class->fields [i] -> field).
8272         * image.c: check address of metadata is valid.
8273
8274 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
8275
8276         * assembly.h assembly.c (mono_assembly_loaded): New public function to
8277         search the list of loaded assemblies.
8278
8279         * reflection.c (mono_reflection_type_from_name): Use 
8280         mono_assembly_loaded instead of mono_image_loaded.
8281
8282         * reflection.c: Fix warnings.
8283
8284 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
8285
8286         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
8287         is dynamic. This is needed since an assembly can contain both dynamic and
8288         non-dynamic images.
8289
8290         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
8291         assembly->dynamic.
8292
8293         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
8294
8295         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
8296         to store modules loaded using AddModule.
8297
8298         * reflection.c (mono_image_fill_file_table): Generalize this so it works
8299         on Modules.
8300
8301         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
8302
8303         * reflection.c (mono_image_fill_export_table_from_module): New function to
8304         fill out the EXPORTEDTYPES table from a module.
8305
8306         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
8307         into a separate function. Also handle loaded non-dynamic modules.
8308
8309         * reflection.c (mono_image_basic_init): Fix memory allocation.
8310
8311         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8312
8313         * assembly.c (mono_assembly_load_references): Make this public.
8314
8315 2003-12-19  Martin Baulig  <martin@ximian.com>
8316
8317         * class.c (mono_class_initialize_generic): Made this static, take
8318         a `MonoGenericInst *' instead of a `MonoClass *'.
8319         (mono_class_from_generic): Call mono_class_initialize_generic()
8320         unless we're already initialized or being called from
8321         do_mono_metadata_parse_generic_inst().
8322
8323         * class.h (MonoGenericInst): Added `initialized' and
8324         `init_pending' flags.
8325
8326         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
8327         `mono_class_init (gklass)' or mono_class_initialize_generic()
8328         here; set `generic_inst->init_pending' while parsing the
8329         `type_argv'.
8330
8331 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
8332
8333         * locales.c: include string.h for memxxx prototypes
8334
8335 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
8336
8337         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
8338         constructor when accessing literal fields.
8339
8340 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
8341
8342         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8343
8344         * reflection.c (assembly_add_resource_manifest): New function to fill
8345         the MANIFESTRESOURCE table.
8346
8347         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
8348
8349         * reflection.h: Update to changes in class layout.
8350
8351         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
8352         Reenable call to mono_runtime_is_shutting_down ().
8353
8354         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
8355         determine if the runtime is shutting down.
8356
8357 2003-12-16  Jackson Harper <jackson@ximian.com>
8358
8359         * icall.c: comment out call to mono_runtime_is_shutting_down to
8360         fix build.
8361         
8362 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
8363
8364         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
8365         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
8366
8367 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
8368
8369         * reflection.c: move definition of swap_with_size
8370         to before its first call
8371
8372 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
8373
8374         * appdomain.c (mono_runtime_is_shutting_down): New public function.
8375
8376         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
8377         icall.
8378
8379         * object.c: Fix warnings.
8380
8381         * icall.c (ves_icall_Type_Get...): Only consider inherited static
8382         members if FlattenHierarchy is set.
8383
8384         * reflection.c (mono_image_add_decl_security): New function to emit
8385         declarative security.
8386
8387         * reflection.h reflection.c: Add support for declarative security.
8388
8389         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
8390         
8391 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
8392
8393         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
8394         
8395         * appdomain.c verify.c: Moved corlib version checking into its own
8396         function in appdomain.c since it needs to create vtables etc.
8397
8398 2003-12-13  Patrik Torstensson <p@rxc.se>
8399
8400         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
8401         instead of unwrapped server.
8402
8403 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
8404
8405         * verify.c (check_corlib): Fix field index.
8406
8407 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
8408
8409         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
8410         GetGacPath icall.
8411
8412 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
8413
8414         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
8415         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
8416         cope with sizeof(size_t) != sizeof(guint32).
8417
8418 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8419
8420         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
8421         in case of failure.
8422
8423 2003-12-10  Mark Crichton <crichton@gimp.org>
8424
8425         * icall.c: removed the GetNonZeroBytes.  We now handle this case
8426         in managed code.
8427
8428         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
8429
8430 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
8431
8432         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
8433         marked as deleted.
8434
8435 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
8436
8437         * verify.c (check_corlib): Handle the case when the version field is 
8438         initialized by a static constructor.
8439
8440 2003-12-08  Patrik Torstensson  <p@rxc.se>
8441
8442     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
8443
8444 2003-12-08  Martin Baulig  <martin@ximian.com>
8445
8446         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
8447         a MonoReflectionGenericParameter, also take the parameter index
8448         and name as arguments.
8449         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
8450         (ves_icall_MonoGenericParam_initialize): New interncall.
8451         (ves_icall_Type_make_byref_type): New interncall.
8452
8453         * reflection.h (MonoReflectionGenericParam): Derive from
8454         MonoReflectionType, not just from MonoObject.  Added `refobj' and
8455         `index' fields.
8456
8457         * reflection.c (mono_reflection_define_generic_parameter): Create
8458         and return a new MonoReflectionGenericParam; don't initialize the
8459         constraints here.
8460         (mono_reflection_initialize_generic_parameter): New public method;
8461         initializes the constraints and creates the `param->pklass'.
8462
8463 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
8464
8465         * reflection.h reflection.c: Use the new fields 'num_types', 
8466         'num_fields' and 'num_methods' to track the number of types etc.
8467
8468         * verify.c (check_corlib): Check corlib version number.
8469
8470 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
8471
8472         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
8473         function works on all methods.
8474
8475 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
8476
8477         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
8478         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
8479         the custom_type_info flag of the transparent proxy.
8480         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
8481         objects that supports IRemotingTypeInfo.
8482         * object.h: Added custom_type_info field in transparent proxy.
8483
8484 2003-12-06  Martin Baulig  <martin@ximian.com>
8485
8486         * class.c (mono_class_create_from_generic): Removed.
8487         (mono_class_from_generic): Check `ginst->klass' before doing
8488         anything else.  This is important to fully support "recursive"
8489         generic types.
8490
8491         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
8492         empty `generic_inst->klass' before doing anything else.
8493
8494 2003-12-06  Dick Porter  <dick@ximian.com>
8495
8496         * verify.c: 
8497         * object.h:
8498         * icall.c:
8499         * locales.c: Use C structs to access class fields.  Don't do a
8500         conversion between MonoString and UChar because both are
8501         platform-endian UTF-16.  Compare now takes startindex and count
8502         parameters.  Add a char overload for IndexOf.  Speed up the
8503         invariant string IndexOf.
8504
8505 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
8506
8507         * Makefile.am (monosn_LDADD): Fix parallel build.
8508
8509 2003-12-04  Martin Baulig  <martin@ximian.com>
8510
8511         * icall.c
8512         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
8513         (ves_icall_Type_make_array_type): New interncall.       
8514
8515 2003-12-04  Martin Baulig  <martin@ximian.com>
8516
8517         * locales.c: also change it in the !HAVE_ICU case.
8518
8519 2003-12-04  Dick Porter  <dick@ximian.com>
8520
8521         * icall.c:
8522         * locales.c: construct_compareinfo is now in CompareInfo, not
8523         CultureInfo.
8524
8525 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
8526
8527         * image.c (mono_image_load_file_for_image): Cache loaded images in the
8528         image->files array.
8529
8530         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
8531         table as well.
8532
8533         * assembly.c (mono_assembly_load_references): Only load references
8534         once.
8535
8536         * class.c (mono_class_from_name): Avoid linear search of the 
8537         EXPORTEDTYPE table.
8538
8539         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
8540
8541 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
8542
8543         * image.h (MonoImage): Add 'field_cache' field.
8544
8545         * loader.c (mono_field_from_token): Cache field lookups.
8546         
8547         * reflection.c (mono_module_get_object): Fix name property.
8548
8549         * icall.c (ves_icall_get_enum_info): Update after changes to 
8550         mono_metadata_get_constant_index ().
8551
8552         * icall.c: Get rid of get_type_info icall, use a separate icall for
8553         each type property to avoid needless memory allocations. Fixes #51514.
8554
8555         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
8556         to avoid needless binary searches.
8557
8558         * class.c (class_compute_field_layout): Move the initialization of
8559         field->def_value to mono_class_vtable ().
8560
8561         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
8562         non-corlib types.
8563
8564         * object.c (mono_object_allocate): Make it inline.
8565
8566         * object.c (mono_object_allocate_spec): Make it inline.
8567         
8568 2003-12-02  Dick Porter  <dick@ximian.com>
8569
8570         * locales.c (create_NumberFormat): NumberFormatInfo construction.
8571         Patch by Mohammad DAMT (mdamt@cdl2000.com).
8572
8573 2003-12-01  Dick Porter  <dick@ximian.com>
8574
8575         * threads.c: Fix signature and call in CreateMutex and
8576         CreateEvent.
8577
8578 2003-12-01  Dick Porter  <dick@ximian.com>
8579
8580         * icall.c: 
8581         * locales.c: Implement string compares and searching
8582
8583         * object.h: Add extra Thread field
8584
8585 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
8586
8587         * reflection.c (fixup_method): Add support for MonoCMethod.
8588
8589 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
8590
8591         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
8592
8593         * reflection.c (assembly_name_to_aname): Allow extra characters in
8594         assembly names. Fixes #51468.
8595
8596 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
8597
8598         * exception.c (mono_exception_from_name_domain): New helper function.
8599
8600         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
8601         exception object in the correct domain.
8602
8603         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
8604         formatting + make a copy a the input data.
8605
8606         * loader.c (mono_get_method_from_token): Methods which contain
8607         native code do not have entries in the ImplMap.
8608
8609         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
8610         Thanks to Gonzalo for spotting this.
8611         
8612         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
8613         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
8614
8615         * assembly.h (mono_assembly_load_from): Split the second part of 
8616         assembly loading into a new public function.
8617
8618         * exception.h (mono_get_exception_bad_image_format): New function.
8619
8620 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
8621
8622         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
8623         Enumerate all modules inside a dynamic assembly. Fixes #51293.
8624         
8625         * icall.c: Add new icall for creating dynamic methods.
8626
8627         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
8628
8629         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
8630
8631         * reflection.c (mono_reflection_create_dynamic_method): New icall to
8632         create a dynamic method.
8633
8634         * reflection.c (resolve_object): New helper function.
8635
8636         * reflection.c: Generalize ReflectionMethodBuilder and the functions
8637         which manipulate it so they can also work on dynamic methods.
8638
8639         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
8640         creating the MonoReflectionMethodAux structure if it is not needed.
8641         
8642         * reflection.h verify.c: Update after changes to object layout.
8643
8644         * reflection.c (method_builder_encode_signature): Fix compilation on
8645         gcc 2.95.x.
8646
8647 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
8648
8649         * appdomain.h: Added support for context static fields. Added static_data
8650           field to MonoAppContext and renamed thread_static_fields to a more
8651           generic special_static_fields in MonoAppDomain, since it can now contain
8652           context static fields.
8653         * domain.c: Updated hashtable name.
8654         * object.c: Replaced field_is_thread_static() for a more generic
8655           field_is_special_static() which also checks for context static attribute.
8656           In mono_class_vtable(), added support for static context fields.
8657         * threads.c: Changed methods that manage thread static fields to more
8658           generic methods so they can be reused both for thread and context static
8659           data.
8660         * threads.h: Declared some new methods.
8661
8662 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
8663
8664         * reflection.h: Update after changes to the managed types.
8665
8666         * reflection.c (encode_custom_modifiers): New helper function.
8667
8668         * reflection.c (method_encode_signature): Emit custom modifiers.
8669
8670         * reflection.c (field_encode_signature): Emit custom modifiers.
8671
8672 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
8673
8674         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
8675
8676         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
8677         implementation.
8678
8679         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
8680         icall.
8681
8682         * object.c (mono_field_get_value_object): New function.
8683
8684         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
8685         specific.
8686
8687 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
8688
8689         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
8690         return a preallocated out-of-memory exception instance.
8691
8692         * object.c (out_of_memory): Use the new function.
8693
8694         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
8695         flag is before the custom modifiers. Fixes #49802.
8696
8697 2003-11-16  Martin Baulig  <martin@ximian.com>
8698
8699         * class.c (mono_class_is_open_constructed_type): Implemented the
8700         MONO_TYPE_GENERICINST case.
8701
8702 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
8703
8704         * assembly.c (mono_assembly_fill_assembly_name): New function to
8705         fill out the MonoAssemblyName structure.
8706         (mono_assembly_open): Use the new function.
8707
8708         * icall.c (fill_reflection_assembly_name): New helper function.
8709
8710         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
8711         new function.
8712
8713         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
8714
8715 2003-11-15  Martin Baulig  <martin@ximian.com>
8716
8717         * class.c (mono_class_is_open_constructed_type): New public
8718         function; checks whether a type is an open constructed type,
8719         ie. whether it still contains type parameters.
8720         (mono_class_inflate_generic_type): If we're a type parameter and
8721         the inflated type is also a MONO_TYPE_(M)VAR, return the original
8722         type.
8723
8724         * class.h (MonoGenericInst): Added `guint32 is_open'.
8725
8726         * loader.c (method_from_methodspec): Check whether we're an open
8727         or closed constructed type and set `ginst->is_open'.
8728
8729         * reflection.c (mono_reflection_bind_generic_parameters): Check
8730         whether we're an open or closed constructed type and set
8731         `ginst->is_open'.
8732         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
8733         from open constructed types.
8734
8735 2003-11-15  Martin Baulig  <martin@ximian.com>
8736
8737         * reflection.c (mono_reflection_bind_generic_parameters): If we're
8738         a generic instance (instead of a generic type declaration) with
8739         unbound generic parameters, bind them to our actual types.
8740
8741 2003-11-14  Martin Baulig  <martin@ximian.com>
8742
8743         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
8744
8745         * reflection.c (mono_reflection_bind_generic_parameters): If we're
8746         an interface type, populate `res->interfaces' with instantiated
8747         versions of all the interfaces we inherit.
8748
8749 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
8750
8751         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
8752         when MONO_PATH is set but doesn't contain the install dir.
8753
8754 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8755
8756         * icall.c:
8757         (ves_icall_Type_GetInterfaces): don't return an interface twice when
8758         it's also implemented in base classes. Fixes bug #50927.
8759
8760 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
8761
8762         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
8763         if this method is called from a finalizer. Fixes #50913.
8764
8765 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
8766
8767         * threads.c: Implement VolatileRead/VolatileWrite
8768
8769         * icall.c: Add new icalls for VolatileRead/VolatileWrite
8770
8771 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
8772
8773         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
8774         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
8775         2.95.3.
8776
8777         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
8778         from Peter Ross (pro@missioncriticalit.com).
8779         
8780 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
8781
8782         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
8783
8784 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
8785
8786         * assembly.c (mono_assembly_load_references): Disable check because it
8787         triggers on older corlibs which lots of people have.
8788
8789 2003-11-12  Jackson Harper  <jackson@ximian.com>
8790
8791         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
8792         load corlib.dll if mscorlib.dll is not found.
8793         * assembly.h: Remove corlib name define.
8794         * class.c:
8795         * domain.c:
8796         * image.c: Change corlib name to mscorlib.
8797         
8798 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
8799
8800         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
8801
8802 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
8803
8804         * appdomain.h: Added loader_optimization here to sync with the C#
8805         code, and add disallow_binding_redirects field.
8806
8807 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
8808
8809         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
8810
8811         * reflection.c (mono_image_build_metadata): Fix crash on modules
8812         with no types.
8813
8814         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
8815
8816         * icall.c (ves_icall_get_method_info): Return callingConvention as
8817         well.
8818
8819         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
8820         namespaces from the EXPORTEDTYPE table as well.
8821
8822         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
8823         from all modules inside the assembly.
8824         
8825 2003-11-11  Martin Baulig  <martin@ximian.com>
8826
8827         * reflection.c (mono_reflection_bind_generic_parameters): Make
8828         this work for interfaces.
8829
8830 2003-11-11  Martin Baulig  <martin@ximian.com>
8831
8832         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
8833
8834 2003-11-11  Martin Baulig  <martin@ximian.com>
8835
8836         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
8837         "MonoInflatedMethod" and "MonoInflatedCtor".
8838
8839 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
8840
8841         * reflection.c (resolution_scope_from_image): Use the assembly table
8842         from the manifest module, since other modules don't have it.
8843
8844         * debug-helpers.c (mono_type_full_name): New helper function.
8845
8846         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
8847
8848         * image.c (mono_image_load_file_for_image): New public function which
8849         is a replacement for the load_file_for_image in class.c.
8850
8851         * assembly.c (mono_assembly_load_module): A wrapper for the function
8852         above which does assembly association and reference loading too.
8853
8854         * class.c (mono_class_from_name): Call mono_assembly_load_module.
8855
8856 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8857
8858         * appdomain.c: not all of the attributes for the full assembly name
8859         are required and the order doesn't matter. Fixes bug #50787.
8860
8861 2003-11-10  Dick Porter  <dick@ximian.com>
8862
8863         * locales.c: Use platform-endian UTF16
8864
8865 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
8866
8867         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
8868         
8869 2003-11-10  Martin Baulig  <martin@ximian.com>
8870
8871         * metadata.c
8872         (mono_metadata_load_generic_params): Make this actually work.
8873
8874         * reflection.c (mono_reflection_bind_generic_parameters): If our
8875         parent is a generic instance, pass all the `types' to it, no
8876         matter whether it has the same number of type parameters or not.
8877
8878 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
8879
8880         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
8881
8882         * assembly.c (mono_assembly_load_references): Move the image<->assembly
8883         assignment code to this function so it gets called recursively for all
8884         modules.
8885
8886         * image.c (load_modules): Remove the assembly assignment since it is
8887         now done by mono_assembly_load_references.
8888         
8889         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
8890         Add 'module' argument.
8891         (mono_module_get_types): New helper function.
8892         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
8893
8894 2003-11-08  Martin Baulig  <martin@ximian.com>
8895
8896         * class.c (mono_class_inflate_generic_method): Interface method
8897         don't have a header.
8898
8899         * reflection.c (mono_image_get_methodspec_token): Take an
8900         additional `MonoGenericInst *' argument instead of reading it from
8901         the header; this is necessary to support interfaces.
8902         (mono_image_create_token): Pass the `MonoGenericInst *' from the
8903         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
8904         (inflated_method_get_object): Take an additional `MonoGenericInst *'
8905         argument.
8906
8907         * reflection.h (MonoReflectionInflatedMethod): Added
8908         `MonoGenericInst *ginst'.
8909
8910 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
8911
8912         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
8913
8914 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
8915
8916         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
8917
8918 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
8919
8920         * reflection.c 
8921         (reflection_methodbuilder_from_method_builder):
8922         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
8923         initialize a ReflectionMethodBuilder structure.
8924         (mono_image_get_methodbuilder_token):
8925         (mono_image_get_ctorbuilder_token): New functions to emit memberref
8926         tokens which point to types in another module inside the same assembly.
8927
8928         * reflection.c: Use the new helper functions.
8929         
8930         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
8931
8932         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
8933         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
8934
8935         * reflection.c (resolution_scope_from_image): Emit a moduleref if
8936         neccesary.
8937
8938         * reflection.c (mono_image_build_metadata): Emit metadata only for the
8939         current module. Emit the manifest only for the main module.
8940
8941         * reflection.c (mono_image_create_token): Add assertion when a 
8942         memberref needs to be created.
8943
8944         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
8945
8946         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
8947         larger buffer for the custom attribute blob. Fixes #50637.
8948         
8949 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8950
8951         * threadpool.c: notify listener on async processing handles after
8952         invoking the async callback. Thanks to Zoltan.
8953
8954 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8955
8956         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
8957         avoid code duplication.
8958
8959         * reflection.h (MonoDynamicImage): New type which is currently unused,
8960         but will be used through the ref.emit code in place of 
8961         MonoDynamicAssembly.
8962
8963         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
8964         object layout.
8965
8966         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
8967         a MonoDynamicImage instead of just a MonoImage.
8968         
8969         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
8970         icalls to ModuleBuilder but keep their semantics, so they will work
8971         with moduleb->assemblyb. This will change later.
8972         
8973 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8974
8975         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
8976         object layout.
8977
8978         * reflection.c (mono_image_build_metadata): Avoid creation of a default
8979         main module, since it is now done by the managed code.
8980
8981 2003-11-03  Martin Baulig  <martin@ximian.com>
8982
8983         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
8984         `ginst->klass' here.
8985         (method_encode_methodspec): Don't use the `ginst->generic_method's
8986         klass if it's a generic instance, use `ginst->klass' in this case.
8987
8988 2003-11-03  Martin Baulig  <martin@ximian.com>
8989
8990         * reflection.c (mono_image_get_generic_method_param_info):
8991         Removed, use mono_image_get_generic_param_info() instead.
8992         (mono_image_get_type_info): Write the GenericParam table before
8993         the Method table.  This is neccessary because in the GenericParam
8994         table, type parameters of the class (ie. '!0' etc.) must come
8995         before the ones from its generic methods (ie. '!!0' etc).
8996
8997 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8998
8999         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
9000
9001 2003-11-02  Martin Baulig  <martin@ximian.com>
9002
9003         * reflection.c (create_generic_typespec): Take a
9004         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
9005         the generic parameters from it.
9006
9007 2003-11-02  Martin Baulig  <martin@ximian.com>
9008
9009         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
9010         instead of a `MonoClassField *' since we just need the type.
9011         (create_generic_typespec): New static function.  Creates a
9012         TypeSpec token for a generic type declaration.
9013         (mono_image_get_generic_field_token): New static function.
9014         (mono_image_create_token): If we're a FieldBuilder in a generic
9015         type declaration, call mono_image_get_generic_field_token() to get
9016         the token.
9017
9018 2003-11-02  Martin Baulig  <martin@ximian.com>
9019
9020         * reflection.h
9021         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
9022         `MonoReflectionGenericInst *declaring_type' and
9023         `MonoReflectionGenericInst *reflected_type' fields.
9024
9025         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
9026         `MonoReflectionGenericInst *declaring_type' and a
9027         `MonoReflectionGenericInst *reflected_type' argument instead of a
9028         single `MonoReflectionGenericInst *type' one.  Set
9029         `res->declaring_type' and `res->reflected_type' from them.
9030         (mono_reflection_inflate_field): Likewise.      
9031
9032 2003-11-02  Martin Baulig  <martin@ximian.com>
9033
9034         * class.c (mono_class_setup_vtable): Don't store generic methods
9035         in the vtable.  
9036
9037 2003-11-02  Martin Baulig  <martin@ximian.com>
9038
9039         * reflection.h (MonoReflectionGenericInst): Added
9040         `MonoReflectionType *declaring_type'.
9041
9042         * reflection.c (mono_reflection_bind_generic_parameters): Use
9043         `if (tb->parent)' instead of `klass->parent'.
9044
9045 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
9046
9047         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
9048         with an empty ASSEMBLY table.
9049
9050         * reflection.c (mono_image_build_metadata): Avoid using the same loop
9051         variable in the inner and outer loops.
9052
9053 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
9054
9055         * metadata.h (mono_metadata_make_token): Put parentheses around macro
9056         argument.
9057
9058         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
9059         
9060         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
9061         icalls. Instead, do everything in managed code. This is needed since
9062         it is hard to restore the original domain etc. in unmanaged code in the
9063         presence of undeniable exceptions.
9064
9065         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
9066         New icalls to push and pop appdomain refs.
9067
9068 2003-10-31  Martin Baulig  <martin@ximian.com>
9069
9070         * class.c (inflate_generic_type): Renamed to
9071         mono_class_inflate_generic_type() and made it public.
9072
9073         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
9074         New interncall.
9075
9076         * loader.c (mono_field_from_memberref): Also set the retklass for
9077         typespecs.
9078
9079         * fielder.c (mono_image_get_inflated_field_token): New static
9080         method; creates a metadata token for an inflated field.
9081         (mono_image_create_token, fixup_method): Added support for
9082         "MonoInflatedField".
9083         (fieldbuilder_to_mono_class_field): New static function.
9084         (mono_reflection_inflate_field): New public function.
9085
9086         * reflection.h
9087         (MonoReflectionGenericInst): Added `MonoArray *fields'.
9088         (MonoReflectionInflatedField): New typedef.     
9089
9090 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
9091
9092         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
9093         for Solaris and other platforms without s6_addr16
9094
9095 2003-10-30  Martin Baulig  <martin@ximian.com>
9096
9097         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
9098         argument instead of two.
9099         (mono_class_inflate_generic_signature): Likewise.
9100         (inflate_generic_header): Likewise.
9101         (mono_class_inflate_generic_method): Likewise.  In addition, if
9102         `ginst->klass' is set, it becomes the new `method->klass'.
9103
9104         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
9105         field.
9106
9107         * reflection.c (encode_generic_method_sig): Write a 0xa as the
9108         first byte. [FIXME]
9109         (method_encode_methodspec): If we have generic parameters, create
9110         a MethodSpec instead of a MethodRef.
9111         (fixup_method): Added support for "MonoInflatedMethod" and
9112         "MonoInflatedCtor".
9113         (mono_image_create_token): Added support for "MonoInflatedMethod"
9114         and "MonoInflatedCtor".
9115         (inflated_method_get_object): New static function; returns a
9116         managed "System.Reflection.MonoInflatedMethod" object.
9117         (mono_reflection_bind_generic_method_parameters): Return a
9118         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
9119         (mono_reflection_inflate_method_or_ctor): Likewise.
9120         (mono_image_get_generic_method_param_info): Initialize unused
9121         fields to zero.
9122         (mono_image_get_generic_param_info): Likewise.
9123
9124         * reflection.h (MonoReflectionInflatedMethod): New public
9125         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
9126         "S.R.MonoInflatedCtor" classes.
9127
9128         * loader.c (method_from_memberref): If we're a TypeSpec and it
9129         resolves to a generic instance, inflate the method.
9130
9131 2003-10-28  Dick Porter  <dick@ximian.com>
9132
9133         * object.c (mono_runtime_run_main): Convert command-line arguments
9134         into utf8, falling back to the user's locale encoding to do so.
9135
9136 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
9137
9138         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
9139         at this time.
9140
9141         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
9142
9143         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
9144         up icalls at method definition time. Partially fixes #33569.
9145
9146 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
9147
9148         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
9149         marshalling of arrays. Fixes #50116.
9150
9151         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
9152
9153         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
9154         points to a vtable in the dying appdomain.
9155
9156         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
9157         listeners into unmanaged code inside the lock.
9158
9159         * object.c (mono_class_vtable): Turn off typed allocation in non-root
9160         domains and add some comments.
9161
9162 2003-10-25  Martin Baulig  <martin@ximian.com>
9163
9164         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
9165
9166         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
9167
9168         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
9169         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
9170         currently parsing.  Create the generic class and store it in
9171         `generic_inst->klass' before parsing the type arguments.  This is
9172         required to support "recursive" definitions; see mcs/tests/gen-23.cs
9173         for an example.
9174         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
9175         to support recursive typespec entries.
9176
9177         * class.c (mono_class_setup_parent): If our parent is a generic
9178         instance, we may get called before it has its name set.
9179         (mono_class_from_generic): Splitted into
9180         mono_class_create_from_generic() and mono_class_initialize_generic().
9181
9182 2003-10-25  Martin Baulig  <martin@ximian.com>
9183
9184         * icall.c (ves_icall_Type_BindGenericParameters): Return a
9185         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
9186         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
9187         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
9188
9189         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
9190         (create_typespec): Likewise.
9191         (mono_reflection_bind_generic_parameters): Return a
9192         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
9193         (mono_reflection_inflate_method_or_ctor): New public function.
9194
9195         * reflection.h (MonoReflectionGenericInst): New typedef.        
9196
9197 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
9198
9199         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
9200         inside the domain lock. Fixes #49993.
9201         
9202         * object.c (mono_class_vtable): When typed allocation is used, 
9203         allocate vtables in the GC heap instead of in the mempool, since the
9204         vtables contain GC descriptors which are used by the collector even
9205         after the domain owning the mempool is unloaded.
9206
9207         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
9208
9209         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
9210         reflect what it does. Also invalidate mempools instead of freeing
9211         them if a define is set.
9212
9213         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
9214         of the appdomain.
9215         
9216         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
9217         hold the finalizable objects in this domain.
9218
9219         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
9220         appdomain.
9221
9222         * appdomain.c (mono_domain_set): New function to set the current
9223         appdomain, but only if it is not being unloaded.
9224
9225         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
9226         appdomain which is being unloaded.
9227         
9228         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
9229         unloading of the root appdomain.
9230
9231         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
9232         icall to execute a method in another appdomain. Intended as a 
9233         replacement for InternalSetDomain, which can confuse the code 
9234         generation in the JIT.
9235
9236         * appdomain.c (mono_domain_is_unloading): New function to determine
9237         whenever an appdomain is unloading.
9238
9239         * appdomain.c (mono_domain_unload): New function to correctly unload
9240         an appdomain.
9241
9242         * assembly.c (mono_assembly_load_references): Check that an assembly
9243         does not references itself.
9244
9245         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
9246         domain manually, it asks the finalizer thread to do it, then waits for
9247         the result. Also added a timeout.
9248
9249         * icall.c: Register the new icalls.
9250
9251         * threads.h threads.c: Export the mono_gc_stop_world and 
9252         mono_gc_start_world functions.
9253         
9254         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
9255         function to fill out the mempool with 0x2a.
9256
9257 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
9258
9259         * reflection.h (MonoReflectionMethodAux): New structure to store
9260         information which is rarely used, thus is not in the MonoMethod
9261         structure.
9262
9263         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
9264         store the aux info.
9265
9266         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
9267         and marshalling info into the aux structure.
9268
9269         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
9270         from the aux structure.
9271
9272         * loader.c (mono_method_get_param_names): Retrieve the param names from
9273         the aux structure.
9274         
9275 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
9276
9277         * exception.h exception.c: Add AppDomainUnloadedException && fix 
9278         warning.
9279
9280 2003-10-21  Dick Porter  <dick@ximian.com>
9281
9282         * socket-io.c
9283         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
9284         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
9285
9286 2003-10-21  Martin Baulig  <martin@ximian.com>
9287
9288         * reflection.c (mono_reflection_bind_generic_parameters):
9289         `klass->parent' is NULL for interfaces.
9290
9291 2003-10-21  Martin Baulig  <martin@ximian.com>
9292
9293         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
9294
9295 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
9296
9297         * exception.c (mono_exception_from_name_msg): New helper function for
9298         creating exceptions and initializing their message field.
9299
9300         * exception.c: Simplify functions using the new helper.
9301
9302         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
9303         New function.
9304
9305         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
9306         mono_raise_exception, since otherwise gcc doesn't generate the function
9307         epilog for raise_exception, confusing the stack unwinding in the JIT.
9308         Fixes #45043.
9309
9310         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
9311         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
9312         Fixes #49499.
9313
9314 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9315
9316         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
9317         utf8.
9318
9319 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
9320
9321         * icall.c: Removed GetUninitializedObject method because
9322           AllocateUninitializedClassInstance does the same.
9323
9324 2003-10-18  Martin Baulig  <martin@ximian.com>
9325
9326         * class.c (inflate_generic_signature): Renamed to
9327         mono_class_inflate_generic_signature() and made it public.
9328         (my_mono_class_from_generic_parameter): New static function; if we
9329         don't already have the generic parameter's MonoClass, create a
9330         very simple one which is just used internally in the runtime and
9331         not passed back to managed code.
9332
9333         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
9334
9335         * metadata.h (MonoMethodSignature): Moved the
9336         `MonoGenericParam *gen_params' to the MonoMethodHeader.
9337         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
9338
9339         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
9340         ves_icall_MonoMethod_GetGenericArguments(); this is now an
9341         interncall on the MonoMethod class, not on MethodInfo.
9342         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
9343         calling mono_reflection_bind_generic_method_parameters() directly.
9344
9345         * loader.c (mono_method_get_signature): If this is a MethodSpec;
9346         return the already computed `method->signature'.
9347         (method_from_methodspec): New static function to load a method
9348         from a MethodSpec entry.
9349         (mono_get_method_from_token): Call the new method_from_methodspec()
9350         for MethodSpec tokens.  
9351         (mono_get_method_from_token): If we're a generic method, load the
9352         type parameters.
9353
9354         * reflection.c (mono_image_get_memberref_token): Allow
9355         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
9356         table.
9357         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
9358         (mono_image_create_token): First check whether it's a generic
9359         method (so we'd need to create a MethodSpec), then do the other
9360         two alternatives.
9361         (mono_reflection_bind_generic_method_parameters): Return a
9362         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
9363         called directly from the interncall.
9364
9365 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
9366
9367         * reflection.c (load_public_key): Move loading of the public key
9368         into managed code.
9369
9370         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
9371
9372         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
9373         fields.
9374
9375         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
9376         culture, hash_alg and public_key. Fixes #49555.
9377
9378 2003-10-17  Martin Baulig  <martin@ximian.com>
9379
9380         * class.h (MonoGenericInst): Moved this declaration here and added
9381         `MonoMethod *generic_method'.
9382
9383         * icall.c
9384         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
9385         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
9386
9387         * metadata.c (mono_metadata_type_equal): Two types of
9388         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
9389         index; ie. don't compare the address of the `MonoGenericParam'
9390         structure.
9391         (mono_metadata_load_generic_params): Removed the `MonoMethod
9392         *method' argument.
9393
9394         * metadata.h (MonoGenericInst): Moved declaration to class.h.
9395         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
9396
9397         * reflection.c (method_encode_signature): Encode the number of
9398         generic parameters.
9399         (encode_generic_method_sig): New static function.
9400         (method_encode_methodspec): New static function; creates an entry
9401         in the MethodSpec table for a generic method.
9402         (mono_image_get_methodspec_token): New static function.
9403         (mono_image_create_token): Call mono_image_get_methodspec_token()
9404         for generic methods.
9405         (mono_reflection_bind_generic_method_parameters): New public
9406         function.  Instantiates a generic method.
9407
9408 2003-10-16  Martin Baulig  <martin@ximian.com>
9409
9410         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
9411         *gen_params' here from MonoMethodHeader.
9412
9413         * metadata.c (mono_metadata_parse_method_signature): If we have
9414         generic parameters, initialize `method->gen_params' and then set
9415         the correct `type->data.generic_param' in all the parameters.
9416
9417 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
9418
9419         * threads.c (mono_threads_get_default_stacksize): New function to 
9420         return the default stacksize.
9421
9422         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
9423         termination of the finalizer thread, since the previous method had
9424         race conditions. Fixes #49628.
9425
9426         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
9427         as for the other managed threads.
9428
9429 2003-10-16  Martin Baulig  <martin@ximian.com>
9430
9431         * class.c (inflate_generic_signature): Copy `generic_param_count'
9432         and `gen_params'.
9433
9434         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
9435         New interncall.
9436
9437         * metadata.c (mono_metadata_parse_method_signature): Actually set
9438         the `method->generic_param_count' here.
9439         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
9440
9441 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
9442
9443         * object.h: Add a new field to TypedRef to simplify the implementation
9444         of the REFANY opcodes in the JIT.
9445
9446         * icall.c: Make use of the new field.
9447
9448         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
9449         dynamically.
9450
9451 2003-10-15  Martin Baulig  <martin@ximian.com>
9452
9453         * class.c (mono_class_from_gen_param): Renamed to
9454         mono_class_from_generic_parameter() and moved most of the
9455         functionality from mono_reflection_define_generic_parameter()
9456         here; ie. we create a "real" class here.
9457         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
9458         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
9459         previously been called.
9460
9461         * class.h (MonoGenericParam): Moved the declaration of this struct
9462         here from metadata.h and added `MonoMethod *method'.
9463
9464         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
9465         interncall.
9466
9467         * loader.c (mono_get_method_from_token): If we have any generic
9468         parameters, call mono_metadata_load_generic_params() to read them
9469         from the MONO_TABLE_GENERICPAR.
9470
9471         * metadata.c (mono_metadata_load_generic_params): Added
9472         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
9473
9474         * metadata.h (MonoMethodSignature): Replaced
9475         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
9476         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
9477
9478         * reflection.c (mono_reflection_define_generic_parameter): Moved
9479         most of the functionality into the new
9480         mono_class_from_generic_parameter(); set the `method' field if
9481         we're a method parameter.       
9482
9483 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
9484
9485         * marshal.c (emit_struct_conv): if native size is 0
9486         emit no code.
9487
9488 2003-10-14  Martin Baulig  <martin@ximian.com>
9489
9490         * icall.c: The generics API has changed in the spec since it was
9491         added to System.Type; these modifications make it match the spec
9492         again.
9493         (ves_icall_Type_GetGenericParameters): Renamed to
9494         `ves_icall_Type_GetGenericArguments'.
9495         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
9496         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
9497         `ves_icall_MonoType_get_HasGenericArguments'.
9498         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
9499         `ves_icall_MonoType_get_IsGenericParameter'.
9500         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
9501         this is no interncall anymore.
9502         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
9503         `ves_icall_TypeBuilder_get_IsGenericParameter'.
9504
9505 2003-10-14  Martin Baulig  <martin@ximian.com>
9506
9507         * reflection.c (mono_reflection_bind_generic_parameters): Also
9508         inflate generic methods if we're reading the class from IL.
9509
9510 2003-10-13  Martin Baulig  <martin@ximian.com>
9511
9512         * reflection.c (mono_reflection_define_generic_parameter): This
9513         method isn't called directly from the icall anymore; take a
9514         `MonoReflectionAssemblyBuilder *' so we can use this for type and
9515         method generic parameters.
9516         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
9517         (method_builder_encode_signature): Encode generic parameters.
9518         (mono_image_get_method_info): Write generic params to the
9519         MONO_TABLE_GENERICPARAM table.
9520
9521         * reflection.h (MonoReflectionMethodBuilder): Added
9522         `MonoArray *generic_params'.
9523
9524         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
9525
9526         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
9527         wrapper for mono_reflection_define_generic_parameter().
9528         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
9529
9530 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
9531
9532         * marshal.h: Add missing function to fix build.
9533
9534         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
9535         the SetLastError pinvoke attribute.
9536
9537         * marshal.c (mono_marshal_set_last_error): New helper function called
9538         by the generated code.
9539         
9540         * marshal.c (mono_mb_emit_branch): New helper function.
9541
9542         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
9543
9544         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
9545         classes as parameters and return values of delegates. Fixes #29256. 
9546
9547 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
9548
9549         * locales.c: use gint32 in non HAVE_ICU case
9550
9551 2003-10-11  Martin Baulig  <martin@ximian.com>
9552
9553         * mono-debug.c (mono_debug_add_method): Added a workaround for
9554         bug #48591.
9555
9556 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
9557
9558         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
9559         delegates passed to native code must use the STDCALL calling 
9560         convention. Fixes #35987.
9561
9562 2003-10-10  Martin Baulig  <martin@ximian.com>
9563
9564         * class.c (inflate_generic_type): If we're inflating for a generic
9565         type instance (and not for a generic method), return
9566         MONO_TYPE_MVAR unchanged.
9567
9568 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9569
9570         * string-icalls.c: Join ignores null strings in the source array.
9571         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
9572         * threads.c: GetAvailableTheads is slightly more accurate.
9573
9574 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
9575
9576         * threads.h threads.c : add mono_threads_set_default_stacksize
9577         and pass default to CreateThread calls.
9578
9579 2003-10-09  Dick Porter  <dick@ximian.com>
9580
9581         * icall.c:
9582         * locales.h:
9583         * locales.c: Internal calls for constructing CultureInfo and
9584         related objects from libicu (if its available.)
9585
9586 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
9587
9588         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
9589
9590 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9591
9592         * threadpool.c: added an argument to async_invoke_thread that is the
9593         item to process, pass the MonoAsyncResult to the thread start function
9594         when creating a new thread. This way we don't need to acquire any lock
9595         when we're creating a new thread. Readded a semaphore for faster
9596         response times (instead of that Sleep i added).
9597
9598 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
9599
9600         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
9601         get daylight change dates better on Windows, fix handling
9602         of platforms without tm_gmtoff.
9603
9604 2003-10-06  Martin Baulig  <martin@ximian.com>
9605
9606         * class.c (inflate_generic_method): Renamed to
9607         mono_class_inflate_generic_method() and made public.
9608         (mono_class_init): Don't inflate the generic methods here.
9609         (mono_class_from_generic): Added `gboolean inflate_methods'
9610         argument.  Inflate the methods here.
9611
9612         * loader.c (mono_method_get_param_names): Ignore instances of
9613         generic types for the moment.
9614
9615         * reflection.c (fixup_method): Added support for inflated methods.
9616         (mono_image_create_token): Use mono_image_get_methodref_token()
9617         for inflated methods.
9618         (mono_custom_attrs_from_param): Ignore instances of generic types
9619         for the moment.
9620         (mono_reflection_bind_generic_parameters): New public function.
9621         Moved all the functionality from
9622         ves_icall_Type_BindGenericParameters() here and added support for
9623         dynamic types.
9624         (mono_reflection_define_generic_parameter): Initialize
9625         `klass->methods' here.
9626
9627         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
9628         functionality into mono_reflection_define_generic_parameter().
9629         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
9630         TypeBuilder, return that TypeBuilder.
9631
9632 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9633
9634         * appdomain.c: removed mono_delegate_semaphore.
9635
9636         * threadpool.c:
9637         (mono_thread_pool_add): moved hash table creation inside and the thread 
9638         creation outside of the critical region.
9639         (mono_thread_pool_finish): removed obsolete code.
9640         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
9641         continue or exit the thread depending on the queue.
9642
9643 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
9644
9645         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
9646         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
9647         handle more bool marshalling options
9648
9649 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
9650
9651         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
9652         arrays of structs. Also add a more descriptive error message when
9653         a structure member is marshalled as LPArray.
9654
9655 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
9656
9657         * marshal.c (mono_marshal_get_native_wrapper): Add support for
9658         marshalling arrays of complex types. Fixes #29098. Also remove an
9659         usused and incomplete function.
9660
9661 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
9662
9663         * gc.c: report heap_size - free_bytes as total memory allocated
9664         (bug#49362).
9665
9666 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
9667
9668         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
9669         fix timezone handling problems on Windows.
9670         
9671         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
9672         asserts when the year is outside the range handled by ms the functions.
9673
9674         * class.c (setup_interface_offsets): If the class is an interface,
9675         fill out its interface_offsets slot.
9676
9677 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9678
9679         * threadpool.c: mark threadpool threads as background.
9680
9681 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
9682
9683         * decimal.c - define DECINLINE to nothing if not using GCC
9684
9685 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
9686
9687         * assembly.c: More refcount fixes.
9688
9689 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9690
9691         * string-icalls.c: if we're not trimming, return the same string.
9692         When not splitting, don't create a new string.
9693
9694 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9695
9696         * image.c:
9697         (mono_image_open): increment the ref_count inside the critical section.
9698
9699 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
9700
9701         * image.c (mono_image_open): Fix reference counting bug.
9702
9703 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
9704
9705         * marshal.c (mono_marshal_type_size) struct alignment changed for 
9706         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
9707         64bits. Avoid leak in mono_marshal_get_native_wrapper when
9708         mono_lookup_pinvoke_call throws.        
9709
9710 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
9711
9712         * reflection.c (mono_reflection_parse_type): Fix #49114.
9713
9714         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
9715         temporary workaround for cygwin header problem.
9716
9717         * object.c (mono_object_isinst): Synchronize this with the code
9718         generated by the JIT for casts.
9719
9720 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
9721
9722         * reflection.c (encode_type): Fix #38332.
9723
9724 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
9725
9726         * marshal.c (mono_marshal_method_from_wrapper): New function to return
9727         the original method from the wrapper method.
9728
9729 2003-09-25  Martin Baulig  <martin@ximian.com>
9730
9731         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
9732         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
9733         (ves_icall_Type_get_IsGenericInstance): New interncall.
9734
9735 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
9736
9737         * object.c: fix cast warning in big endian code.
9738
9739 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
9740
9741         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
9742         
9743 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9744
9745         * assembly.c: don't call check_env from mono_assembly_load. It's
9746         already done once in mono_assemblies_init and may cause headaches when
9747         multiple threads are loading assemblies.
9748
9749 2003-09-19  Martin Baulig  <martin@ximian.com>
9750
9751         * reflection.c (mono_reflection_define_generic_parameter): Don't
9752         allocate `klass->methods', set `klass->flags' to
9753         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
9754
9755 2003-09-18  Martin Baulig  <martin@ximian.com>
9756
9757         * class.c (mono_class_init): Don't create `class->methods' if it's
9758         already initialized.
9759
9760         * metadata.c (mono_metadata_load_generic_params): Make this
9761         actually work.
9762
9763         * reflection.c (mono_reflection_define_generic_parameter): Set
9764         parent class and interfaces from the constraints.
9765
9766         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
9767         to keep this struct in sync with the declaration in TypeBuilder.cs.
9768
9769 2003-09-17  Martin Baulig  <martin@ximian.com>
9770
9771         * metadata.h (MonoType): Replaced the data's `int type_param'
9772         field with `MonoGenericParam *generic_param'.
9773         (MonoGenericParam): Added `MonoClass *klass'.
9774
9775         * class.c (mono_class_from_gen_param): Removed the
9776         `MonoImage *image' and `int type_num' arguments.
9777
9778         * metadata.c (mono_metadata_parse_generic_param): New static
9779         method; creates a MonoGenericParam which just contains the index.
9780         (do_mono_metadata_parse_type): Call
9781         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
9782         MONO_TYPE_MVAR.
9783
9784         * reflection.c (mono_image_typedef_or_ref): Generic type
9785         parameters may be in the same assembly, but never use a typedef
9786         for them.
9787         (mono_reflection_define_generic_parameter): We're now creating a
9788         "real" class for the type parameter; it's now safe to call
9789         mono_class_from_mono_type() on the class'es type, it'll do the
9790         right thing.
9791
9792 2003-09-16  Martin Baulig  <martin@ximian.com>
9793
9794         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
9795         `symfile->range_entry_size' and `symfile->class_entry_size' here;
9796         the `symfile' data structure must be fully initialized before it
9797         gets added to the table.
9798
9799 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
9800
9801         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
9802
9803         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
9804         class init trampolines.
9805
9806 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
9807
9808         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
9809         to the built-in profiler to turn off time and allocation profiling
9810         respectively.
9811
9812 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
9813
9814         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
9815         g_direct_equal.
9816
9817         * debug-helpers.c (mono_method_full_name): Print the wrapper type
9818         in human readable form.
9819
9820 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
9821
9822         * reflection.c icall.c: Fixed warnings.
9823
9824         * image.c (load_class_names): Use a temporary hash table to hold the
9825         namespaces in order to avoid doing many string comparisons.
9826
9827         * image.h: Fix typo.
9828
9829         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
9830         Pass NULL instead of g_direct_equal to the GHashTable constructor 
9831         since the NULL case is short-circuited inside g_hash_table_lookup, 
9832         leading to better performance.  
9833
9834         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
9835         obtain the first custom attribute for a given index. Depends on the
9836         CustomAttribute table being sorted by the parent field.
9837
9838         * reflection.c (mono_custom_attrs_from_index): Use the new function 
9839         for better performance.
9840
9841 2003-09-07  Martin Baulig  <martin@ximian.com>
9842
9843         * class.c (mono_class_init): If we're a generic instance, inflate
9844         all our methods instead of loading them from the image.
9845         (mono_class_from_generic): Set `class->methods = gklass->methods'.
9846
9847 2003-09-07  Martin Baulig  <martin@ximian.com>
9848
9849         * mono-debug-debugger.c: Added support for constructors.
9850
9851 2003-09-06  Martin Baulig  <martin@ximian.com>
9852
9853         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
9854         New interncall.
9855
9856         * reflection.c (mono_reflection_setup_generic_class): Call
9857         ensure_runtime_vtable() to create the vtable.
9858
9859 2003-09-05  Martin Baulig  <martin@ximian.com>
9860
9861         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
9862         MONO_TYPE_MVAR.
9863
9864 2003-09-04  Martin Baulig  <martin@ximian.com>
9865
9866         * reflection.c (mono_reflection_define_generic_parameter): Generic
9867         parameters start with zero.
9868
9869 2003-09-04  Martin Baulig  <martin@ximian.com>
9870
9871         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
9872
9873         * reflection.h (MonoReflectionGenericParam): New typedef.
9874         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
9875         the generic parameters from the managed TypeBuilder.
9876
9877         * reflection.c (mono_reflection_define_generic_parameter): New function.
9878         (mono_reflection_create_runtime_class): Encode generic parameters.
9879         (mono_reflection_setup_generic_class): New function; this is
9880         called after adding adding all generic params to the TypeBuilder.
9881         (encode_type): Added MONO_TYPE_VAR.
9882
9883 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
9884
9885         * class.h class.c (mono_class_needs_cctor_run): Moved this method
9886         here from the JIT.
9887
9888         * assembly.h assembly.c: Moved the AOT loading code into an assembly
9889         load hook.
9890
9891 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
9892
9893         * reflection.h reflection.c class.h class.c: Delete duplicate 
9894         definition of mono_type_get_name () from reflection.c and export the
9895         one in class.c.
9896
9897         * class.c: Class loading fixes from Bernie Solomon 
9898         (bernard@ugsolutions.com).
9899
9900         * reflection.c: Endianness fixes from Bernie Solomon 
9901         (bernard@ugsolutions.com).
9902         
9903 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
9904
9905         * assembly.h assembly.c: Define a file format version for AOT
9906         libraries.
9907         
9908         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
9909
9910         * appdomain.h (MonoJitInfo): New field to determine whenever the
9911         code is domain neutral.
9912         
9913 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
9914
9915         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
9916
9917 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
9918
9919         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
9920         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
9921         Avoid caching the result since strings must be domain specific. Fixes
9922         #48050.
9923
9924 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
9925
9926         * marshal.c (mono_marshal_init): Make this callable multiple times
9927         since it is hard to find a correct place to call it.
9928
9929         * object.c (mono_runtime_class_init): Execute static constructors in
9930         the correct appdomain.
9931
9932         * image.c (build_guid_table): Handle the case when multiple images have
9933         the same GUID.
9934
9935 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9936
9937         * icall.c: added a couple of icalls for System.Web.
9938
9939 2003-08-28  Martin Baulig  <martin@ximian.com>
9940
9941         * icall.c (ves_icall_Type_BindGenericParameters): Use
9942         `klass->generic_inst' instead of `&klass->byval_arg' in the
9943         mono_type_get_object() call.  The returned type must be
9944         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
9945
9946 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
9947
9948         * NOTES: New file.
9949
9950         * object.c (mono_class_proxy_vtable): Make it thread safe.
9951
9952         * pedump.c: Fix warning.
9953
9954         * object.c appdomain.h: Get rid of metadata_section. 
9955         It is no longer needed and it was causing deadlocks with domain->lock.
9956
9957         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
9958
9959 2003-08-26  Martin Baulig  <martin@ximian.com>
9960
9961         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
9962
9963 2003-08-26  Martin Baulig  <martin@ximian.com>
9964
9965         * pedump.c (main): Call mono_metadata_init(),
9966         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
9967         and mono_loader_init().
9968
9969 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
9970
9971         * loader.h: Add missing include to fix build.
9972
9973         * image.h: mono_image_load_references is no more.
9974
9975         * assembly.c: Reworked assembly loading to make it really thread safe.
9976         After these changes, the assembly returned by mono_assembly_open is
9977         fully initialized, i.e. all its references assemblies are loaded.
9978
9979         * assembly.c (mono_image_load_references): Renamed to 
9980         mono_assembly_load_references, and made private, since clients no
9981         longer need to call it.
9982
9983         * class.c: Removed calls to mono_assembly_load_references, since it was
9984         a source of deadlocks.
9985
9986         * loader.h loader.c class.h class.c: Protect data structures using a 
9987         new lock, the loader lock.
9988
9989         * class.c (mono_class_setup_vtable): Create temporary hash tables and
9990         GPtrArrays only when needed.
9991
9992         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
9993         into empty structures by mcs. Fixes pinvoke7.cs.
9994         
9995         * domain.c (mono_init): Call a new initialization function.
9996
9997         * appdomain.c (mono_runtime_init): Call the new initializer function
9998         of the marshal module.
9999
10000         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
10001         inserted into empty structures by mcs. Fixes pinvoke7.cs.
10002
10003         * marshal.h marshal.c: Added locks around the wrapper caches to make
10004         this module thread safe.
10005
10006         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
10007         this argument. Fixes pinvoke1.exe.
10008
10009 2003-08-25  Lluis Sanchez <lluis@ximian.com>
10010
10011         * object.h: Added call_type field to MonoMethodMessage and the corresponding
10012         enumeration of values. Removed fields to store remote call output values in
10013         MonoAsyncResult. Not needed any more.
10014         * object.c: Initialize call_type and async_result fields in mono_message_init.
10015         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
10016         dispatching the message.
10017         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
10018         async call to finish. To do it use a message with EndInvoke call type.
10019
10020 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
10021
10022         * loader.h loader.c (mono_method_hash_marhal_info): New function which
10023         determines whenever a method has marshalling info.
10024
10025 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10026
10027         * assembly.c: fix the build on windows.
10028
10029 2003-08-22 Lluis Sanchez <lluis@ximian.com>
10030
10031         * object.cs: Fixed bug #47785.
10032
10033 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
10034
10035         * string-icalls.c (StringReplace): If their are no occurances of
10036         the old string found return a reference to the supplied
10037         string. This saves some memory and matches MS behavoir.
10038         
10039 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10040
10041         * socket-io.c: fixed compilation for systems that define AF_INET6
10042         and don't define SOL_IP/SOL_IPV6.
10043
10044 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
10045
10046         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
10047         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
10048
10049         * rawbuffer.c rawbuffer.h: Make this module thread safe.
10050
10051         * domain.c: Make this module thread safe.
10052
10053         * domain.c (mono_init): Call new initialization function.
10054
10055         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
10056         reference types too. Fixes #38812.
10057
10058         * image.c (mono_image_init): Fixed warnings.
10059
10060         * class.c (mono_class_from_typeref): Handle assembly load failure
10061         correctly.
10062
10063         * appdomain.c (add_assemblies_to_domain): Handle the case when
10064         the references of an assembly are not yet loaded.
10065
10066         * metadata.c image.c assembly.c: Moved initialization of global
10067         variables to a separate function called at startup since lazy 
10068         initialization of these variables is not thread safe.
10069         
10070         * image.c assembly.c: Made this module thread safe by adding locks in 
10071         the appropriate places.
10072
10073         * domain.c (mono_init): Call the new initialization functions of the
10074         three modules.
10075
10076 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
10077
10078         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
10079           make a direct call. It is proxy's work to make the call asynchronous.
10080           mono_delegate_end_invoke(): If the targe is a proxy, just collect
10081           the return values.
10082         * object.cs: mono_method_call_message_new(): read AsyncResult and
10083           state object from parameters list, if this info is requested.
10084         * object.h: Added fields to store remote call output values in
10085           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
10086
10087 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
10088
10089         * object.h: add needed fields to MonoThread.
10090         * threads.c, threads.h: allow registering a function to cleanup data
10091         allocated per thread by the JIT.
10092
10093 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
10094
10095         * loader.h: portability fix by Bernie Solomon
10096         * <bernard@ugsolutions.com>.
10097
10098 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
10099
10100         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
10101         return a MonoArray. This simplifies the code and also ensures that
10102         the cache allways contains an object reference as a value.
10103
10104         * icall.c (ves_icall_get_parameter_info): Simplified using the new
10105         function.
10106
10107 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10108
10109         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
10110         fixes a problem with byte ordering when getting the address family for
10111         a socket.
10112
10113 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
10114
10115         * .cvsignore: Added monosn.
10116
10117         * reflection.h reflection.c loader.c: Added support for parameter
10118         marshalling to dynamically created types. Fixes #47295.
10119
10120 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
10121
10122         * rand.c: remove useless warnings.
10123
10124 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
10125
10126         * class.c: implemented ldtoken for methods and fieldrefs.
10127
10128 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10129
10130         * threadpool.c: when mono_async_invoke was called, no one took care of
10131         monitoring the queue. So if the method invoked took some time and we
10132         got new async invoke requests after 500 ms (the thread created waited
10133         that long in WaitForSingleObject), the new async invoke was not called
10134         until the previous one finished.
10135
10136         This is fixed now. Thanks to Totte for helping with it.
10137
10138 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10139
10140         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
10141
10142 2003-08-11  Martin Baulig  <martin@ximian.com>
10143
10144         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
10145
10146 2003-08-06  Martin Baulig  <martin@ximian.com>
10147
10148         * mono-debug-debugger.c: Added support for static fields,
10149         properties and methods.
10150
10151 2003-08-06  Martin Baulig  <martin@ximian.com>
10152
10153         * mono-debug-debugger.c: Don't store the MonoString's vtable to
10154         make this work for applications with multiple application domains.
10155
10156 2003-08-04  Martin Baulig  <martin@ximian.com>
10157
10158         * mono-debug-debugger.c: Completely reworked the type support; the
10159         most important thing is that we're now just using one single
10160         `MonoType' instance per type.
10161
10162 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
10163
10164         * mono-endian.h, mono-endian.c, icall.c: Added icall
10165         ves_icall_System_Double_AssertEndianity to assert double word endianity
10166         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
10167
10168 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
10169
10170         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
10171         support, icalls and fixes.
10172
10173 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
10174
10175         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
10176         classes that are a punctuation character in .NET is not the same a
10177         g_unichar_ispunct.
10178
10179 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
10180
10181         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
10182
10183 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
10184
10185         * icall.c: Add new MemCopy internalcall.
10186         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
10187         Simplified code; It is not necessary to handle all the cases here,
10188         as the C# code takes care of it.  Only handle the case of the name
10189         resource embedded into the assembly.
10190
10191         Changed signature to return the data pointer and the size of the
10192         data. 
10193
10194 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
10195
10196         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
10197         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
10198
10199 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
10200
10201         * socket-io.c: ignore EINTR error in select.
10202
10203 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
10204
10205         * class.h, class.c: removed unused subclasses field in MonoClass.
10206
10207 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
10208
10209         * icall.c: improve fix of get_base_definition(). If the parent class
10210           doesn't have the mehod, look at the parent of the parent.
10211         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
10212           to check if a parameter is an in or out parameter
10213           (PARAM_ATTRIBUTE_IN is not set by default).
10214           mono_method_return_message_restore(): Use mono_class_value_size to
10215           get the size of a value type. mono_type_stack_size (parameterType)
10216           does not return the correct value if parameterType is byRef.
10217           mono_load_remote_field(), mono_load_remote_field_new(),
10218           mono_store_remote_field(), mono_store_remote_field_new():
10219           raise exception if the remote call returns an exception.
10220
10221 2003-07-28  Martin Baulig  <martin@ximian.com>
10222
10223         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
10224         method.  This is a wrapper around mono_runtime_invoke() which
10225         boxes the instance object if neccessary.
10226
10227 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
10228
10229         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
10230         metadata.h, row-indexes.h, verify.c: first cut of generics support.
10231
10232 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
10233
10234         * icall.c: disable mcs bug workaround.
10235
10236 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
10237
10238         * object.c (mono_runtime_class_init): Take the metadata_section
10239         mutex before obtaining the domain mutex.
10240
10241         * appdomain.h: Added definition of metadata_section mutex here. 
10242
10243         * object.c: define metadata_mutex here.
10244
10245 2003-07-24  Ravi Pratap  <ravi@ximian.com>
10246
10247         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
10248         fixed.
10249
10250 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
10251
10252         * reflection.c: Fix bug #46669
10253
10254 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10255
10256         * exception.c:
10257         * exception.h:
10258         * icall.c:
10259         * object.h: fill in the type name for TypeLoadException.
10260
10261 2003-07-23  Ravi Pratap  <ravi@ximian.com>
10262
10263         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
10264         relationship between TypeBuilders while compiling corlib) and bug
10265         45993 (Array types returned from the runtime while compiling
10266         corlib were from the loaded corlib).
10267
10268 2003-07-22  Martin Baulig  <martin@ximian.com>
10269
10270         * mono-debug-debugger.c: Reworked the type support a bit more;
10271         distinguish between types and classes.
10272
10273 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
10274
10275         * icall.c: add IsArrayImpl icall.
10276
10277 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
10278
10279         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
10280         initializing real_size only once. Also fix bug #46602.
10281
10282 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
10283
10284         * object.c: Renamed mono_metadata_section to metadata_section.
10285
10286 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
10287
10288         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
10289           empty array if the type is an array. Fixed.
10290           ves_icall_MonoMethod_get_base_definition: if the base method
10291           is abstract, get the MethodInfo from the list of methods of
10292           the class.
10293         * reflection.c: ParameterInfo.PositionImpl should be zero-based
10294           and it was 1-based. Fixed in mono_param_get_objects.
10295
10296 2003-07-20  Martin Baulig  <martin@ximian.com>
10297
10298         * mono-debug.h: Set version number to 31.
10299         (mono_debug_init): Added `MonoDomain *' argument.
10300
10301         * mono-debug-debugger.c: Reworked the type support; explicitly
10302         tell the debugger about builtin types; pass the `klass' address to
10303         the debugger.
10304
10305 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
10306
10307         * image.c: Allow new metadata tables to be loaded without a
10308         warning. Also update the warning message to give the new constant value.
10309                 
10310 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
10311
10312         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
10313         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
10314         array type representation changes.
10315
10316 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
10317
10318         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
10319         on Environment.Exit () call.
10320
10321 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
10322
10323         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
10324         requires a matching corlib.
10325
10326 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
10327
10328         * Changelog: My editor decided to add a CR to each line. Sorry about that.
10329           Committed again without the CRs.
10330         
10331 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
10332
10333         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
10334           getting it from the "this" socket instance. Did not work
10335           if the socket is a subclass of Socket.
10336           Also fixed bug #35371.
10337
10338 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
10339
10340         * metadata.c: fixed size for TypedByRef.
10341         * loader.c: when searching for a method, consider the vararg amrker.
10342         * unicode.c, decimal.c: constify some arrays.
10343
10344 2003-07-15  Dick Porter  <dick@ximian.com>
10345
10346         * socket-io.c: Fixed compilation for gcc < 3.2.
10347
10348         Fixed compilation for machines that don't have AF_INET6 (thanks to
10349         Bernie Solomon <bernard@ugsolutions.com> for that part.)
10350
10351         Fixed compile warnings.
10352         
10353         Fixed formatting and line endings.
10354
10355 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
10356
10357         * socket-io.h:
10358         * socket-io.c: Added IPv6 support.
10359
10360 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
10361
10362         * class.c (mono_class_is_assignable_from): New function to implement
10363         the is_assignable_from logic. Used by mono_object_isinst, 
10364         Type::IsAssignableFrom () and the interpreter.
10365
10366         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
10367         Object, even interfaces.
10368         
10369         * object.c (mono_object_isinst): Implement in terms of 
10370         is_assignable_from.
10371
10372         * icall.c (ves_icall_type_is_assignable_from): New icall.
10373
10374 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
10375
10376         * domain.c (foreach_domain): fix compiler warning.
10377
10378 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
10379
10380         * image.c (load_metadata_ptrs): use g_strndup because strndup is
10381         not available on all plattforms
10382
10383 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
10384
10385         * image.h image.c: Store the metadata version string in MonoImage.
10386         * icall.c: New icall to retrieve the image version.
10387         * reflection.c (create_dynamic_image): Fill in the image version field
10388         * reflection.c (build_compressed_metadata): Use the image version
10389         from the image structure.
10390
10391 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10392
10393         * appdomain.c: modified comment.
10394         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
10395         That will be its last iteration when mono_gc_cleanup is called from
10396         mono_runtime_cleanup and before the domain is unloaded.
10397
10398         Fixes bug #45962.
10399
10400 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
10401
10402         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
10403         attributes.
10404
10405 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
10406
10407         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
10408         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
10409         Bernie Solomon <bernard@ugsolutions.com>.
10410
10411 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
10412
10413         * object.c, object.h: provide mono_object_new_fast() for faster
10414         allocation in some special cases.
10415
10416 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
10417
10418         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
10419         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
10420
10421 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
10422
10423         * threadpool.c: fix leaks.
10424
10425 2003-07-01  Dick Porter  <dick@ximian.com>
10426
10427         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
10428         using MonoGHashTables.  Fixes threadpool bug posted to list.
10429
10430 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
10431
10432         * image.h, image.c: added support to load an assembly from a byte array.
10433         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
10434         assembly bundle support.
10435
10436 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
10437
10438         * threadpool.c (mono_thread_pool_add): keep a reference to the
10439         AsyncResult to prevent GC
10440
10441 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
10442
10443         * class.c: leak fix.
10444
10445 2003-06-25  Dick Porter  <dick@ximian.com>
10446
10447         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
10448         for the async object, the WaitHandle object will close the handle.
10449         Fixes bug 45321.
10450
10451 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
10452
10453         * class.c: in mono_array_class_get (), lookup from the hash with the
10454         same type we insert: this works around a bug in
10455         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
10456         lluis. The real fix will have to wait for after the release.
10457
10458 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
10459
10460         * icall.c: fix memory leak when getting type members.
10461
10462 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
10463
10464         * reflection.c: added more pubtoken special cases.
10465
10466 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
10467
10468         * class.c: handle field offset correctly when class size
10469         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
10470
10471 2003-06-20  Martin Baulig  <martin@ximian.com>
10472
10473         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
10474         *image' field.
10475
10476 2003-06-20  Martin Baulig  <martin@ximian.com>
10477
10478         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
10479
10480 2003-06-20  Martin Baulig  <martin@ximian.com>
10481
10482         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
10483         just distinguish between variables in registers and variables at
10484         an offset relative to a register.
10485
10486 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10487
10488         * icall.c: #ifdef out latest changes until mcs is fixed.
10489
10490 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
10491
10492         * icall.c: return members in metadata order.
10493
10494 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
10495
10496         * icall.c: avoid infinite loop in GetTimeZoneData.
10497
10498 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
10499
10500         * icall.c: added Marshal.Prelink/All icalls.
10501
10502 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
10503
10504         * object.c, object.h: fix warnings and do some overflow checking
10505         when creating arrays.
10506
10507 2003-06-17  Dick Porter  <dick@ximian.com>
10508
10509         * file-io.h:
10510         * file-io.c: File attributes need to be tweaked slightly when
10511         passed from the managed to the w32 world.
10512
10513 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
10514         * profiler.h profiler-private.h profiler.c: Rework last patch
10515         based on suggestion by Paolo.
10516         
10517 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
10518
10519         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
10520         instruction level coverage data collection.
10521         * profiler.h profiler.c (: Added new callback function which can be
10522         used by the profiler to limit which functions should have coverage
10523         instrumentation.
10524         * profiler.c (mono_profiler_load): Call g_module_build_path to
10525         generate the file name of the profiler library.
10526
10527 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
10528
10529         * profiler.c, profiler.h, profiler-private.h: added basic block 
10530         coverage profiling API.
10531
10532 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
10533
10534         * reflection.c (mono_reflection_create_runtime_class): Add support
10535         for events in dynamically generated code.
10536
10537         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
10538         not allocated.
10539
10540 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
10541
10542         * icall.c: when getting timezone info, return reasonable values if we
10543         can't get the actual data.
10544
10545 2003-06-14  Dick Porter  <dick@ximian.com>
10546
10547         * threads.c (start_wrapper): Remove the reference to the thread
10548         object in the TLS data, so the thread object can be finalized.
10549         This won't be reached if the thread threw an uncaught exception,
10550         so those thread handles will stay referenced :-( (This is due to
10551         missing support for scanning thread-specific data in the Boehm GC
10552         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
10553
10554 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
10555
10556         * reflection.c: ensure streams and tables are first allocated with
10557         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
10558
10559 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
10560
10561         * icall.c: fixed GetElementType for byrefs (bug# 44792).
10562
10563 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
10564
10565         * reflection.c (mono_reflection_create_runtime_class): Add support for
10566         properties to dynamically created classes.
10567         * reflection.c: Fix a few places where non-MonoObjects were inserted
10568         into the tokens hashtable.
10569
10570 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
10571
10572         * object.c: some support to handle out of memory exceptions.
10573
10574 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
10575
10576         * marshal.c (mono_marshal_get_native_wrapper): support reference
10577         return types
10578
10579 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
10580
10581         * object.h, object.c: more portability stuff from Bernie Solomon.
10582         Unexport mono_object_allocate(). Added mono_object_unbox ().
10583         Set exitcode when an unhandled exception is thrown.
10584
10585 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
10586
10587         * marshal.c (mono_marshal_get_native_wrapper): use custom
10588         marshaler for return types.
10589
10590 2003-06-10  Dick Porter  <dick@ximian.com>
10591
10592         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
10593         ip_mreq is available
10594
10595 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
10596
10597         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
10598         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
10599         by Bernie Solomon <bernard@ugsolutions.com>.
10600
10601 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
10602
10603         * gc.c (mono_gc_init): Avoid error message on shutdown when
10604         GC_DONT_GC=1 is used.
10605
10606         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
10607         New icall to return the GUID of a module.
10608
10609 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
10610
10611         * class.c: ensure instance size always includes the parent's size
10612         even whem class size is set explicitly (fixes bug#44294).
10613
10614 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
10615
10616         * profiler.h, profiler.c: made the simple profiler thread-safe,
10617         get more accurate timing info. Allow the loading of an
10618         externally-developed profiler module.
10619
10620 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
10621
10622         * marshal.c (mono_marshal_get_native_wrapper): improved
10623         class/byref arguments.
10624         (mono_marshal_get_native_wrapper): better string marshaling support.
10625
10626 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
10627
10628         * class.c: ensure .pack and .size are handled correctly and
10629         simplified layout of static fields.
10630
10631 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
10632
10633         * appdomain.c
10634         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
10635
10636         * loader.c (mono_lookup_pinvoke_call): look for modules in the
10637         current directory (fix bug 44008)
10638
10639 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
10640
10641         * marshal.c (mono_marshal_get_native_wrapper): started support for
10642         custom marshalers.
10643         (mono_delegate_to_ftnptr): consider marshalling specifications
10644
10645 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
10646
10647         * reflection.c, reflection.h: emit custom marshal info.
10648
10649 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10650
10651         * object.c: free the GError.
10652         * icall.c: added CloseEvent_internal.
10653         * threads.[ch]:
10654         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
10655         call.
10656
10657 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
10658
10659         * loader.c (mono_method_get_signature): Add support for dynamic
10660         assemblies.
10661
10662 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
10663
10664         * reflection.c: fixed bug #43905.
10665
10666 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
10667
10668         * class.c, domain.c, icall.c, metadata.h, object.h: support for
10669         handling TypedReference and ArgIterator.
10670         * loader.c, loader.h: added function to get signature at call site.
10671
10672 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
10673
10674         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
10675         data readonly. Buglets and warning fixes. Some MethodSpec support.
10676
10677 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
10678
10679         * class.h, class.c, object.c: remove relative numbering support.
10680
10681 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
10682
10683         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
10684         free the string, until we get a chance to fix Gtk#
10685
10686 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10687
10688         * marshal.c: revert last patch.
10689
10690 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
10691
10692         * icall.c: updates for new mono_class_vtable() not calling
10693         the type constructor anymore.
10694
10695 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
10696
10697         * object.h, object.c: separate vtable creation from type
10698         initialization. Make running the .cctor thread safe.
10699
10700 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
10701
10702         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
10703
10704 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
10705
10706         * loader.c (mono_get_method): consider calling convention
10707
10708 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
10709
10710         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
10711         to return the invisible global type for a module.
10712
10713         * reflection.c (mono_image_build_metadata): Emit global fields too.
10714
10715 2003-05-20  Peter Williams  <peterw@ximian.com>
10716
10717         * loader.c (mono_lookup_internal_call): Add a few newlines.
10718
10719 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
10720
10721         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
10722         literal strings.
10723
10724         * appdomain.c (set_domain_search_path): Recalculate search path when
10725         AppDomainSetup.PrivateBinPath changes.
10726
10727         * object.c (mono_class_compute_gc_descriptor): It turns out some
10728         parts of the class libs (like System.Thread) holds pointers to
10729         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
10730         to treat native int a pointer type here.
10731         
10732 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
10733
10734         * appdomain.h, domain.c: add hashtable for jump target resolution.
10735
10736 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
10737
10738         * reflection.h reflection.c icall.c: Added new icalls 
10739         GetManifestResourceInfoInternal, GetModulesInternal and support
10740         infrastructure.
10741
10742 2003-05-16  Dick Porter  <dick@ximian.com>
10743
10744         * icall.c:
10745         * file-io.h:
10746         * file-io.c: Implement System.IO.MonoIO::GetTempPath
10747
10748 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
10749
10750         * object.c: mono_store_remote_field: little fix to previous patch.
10751
10752 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
10753
10754         * class.c: add constructors to array classes.
10755         * icall.c: special case array construction for InternalInvoke (),
10756
10757 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
10758
10759         * class.h class.c reflection.c object.c: Added support for field
10760         defaults in dynamically generated classes.
10761
10762 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
10763
10764         * reflection.c: properly encode charset for ddlimport.
10765
10766 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
10767
10768         * threads.c: allow compiling without GC.
10769
10770 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
10771
10772         * appdomain.h, object.c, object.h, threads.c, threads.h: added
10773         handling of thread static data.
10774
10775 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
10776
10777         * reflection.h, reflection.c: added mono_custom_attrs_free ().
10778
10779 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
10780
10781         * class.c (mono_array_class_get): always set the serializable flags
10782         (mono_array_class_get): always set the SEALED attribute for array types
10783
10784 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
10785
10786         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
10787         attributes (fix for bug 42021).
10788
10789 2003-05-12  Dick Porter  <dick@ximian.com>
10790
10791         * gc.c: Don't run finalizers when the finalizer thread is
10792         finishing up, because the default domain has already been
10793         destroyed.
10794
10795 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
10796
10797         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
10798         value is null, we should throw an exception.   This is slightly
10799         different than the other conventions used for the constructor.
10800
10801 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10802
10803         * socket-io.c: fixed windows build.
10804
10805 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10806
10807         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
10808
10809 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
10810
10811         * object.c (mono_string_new_wrapper): Compatibility fix for MS
10812         compilers.
10813
10814 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
10815
10816         * class.c (mono_class_layout_fields): Add experimental GC aware
10817         auto layout facility. Requires class library changes to work correctly.
10818
10819         (mono_class_setup_vtable): Avoid overriding explicit interface
10820         method implementations. Fixes iface3.exe test.
10821
10822         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
10823         object reference.
10824         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
10825         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
10826
10827         * metadata.h: Add new type classification macro which determines
10828         whenever the type holds an object reference.
10829
10830 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
10831
10832         * marshal.c (mono_marshal_get_native_wrapper): cleanups
10833
10834 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
10835
10836         * gc.c (finalizer_thread): Work around a GC bug.
10837
10838 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
10839
10840         * marshal.c (emit_struct_conv): allow unions
10841
10842         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
10843
10844 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
10845
10846         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
10847
10848 2003-05-06  Martin Baulig  <martin@ximian.com>
10849
10850         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
10851
10852 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10853
10854         * socket-io.c:
10855         (Select_internal): allow NULLs, don't create arrays if not needed.
10856         Coupled with Socket.cs changes.
10857
10858         * threadpool.c:
10859         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
10860         register a finalizer for it that will close the semaphore handle. This
10861         fixes the leak and make Lupus' test run with > 4080 loops.
10862
10863 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
10864
10865         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
10866         Jerome Laban (bug #42287)
10867
10868 2003-05-02  Martin Baulig  <martin@ximian.com>
10869
10870         * debug-mono-symfile.h
10871         (MonoSymbolFile): Moved declaration into mono-debug.h.
10872         (MonoDebugMethodJitInfo): Likewise.
10873         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
10874         argument.
10875         (_mono_debug_address_from_il_offset): Take a
10876         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
10877
10878         * mono-debug.h
10879         (MonoDebugDomainData): New struct.
10880         (mono_debug_get_domain_data): New function.
10881         (mono_debug_add_method): Take an additional `MonoDomain *'
10882         argument.
10883         (mono_debug_source_location_from_address): Likewise.
10884         (mono_debug_il_offset_from_address): Likewise.
10885         (mono_debug_address_from_il_offset): Likewise.
10886
10887 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
10888
10889         * reflection.c: one more check for null type in custom attrs.
10890
10891 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10892
10893         * reflection.c: avoid warning (comparison is always false due to limited
10894         range of data type).
10895
10896 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10897
10898         * icall.c: throw an exception in Type.GetField if the argument 'name'
10899         is NULL.
10900
10901 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
10902
10903         * reflection.c: fixed handling of enums in named arguments to custom
10904         attributes (bug #42123).
10905
10906 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
10907
10908         * reflection.c: use the right array element type and handle
10909         a null for a Type argument, too.
10910
10911 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
10912
10913         * reflection.c: handle arrays as arguments to custom attributes.
10914
10915 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
10916
10917         * reflection.c: handle a string value in a custom attr
10918         ctor that takes an object.
10919
10920 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
10921
10922         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
10923         (fix bug #42063)
10924
10925 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
10926
10927         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
10928
10929 2003-04-27  Martin Baulig  <martin@ximian.com>
10930
10931         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
10932         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
10933         MONO_DEBUGGER_EVENT_BREAKPOINT.
10934         (mono_breakpoint_trampoline_code): Removed.
10935         (mono_debugger_event_handler): The last argument is now a
10936         `guint32'.
10937         (mono_debugger_insert_breakpoint_full): Removed the
10938         `use_trampoline' argument.
10939         (mono_debugger_method_has_breakpoint): Likewise.
10940         (mono_debugger_trampoline_breakpoint_callback): Renamed to
10941         mono_debugger_breakpoint_callback(); take the method and
10942         breakpoint number as arguments.
10943
10944 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
10945
10946         * metadata.c: fix off by one when loading parameters attributes.
10947
10948 2003-04-24  Martin Baulig  <martin@ximian.com>
10949
10950         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
10951
10952 2003-04-24  Martin Baulig  <martin@ximian.com>
10953
10954         * mono-debug-debugger.c: Moved all code which interacts with the
10955         Mono Debugger here.
10956
10957         * debug-mono-symfile.c: This code now just deals with the symbol
10958         file itself, the debugger code is now in mono-debug-debugger.c.
10959
10960 2003-04-23  Martin Baulig  <martin@ximian.com>
10961
10962         * mono-debug.c (mono_debug_source_location_from_il_offset):
10963         New method; like mono_debug_source_location_from_address(), but
10964         takes an IL offset instead of a machine address.
10965
10966 2003-04-23  Martin Baulig  <martin@ximian.com>
10967
10968         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
10969         `line' field; this is now computed by the debugger.
10970
10971 2003-04-23  Martin Baulig  <martin@ximian.com>
10972
10973         * mono-debug.[ch]: New files.  This is the new debugging interface.
10974
10975         * mono-debug-debugger.[ch]: New files.  Moved all code which
10976         interacts with the Mono Debugger here.
10977
10978 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
10979
10980         * domain.c (mono_init): initialize mono_defaults.monitor_class
10981
10982 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
10983
10984         * reflection.c (method_encode_code): Add a spicy exception to help
10985         future compiler authors.
10986
10987 2003-04-21  Martin Baulig  <martin@ximian.com>
10988
10989         * icall.c
10990         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10991         Make this work with relative pathnames; g_filename_to_uri() needs
10992         an absolute filename.
10993
10994 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
10995
10996         * icall.c: Track name changes in Object and ValueType.
10997
10998 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
10999
11000         * metadata.c (mono_type_stack_size): size should be a multiple of
11001         sizeof (gpointer)
11002
11003 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11004
11005         * gc.c:
11006         (internal_domain_finalize): moved into mono_domain_finalize. No need
11007         to create another thread because the finalizers will be run in the
11008         finalizer thread.
11009         
11010         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
11011         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
11012         to be run (MS does this too).
11013
11014 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
11015
11016         * object.c (mono_class_compute_gc_descriptor): Update comment.
11017
11018         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
11019
11020         * image.h: Add synchronized wrapper cache.
11021
11022         * image.c (do_mono_image_open): Initialize cache.
11023
11024         * reflection.c (create_dynamic_mono_image): Initialize cache.
11025
11026 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11027
11028         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
11029         ves_icall_System_Buffer_ByteLengthInternal.
11030
11031 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
11032
11033         * reflection.c: setup klass->nested_in earlier. Allow
11034         a dash in the assembly name.
11035
11036 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
11037
11038         * metadata.c (mono_type_to_unmanaged): dont access
11039         type->data.klass for MONO_TYPE_OBJECT
11040         (mono_type_to_unmanaged): consider System.Delegate class
11041
11042 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
11043
11044         * class.c: just setup supertypes in the proper place instead of
11045         initializing the full element class for arrays.
11046
11047 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
11048
11049         * class.c: ensure the element class of arrays is initialized.
11050         Setup the supertype info for array classes, too.
11051
11052 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
11053
11054         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
11055
11056 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11057
11058         * Makefile.am: re-added -m option when running cygpath. This way,
11059         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
11060         separator.
11061         * mono-config.c: same codepath for locating mono config file for WIN32
11062         and the rest.
11063         * assembly.c: if mono_assembly_setrootdir is called, don't override
11064         the value set.
11065
11066 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11067
11068         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
11069         MONO_ASSEMBLIES variable.
11070
11071 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
11072
11073         * icall.c: added Assembly::GetNamespaces() icall.
11074
11075 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11076
11077         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
11078
11079 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
11080
11081         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
11082         * object.c: fixed bug in the construction of vtable for proxies
11083
11084 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
11085
11086         * object.c (mono_array_new): Mark mono_array_new as an icall.
11087
11088 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11089
11090         * class.c: fixed test for public method when overriding interfaces.
11091         Closes bug #40970.
11092
11093 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
11094
11095         * appdomain.h, domain.c: added mono_domain_foreach() to
11096         be able to access the currently loaded appdomains.
11097         * object.c: make string interning work across sppdomains.
11098         Mark some functions for use as icalls.
11099
11100 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
11101
11102         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
11103
11104         * reflection.h reflection.c: Allocate long living data using 
11105         GC_MALLOC_ATOMIC so the collector does not need to scan it.
11106
11107         * reflection.c: Double the allocation size in streams instead of
11108         increasing it, to prevent unneccesary copying on large assemblies.
11109         
11110         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
11111         creation if the assembly does not have the Run flag set.
11112
11113 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
11114
11115         * class.h: avoid the C++ keywords in header files (Jerome Laban
11116         spotted and fixed this).
11117
11118 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11119
11120         * object.c:
11121         (mono_unhandled_exception): fill in the arguments for the
11122         UnhandledException event. Only trigger that event for the default
11123         domain (as MS does).
11124
11125 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
11126
11127         * object.c: Improve typed allocation stuff based on suggestions from
11128         Paolo. Also turn it on if the GC library supports it.
11129
11130 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
11131
11132         * object.c object.h class.h: Added experimental typed allocation
11133         facility using the interfaces in gc_gcj.h.
11134
11135         * os/gc_wrapper.h: Added new include files.
11136         
11137 2003-04-03  Martin Baulig  <martin@ximian.com>
11138
11139         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
11140         which is not yet enabled by default.
11141
11142         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
11143         functions.
11144         (mono_gc_lock, mono_gc_unlock): New static functions.
11145
11146         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
11147         functions; stop/start the world for the garbage collector.  This
11148         is using the windows API; we need to complete the SuspendThread()/
11149         ResumeThread() implementation in the io-layer to make this work on Unix.
11150         (mono_gc_push_all_stacks): New public function; tells the garbage
11151         collector about the stack pointers from all managed threads.
11152
11153 2003-04-03  Martin Baulig  <martin@ximian.com>
11154
11155         * object.h (MonoThread): Added `gpointer stack_ptr'.
11156
11157         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
11158
11159 2003-04-03  Martin Baulig  <martin@ximian.com>
11160
11161         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
11162
11163 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
11164
11165         * reflection.c (typebuilder_setup_fields): Initialize field.first and
11166         field.last.
11167
11168 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
11169
11170         * loader.c (mono_lookup_internal_call): Report the corlib that is
11171         out of sync.
11172
11173 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
11174
11175         * icall.c (ves_icall_type_GetTypeCode): fixed check for
11176         System.DBNull (it's class not valuetype).
11177
11178 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
11179
11180         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
11181         if the array method was already assigned a token (fixes bug#40646).
11182
11183 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
11184
11185         * reflection.c (mono_reflection_get_type): Attempt type resolve even
11186         if no assembly is given.
11187
11188 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
11189
11190         * metadata.h: Added the new tables.
11191
11192         * row-indexes.h: Added definitions for new tables.
11193
11194         * metadata.c: Add schemas for new tables, and add support for
11195         computing the sizes of them.
11196
11197         * class.c: Update for handling the new type cases.
11198
11199 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
11200
11201         * metadata.h (MONO_TYPE_IS_VOID): new macro
11202
11203 2003-03-31  Martin Baulig  <martin@ximian.com>
11204
11205         * threads.h (MonoThreadCallbacks): Added `thread_created'.
11206
11207         * threads.c (mono_thread_new_init): Call `thread_created' in the
11208         mono_thread_callbacks.
11209
11210 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
11211
11212         * loader.h: added marshalbyrefobject_class to mono_defaults
11213         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
11214         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
11215           generation of output parameters.
11216           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
11217         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
11218           contextbound and the target object belongs to the context of the caller.
11219         * object.h: added context and unwrapped_server variables in MonoRealProxy.
11220         * object.c: Implemented support for interfaces and abstract classes
11221           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
11222           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
11223
11224 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
11225
11226         * class.h class.c (mono_class_is_subclass_of): New function.
11227         
11228         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
11229         routines for most common case (calls from ArrayList::ToArray).
11230
11231         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
11232         routine so programs which call Environment::Exit() can be profiled.
11233
11234         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
11235         Added MONO_ARCH_SAVE_REGS.
11236
11237         * icall.c (ves_icall_type_is_subtype_of): Use new function.
11238
11239 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
11240
11241         * blob.h: Add a couple of new MonoType types definitions.
11242
11243         * tabledefs.h: Add a couple of new call convs.
11244
11245 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
11246
11247         * reflection.h (MonoReflectionDynamicAssembly): track changes in
11248         the layout of the class.
11249
11250         * reflection.c (alloc_table): double the size on overflow to avoid
11251         unnecessary copying.
11252
11253         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
11254         avoid filling out metadata tables and blobs. Also set mb->ilgen to
11255         null so it can be garbage collected.
11256         
11257 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
11258
11259         * reflection.c (mono_reflection_get_type): Return the resolved type
11260         only if it is in the assembly we searched.
11261
11262         * reflection.c (ensure_runtime_vtable): Initialize method slots.
11263
11264         * class.c (mono_class_setup_vtable): Set the slot of the overriding
11265         method.
11266
11267 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11268
11269         * appdomain.c:
11270         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
11271         the right one is 'file:///blah', but MS allows it.
11272         * assembly.c:
11273         (mono_assembly_open): allow 'file://blah'
11274
11275         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
11276
11277 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
11278
11279         * socket-io.c: fixes bug #40310.
11280
11281 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
11282
11283         * reflection.c (mono_reflection_parse_type): handle deeply nested
11284         types correctly.
11285
11286         * reflection.c (mono_image_create_token): Use unique token values
11287         since they will be put into a hash table.
11288
11289         * class.c (mono_class_setup_vtable): If a method occurs in more than
11290         one place in the vtable, and it gets overriden, then change the
11291         other occurances too.
11292
11293         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
11294         object as return type.
11295
11296 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
11297
11298         * icall.c: Deleted "ToString" implementation for double and float
11299         because they are full implemented in managed code.
11300
11301 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
11302
11303         * reflection.c, reflection.h: implemented and exported functions
11304         to retrieve info about custom attributes.
11305
11306 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11307
11308         * appdomain.c: moved Uri handling to assembly.c
11309         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
11310         work when using a file Uri in *nix and windows.
11311
11312         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
11313         GetReferencedAssemblies.
11314
11315 2003-03-18  Dick Porter  <dick@ximian.com>
11316
11317         * icall.c: Rename a couple of internal calls
11318
11319         * threads.c: Set the thread state to Stopped when a thread exits.
11320         Fixes bug 39377.
11321
11322 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
11323
11324         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
11325         New icall.
11326
11327         * object.c (mono_class_vtable): fix warning.
11328
11329 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
11330
11331         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
11332
11333         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
11334         memory.
11335         (method_encode_clauses): Create exception info structures in the right
11336         order.
11337         (mono_reflection_setup_internal_class): Initialize supertypes field.
11338
11339         * class.c object.c: Handle interfaces which implement other interfaces 
11340         correctly.
11341
11342         * class.h class.c: Move the supertypes array initialization code into 
11343         a separate function so it can be used for dynamic types too. Also call
11344         it earlier, in mono_class_init(), since it can be used before the
11345         type is initialized.
11346
11347 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11348
11349         * Makefile.am:
11350         * assembly.c:
11351         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
11352
11353         * appdomain.c:
11354         * appdomain.h:
11355         * marshal.c:
11356         * object.c: remove warnings.
11357
11358 2003-03-13  Martin Baulig  <martin@ximian.com>
11359
11360         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
11361         (MonoDebugLexicalBlockEntry): New types.
11362
11363         * debug-mono-symfile.c
11364         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
11365
11366 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11367
11368         * process.c: ret can be any non-zero value accroding to MS doc.
11369
11370 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
11371
11372         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
11373         fixing a warning for a miss-used prototype, would have cause
11374         random memory corruption.
11375
11376 2003-03-07  Martin Baulig  <martin@ximian.com>
11377
11378         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
11379         getting really annoying ....
11380
11381 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
11382
11383         * reflection.c (fixup_method): added support for array methods.
11384
11385 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
11386
11387         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
11388         (pointed out by Michael Adams).
11389
11390 2003-03-04  Dick Porter  <dick@ximian.com>
11391
11392         * icall.c: Temporarily reverted the Double and Single ToString()
11393         change, because it broke nunit.
11394
11395 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
11396
11397         * object.h, threads.h: make include files compatible with C++
11398         (patch by Jerome Laban <jlaban@wanadoo.fr>).
11399
11400 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
11401
11402         * icall.c: Erased ToString helper functions for Double and Single.
11403         Now, that implementations ar all in managed code (Double and Single
11404         Formatters).
11405
11406 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
11407
11408         * appdomain.c: Added method for initializing the default context of
11409         a domain. Added internal call for getting the default context.
11410         * appdomain.h: Added context variable in MonoDomain struct.
11411         * domain.c: mono_domain_set also sets the default context of the domain
11412         * icall.c: Mapped internal method InternalGetDefaultContext.
11413         * object.c: mono_object_get_virtual_method returns always a remoting
11414         wrapper if the object is a transparent proxy.
11415         mono_runtime_invoke_array: when creating an object by calling the
11416         constructor, if the created object is a proxy, then the constructor should
11417         be called using the a remoting wrapper.
11418
11419 2003-03-03  Dick Porter  <dick@ximian.com>
11420
11421         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
11422         variable so it compiles on solaris.  Problem spotted by
11423         Christopher Taylor <ct@cs.clemson.edu>
11424
11425 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11426
11427         * appdomain.c:
11428         (get_info_from_assembly_name): don't leak value.
11429
11430         * icall.c:
11431         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
11432         result.
11433
11434 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
11435
11436         * assembly.c: export mono_image_load_references ().
11437         * class.c: handle function pointers. mono_class_from_name() now
11438         supports nested type names directly.
11439
11440 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
11441
11442         * reflection.h reflection.c: Encode already created dynamic methods 
11443         and fields correctly as a DEF instead of a REF.
11444
11445         * reflection.c: Get rid of the force_ref argument to 
11446         mono_image_typedef_or_ref since it was wrong in the first place.
11447
11448         * string-icalls.c: add error checking to string constructors according
11449         to the MSDN docs.
11450
11451         * reflection.c: Emit types in the order their TypeBuilders were 
11452         created. Previously, a new table index was assigned to each type before
11453         the tables were emitted. This was wrong because the signature blob
11454         might already refer to a type by its original table index.
11455
11456 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
11457
11458         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
11459         change.
11460         
11461 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11462
11463         * Makefile.am: make assemblies dir have \ instead of / on windows.
11464
11465 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
11466
11467         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
11468         iterate over the NESTEDCLASS table using a linear search since the
11469         table is not guaranteed to be sorted by the secondary key.
11470
11471         * class.c (mono_class_create_from_typedef): fixed up call to
11472         mono_metadata_nesting_typedef.
11473         
11474 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
11475
11476         * marshal.c (mono_string_to_byvalstr): clear the memory as
11477         suggested by Jerome Laban <jlaban@wanadoo.fr>
11478
11479 2003-02-26  Dick Porter  <dick@ximian.com>
11480
11481         * process.c: Cope with padding in .rsrc blocks
11482
11483 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
11484
11485         * metadata.h: reverted the filter_len change, it breaks reflection
11486         
11487 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
11488
11489         * metadata.h: added a new field to store the filter_len
11490         
11491
11492 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
11493
11494         * reflection.c: handle custom attributes for types and members
11495         created with Reflection.Emit (bug#38422).
11496
11497 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
11498
11499         * reflection.c: define RTSpecialName automatically for constructors for
11500         compatibility with MS.NET.
11501
11502         * reflection.c (mono_reflection_create_runtime_class): initialize
11503         nested_in field of dynamically created classes.
11504
11505 2003-02-22  Martin Baulig  <martin@ximian.com>
11506
11507         * debug-mono-symfile.h: Incremented version number.
11508
11509 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
11510
11511         * object.h icall.c process.c: fix warnings.
11512
11513 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
11514
11515         * appdomain.h appdomain.c:
11516         (mono_domain_try_type_resolve): split the 
11517         name_or_tb argument into a name and a tb argument.
11518         (mono_domain_has_type_resolve): new function to check whenever the
11519         application has registered a TypeResolve event handler.
11520         
11521         * icall.c reflection.h reflection.c: move the type resolve logic into
11522         mono_reflection_get_type () so it will be invoked when 
11523         Assembly::GetType () is called.
11524
11525         * reflection.c:
11526         (mono_reflection_get_type): renamed to get_type_internal.
11527         (mono_reflection_get_type): fixed type name generation so it works 
11528         for nested types too.
11529         (mono_reflection_get_type): call has_type_resolve () to avoid the 
11530         costly type name generation if there is no resolve event handler.
11531
11532 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
11533
11534         * class.c, image.c: load exported types from file references.
11535
11536 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
11537
11538         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
11539           used to cache the managed methods used to create proxies and make 
11540           remote invocation of methods.
11541         * class.h: Added in MonoVTable a flag to indicate that a class needs 
11542           to be remotely created.
11543         * object.c: Modified the method mono_class_vtable(). It now initializes 
11544           the remote flag of the vtable. Modified mono_object_new_specific(), 
11545           so now it checks the remote flag.
11546         * icall.c: Added a couple of internal methods, one for enabling instance 
11547           creation interception for a type, and one for creating objects bypassing
11548           the remote check.
11549
11550 2003-02-18  Martin Baulig  <martin@ximian.com>
11551
11552         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
11553         New interncall to get a method's metadata token.
11554
11555         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
11556         New interncall for the debugger.
11557
11558 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
11559
11560         * class.c (mono_class_setup_vtable): allocate supertype array
11561
11562 2003-02-18  Martin Baulig  <martin@ximian.com>
11563
11564         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
11565
11566 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11567
11568         * reflection.c:
11569         (assembly_name_to_aname): jump over unknown properties (i've found
11570         something like: 'type, assembly, version=xxx, custom=null, public...',
11571         so now will ignore custom=null and still get the rest of the values).
11572
11573 2003-02-17  Dick Porter  <dick@ximian.com>
11574
11575         * threads.c: Have Thread.Start() wait for a semaphore to signal
11576         that the thread has set up all its local data.  This fixes bug
11577         34323, where Abort() raced the new thread's TLS data.
11578
11579         Also removes the handle_store() call from start_wrapper, because
11580         threads are now always created suspended and there is no longer a
11581         race between the parent and child threads to store the info.
11582
11583 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
11584
11585         * image.c: explain the #- heap issue in a message, hopefully
11586         avoiding FAQs on mono-list.
11587
11588 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11589
11590         * icall.c:
11591         (GetEntryAssembly): if the domain has not invoked
11592         AppDomain.ExecuteAssembly yet, return the assembly of the default
11593         AppDomain.
11594
11595 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
11596
11597         * class.c (mono_ldtoken): make it work in dynamic assemblies.
11598
11599 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
11600
11601         * metadata.c, reflection.c: simple speedup to type hash
11602         and equals code.
11603
11604 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
11605
11606         * image.c, image.h, class.c, assembly.c: move module loading
11607         to MonoImage. When loading metadata, consider alignemnet from
11608         the start of metadata, not from the metadata address in memory.
11609
11610 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
11611
11612         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
11613         AssemblyBuilder objects. Factored out custom attribute creation into
11614         a separate function.
11615         (create_custom_attr): new function to create custom attributes.
11616
11617 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
11618
11619         * Makefile.am: Got tired of typing the full pathname to pedump.
11620         Until there is another option, am installing this.
11621
11622 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
11623
11624         * class.c (class_compute_field_layout): always set field->parent 
11625         (mono_ldtoken): use mono_defaults.fieldhandle_class;
11626
11627 2003-02-11  Dick Porter  <dick@ximian.com>
11628
11629         * threads-types.h:
11630         * monitor.c: Rewrote Monitor, making lock much faster and
11631         Pulse/Wait work as specified.  Also uses much fewer handles, and only
11632         creates them as needed.
11633
11634         * exception.c: Added SynchronizationLockException
11635
11636         * threads.c: Deleted old Monitor implementation.  The new one is
11637         in a new file.
11638
11639 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
11640
11641         * class.c: handled TypedReference type code. Set the correct size for
11642         class data. Setup interface_offsets for interface classes, too.
11643
11644 2003-02-09  Martin Baulig  <martin@ximian.com>
11645
11646         * debug-mono-symfile.h: Reflect latest symbol writer changes.
11647
11648 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
11649
11650         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
11651         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
11652         * object.c: fixed mono_object_get_virtual_method () for interfaces.
11653         * verify.c: check for code that runs after the end of the method.
11654
11655 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
11656
11657         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
11658         "System.Math::Round2".
11659         * sysmath.h: Added Floor, Round and Round2 definitions.
11660         * sysmath.c: Modified certain functions that were not 100% compliant
11661         with MS.NET (math precision) and added the implementation of Floor,
11662         Round and Round2.
11663
11664 2003-02-07  Martin Baulig  <martin@ximian.com>
11665
11666         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
11667
11668 2003-02-07  Martin Baulig  <martin@ximian.com>
11669
11670         * debug-mono-symfile.c: Reflected latest symwriter changes.
11671         (mono_debug_create_mono_symbol_file): Removed.
11672         (mono_debug_open_mono_symbol_file): Take an argument which
11673         specifies whether to create a dynamic symbol file.
11674
11675 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
11676
11677         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
11678
11679 2003-02-05  Martin Baulig  <martin@ximian.com>
11680
11681         * reflection.c (mono_image_build_metadata): Make this public,
11682         protect it against being called multiple times, don't create
11683         resources and don't build the compressed metadata here.
11684         (mono_image_create_pefile): Do this here.
11685
11686         * icall.c
11687         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
11688
11689 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11690
11691         * socket-io.c: fixed bug #36322.
11692
11693 2003-02-06  Piers Haken <piersh@friskit.com>
11694
11695         * appdomain.[ch]:
11696         * class.h:
11697         * debug-mono-symfile.c:
11698         * icall.c:
11699         * loader.c:
11700         * mono-config.c:
11701         * monosn.c:
11702         * reflection.c:
11703         * socket-io.c: warning cleanups
11704
11705 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
11706
11707         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
11708         function. works like remoting invoke, but does a check for the Proxy first.
11709
11710 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
11711
11712         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
11713
11714 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
11715
11716         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
11717         array of pointers.
11718         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
11719         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
11720
11721         * object.c (mono_store_remote_field_new): used by the new jit
11722         instead of mono_store_remote_field
11723         (mono_load_remote_field_new): used by the new jit
11724         instead of mono_load_remote_field
11725
11726 2003-02-05  Patrik Torstensson
11727
11728         * appdomain.c: changed unload to take the domain id instead
11729         of domain
11730         
11731         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
11732
11733
11734 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11735
11736         * appdomain.c: don't look for assemblies in ApplicationBase if
11737         PrivateBinPathProbe is set.
11738
11739 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11740
11741         * object.c: make the first argument in main_args contain the absolute
11742         path to the assembly. Fixes bug #37511.
11743
11744 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11745
11746         * icall.c: get correct UTC offset for countries not using daylight
11747         time saving. Fixes bug #30030.
11748
11749 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11750
11751         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
11752         and 1 are the family).
11753
11754 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
11755
11756         * icall.c (ves_icall_InternalExecute): removed wrong assertion
11757
11758         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
11759
11760 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
11761
11762         * reflection.c: added support for SignatureHelper tokens, which is
11763         needed by the Calli opcode.
11764
11765         * reflection.h: track changes to SignatureHelper class.
11766
11767         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
11768
11769 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11770
11771         * appdomain.c: fixed loading assemblies from PrivateBinPath.
11772
11773 2003-02-03  Patrik Torstensson
11774         * appdomain.[c|h], domain.c : 
11775          - Added support for getting a domain via domain id
11776          - Support for setting and getting domain from System.AppDomain 
11777            (used in cross appdomain channel)
11778          - Added support for get/set for a MonoAppContext on a thread 
11779            (Context class in System.Runtime.Remoting.Contexts),
11780          - Removed hack in Get/SetData and ExecuteAssembly.
11781         
11782         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
11783         the managed world to get control when a proxy is created.
11784
11785         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
11786         
11787 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
11788
11789         * icall.c
11790         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
11791         Populate the codebase field as well.
11792
11793 2003-02-02  Martin Baulig  <martin@ximian.com>
11794
11795         * debug-mono-symfile.c
11796         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
11797         (mono_debug_symfile_add_method): Allow interncalls.
11798
11799 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11800
11801         * icall.c: throw parse exception if strtod fails or the string is empty.
11802
11803 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
11804
11805         * marshal.c: handle object type separately from defined
11806         class types.
11807
11808 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
11809
11810         * marshal.c: handle NATIVE_LPSTR for strings when it's
11811         explicitly specified.
11812
11813 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
11814
11815         * reflection.c, reflection.h, icall.c: setup the reflection
11816         handle cache for ModuleBuilders and AssemblyBuilders.
11817
11818 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
11819
11820         * reflection.c (reflection_methodbuilder_to_mono_method): set
11821         pinvoke flag
11822
11823 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11824
11825         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
11826
11827 2003-01-29  Dick Porter  <dick@ximian.com>
11828
11829         * threads.c: No need for the fake_thread kludge now that Thread
11830         doesn't run a class constructor
11831         
11832 2003-01-29  Dick Porter  <dick@ximian.com>
11833
11834         * threads.c: Use g_direct_hash instead of the rather bogus
11835         g_int_hash
11836
11837 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
11838
11839         * marshal.c (mono_marshal_get_native_wrapper): add check for null
11840         (fix pinvoke12.exe)
11841         (mono_marshal_get_struct_to_ptr): generate valid IL code
11842         (mono_marshal_get_ptr_to_struct): generate valid IL code
11843         (*): correctly set sig->pinvoke, we need to memdup the signature
11844         to do that
11845
11846 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
11847
11848         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
11849         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
11850
11851 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
11852
11853         * profiler.c: provide more callers information.
11854
11855 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
11856
11857         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
11858
11859         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
11860
11861         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
11862
11863 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11864
11865         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
11866         exception instead of going into an infinite loop on dates which it 
11867         can't yet handle.
11868
11869         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
11870         out-of-range exception if needed.
11871
11872         * class.c (mono_class_setup_vtable): allow a virtual method to provide
11873         an implementation for an interface method and to override an inherited
11874         method at the same time. 
11875         Imagine a scenario when a virtual method is used to override a
11876         virtual abstract method in a parent class, and this same method 
11877         provides an implementation for an method inherited from an interface. 
11878         In this case, the interface resolution code will set im->slot, which 
11879         means that the virtual method override pass will skip this method 
11880         which means a pointer to the abstract method inherited from the parent
11881         will remain in the vtable of this non-abstract class.
11882
11883         * class.c: (mono_class_setup_vtable): continue search for a real 
11884         method if only an abstract method is found.     
11885
11886 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
11887
11888         * reflection.c: add size to encoding for ByValStr and ByValArray
11889         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
11890
11891 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11892
11893         * class.c (mono_class_setup_vtable): pass the override info as an
11894         argument.
11895
11896         * class.c (mono_class_setup_vtable): set the slot of overriding methods
11897         correctly.
11898         
11899         * reflection.c (ensure_runtime_vtable); add support for method 
11900         overrides.
11901         
11902 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11903
11904         * reflection.c (resolution_scope_from_image): Hack to work to work with
11905         dynamic assemblies.
11906
11907         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
11908         added a 'force_ref' argument to force this function to allways return 
11909         a TypeRef. This is needed by mono_image_get_memberref_token ().
11910         
11911 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11912
11913         * reflection.c (mono_image_get_type_info): interfaces really don't have
11914         a parent.
11915
11916         * reflection.c (mono_image_basic_init): fill out missing fields of
11917         image structure.
11918
11919         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
11920         dynamic assemblies. This is required so dynamic assemblies show up in
11921         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
11922         Type::GetType() etc. This is consistent with MS behaviour.
11923
11924         * image.c image.h reflection.c: add newly created classes to the name 
11925         cache so mono_class_get () will find them.      
11926
11927 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11928
11929         First part of changes to get IKVM.NET running under mono.
11930         
11931         * appdomain.h, appdomain.c: added new function 
11932         mono_domain_try_type_resolve() which will emit TypeResolve events. 
11933         This function will call AppDomain::DoTypeResolve to do the actual work.
11934
11935         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
11936         moved existing code dealing with dynamic tokens to a new function 
11937         called mono_reflection_lookup_dynamic_token (). This function will 
11938         raise TypeResolve events when appropriate. Since reflection.c is not 
11939         part of libmetadata, a new hook function called 
11940         mono_lookup_dynamic_token() is added to class.c which will call this.
11941
11942         * assembly.h assembly.c: make the invoke_load_hook function public,
11943         so it can be called for dynamic assemblies.
11944
11945         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
11946
11947         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
11948         type isn't found.
11949
11950         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
11951         MonoGHashTable, since it contains pointers to objects which the GC 
11952         needs to track.
11953
11954         * assembly.c (search_loaded): remove unused variable.
11955         
11956 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
11957
11958         * object.c: fixed issue exposed by gcc-generated IL programs
11959         that use RVA data for pointers.
11960
11961 2003-01-25  Martin Baulig  <martin@ximian.com>
11962
11963         * threads.c (start_wrapper): Moved the initialization of
11964         `start_func' above the mono_new_thread_init() call to which we
11965         pass it as argument.
11966
11967 2003-01-24  Martin Baulig  <martin@ximian.com>
11968
11969         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
11970         the MonoThread pointer.
11971
11972 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
11973
11974         * icall.c: Rename `PowImpl' to Pow.
11975
11976 2003-01-23  Dick Porter  <dick@ximian.com>
11977
11978         * threads.c (start_wrapper): Create a Thread object if needed, so
11979         the Main() thread can do the class initialisation in a subthread
11980         that has been set up to allow managed code execution.
11981
11982         Pass the thread ID instead of the MonoThread pointer to the thread
11983         start and attach callbacks.  This change is required, because the
11984         jit thread start callback must be called _before_ the Thread
11985         object can be created.
11986         
11987         (mono_thread_init): Removed much object creation code that is no
11988         longer needed.  No managed code is called from here now.
11989
11990         * object.c (mono_runtime_exec_managed_code): Create a subthread
11991         for Main, and call back to the runtime to use it.
11992         Set the exit code when Main exits.
11993
11994         * gc.c: Make sure domain finalisation happens in a subthread.
11995         Re-enable threaded GC, fixing bug 31333 (again).
11996
11997         * environment.c: System.Environment internall calls (so far just
11998         ExitCode is here, the others are still in icall.c)
11999
12000         * appdomain.c (mono_runtime_cleanup): All threads running managed
12001         code should have finished before mono_runtime_cleanup() is
12002         reached, so no need to clean up threads.
12003
12004 2003-01-22  Martin Baulig  <martin@ximian.com>
12005
12006         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
12007         `gpointer func' arguments.      
12008         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
12009         but added `MonoThread *thread' argument.
12010         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
12011
12012         * threads.c (mono_new_thread_init): Added `gpointer func' argument
12013         and pass it to the mono_thread_start_cb callback.
12014         (mono_install_thread_callbacks): New public function to install a
12015         set of callbacks which are set by the debugger.
12016         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
12017
12018 2003-01-22  Martin Baulig  <martin@ximian.com>
12019
12020         * Makefile.am: Install debug-mono-symfile.h.
12021
12022 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
12023
12024         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
12025
12026 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
12027
12028         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
12029         * class.c (mono_ptr_class_get): correctly set access levels of pointers
12030         (mono_array_class_get): correctly set access levels of arrays
12031
12032 2003-01-20      Patrik Torstensson
12033         * image.h (MonoAssemblyName): changed major, minor, build, revision
12034         from signed to unsigned.
12035
12036 2003-01-20  sean kasun <skasun@azstarnet.com>
12037
12038         * reflection.c (load_cattr_value): Now this handles
12039         MONO_TYPE_SZARRAY.  Fixes bug #35629
12040
12041 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
12042
12043         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
12044         integer value
12045
12046 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12047
12048         * decimal.c: fixed bug #26056.
12049
12050 2003-01-17  Martin Baulig  <martin@ximian.com>
12051
12052         * gc.c: Raise an ExecutionEngineException instead of using g_error().
12053
12054 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12055
12056         * exception.[ch]:
12057         (mono_get_exception_type_initialization): new function.
12058
12059         * object.c: throw a TypeInitializationException when an exception is
12060         thrown invoking the class constructor.
12061
12062 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12063
12064         * reflection.c: fixed attribute reading.
12065
12066 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12067
12068         * icall.c:
12069         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
12070         provided, look for the type in the calling assembly and then in
12071         mscorlib; if the assembly name is provided, only try that one.
12072
12073 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
12074
12075         * object.c: register the vtable before there is a chance it's
12076         queried again recursively.
12077
12078 2003-01-13  Duncan Mak  <duncan@ximian.com>
12079
12080         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
12081         gc-internal.h. 
12082         
12083 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
12084
12085         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
12086
12087 2003-01-11  Martin Baulig  <martin@ximian.com>
12088
12089         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
12090         this to 20 for the release.
12091
12092 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
12093
12094         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
12095
12096         * loader.c (mono_method_get_marshal_info): bug fix
12097
12098         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
12099         structures with explicit layout
12100
12101 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
12102
12103         * profiler.c: made the output more readable (and sorted). 
12104         Added caller information for the allocation profiler.
12105
12106 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
12107
12108         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
12109
12110 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12111
12112         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
12113         to get value types.
12114         
12115 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
12116
12117         * object.c, profiler.h, profiler.c, profiler-private.h:
12118         Added object allocation profiler.
12119
12120 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
12121
12122         * reflection.h, reflection.c: handle global methods.
12123         Compress blob entries.
12124
12125 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
12126
12127         * marshal.c: fix compilation.
12128
12129 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
12130
12131         * loader.c (mono_method_get_marshal_info): impl.
12132
12133         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
12134
12135 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12136
12137         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
12138         for reference types.
12139
12140 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
12141
12142         * loader.c: fixed off by one error in loaded parameter names.
12143
12144 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
12145
12146         * marshal.c (mono_marshal_get_icall_wrapper): like
12147         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
12148         instead of a MonoMethod.
12149
12150 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12151
12152         * decimal.c: fixed bug #36537.
12153
12154 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
12155
12156         * marshal.c: throw a missing method exception if a
12157         P/Invoke method is not found.
12158
12159 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
12160
12161         * icall.c: allow a null this for constructors.
12162
12163 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
12164
12165         * icall.c: raise the proper exceptions if the arguments to the
12166         internal Invoke are incorrect.
12167
12168 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
12169
12170         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
12171
12172 2003-01-03  Martin Baulig  <martin@ximian.com>
12173
12174         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
12175
12176 2002-12-31  Martin Baulig  <martin@ximian.com>
12177
12178         * debug-mono-symfile.c: Completely rewrote the type section.
12179         Instead of using individual malloc()ed fields, we use one big
12180         continuous memory area and offsets into this area.
12181         See the comments in the source code for details.
12182
12183 2002-12-30  Martin Baulig  <martin@ximian.com>
12184
12185         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
12186
12187 2002-12-30  Martin Baulig  <martin@ximian.com>
12188
12189         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
12190         line number table in this data blob instead of using an external
12191         pointer.
12192
12193 2002-12-28  Martin Baulig  <martin@ximian.com>
12194
12195         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
12196
12197 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
12198
12199         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
12200         as a boxed return type.
12201
12202 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
12203
12204         * appdomain.c
12205         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
12206         g_build_filename to properly get separators on the filename created.
12207
12208         * object.h: Small change, introduce MonoMarshalByRefObject to
12209         track the layout of that structure in the C# universe as we make
12210         changes there.
12211
12212 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
12213
12214         * object.c: removed assert to allow static fields on interfaces.
12215         * loader.c: a TypeSpec may be used for any type, not just arrays.
12216
12217 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12218
12219         * class.c, class.h: added mono_class_array_element_size ().
12220         Ignore static methods in interfaces.
12221
12222 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12223
12224         * threads.c: fixed the build under cygwin.
12225
12226 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12227
12228         * reflection.c: handle nullref constants. Allocate keys for
12229         reflection handles with the GC.
12230
12231 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
12232
12233         * threads.c, threads.h: added mono_thread_get_abort_signal()
12234         to get a suitable signal for thread abort.
12235
12236 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
12237
12238         * metadata.c: fix handling of ExportedType table.
12239
12240 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12241
12242         * icall.c: added WriteWindowsDebugString internal call.
12243
12244 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12245
12246         * reflection.h: added fields to match C# implementation.
12247
12248 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12249
12250         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
12251
12252 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
12253
12254         * gc.h, gc-internal.h: Rename header for GC internal calls to
12255         gc-internal.h from gc.h as to not clash with Boehm GC having its
12256         header installed as <gc.h> in outside include paths.
12257         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
12258         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
12259
12260 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12261
12262         * icall.c: assign minor, build and revision in FillName.
12263
12264 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
12265
12266         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
12267         Added support for running code generated by Reflection.Emit.
12268
12269 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12270
12271         * appdomain.c: check for NULL argument in LoadFrom.
12272
12273 2002-12-10  Dick Porter  <dick@ximian.com>
12274
12275         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
12276
12277 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12278
12279         * appdomain.c: fix buglet when building exe file name.  Handle full
12280         assembly name (needed after latest changes to AssemblyName).
12281         * image.c:
12282         (mono_image_close): free some hashtables.
12283
12284 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
12285
12286         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
12287         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
12288         on some systems (redhat 7.3) 
12289
12290 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
12291
12292         * threads.c: delete the critical section of a sync block,
12293         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
12294
12295 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
12296
12297         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
12298
12299 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12300
12301         * appdomain.[ch]: handle the assembly preload event to try loading the
12302         assemblies using the paths we have in the current domain.
12303
12304         * assembly.[ch]: created an assembly preload hook that is called to try
12305         loading the assembly by other means that the ones provided here.
12306
12307         * domain.c: initialize the domain search path.
12308
12309         From now on, assemblies (TODO: except corlib and System) are loaded
12310         according to these rules when using mono_assembly_load ():
12311
12312                 1. It tries to load the assembly from the ApplicationBase
12313                 of the current domain appending .dll and .exe (TODO: have to
12314                 try loading from name/name.dll and name/name.exe).
12315
12316                 2. It tries the search path specified in PrivateBinPath for the
12317                 current domain (if any).
12318
12319                 3. Previous behavior.
12320
12321 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
12322
12323         * icall.c: implemented GetInterfaceMap() related icall.
12324         * domain.c, loader.h: load MethodInfo in mono_defaults.
12325
12326 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12327
12328         * gc.c: disable the finalizer thread for now, untill all the issues
12329         with it are resolved.
12330
12331 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12332
12333         * string-icalls.c: handle embedded nulls in string ctor when the
12334         length is specified.
12335
12336 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12337
12338         * class.c: look for explicit interface implementation in parent
12339         classes, too.
12340
12341 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
12342
12343         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
12344
12345 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12346
12347         * gc.c: protect handles with a critical section.
12348
12349 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12350
12351         * icall.c:
12352         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
12353         parameters. If no assembly specified, try getting the type from all
12354         the assemblies in the current domain, else, load the assembly and get
12355         the type from it.
12356
12357 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12358
12359         * marshal.c: applied patch from Aleksey Demakov that fixes
12360         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
12361
12362 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12363
12364         * icall.c: fixed get_location.
12365
12366 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
12367
12368         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
12369         declarations to make it work with older gcc. 
12370
12371         * loader.c (mono_get_method): set signature->pinvoke for native calls
12372
12373 2002-11-20  Dick Porter  <dick@ximian.com>
12374
12375         * threads.c (mono_thread_init): Set the main thread's handle
12376
12377 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12378
12379         * gc.c: allow compilation without GC support. Changed to match the
12380         mono coding style.
12381
12382 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12383
12384         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
12385
12386 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
12387
12388         * reflection.c: set a public key token on the core assemblies.
12389
12390 2002-11-18  Dick Porter  <dick@ximian.com>
12391
12392         * threads.c: Split out some thread initialisation so that other
12393         files can set the start callback function.
12394
12395         * gc.c: Run finalisers in a separate thread, to avoid stack
12396         overflow.  Fixes bug 31333.
12397
12398         * appdomain.c: Set up GC finalisation thread.
12399
12400         * reflection.c: 
12401         * object.c: 
12402         * domain.c: Use gc.h macros for GC_malloc
12403         
12404 2002-11-15  Dick Porter  <dick@ximian.com>
12405
12406         * threadpool.c: 
12407         * threads.c:
12408         * appdomain.c: Removed mono_runtime_init_with_attach(),
12409         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
12410         merging the extra parameter with the existing function.  Removed
12411         unneeded code in mono_thread_attach().
12412
12413 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
12414
12415         * image.c (mono_image_loaded_by_guid): a method to get loaded
12416         images by guid. 
12417         (load_metadata_ptrs): we store the guid as string.
12418
12419 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
12420
12421         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
12422
12423         * metadata.c (mono_guid_to_string): imported method form Zoltan
12424         Varga (slightly modified)
12425
12426         * assembly.c (mono_assembly_open): load precompiled code
12427
12428         * loader.h (MonoMethod): we store the method token for use in the
12429         aot compiler. 
12430
12431 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12432
12433         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
12434         the hook function called when an assembly is loaded.
12435         
12436         * domain.c: Modified file.
12437         (mono_domain_assembly_load): removed hash table insertion of assemblies.
12438
12439         Fixes bug #33196.
12440
12441 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
12442
12443         * reflection.c: Map PEFileKind to the value expected by the WinNT
12444         image loader. 
12445
12446 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12447
12448         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
12449         Read until the buffer is filled completely.
12450
12451 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12452
12453         * icall.c: implemented MonoType.InternalGetEvent ().
12454
12455 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12456
12457         * appdomain.c: implemented InitAppDomainSetup. Delayed
12458         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
12459         the entry_assembly.
12460
12461         * assembly.c: base_dir is now an absolute path ending with
12462         G_DIR_SEPARATOR.
12463
12464         * icall.c: modified get_location according to the above changes.
12465
12466         * object.c: init AppDomain.SetupInformation for the default domain after
12467         we have the entry assembly.
12468
12469         * domain.c: when unloading a domain, setup = NULL.
12470
12471 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
12472
12473         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
12474
12475 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
12476
12477         * object.h, object.c: introduced mono_object_get_virtual_method ()
12478         to lookup the method invoked on an object when a callvirt is done on
12479         a method.
12480         * icall.c: make MethodInfo::Invoke() always do a virtual call.
12481
12482 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12483
12484         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
12485         current domain when loaded an assembly and failed to load it.
12486
12487         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
12488
12489 2002-10-31  Dick Porter  <dick@ximian.com>
12490
12491         * icall.c: 
12492         * file-io.h: 
12493         * file-io.c: Return the error status in a parameter, as the
12494         GetLastError() value has long since been blown away if we try and
12495         look it up in a subsequent internal call invocation.  Delete the
12496         GetLastError() internal call, because it's useless.
12497
12498 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
12499
12500         * class.[ch]: added cast_class to fix bug 29517
12501
12502 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
12503
12504         * marshal.c: create valid IL code in the filter clause:
12505         the new JIT is less forgiving:-)
12506
12507 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12508
12509         * icall.c: removed get_property internal call.
12510
12511 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
12512
12513         * appdomain.h domain.c: Added an ID to appdomains.
12514         
12515         * threads.c threads.h icall.c: Implement icall
12516         Thread:GetDomainID(), and remove unused icall 
12517         CurrentThreadDomain_internal.
12518
12519 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12520
12521         * icall.c: Don't recurse through the base types in GetConstructor.
12522         Fixes bug #32063. 
12523
12524 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
12525
12526         * mempool.h, mempool.c: added mono_mempool_empty() and
12527         mono_mempool_stats().
12528
12529 2002-10-23  Dick Porter  <dick@ximian.com>
12530
12531         * file-io.c: 
12532         * file-io.h: 
12533         * icall.c: Added MonoIO.GetFileType internal call
12534
12535 2002-10-17  Dick Porter  <dick@ximian.com>
12536
12537         * appdomain.c (mono_runtime_cleanup): Don't signal the async
12538         delegate semaphore before waiting for all threads to finish,
12539         because new threads can also call async delegates.  Fixes bug
12540         32004.
12541
12542         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
12543         of 3 seconds, in case another async job is queued.  (This part is
12544         needed because the bug fix reintroduced the 3s exit lag.)  This
12545         makes the mono_runtime_shutdown flag superfluous.
12546
12547 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
12548
12549         * reflection.c: include ehader size in method section headers.
12550         Really check for suplicated modules entries.
12551
12552 2002-10-17  Martin Baulig  <martin@gnome.org>
12553
12554         * debug-mono-symfile.c: Added back support for locals.
12555
12556 2002-10-14  Martin Baulig  <martin@gnome.org>
12557
12558         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
12559         MONO_TYPE_VOID.
12560
12561 2002-10-14  Martin Baulig  <martin@gnome.org>
12562
12563         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
12564         mono_class_get() instead of looking in the class cache. 
12565
12566 2002-10-13  Martin Baulig  <martin@gnome.org>
12567
12568         * debug-mono-symfile.c: Set version number to 28, include the
12569         signature in method names.
12570
12571 2002-10-13  Martin Baulig  <martin@gnome.org>
12572
12573         * debug-mono-symfile.h: Set version number to 27.
12574
12575 2002-10-11  Martin Baulig  <martin@gnome.org>
12576
12577         * gc.c: Don't register/unregister NULL pointers as disappearing links.
12578
12579 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
12580
12581         * metadata.c, metadata.h: added helper function to allocate signatures.
12582
12583 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12584
12585         * icall.c: added internal call to get the location of machine.config.
12586
12587 2002-10-08  Martin Baulig  <martin@gnome.org>
12588
12589         * debug-mono-symfile.c: Ignore classes with a pending init for the
12590         moment.
12591
12592 2002-10-03  Dick Porter  <dick@ximian.com>
12593
12594         * threads.c: Freebsd pthread_t is a pointer
12595
12596 2002-10-03  Dick Porter  <dick@ximian.com>
12597
12598         * socket-io.c: Implemented GetHostName_internal
12599
12600 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12601
12602         * mono-config.c:
12603         (mono_config_parse_file): don't leak the text.
12604
12605 2002-10-02  Martin Baulig  <martin@gnome.org>
12606
12607         * debug-mono-symfile.c: Added support for methods.
12608
12609 2002-10-01  Martin Baulig  <martin@gnome.org>
12610
12611         * debug-mono-symfile.c: Don't emit methods and line numbers for
12612         the dynamic symbol file, just write the type table.  We can easily
12613         have an external helper program which creates a symbol file for an
12614         IL file.        
12615
12616 2002-10-01  Dick Porter  <dick@ximian.com>
12617
12618         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
12619         Only add the handle to the cleanup array when we're about to
12620         launch the thread.  Bug 31425 deadlocked when the test was run on
12621         mono under w32.
12622
12623 2002-10-01  Martin Baulig  <martin@gnome.org>
12624
12625         * debug-mono-symfile.c: Added support for properties.
12626
12627 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
12628
12629         * reflection.c: unaligned store fix from Mark Crichton
12630         <crichton@gimp.org>.
12631
12632 2002-09-27  Martin Baulig  <martin@gnome.org>
12633
12634         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
12635         New interncall.
12636
12637 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
12638
12639         * assembly.h, assembly.c: use a sane API to hook into the assembly
12640         loading process instead of a useless special-purpouse hack
12641         (ngen needs a hook, too, for example).
12642
12643 2002-09-27  Dick Porter  <dick@ximian.com>
12644
12645         * threads.c (mono_thread_init): Call GetCurrentProcess() so
12646         io-layer can set up some process handle info.  Not needed on w32,
12647         but doesn't hurt either.
12648
12649         * process.c: Pass the program name in the second parameter to
12650         CreateProcess, so the path is searched.  Include the working
12651         directory. Implemented process name, process enumeration, and some
12652         process detail internal calls.
12653         
12654         * icall.c: Added internal calls for process lookup, and some
12655         process details
12656
12657 2002-09-26  Martin Baulig  <martin@gnome.org>
12658
12659         * assembly.c (mono_install_open_assembly_hook): New global
12660         function to install a function to be invoked each time a new
12661         assembly is loaded.
12662         (mono_assembly_open): Run this callback function if set.
12663
12664         * debug-mono-symfile.c: Put back line numbers for the dynamic
12665         symbol file and also record the .il file as source file.  This
12666         allows us to install the temporary symbol file as `file.dbg' just
12667         like a compiler-generated one.
12668
12669 2002-09-26  Nick Zigarovich <nick@chemlab.org>
12670
12671         * Corrected typo in gc.c (BOHEM vs BOEHM).
12672
12673 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12674
12675         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
12676         GetProperties. Also avoid calling g_slist_length in GetProperties and
12677         GetMethods.
12678
12679 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
12680
12681         * reflection.c: avoid unaligned stores (bug spotted by
12682         Mark Crichton  <crichton@gimp.org>).
12683
12684 2002-09-25  Martin Baulig  <martin@gnome.org>
12685
12686         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
12687         instead of guint64 for addresses and added prologue/epilogue info.
12688
12689 2002-09-25  Martin Baulig  <martin@gnome.org>
12690
12691         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
12692         store line number info.  For the dynamic symbol file, we only need
12693         to provide the JIT generated dynamic line number info for the dynamic
12694         symbol file.
12695
12696 2002-09-25  Martin Baulig  <martin@gnome.org>
12697
12698         * debug-mono-symfile.h: Incremented version number.
12699
12700 2002-09-24  Martin Baulig  <martin@gnome.org>
12701
12702         * class.c (mono_debugger_class_init_func): New global function
12703         pointer variable.
12704         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
12705         call it.
12706
12707         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
12708         function.  This is called via the mono_debugger_class_init_func
12709         hook to add all types to the dynamic type table.
12710         (ves_icall_MonoDebugger_GetType): New interncall to get a class
12711         from its metadata token.
12712
12713         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
12714         New interncall for the debugger.
12715
12716 2002-09-24  Nick Drochak <ndrochak@gol.com>
12717
12718         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
12719         before using it in case it is null.
12720         
12721 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12722
12723         * metadata.c: allow custom modifiers in local var signatures
12724         (bug spotted by Zoltan Varga).
12725
12726 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
12727
12728         * class.c: deal with the <Module> class that may have a NULL vtable.
12729         Eliminate warnings.
12730
12731 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12732
12733         * image.c, image.h: more strong name helpers.
12734         * monosn.c: more work: convert pem keys to cryptoapi format.
12735
12736 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
12737
12738         * string-icalls.c: speedup IndexOf.
12739
12740 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12741
12742         * icall.c: updates from Zoltan.2.Varga@nokia.com.
12743
12744 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
12745
12746         * icall.c: cleanup: use mono_object_domain ().
12747
12748 2002-09-23  Martin Baulig  <martin@gnome.org>
12749
12750         * debug-mono-symfile.c: Improved type support.
12751
12752 2002-09-22  Martin Baulig  <martin@gnome.org>
12753
12754         * debug-mono-symfile.c: Added support for reference types and strings.
12755
12756 2002-09-22  Martin Baulig  <martin@gnome.org>
12757
12758         * debug-mono-symfile.c: Started to work on the type table.
12759
12760 2002-09-21  Martin Baulig  <martin@gnome.org>
12761
12762         * debug-mono-symfile.c: Largely reworked the symbol table format.
12763         The symbol table is now incrementally updated each time a new
12764         method is added.  We're now also using our own magic and version
12765         so that you don't need to recompile all your classes if the
12766         dynamic table changes.
12767         (mono_debug_update_mono_symbol_file): Removed.
12768         (mono_debug_symfile_add_method): New function to add a method.
12769
12770 2002-09-21  Martin Baulig  <martin@gnome.org>
12771
12772         * icall.c
12773         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
12774         New interncall.
12775
12776         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
12777         New interncall to get a method from its metadata token.
12778
12779 2002-09-21  Martin Baulig  <martin@gnome.org>
12780
12781         * debug-mono-symfile.c: Create type table.
12782
12783 2002-09-20  Martin Baulig  <martin@gnome.org>
12784
12785         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
12786
12787 2002-09-20  Martin Baulig  <martin@gnome.org>
12788
12789         * debug-mono-symfile.c: Provide information about params and locals.
12790
12791 2002-09-20  Martin Baulig  <martin@gnome.org>
12792
12793         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
12794         New interncall.
12795
12796         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
12797         interncall to get a method from its metadata token.
12798
12799 2002-09-20  Martin Baulig  <martin@gnome.org>
12800
12801         * debug-mono-symfile.c: Added a few checks for method->header
12802         being non-NULL.  This should never happen, but for the moment
12803         let's use a g_warning() rather than a g_assert().
12804
12805 2002-09-19  Mark Crichton  <crichton@gimp.org>
12806
12807         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
12808         even if support for it isn't present.  Added an #ifdef to fix this.
12809
12810         * socket-io.c: Added checks back for Solaris support.
12811
12812 2002-09-19  Martin Baulig  <martin@gnome.org>
12813
12814         * debug-mono-symfile.c (read_string, write_string): Reflect latest
12815         changes in the symbol file format.
12816
12817 2002-09-18  Martin Baulig  <martin@gnome.org>
12818
12819         * debug-mono-symfile.c: Set version number to 21.
12820
12821 2002-09-18  Dick Porter  <dick@ximian.com>
12822
12823         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
12824         on netbsd.  Fixes bug 30051.
12825
12826 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12827
12828         * reflection.c:
12829         (set_version_from_string): little fix.
12830
12831 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12832
12833         * monosn.c, Makefile.am: added strong name utility.
12834         * reflection.h, reflection.c: implemented delayed signing,
12835         locale, version and hash id assembly attributes.
12836
12837 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12838
12839         * loader.c, metadata.c: load param attributes in signatures.
12840
12841 2002-09-16  Martin Baulig  <martin@gnome.org>
12842
12843         * debug-mono-symfile.c: Added string table with all method names.
12844
12845 2002-09-14  Martin Baulig  <martin@gnome.org>
12846
12847         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
12848         fast method lookup.
12849
12850 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
12851
12852         * reflection.c: record the public key token of referenced assemblies.
12853
12854 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12855
12856         * image.c, image.h: added functions to get the strong name and the
12857         public key of an assembly.
12858         * pedump.c: use them.
12859
12860 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
12861
12862         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
12863
12864 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
12865
12866         * marshal.c (mono_marshal_get_managed_wrapper): Added
12867         MONO_TYPE_BOOLEAN 
12868
12869 2002-09-11  Martin Baulig  <martin@gnome.org>
12870
12871         * gc.c: Call GC_unregister_disappearing_link() on all links when
12872         finalizing them, this is necessary to aviod a crash in boehm's
12873         finalize handler.
12874
12875 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12876
12877         * gc.c: handle GetTarget for finalized objects spotted and fixed by
12878         nick@chemlab.org.
12879
12880 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
12881
12882         * icall.c: implemented MonoType::Module.
12883         * reflection.c, reflection.h: mono_module_get_object () from
12884         Tomi Pakarinen <tomi.pakarinen@welho.com>.
12885
12886 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
12887
12888         * icall.c: ignore overridden methods in GetMethods ().
12889         Fix for FieldInfo::SetValue().
12890         * object.c: handle float/double in runtime invoke.
12891
12892 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
12893
12894         * object.c: allow a constructor to be called again on an object.
12895
12896 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12897
12898         * class.h, class.c: move field layout code to it's own function and
12899         export it. Get an interface id earlier. Move fields in MonoClass
12900         so they are more cache friendly and align the bitfields.
12901         * loader.c: temporary handle get_param_names() for a runtime method.
12902         * reflection.c, reflection.h: more code to handle runtime creation of
12903         types.
12904
12905 2002-09-09  Martin Baulig  <martin@gnome.org>
12906
12907         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
12908         signature with the pinvoke field being set for the actual call.
12909
12910 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12911
12912         * icall.c: removed some unused icalls. Start of map of glib charsets
12913         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
12914
12915 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
12916
12917         * debug-helpers.c: break infinite loop (found and fixed by
12918         Holger Arnold <harnold@gmx.de>).
12919
12920 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
12921
12922         * icall.c: target may be null in create_delegate.
12923
12924 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12925
12926         * marshal.c: handle a boolean return type.
12927
12928 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12929
12930         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
12931
12932 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
12933
12934         * gc.c: fix weakreferences.
12935
12936 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
12937
12938         * icall.c: added icall to get default codepage.
12939
12940 2002-09-03  Dick Porter  <dick@ximian.com>
12941
12942         * threads.h: 
12943         * threads.c: Use MonoThread instead of MonoObject where
12944         apropriate.
12945
12946         Store running thread objects in a hash table, so that we have all
12947         the info to hand when waiting for them to finish
12948         (means we don't need OpenThread() any more, so mingw builds should
12949         be fully functional again.)
12950
12951         * verify.c:
12952         * object.h: Added thread ID to MonoThread
12953
12954 2002-09-03  Martin Baulig  <martin@gnome.org>
12955
12956         * icall.c (System.Reflection.Assembly::get_location): New interncall.
12957
12958 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12959
12960         * icall.c: fixed leak in get_temp_path. Thanks lupus.
12961
12962 2002-09-03  Martin Baulig  <martin@gnome.org>
12963
12964         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
12965         argument to store the end address of the disassembled instruction.
12966
12967         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
12968         here from debug-symfile.h.
12969         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
12970         JIT into this struct.
12971         (MonoSymbolFile): Added `char *image_file' field.
12972         (MonoDebugGetMethodFunc): Removed.
12973         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
12974         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
12975         (mono_debug_find_method): New method.
12976
12977         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
12978         create a full symbol file.
12979         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
12980         and static symbol files.
12981         (mono_debug_find_method): The symbol file keeps an internal method hash,
12982         call this to get a MonoDebugMethodInfo from a MonoMethod.
12983
12984         * debug-symfile.[ch]: Removed.
12985
12986 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
12987
12988         * image.c (do_mono_image_open): Remove linker version check.
12989
12990 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
12991
12992         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
12993         wrappers for instance methods.
12994         
12995 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12996
12997         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
12998
12999 2002-08-28  Dick Porter  <dick@ximian.com>
13000
13001         * Makefile.am: Export HOST_CC for w32 builds
13002
13003 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
13004
13005         * file-io.c process.c: MonoString are null terminated, no
13006         need for mono_string_to_utf16() anymore.
13007
13008 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13009
13010         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
13011
13012 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
13013
13014         * icall.c, reflection.h: speedup System.MonoType.
13015
13016 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
13017
13018         * reflection.c: allow null as the value of a string argument in
13019         custom attributes constructors.
13020
13021 2002-08-27  Martin Baulig  <martin@gnome.org>
13022
13023         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
13024         `trampoline_address' field.
13025
13026 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
13027
13028         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
13029         check (fixes bug #29486) 
13030
13031 2002-08-27  Martin Baulig  <martin@gnome.org>
13032
13033         * debug-mono-symfile.c: Changed the file format in a way that allows us
13034         open it read-only and to use a specially malloced area for all the
13035         dynamic data.  We can now also generate a symbol file on-the-fly if we're
13036         debugging IL code and there is no MCS generated symbol file for it.
13037
13038 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
13039
13040         * object.c: added a define for a good string and array
13041         creation speedup (not enabled by default because we need to deal with
13042         the synch stuff).
13043
13044 2002-08-26  Martin Baulig  <martin@gnome.org>
13045
13046         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
13047         function to create a dynamic symbol file.  This is used by the
13048         debugger to create a symbol file for IL code on-the-fly.
13049
13050 2002-08-26  Martin Baulig  <martin@gnome.org>
13051
13052         * loader.c (mono_lookup_pinvoke_call): Include the error message
13053         from g_module_error() in the error message.
13054
13055 2002-08-24  Martin Baulig  <martin@gnome.org>
13056
13057         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
13058         function to update the symbol file.  The symbol file is mmap()ed
13059         writable, but private.  This allows us to install the symbol file
13060         together with the assembly.
13061
13062 2002-08-24  Martin Baulig  <martin@gnome.org>
13063
13064         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
13065         but they can read the new symbol file format which mcs is now creating.
13066
13067         * debug-symfile.c (mono_debug_find_source_location): Moved to
13068         debug-mono-symfile.c; this is now operating on the new symbol file.
13069
13070 2002-08-23  Martin Baulig  <martin@gnome.org>
13071
13072         * debug-helpers.c (mono_method_desc_from_method): New function to get
13073         a MonoMethodDesc from a MonoMethod.
13074
13075 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
13076
13077         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
13078         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
13079
13080 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
13081
13082         * string-icalls.[ch]: make helper methods static.
13083
13084 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13085
13086         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
13087         types to it and to SetValueInternal.
13088
13089         * object.c: Moved handle_enum label to its proper place. This was the
13090         f... bug! ;-)
13091
13092         This time i compiled mcs and gtk-sharp and they both work.
13093
13094 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13095
13096         * icall.c: reverted partially my previous patch until 
13097         object.c:set_value handles enums correcly.
13098
13099 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13100
13101         * icall.c:
13102         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
13103         (ves_icall_System_Environment_get_MachineName): removed warning when
13104         compiling under cygwin.
13105
13106 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13107
13108         * object.c: fixed field_get_value() for reference types.
13109
13110 2002-08-22  Dick Porter  <dick@ximian.com>
13111
13112         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
13113         Don't free a buffer while it's still needed.  Patch from Jonathan
13114         Liger <Jonathan.liger@wanadoo.fr>
13115
13116 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
13117
13118         * icall.c (ves_icall_System_Environment_get_Platform): Add new
13119         internal call.
13120
13121 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
13122
13123         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
13124         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
13125
13126         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
13127         we call unmanaged code which throws exceptions.
13128
13129 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
13130
13131         * appdomain.h: added per-domain entry_assembly.
13132         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
13133         arguments.
13134         * icall.c: Assembly::GetEntryAssembly icall.
13135         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
13136         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
13137
13138 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
13139
13140         * appdomain.h, gc.c: added mono_domain_finalize ().
13141
13142 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13143
13144         * object.c:
13145         (mono_print_unhandled_exception): changed g_warning by g_printerr
13146         because g_log has a 1024 characters limit (yeah, i got a big stack
13147         trace). Don't print exception name, that should be in ToString 
13148         returned string.
13149
13150 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13151
13152         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
13153         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
13154
13155 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13156
13157         * object.c:
13158         (mono_print_unhandled_exception): after previous commit, i realized
13159         that MS calls ToString on the exception. I changed this function to
13160         do that. This way we get stack_trace for free.
13161
13162 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13163
13164         * object.c:
13165         (mono_print_unhandled_exception): invoke Message property instead of
13166         getting 'message' field from Exception. Don't allocate memory for
13167         'trace' and 'message' if not needed.
13168
13169 2002-08-18  Dick Porter  <dick@ximian.com>
13170
13171         * unicode.c: Fix asserts to match Encoder.cs checks
13172
13173 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13174
13175         * marshal.c: fix unaligned store issue and a few wrong
13176         opcode argument types.
13177
13178 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13179
13180         * icall.c: added GetUninitializedObjectInternal internal call.
13181
13182 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
13183
13184         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
13185         to the right domain.
13186
13187 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
13188
13189         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
13190
13191         * class.c (class_compute_field_layout): set blittable to false for Strings
13192
13193         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
13194
13195 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13196
13197         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
13198         first chunk of code to create types at runtime. Code to
13199         handle ReflectedType/DeclaringType. Make reflection handles
13200         domain specific.
13201
13202 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
13203
13204         * class.c: set correct name in arrays.
13205
13206 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
13207
13208         * appdomain.c (mono_domain_transfer_object): make it work with
13209         valuetypes. bug fixes.
13210
13211 2002-08-12  Dick Porter  <dick@ximian.com>
13212
13213         * object.h: Rename some parameters to avoid c++ keywords (Patch
13214         from Joseph Wenninger <kde@jowenn.at>)
13215
13216 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
13217
13218         * icall.c: added icall to implement Assembly.GetFile*.
13219
13220 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
13221
13222         * reflection.h, reflection.c: code to embed managed resources.
13223
13224 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
13225
13226         * class.c: move all the type size stuff into
13227         class_compute_field_layout().
13228
13229 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
13230
13231         * class.c: ensure enums have always the correct instance size.
13232         * unicode.c: remove wrong assert.
13233
13234 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
13235
13236         * assembly.c: fix mem corruption issue.
13237         * image.h, image.c: added mono_image_get_resource () to access
13238         managed resources.
13239         * icall.c: implemented Assembly.EntryPoint property and some
13240         Managed Resources related internalcalls.
13241
13242
13243 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
13244
13245         * image.c, image.h: impemented mono_image_get_entry_point ().
13246         * appdomain.c: use mono_image_get_entry_point.
13247
13248 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
13249
13250         * reflection.c: support the object type argument when loading
13251         custom attributes.
13252
13253 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
13254
13255         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
13256         String as return type.
13257
13258 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
13259
13260         * reflection.c: fix encoding of named args for custom attrs to match
13261         the ms implementation. Read them back when instantiating custom
13262         attributes.
13263
13264 2002-08-02  Radek Doulik  <rodo@ximian.com>
13265
13266         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
13267         by Dietmar as quick fix
13268         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
13269         16 as stack size, used on more places as quick fix before Dietmar
13270         will fix it properly
13271
13272 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
13273
13274         * object.h, object.c: added accessors for fields and properties.
13275
13276 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
13277
13278         * class.c, class.h: made mono_class_get_field_from_name ()
13279         loop on parent types.
13280         Added mono_class_get_property_from_name ().
13281
13282 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13283
13284         * class.c, class.h: move the code to setup the type vtable in its own
13285         function so that it can be reused also for types created at runtime.
13286         Eliminate the "class" identifier from the header file.
13287         * reflection.c: setup the vtable for enums so that we can create
13288         objects for use in SetConstant ().
13289
13290 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
13291
13292         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
13293         instead of the delegate itself as this pointer (bug #28383)
13294
13295 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
13296
13297         * marshal.c (mono_marshal_get_managed_wrapper): added return type
13298         conversions.
13299
13300 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13301
13302         * loader.c: don't set the pinvoke bit on icalls.
13303
13304 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
13305
13306         * debug-helpers.c (mono_method_full_name): only print a number to
13307         indicate wrapper type (so that the output is more readable in traces).
13308
13309 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
13310
13311         * class.c (mono_class_init): include method override patch from Paolo
13312
13313 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
13314
13315         * icall.c: fixed GetTypeCode().
13316
13317 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
13318
13319         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
13320         use real delegate invoke function to make it work with multicast
13321         delegates (fix bug# 28291).
13322
13323 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13324
13325         * object.c: load constant strings.
13326
13327 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13328
13329         * reflection.c: no magic numbers.
13330         * tabledefs.h: security action enum.
13331
13332 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13333
13334         * assembly.c: fix possible memory corruption.
13335
13336 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
13337
13338         * reflection.h, reflection.c: added support for linking resources.
13339         * verify.c: check we have an updated corlib.
13340
13341 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
13342
13343         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
13344         string arrays.
13345         (mono_marshal_string_array): null terminate unmanaged string arrays.
13346         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
13347
13348 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13349
13350         * icall.c: Type.GetType () can now return also types from the
13351         calling assembly.
13352
13353 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
13354
13355         * loader.h, loader.c: stack walking support.
13356         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
13357         GetCallingAssembly.
13358
13359 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
13360
13361         * marshal.c: added optimisations for blittable types 
13362
13363         * class.c (mono_array_class_get): do not set blittable attribute on arrays
13364         (mono_class_setup_mono_type): set blittable attribute for single
13365         and double.
13366
13367         * marshal.c (mono_string_utf8_to_builder): impl.
13368         (mono_string_builder_to_utf8): impl.
13369         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
13370
13371 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
13372
13373         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
13374         (mono_marshal_get_managed_wrapper): impl. byref types
13375
13376 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13377
13378         * icall.c:
13379         (search_method): don't display debug message. 
13380
13381 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
13382
13383         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
13384
13385 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
13386
13387         * appdomain.c: set the missing filename when throwing exception.
13388
13389 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
13390
13391         * metadata.c (mono_type_size): code cleanup
13392         (mono_type_stack_size): removed some test code
13393
13394 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
13395
13396         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
13397         mono_get_exception_file_not_found now.
13398
13399         * exception.c (mono_exception_from_name_two_strings): New version
13400         that will call a constructor with two string arguments. 
13401         (mono_get_exception_file_not_found): New helper routine, used to
13402         report file-not-found errors.
13403
13404 2002-07-20  Dick Porter  <dick@ximian.com>
13405
13406         * process.h:
13407         * process.c: Pass file handles to CreateProcess
13408         
13409         * icall.c:
13410         * file-io.h:
13411         * file-io.c: Implemented CreatePipe
13412
13413 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
13414
13415         * metadata.c (mono_get_param_info): set alignment for value types
13416
13417 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13418
13419         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
13420         Constify mono_domain_assembly_open().
13421         * loader.c: handle null namespace in icalls.
13422
13423 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
13424
13425         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
13426         (emit_str_to_ptr_conv): marshal object as structs
13427
13428         * metadata.c (mono_type_to_unmanaged): marshal object as structs
13429
13430         * marshal.c (mono_marshal_get_runtime_invoke): support value types
13431
13432 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
13433
13434         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
13435         (mono_marshal_get_native_wrapper): we an now return value types
13436
13437 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13438
13439         * verify.c: more checks implemented.
13440
13441 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
13442
13443         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
13444         (fix bug #27695)
13445         (mono_marshal_get_native_wrapper): allow byref arguments
13446         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
13447         impl. PtrToStringXXX methods
13448         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
13449         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
13450         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
13451         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
13452         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
13453
13454 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13455
13456         * reflection.c: fix buglet in parsing an assembly name.
13457
13458 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
13459
13460         * marshal.c (emit_ptr_to_str_conv): first impl.
13461
13462 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
13463
13464         * object.c, class.h: cache the vtable in the class as suggested by
13465         vargaz@freemail.hu (Zoltan Varga).
13466
13467 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13468
13469         * class.h, loader.c: added mono_field_from_token().
13470         * verify.c: first cut of type checking code.
13471
13472 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
13473
13474         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
13475
13476 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
13477
13478         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
13479         (fix bug #27782)
13480         (mono_marshal_get_remoting_invoke): impl.
13481         (mono_delegate_begin_invoke): impl.
13482         (mono_mb_emit_save_args): impl.
13483         (mono_delegate_end_invoke): impl.
13484         (mono_marshal_get_delegate_begin_invoke):
13485         (mono_marshal_get_delegate_end_invoke):
13486         (mono_marshal_get_delegate_invoke): generate a special name for
13487         those methods (including the signature) and associate them whith
13488         the delegate class. 
13489
13490 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
13491
13492         * reflection.[ch]: 
13493         (mono_reflection_type_from_name): now it has a MonoImage parameter
13494         which is used as the default image to search the type in. If the image
13495         is NULL or getting the type from it fails, it defaults to corlib.
13496
13497         * icall.c: changed 1 call to mono_reflection_type_from_name to match
13498         new parameter.
13499
13500 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
13501
13502         * reflection.c: update the parameter table index.
13503
13504 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
13505
13506         * domain.c: don't include the mark byte in the string hash.
13507
13508 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
13509
13510         * icall.cs: icall for Type.GetTypeCode ().
13511         * verify: a couple of fixes and disabled local initialization checks.
13512
13513 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
13514
13515         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
13516
13517         * debug-helpers.c (mono_method_full_name): print the type of the
13518         runtime wrapper
13519
13520         * metadata.c (mono_signature_hash): a hash function for signatures
13521         (mono_signature_hash): better hash algorithm
13522
13523         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
13524
13525         * debug-helpers.c (mono_method_full_name): this can now generate
13526         method names with signatures
13527
13528         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
13529         method dont have this pointers.
13530
13531 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
13532
13533         * reflection.c: fixup typebuilder tokens.
13534         * image.c: fix buglet.
13535         * marshal.h: remove whitespace.
13536         * metadata.h, metadata.c: reinstate code that was removed.
13537         * verify.c: handle catch directives and fix another couple of bugs.
13538
13539 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
13540
13541         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
13542         (mono_marshal_get_native_wrapper): make it comp. with the old code
13543         (mono_marshal_get_native_wrapper): support boolean
13544         (mono_marshal_get_managed_wrapper): support more types
13545
13546 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
13547
13548         * class.c (class_compute_field_layout): compute class->blittable attribute.
13549
13550 2002-07-09  Dick Porter  <dick@ximian.com>
13551
13552         * threads.c: Make the thread cleaning up cope with threads that
13553         call ExitThread()
13554
13555 2002-07-08  Radek Doulik  <rodo@ximian.com>
13556
13557         * reflection.c (method_encode_code): use non-translated values to
13558         compute finally_start, this fixes exception handling on ppc, yay!
13559
13560         * decimal.h (struct signscale): fix endianess
13561
13562 2002-07-07  Radek Doulik  <rodo@ximian.com>
13563
13564         * reflection.c: swap box_val and not val
13565
13566 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
13567
13568         * reflection.c, reflection.h: handle full assembly info in type name.
13569         Handle Type arguments when loading custom attributes.
13570         * icall.c: updated to use new mono_reflection_type_from_name () method.
13571
13572 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13573
13574         * loader.c:
13575         (method_from_memberref): also print assembly name when method not found.
13576
13577 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13578
13579         * icall.c:
13580         (ves_icall_TypeGetProperties): fixed bug #27473. 
13581
13582 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13583
13584         * reflection.c: display image name and token when cannot find the
13585         .ctor for an attribute.
13586
13587 2002-07-05  Martin Baulig  <martin@gnome.org>
13588
13589         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
13590
13591 2002-07-04  Dick Porter  <dick@ximian.com>
13592
13593         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
13594         compile on mingw.  This will cause mingw builds to not wait for
13595         subthreads to terminate after the main thread does.  I've lodged a
13596         bug with the mingw developers for them to wrap OpenThread().
13597
13598 2002-07-03  Dick Porter  <dick@ximian.com>
13599
13600         * threads.c: Store thread IDs instead of handles, because
13601         GetCurrentThread() returns a pseudohandle and therefore stores
13602         useless values.  mono_thread_cleanup() continues checking the
13603         array of threads until it is empty, to cope with subthreads
13604         spawning new threads after the main thread has finished.
13605
13606         * profiler.h:
13607         * profiler.c:
13608         * profiler-private.h: Pass the thread ID to thread profiler
13609         functions, instead of a handle
13610
13611 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13612
13613         * verify.c: fixes to make it more usable.
13614         * pedump.c: added --verify code to verify IL code in an assembly.
13615
13616 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13617
13618         * reflection.c: turn errors into warnings to allow compiling corlib.
13619
13620 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
13621
13622         * reflection.c: add special cases to compile corlib.
13623
13624 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
13625
13626         * reflection.c: handle properties with only a set method.
13627
13628 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13629
13630         * opcodes.h: add enum with opcodes in opval order.
13631
13632 2002-07-01  Dick Porter  <dick@ximian.com>
13633         
13634         * object.h:
13635         * object.c (mono_runtime_run_main): Removed unneeded argument
13636
13637 2002-06-28  Martin Baulig  <martin@gnome.org>
13638
13639         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
13640
13641 2002-06-27  Dick Porter  <dick@ximian.com>
13642
13643         * threads.c: Store the handle in both the parent thread and in the
13644         subthread, to minimise the time between starting a new thread and
13645         storing its ID.
13646
13647 2002-06-26  Dick Porter  <dick@ximian.com>
13648
13649         * appdomain.c (mono_runtime_cleanup): Close the socket library
13650         after all the threads have finished, not before
13651
13652 2002-06-26  Martin Baulig  <martin@gnome.org>
13653
13654         * debug-symfile.c (mono_debug_find_source_location): Added
13655         `guint32 *line_number' argument.  If it's not NULL, store the line number
13656         there and return the file name without the line number.
13657
13658 2002-06-25  Dick Porter  <dick@ximian.com>
13659
13660         * icall.c:
13661         * process.h:
13662         * process.c: Process forking and other support functions
13663
13664 2002-06-25  Dick Porter  <dick@ximian.com>
13665
13666         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
13667         things dont happen when the image is closed.
13668         (mono_image_lookup_resource): Walk the resource section looking
13669         for a particular entry
13670
13671         * cil-coff.h: PE resource section decoding
13672
13673 2002-06-25  Dick Porter  <dick@ximian.com>
13674         
13675         * assembly.h:
13676         * assembly.c: 
13677         (mono_assembly_foreach): Accessor functions to walk the list of
13678         loaded assemblies
13679         (mono_assembly_set_main):
13680         (mono_assembly_get_main): Process methods need to know which
13681         assembly is the "main" one
13682
13683         * object.c (mono_runtime_run_main): Record the main assembly
13684
13685         * debug-helpers.c: Fix typo
13686
13687 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
13688
13689         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
13690         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
13691
13692 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
13693
13694         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
13695
13696 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
13697
13698         * image.c (do_mono_image_open): Initialize reference count,
13699         otherwise we leak the MonoImage.
13700
13701 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
13702
13703         * reflection.c: small tweak to handle self-hosting.
13704
13705 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
13706
13707         * reflection.c: fix type name parse code.
13708
13709 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13710
13711         * reflection.c: break out of the loop.
13712         * image.c: special case corlib.
13713
13714 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13715
13716         * reflection.c: add all the custom attrs at the end to ensure the
13717         ctors have been properly initialized when the attributes are defined
13718         in the current assembly.
13719
13720 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
13721
13722         * reflection.c: handle correctly multiple-nested types.
13723
13724 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
13725
13726         * row-indexes.h: fix typos.
13727         * reflection.c: adjust for typos and fix method_def_or_ref
13728         encoding in MethodImpl table.
13729
13730 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13731
13732         * reflection.c: fix entry point patching (thanks Serge!).
13733
13734 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
13735
13736         * verify.c: add check for System.Exception
13737
13738 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
13739
13740         * image.c, class.c: minifix for code just c&p'ed.
13741         * reflection.c: warning fix.
13742         * object.h, loader.h, domain.c: load also StringBuilder.
13743
13744 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
13745
13746         * marshal.h, marshal.c: some support code to handle complex marshaling.
13747
13748 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13749
13750         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
13751         Better signatures with vtable error dump.
13752
13753 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
13754
13755         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
13756
13757 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
13758
13759         * icall.c (ves_icall_Type_GetField): impl.
13760
13761 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13762
13763         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
13764         to retrieve a marshal description blob for a field or param.
13765
13766 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
13767
13768         * reflection.h, reflection.c: change order of nested type emission
13769         to avoid table corruption. The NestedTypes table is sorted.
13770         * icall.c: change order of GetConstructor results to workaround mcs bug.
13771
13772 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13773
13774         * reflection.h, reflection.c: handle field and param marshal
13775         information.
13776
13777 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13778
13779         * icall.c, marshal.c marshal.h: more Marshal class implementation.
13780
13781 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
13782
13783         * reflection.c: fix call convention.
13784
13785 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
13786
13787         * reflection.h, reflection.c: mono_image_get_memberref_token()
13788         takes a type instead of a class, now. Added
13789         mono_image_get_array_token() to create tokens for the special
13790         multi-dim array methods.
13791
13792 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
13793
13794         * assembly.c: handle modules (no assembly table). Split
13795         loading references in its own function.
13796         * class.c: handle moduleref resolution scope.
13797         * image.c, image.h: cache module name in image.
13798
13799 2002-06-07  Martin Baulig  <martin@gnome.org>
13800
13801         * reflection.c (mono_image_get_type_info): Only add a class layout entry
13802         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
13803
13804 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
13805
13806         * icall.c: more signature fixes that used uint instead of int.
13807
13808 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13809
13810         * reflection.c: fixed signature of field refs.
13811
13812 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13813
13814         * class.c, reflection.c: handle typerefs of nested types
13815         (both on read and when writing files).
13816
13817 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
13818
13819         * icall.c: fix method signatures that tried to workaround the previous
13820         typo, d'oh!
13821
13822 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
13823
13824         * debug-helpers.c: fix typo.
13825
13826 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
13827
13828         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
13829         rewrote the PE/COFF writing code (our programs are understood by the
13830         ms runtime, now).
13831
13832 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
13833
13834         * gc.c, gc.h, icall.c: weakreference support.
13835
13836 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
13837
13838         * Makefile.am, mono-config.c: use $(sysconfdir).
13839
13840 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13841
13842         * icall.c: changed default precision of Double.ToString() to 15.
13843         Fixed memory leak. Unified with Single.ToString.
13844
13845 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
13846
13847         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
13848
13849 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
13850
13851         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
13852         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
13853         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
13854         and myself.
13855
13856 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13857
13858         * debug-symfile.c, sysmath.c: yet more compilation fixes.
13859
13860 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13861
13862         * reflection.c, socket-io.c: more compilation fixes.
13863
13864 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13865
13866         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
13867         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
13868         unicode.c: warning and compiler compatibility fixes.
13869
13870 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13871
13872         * class.h, metadata.c: fixed warnings/compilation errors.
13873
13874 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
13875
13876         * Makefile.am, mono-config.c, mono-config.h: configuration file
13877         support routines.
13878         * loader.c, loader.h: make Dll mapping configurable at runtime in the
13879         config file. Export methods to insert and lookup mappings.
13880
13881 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
13882
13883         * reflection.c: handle types and boxed objects in custom attr
13884         constructors.
13885
13886 2002-05-30  Martin Baulig  <martin@gnome.org>
13887
13888         * debug-symfile.c
13889         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
13890
13891 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
13892
13893         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
13894         to lookup the implmap row for a P/Invoke method.
13895         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
13896         P/Invoke method from the runtime on an as needed basis.
13897
13898 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
13899
13900         * metadata.c (mono_metadata_parse_signature): impl.
13901
13902 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13903
13904         * class.c: handle .pack directive.
13905
13906 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
13907
13908         * object.c: initialize static fields with RVA data.
13909
13910 2002-05-25  Martin Baulig  <martin@gnome.org>
13911
13912         * debug-symfile.c
13913         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
13914
13915 2002-05-24  Martin Baulig  <martin@gnome.org>
13916
13917         * debug-symfile.c
13918         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
13919         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
13920         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
13921
13922 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
13923
13924         * object.c: special case string ctros in invoke.
13925         * gc.c: silly whitespace changes.
13926
13927 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
13928
13929         * threadpool.[ch]: impl. a threadpool that can
13930         be used by mint and mono.
13931
13932 2002-05-22  Martin Baulig  <martin@gnome.org>
13933
13934         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
13935         The first argument is now a `MonoReflectionModuleBuilder *', the return
13936         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
13937         `methods' field to get the method builder.  The `token' argument is the
13938         unfixed token.
13939
13940         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
13941         invalid characters instead of g_assert_not_reached()ing.  This seems
13942         to be the behaviour of mscorlib.
13943
13944 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
13945
13946         * object.c (mono_runtime_invoke_array): applied patch from Rachel
13947         Hestilow to fix bug #25104
13948
13949 2002-05-21  Martin Baulig  <martin@gnome.org>
13950
13951         * debug-symfile.c (mono_debug_find_source_location): New function.
13952         Looks up an IL offset in the line number table and returns the source
13953         location as a string.
13954
13955 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13956
13957         * icall.c:
13958         (mono_double_ToStringImpl): changed %f by %g until we have something
13959         better.
13960
13961 2002-05-21  Nick Drochak  <ndrochak@gol.com>
13962
13963         * icall.c : Use different name for Math.Pow's icall.  Needed to check
13964         parameters first in C#.
13965
13966 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13967
13968         * icall.c, reflection.h: added icall to get info about an event.
13969
13970 2002-05-20  Radek Doulik  <rodo@ximian.com>
13971
13972         * object.c (mono_value_box): don't use memcpy for boxing on BIG
13973         endian
13974         (mono_value_box): don't use memcpy for small sizes on
13975         architectures with unaligned access
13976
13977 2002-05-20  Martin Baulig  <martin@gnome.org>
13978
13979         * reflection.c (mono_reflection_setup_internal_class): Don't crash
13980         if `tb->parent == NULL'.
13981         (mono_reflection_create_internal_class): New function.  This is
13982         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
13983         for enum types.
13984
13985         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
13986         New interncall.
13987
13988 2002-05-19  Martin Baulig  <martin@gnome.org>
13989
13990         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
13991         argument to get the length, don't default to the array length.
13992
13993 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
13994
13995         * assembly.c (mono_assembly_setrootdir): New function used to
13996         override the MONO_ASSEMBLIES directory.
13997
13998 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13999
14000         * icall.c: ValueType_GetHashCode() initialize local var.
14001
14002 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
14003
14004         * reflection.c: sort custom attributes table.
14005
14006 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
14007
14008         * reflection.c: support named args in custom attributes (write support).
14009
14010 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
14011
14012         * reflection.c: fix finally position calculation.
14013
14014 2002-05-15  Radek Doulik  <rodo@ximian.com>
14015
14016         * reflection.c: fixed endianess at many places
14017
14018         * icall.c (ves_icall_InitializeArray): comment out debug msg
14019
14020 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
14021
14022         * object.c (mono_unhandled_exception): new function to handle
14023         unhandled exceptions.
14024         (mono_unhandled_exception): call the UnhandledException event.
14025         (mono_runtime_delegate_invoke): impl.
14026
14027 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
14028
14029         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
14030         returns the RVA, not the direct pointer to the data. Handle the case
14031         when the class size is fixed.
14032
14033 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
14034
14035         * reflection.c: fix some endianess issues.
14036
14037 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
14038
14039         * object.c (mono_runtime_invoke): is now able to catch exceptions.
14040
14041         * threads.c (mono_thread_init): added a callback which is invoked
14042         at thread start.
14043
14044 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
14045         
14046         * icall.c: make GetHashCode return non-negative values.
14047
14048 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
14049
14050         * object.c, icall.c, gc.c: revert to address-based hashcode.
14051
14052 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
14053
14054         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
14055
14056 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
14057
14058         * icall.c, class.c: special case <Module>.
14059
14060 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
14061
14062         * icall.c: fix bug in GetNow().
14063
14064 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
14065
14066         * object.c (mono_runtime_class_init): make sure that we call all
14067         static class constructors.
14068
14069 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
14070
14071         * reflection.c: sort methodsemantics table.
14072
14073 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
14074
14075         * reflection.h, reflection.c: honour init locals setting.
14076
14077 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
14078
14079         * icall.c: copied Double ToStringImpl for Single ToStringImpl
14080
14081 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
14082
14083         * reflection.c: support ContructorBuilders in attribute blob creation.
14084
14085 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
14086
14087         * reflection.c: some changes to build a binary that can be run
14088         directly in windows.
14089
14090 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
14091
14092         * loader.c: print a big message when an icall can't be found.
14093
14094 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14095
14096         * string-icalls.c: fix bug 24248.
14097
14098 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
14099
14100         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
14101         icall.c, reflection.h: separate assembly loading by pathname and by
14102         assembly name. Use the MONO_PATH env var to search for assemblies.
14103
14104 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
14105
14106         * assembly.c, image.h: add some support for assemblies
14107         with multiple modules.
14108         * class.c, class.h: export mono_class_from_typeref().
14109         * loader.c: remove duplicated code and use mono_class_from_typeref(),
14110         instead.
14111
14112 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
14113
14114         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
14115         documentation says (the ECMA one is correct).
14116
14117 2002-05-02  Dick Porter  <dick@ximian.com>
14118
14119         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
14120         Don't name the synchronisation mutex.
14121
14122 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
14123
14124         * rand.c
14125         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
14126         Make the prototypes match.
14127         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
14128         Same.
14129
14130         * icall.c
14131         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
14132         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
14133         all systems have tm.tm_zone, so use strftime() with %Z to print
14134         the timezone abreviation into a temp string.
14135
14136         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
14137         rather than mono_array_addr() on a MonoString on Big Endian
14138         machines.
14139
14140 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
14141
14142         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
14143         fix bug 24041
14144
14145 2002-04-30  Dick Porter  <dick@ximian.com>
14146
14147         * socket-io.c: Cope with SOCKET being an integer rather than a
14148         pointer now.
14149
14150         * threads.c: Added Thread_free_internal, to deal with thread
14151         handle cleanup.  Moved calls to handle_store() and handle_remove()
14152         to start_wrapper(), so each can only be called once.  Allocate
14153         synchronisation blocks with GC_malloc(), and use GC finalisation
14154         to close the handles.
14155
14156         * icall.c: added System.Threading.Thread::Thread_free_internal
14157
14158 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
14159
14160         * icall.c: support Environment.Exit, CommandLineArgs().
14161
14162 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
14163
14164         * object.c, object.h: added mono_runtime_run_main () and
14165         mono_runtime_get_main_args () for use in System.Environment.
14166
14167 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
14168
14169         * gc.c: fix thinko, enable actual finalization since the jit is now
14170         fixed.
14171
14172 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
14173
14174         * gc.c, object.c: take into account that an object may be offset wrt the address
14175         returned by GC_malloc().
14176
14177 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
14178
14179         * image.c: handle files without entries in the assembly table (modules).
14180
14181 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
14182
14183         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
14184         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
14185         allowed to be null when it's System.Object class setup.
14186
14187 2002-04-27  Martin Baulig  <martin@gnome.org>
14188
14189         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
14190         if `tb->parent == NULL' rather than crashing.
14191
14192 2002-04-28  Nick Drochak  <ndrochak@gol.com>
14193
14194         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
14195         calling acos() where asin() should have been called.
14196
14197 2002-04-26  Martin Baulig  <martin@gnome.org>
14198
14199         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
14200         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
14201         there's a subdirectory called `System', but we don't want to read that
14202         subdirectory as an assembly.
14203
14204 2002-04-25  Martin Baulig  <martin@gnome.org>
14205
14206         * debug-symfile.c: Reflect latest MonoString changes.
14207
14208 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
14209
14210         * rand.c, rand.h: instance method icalls need to have an explicit
14211         this pointer as first argument in the C implementation.
14212
14213 2002-04-25  Nick Drochak <ndrochak@gol.com>
14214
14215         * icall.c: Fix typo in map for GetNonZeroBytes
14216
14217 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
14218
14219         * string-icalls.c : String does now passes unit tests without any 
14220         errors, the following changes has been made:
14221         
14222         Implemented replace methods.
14223         Renaming of methods to (try) follow the standard.
14224         Fixed compare ordinal
14225         Made all memory allocated directly to function instead of via icall function.
14226         Small performance fix in is_in_array function
14227                         
14228  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
14229
14230         c (mono_string_Internal_ctor_charp_int_int):
14231         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
14232         sindex < 0, throw ArgumentOutOfRangeException instead of
14233         ArgumentNullException.
14234
14235         Added new check for length == 0, however
14236         I need to make it return String.Empty from the C code.
14237         
14238         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
14239         that calculate the length for us here.
14240         
14241         (mono_string_Internal_ctor_sbytep_int_int): Replaced
14242         mono_string_new_utf16 with mono_string_new, since value is utf8.
14243
14244 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
14245
14246         * object.c: register the object for finalization if needed.
14247         Allocate one more char in the string for the terminating 0 char.
14248
14249 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
14250
14251         * class.c, class.h, image.c: check if a type implemenst a destructor.
14252         Use the proper key for array class lookups.
14253         * icall.c: register the icalls in the System.GC class.
14254         * gc.c, gc.h: GC-related functions and icalls.
14255
14256 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14257
14258         * icall.c:
14259         * socket-io.c:
14260         * unicode.c: free some strings gotten from mono_string_to_utf8 and
14261         changed a couple of free () by g_free ().
14262
14263         * decimal.c: one-liner in the comments for decimal2string ().
14264
14265 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
14266
14267         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
14268
14269 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
14270
14271         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
14272         * object.c (mono_runtime_invoke_array) : handle null in params
14273
14274 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
14275
14276         * string-icalls.c: fixed bug in split (one off bug)
14277
14278 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
14279
14280         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
14281         * icalls.c: added String::Equals as internal method
14282
14283 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
14284
14285         * threads.c: fixed bug in the double interlocked functions
14286
14287 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
14288
14289         * threads.c: implemented all of the new interlocked icalls.
14290         * string-icalls.c: fix a bug in insert.
14291         * icalls.c: added the icalls for interlocked, removed old string functions.
14292         
14293 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
14294
14295         * loader.c: fix off-by-one error when reading argument names.
14296
14297 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
14298
14299         * profiler.c: win32 counter implementation (untested).
14300         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
14301         (the latter needs testing and more complete impl. from win32 folks).
14302
14303 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
14304
14305         * object.c: mono_array_new_full workaround mono_array_class_get
14306         problem.
14307
14308 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
14309
14310         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
14311         * object.h (mono_string_chars): Changed casting type.
14312
14313 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
14314
14315         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
14316                            method signatures to use gunichar2 instead of gint16.
14317
14318 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
14319
14320         * object.h, object.c: domain-specific versions of mono_object_new and
14321         mono_array_new.
14322
14323 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
14324
14325         * object.c: changed String layout
14326
14327         * string-icalls.c (mono_string_Internal_ctor_chara): added
14328         internal string constructors.
14329
14330 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
14331
14332         * threads.c: pass 'this' to the thread start routine.
14333
14334 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14335
14336         * string-icalls.c: fix IndexOf and LastIndexOf. Now
14337         InternalCompareStr don't call twice mono_string_cmp_char for the last
14338         character. Improved performance in mono_string_cmp_char.
14339
14340 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
14341
14342         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
14343         code into its own library: libmonoruntime.
14344
14345 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
14346
14347         * object.h, object.c: changed array format so that szarrays do not
14348         require a bounds structure.
14349         * icall.c, appdomain.c: support for new szarray format.
14350
14351 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
14352
14353         * metadata.c: compare also the retuns type when comparing signatures:
14354         we didn't do this as an optimization since really overloaded methods
14355         must differ also in the arguments, but this doesn't work with
14356         low-level IL code (or when using explicit conversion operators: see
14357         bug#23498 for an example).
14358
14359 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
14360
14361         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
14362
14363 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
14364
14365         * icall.c: make MonoType::GetElementType its own icall.
14366
14367 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
14368
14369         * icall.c: remove MonoMethod_get_Name().
14370         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
14371         object.
14372
14373 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
14374
14375         * string-icalls.c: optimized a few methods.
14376
14377 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
14378
14379         * icall.c: added all new string internal calls
14380         * string-icalls.c: added, new string internal call implementation.
14381         * object.c: added mono_string_new_size for allocating a string a size
14382
14383 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
14384
14385         * object.c (mono_object_isinst): use the same code as in the
14386         optimized x86 version.
14387
14388 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
14389
14390         * profiler.c: TSC-based timer code (faster and more accurate).
14391         Not hooked up in configure, yet (set USE_X86TSC to 1).
14392
14393 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
14394
14395         * profiler.c, profiler.h: track time spent compiling methods.
14396         * threads.c: track thread creation/destruction.
14397
14398 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
14399
14400         * profiler.c, profiler.h, profiler-private.h: profiling interface
14401         and sample implementation. Moved here so that it can be used also by
14402         the jit.
14403
14404 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
14405
14406         * reflection.c, reflection.h: keep types and other handles separate in
14407         the hash tables for referred tokens. Add guid for modules.
14408
14409 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
14410
14411         * assembly.c: fix bugs found with valgrind.
14412         * metadata.h, metadata.c: added mono_metadata_guid_heap().
14413
14414 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
14415
14416         * threads: added icall support for getting current domain for
14417                    the thread.
14418  
14419 2002-04-13  Martin Baulig  <martin@gnome.org>
14420
14421         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
14422         (MonoDebugVarInfo): Added `index' field for register based addresses.
14423         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
14424         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
14425         `MonoDebugVarInfo *params' and `guint32 this_offset' with
14426         `MonoDebugVarInfo *this_var'.
14427
14428         * debug-symfile.c (relocate_variable): New static function to write
14429         a location description for a local variable or method parameter.
14430
14431 2002-04-12  Martin Baulig  <martin@gnome.org>
14432
14433         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
14434         stack offset and begin/end scope address of a local variable.
14435         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
14436         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
14437         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
14438
14439         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
14440         Added new relocation types for start/end scope of a local variable.
14441
14442 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
14443
14444         * object.h: add mono_object_domain() macro.
14445         * reflection.c: handle typespecs.
14446         * icall.c: MonoMethod::get_Name() implementation.
14447
14448 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
14449
14450         * icall.c: String::GetHashCode() icall implementation.
14451
14452 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
14453
14454         * icall.c: String::IndexOfAny icall.
14455         * object.c, object.h: make array->max_length more useful.
14456         Intrduced mono_object_class() and mono_string_length() macros.
14457
14458 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14459
14460         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
14461         instead of g_unichar_isdigit.
14462
14463 2002-04-11  Nick Drochak  <ndrochak@gol.com>
14464
14465         * icall.c: Implement a simple Double.ToString().
14466
14467 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
14468
14469         * appdomain.h: only io-layer.h is supposed to be included.
14470         * icall.c: explicitly import environ. Fix warning.
14471
14472 2002-04-10  Nick Drochak  <ndrochak@gol.com>
14473
14474         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
14475                 return true even if it's not Daylight Savings time.
14476                 Only return false for the case where the function isn't
14477                 implemented for a plaform (read Windows).
14478
14479 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
14480
14481         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
14482         data with a mutex.
14483
14484 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
14485
14486         * mempool.c (mono_mempool_alloc): only use g_malloc when
14487         absolutely necessary.
14488
14489 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
14490
14491         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
14492
14493         * class.c (mono_class_vtable): use domain mempool to allocate vtable
14494         (mono_class_proxy_vtable): use domain mempool
14495
14496 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
14497
14498         * appdomain.h, appdomain.c: split initialization that requires the
14499         execution engine support into mono_runtime_init().
14500
14501 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
14502
14503         * class.c (mono_class_init): don't include vtable inside MonoClass
14504         to save some memory, gather some statistics.
14505         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
14506
14507 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
14508
14509         * icall.c: internalcall implementation for ValueType.Equals().
14510
14511 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
14512
14513         * object.c (mono_message_init): moved 
14514         (mono_runtime_exec_main): new arch. independent impl.
14515         (mono_runtime_invoke_array): new method - like
14516         mono_runtime_invoke, but you can pass an array of objects.
14517         (mono_remoting_invoke): new arch. independent impl.
14518         (mono_message_invoke): new arch. independent impl.
14519         (mono_runtime_class_init): new arch. independent impl.
14520         (mono_runtime_object_init): new arch. independent impl.
14521
14522 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
14523
14524         * metadata.c, object.c, reflection.c: documented the exported
14525         functions.
14526
14527 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
14528
14529         * icall.c: simpler code to pass the assembly builder data to corlib.
14530         Implement GetNestedTypes() internalcall.
14531
14532 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
14533
14534         * class.c: warn if a type can't be loaded.
14535
14536 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
14537
14538         * image.h: typedef MonoImageOpenStatus
14539         * types.h: removed unused file
14540         
14541 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
14542
14543         * icall.c: Enum_ToObject accepts enum value arguments.
14544
14545 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
14546
14547         * class.c: move initialization of properties, events and nested
14548         classes, so that they happen for interfaces, too.
14549
14550 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
14551
14552         * icall.c: cleanup some ugly casts in Array_SetValue*.
14553
14554 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
14555
14556         * icall.c: the values array fro enums is of the correct type, now.
14557         Implement (correctly) getFullName instead of assQualifiedName for
14558         MonoType.
14559         * reflection.h, reflection.c: added mono_type_get_name ().
14560
14561 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
14562
14563         * assembly.c, image.h: for each MonoImage, record from wich assembly
14564         it was loaded.
14565         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
14566         Make Type.Assembly work.
14567
14568 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
14569
14570         * debug-symfile.h: use char* instead of gpointer to avoid
14571         unnecessary casts.
14572
14573         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
14574
14575         * icall.c (ves_icall_InternalExecute): impl. FielSetter
14576         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
14577
14578 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
14579
14580         * icall.c (mono_message_init): impl. (code cleanup)
14581         (ves_icall_InternalExecute): impl. FieldGetter
14582
14583         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
14584         defined we call all (non-static)methods through the vtable. 
14585
14586 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
14587
14588         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
14589         finalizer even though the memory is still referenced (and the chunk of
14590         memory is not freed).
14591
14592 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
14593
14594         * assembly.c: fix brokeness.
14595
14596 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
14597
14598         * class.c: kill some warnings. Check explicit interface method
14599         implementation also without considering the namespace.
14600         Load also literal strings in static class data.
14601
14602 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
14603
14604         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
14605         (default_assembly_name_resolver): Make the resolver take the
14606         "base" directory where the assembly was originally defined, so we
14607         can load DLLs that are in the same directory as the assembly that
14608         is being referenced.
14609
14610 2002-03-28  Dick Porter  <dick@ximian.com>
14611
14612         * file-io.h: 
14613         * file-io.c:
14614         * socket-io.c: 
14615         * unicode.h: 
14616         * unicode.c: Warning cleanups
14617
14618 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
14619
14620         * object.h, reflection.h: use the correct type instead of MonoObject.
14621
14622 2002-03-28  Martin Baulig  <martin@gnome.org>
14623
14624         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
14625         (mono_debug_update_symbol_file): Initialize classes if necessary.
14626
14627 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
14628
14629         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
14630         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
14631
14632 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
14633
14634         * assembly.h: fix function prototype.
14635         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
14636         * mono-endian.h: use const cast.
14637
14638 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
14639
14640         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
14641
14642 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
14643
14644         * loader.c: don't assert when a typeref can't be loaded, give
14645         a chance to the runtime to trow an exception instead.
14646         * loader.h: fix warning.
14647
14648 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
14649
14650         * class.c (mono_class_proxy_vtable): added proxy support
14651
14652 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
14653
14654         * icall.c: removed last of PAL calls, added System.Environment
14655         * file-io.h, file-io.c: MonoIO implementation
14656         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
14657
14658 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
14659
14660         * appdomain.c: do not use the byte marker in ldstr table lookup.
14661         * debug-helpers.c: allow two ':' to separate class and method name.
14662         * object.c: allocate arrays bounds with the GC, too.
14663         * verify: add a few more checks.
14664
14665 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
14666
14667         * reflection.c: output also literal strings. Allocate parameter data
14668         with GC_malloc() (thanks, Martin, for catching this!).
14669
14670 2002-03-26  Martin Baulig  <martin@gnome.org>
14671
14672         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
14673         include the `this' offset in the `param_offsets'.
14674
14675 2002-03-25  Martin Baulig  <martin@gnome.org>
14676
14677         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
14678         mono_debug_get_class() function to get the classes. Added new
14679         relocation types for arrays and strings.
14680         (mono_debug_get_class): New static function to search in all
14681         referenced assemblies for a metadata token.
14682
14683         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
14684
14685 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
14686
14687         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
14688         hold gc-allocated objects. Make the string heap a stream like the
14689         others. Removed duplicated code when writing stream info.
14690         Added asserts to catch possible buffer overflows. Set the sorted map
14691         for tables that need sorting. Added some documentation.
14692
14693 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
14694
14695         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
14696         for interned strings and vtables.
14697
14698 2002-03-24  Martin Baulig  <martin@gnome.org>
14699
14700         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
14701         it in the array since it was created with g_slist_prepend().
14702
14703 2002-03-24  Martin Baulig  <martin@gnome.org>
14704
14705         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
14706         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
14707         (mono_debug_method_from_token): Renamed to
14708         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
14709         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
14710
14711         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
14712         relocation types.
14713
14714         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
14715
14716 2002-03-24  Martin Baulig  <martin@gnome.org>
14717
14718         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
14719         (mono_debug_method_from_token): New func.
14720
14721         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
14722         New interncall, calls mono_debug_local_type_from_signature().
14723         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
14724         calls mono_debug_method_from_token().
14725
14726 2002-03-23  Martin Baulig  <martin@gnome.org>
14727
14728         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
14729         specifies the number of bytes to be converted, not the array size.
14730         Return the number of chars, not the number of bytes.
14731         (ves_icall_iconv_get_chars): The `byteCount' argument
14732         specifies the number of bytes to be converted, not the array size.
14733
14734 2002-03-23  Martin Baulig  <martin@gnome.org>
14735
14736         * reflection.h (MonoReflectionSigHelper): New type.
14737
14738         * reflection.c (mono_reflection_sighelper_get_signature_local),
14739         (mono_reflection_sighelper_get_signature_local): New functions.
14740
14741         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
14742         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
14743         interncalls.
14744
14745 2002-03-23  Martin Baulig  <martin@gnome.org>
14746
14747         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
14748         is_writeable is set.
14749         (mono_raw_buffer_update): New function to write the modified map
14750         back to disk.
14751
14752         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
14753
14754         * debug-symfile.c (mono_debug_update_symbol_file): Call
14755         mono_raw_buffer_update() when done writing.
14756
14757 2002-03-23  Martin Baulig  <martin@gnome.org>
14758
14759         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
14760
14761         * debug-symfile.c: Added support for arguments and local variables.
14762
14763 2002-03-23  Dick Porter  <dick@ximian.com>
14764
14765         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
14766         protected by ifdefs, hence breaking the w32 build.
14767
14768 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14769
14770         * object.c: implement is_interned() the right way.
14771
14772 2002-03-21  Martin Baulig  <martin@gnome.org>
14773
14774         * debug-symfile.[ch]: New files to handle debugging information
14775         files. There's also support to dynamically update these symbol
14776         files to include machine dependent information.
14777
14778 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
14779
14780         * threads.c (mono_thread_create): new function to create thread
14781         from C
14782
14783 2002-03-20  Martin Baulig  <martin@gnome.org>
14784
14785         * icall.c (ves_icall_InternalInvoke): Create a new object if the
14786         method is a constructor.
14787         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
14788         points to ves_icall_InternalInvoke().
14789
14790 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
14791
14792         * file-io.c: Flush shouldn't throw exceptions.
14793
14794 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
14795
14796         * file-io.c: FileStream flush support; FileSetLength now
14797         restores file pointer.
14798
14799 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
14800
14801         * class.c: set image for pointer classes.
14802
14803 2002/03/19  Nick Drochak <ndrochak@gol.com>
14804
14805         * sysmath.c: Forgot one.
14806
14807 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
14808
14809         * sysmath.c: Avoid redefining existing names.
14810
14811 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
14812
14813         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
14814         handled by runtime as icall rather than dllimport from libm.so
14815         * file-io.c, file-io.h: fixed handle argument type.
14816
14817 2002-03-18  Dick Porter  <dick@ximian.com>
14818
14819         * reflection.c (mono_image_get_type_info): rename interface to
14820         iface, because of "#define interface struct" on windows.
14821
14822 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
14823
14824         * class.c, class.h: rename and export mono_ptr_class_get().
14825         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
14826         * reflection.c, reflection.h, icall.c: better/saner type name
14827         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
14828         method signatures.
14829
14830 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
14831
14832         * class.c (mono_class_init): removed hardcoded GHC_SLOT
14833
14834         * icall.c (ves_icall_InternalInvoke): impl.
14835
14836 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
14837
14838         * reflection.c: output the interface map table, too.
14839
14840 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
14841
14842         * class.c (class_compute_field_layout): separate computation of 
14843         static field layout
14844
14845 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
14846
14847         * icall.c: added System.Buffer support.
14848         * file-io.c: moved file icalls from PAL to FileStream.
14849
14850 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
14851
14852         * icall.c (ves_icall_System_Object_GetHashCode): impl.
14853
14854 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
14855
14856         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
14857
14858 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14859
14860         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
14861
14862 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
14863
14864         * debug-helpers.{c,h}: moved here from monograph some useful functions
14865         to locate a method by name/signature in a class or image. Included
14866         also a small and flexible IL disassembler.
14867
14868 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14869
14870         * reflection.c: fixup tokens in methods with small header size, too.
14871
14872 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
14873
14874         * object.c (mono_string_to_utf8): remove assert(!error), instead
14875         print a warning. 
14876
14877 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
14878
14879         * icall.c: update to the new mono_Array_class_get interface.
14880
14881 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
14882
14883         * appdomain.c, object.c: Boehm-GC enable.
14884         * icall.c: make get_data_chunk() support split data requests.
14885         Ensure a class is initialized in more cases. Return only the first
14886         property found in GetProperties() or the compiler gets confused. 
14887         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
14888         * reflection.h, reflection.c: add fixup mechanism for field and method
14889         tokens. Initialize assembly->typeref in a single place. Output
14890         properties after events. Support custom attributes for events, too.
14891         Typo fix for paramter custom attrs.
14892
14893 2002-03-07  Martin Baulig  <martin@gnome.org>
14894
14895         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
14896
14897 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
14898
14899         * class.c (mono_array_class_get): fix. for multi. dim. arrays
14900
14901 2002-03-06  Martin Baulig  <martin@gnome.org>
14902
14903         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
14904         non-zero lower bounds. See testcases #F10-#F13.
14905
14906 2002-03-05  Martin Baulig  <martin@gnome.org>
14907
14908         * exception.c (mono_get_exception_argument_out_of_range): New exception.
14909
14910         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
14911         ves_icall_System_Array_GetValue(), only calculate the absolute array position
14912         here.
14913         (ves_icall_System_Array_SetValue): Likewise.
14914         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
14915         as argument and does the actual work. This function is used when copying a
14916         multi-dimensional array.
14917         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
14918         now do all the widening conversions of value types.
14919         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
14920
14921 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14922
14923         * class.c: remove some magic numbers and use the smbolic names,
14924         instead. Added init_events() to load event info at class init time.
14925         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
14926         and mono_metadata_methods_from_event().
14927         * reflection.h, reflection.c: added support for writing out the evnets
14928         related information.
14929
14930 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
14931
14932         * reflection.h, icall.c: use a different method (GetInterfaces)
14933         to gather interface info and add isbyref, isprimitive and
14934         ispointer to the ves_icall_get_type_info() return value.
14935
14936 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
14937
14938         * class.h: stared adding support for events.
14939         * icall.c: split find_members implementation. Added debug icall to get
14940         the address of an object.
14941         * reflection.c: handle TypeBuilders in mono_type_get_object().
14942
14943 2002-03-01  Martin Baulig  <martin@gnome.org>
14944
14945         * icall.c (ves_icall_System_Array_GetLength): This must throw an
14946         ArgumentOutOfRangeException(), not an ArgumentException().
14947         (ves_icall_System_Array_GetLowerBound): Likewise.
14948         (ves_icall_System_Array_GetValue): Improved argument checking.
14949         (ves_icall_System_Array_SetValue): Improved argument checking.
14950
14951 2002-03-01  Martin Baulig  <martin@gnome.org>
14952
14953         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
14954         called with invalid arguments rather than just dying with g_assert().
14955         (ves_icall_System_Array_SetValue): Likewise.
14956         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
14957         raise a NotImplementedException instead.
14958         (ves_icall_System_Array_GetLength): Added argument checking.
14959         (ves_icall_System_Array_GetLowerBound): Added argument checking.
14960
14961 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
14962
14963         * object.h (mono_assert): new macros mono_assert and
14964         mono_assert_not_reached
14965
14966 2002-02-28  Martin Baulig  <martin@gnome.org>
14967
14968         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
14969         and "System::String::IsInterned" to "System::String::_IsInterned".
14970
14971 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
14972
14973         * icall.c: remove hacks for typebuilder. Added icall to create a
14974         modified type from a tybebuilder.
14975         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
14976         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
14977         to create a backing MonoClass for a TypeBuilder.
14978
14979 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14980
14981         * class.c, class.h: more refactoring of class init.
14982         Export mono_class_setup_mono_type() and mono_class_setup_parent().
14983
14984 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
14985
14986         * marshal.c, marshal.h: start of marshaling interface.
14987
14988 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
14989
14990         * icall.c: fix order in assembly qualified name icall.
14991
14992 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
14993
14994         * class.c: do not free str, since we store it in the hash table.
14995         * reflection.h: add label field to MonoILExceptionInfo.
14996         * reflection.c: handle references to more than one assembly. Handle
14997         case when there isn't a module created in the assembly.
14998
14999 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
15000
15001         * class.c: Fix typo. Start refactoring of class init code.
15002
15003 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
15004
15005         * appdomain.c: exit with 1 on error.
15006         * class.c: we already have the name in MonoClassField.
15007         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
15008         MonoStreamHeader instead of an offset of image->raw_metadata.
15009
15010 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
15011
15012         * appdomain.c (mono_init): Be even more descriptive about the error.
15013
15014 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
15015
15016         * appdomain.c: give the user an informative message when corlib can't
15017         be loaded.
15018
15019 2002-02-26  Martin Baulig  <martin@gnome.org>
15020
15021         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15022         New icall to get the time zone data.
15023
15024 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
15025
15026         * reflection.c: set virtual and raw size of section correctly.
15027         * threads.c: transfer domain information to newly created threads.
15028
15029 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
15030
15031         * class.c: when instancing a class in a domain, load the default
15032         vaules for static fields from the constant table. Fix System.Enum to
15033         not be an enum.
15034         * icall.c: implement Object::GetType() internalcall. Implemented
15035         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
15036         Fixed checking of binding flags in find_members().
15037         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
15038         * reflection.c: handle enumerations when writing to the constant
15039         table. Use a different object cache for types.
15040
15041
15042 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
15043
15044         * object.c (mono_object_isinst): fix for arrays
15045
15046         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
15047
15048 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
15049
15050         * object.c: don't use mprotect ()  and fix intern pool hash table
15051         lookup for big endian systems.
15052
15053 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
15054
15055         * icall.c: change type_is_subtype_of () signature.
15056
15057 2002-02-21  Mark Crichton  <crichton@gimp.org>
15058
15059         * rand.c, rand.h: Added random number generator for
15060         System.Security.Cryptography classes.
15061
15062         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
15063
15064         * icall.c: Added System.Security.Cryptography calls.
15065
15066 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
15067
15068         * class.c, icall.c, metadata.c: better support for pointer types.
15069         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
15070         * reflection.c: Add support for getting custom attrs for properties
15071         and simplify some code.
15072
15073 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
15074
15075         * icall.c: change getToken () and add custom attribute GetBlob()helper
15076         method.
15077         * reflection.h: add custom attrs array to the reflection builder structures.
15078         * reflection.c: encode and emit custom attributes for all the relevant
15079         reflection objects. Cache fieldref and methodref tokens. Change
15080         mono_image_create_token() interface to take a MonoDynamicAssembly.
15081         More complete custom attributes decoder. Load custom attributes for
15082         Assembly, Field, Method and Constructor objects, too. Make the
15083         returned array an Attribute[] one, not object[]. Added
15084         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
15085         custom attribute constructor.
15086
15087 2002-02-20  Dick Porter  <dick@ximian.com>
15088
15089         * icall.c:
15090         * rawbuffer.c:
15091         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
15092         problem code out for now).
15093
15094 2002-02-19  Radek Doulik  <rodo@ximian.com>
15095
15096         * object.c (mono_ldstr): use hash table to avoid multiple swapping
15097
15098 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
15099
15100         * icall.c: register the GetCustomAttributes method.
15101         * object.c, object.h: add mono_string_new_len ().
15102         * reflection.h, reflection.c: added mono_runtime_invoke(),
15103         mono_install_runtime_invoke(). Added
15104         mono_reflection_get_custom_attrs () to load custom attributes and
15105         create the attribute objects.
15106
15107 2002-02-19  Dick Porter  <dick@ximian.com>
15108         * threads-dummy-types.c:
15109         * threads-dummy-types.h:
15110         * threads-dummy.c:
15111         * threads-dummy.h:
15112         * threads-pthread-types.c:
15113         * threads-pthread-types.h:
15114         * threads-pthread.c:
15115         * threads-pthread.h:  Deleted obsolete files
15116
15117 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
15118
15119         * class.c (mono_class_vtable): runtime init the class when we
15120         allocate static class data.
15121
15122         * icall.c (ves_icall_System_Array_SetValue): check for null values.
15123
15124         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
15125         and String - but we will need generic marshalling support in the
15126         future. 
15127         (mono_init): set the domain name in a ms compatible way
15128
15129         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
15130         String[].
15131
15132 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
15133
15134         * object.c (mono_array_clone): use alloca() instead of g_malloc  
15135         for sizes
15136
15137         * appdomain.c (mono_domain_unload): impl.
15138
15139 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
15140
15141         * appdomain.c, object.c: fix intern pool implementation.
15142         * class.c: fix alignment code.
15143
15144 2002-02-16  Radek Doulik  <rodo@ximian.com>
15145
15146         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
15147         and s2 > s1, just copy lower bytes to be compatible with little
15148         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
15149         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
15150
15151         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
15152         force big_endian to be 1 for big endian machines 
15153         (ves_icall_iconv_new_decoder): ditto
15154
15155 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
15156
15157         * socket-io.c (convert_sockopt_level_and_name): If the system
15158         doesn't define SOL_IP or SOL_TCP, get them by hand using
15159         getprotobyname() and caching the values (because this could be a
15160         slow operation).
15161         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
15162         Use the appropriate struct when the system does support it. Ie,
15163         not all systems have struct ip_mreqn so use struct ip_mreq when
15164         appropriate.
15165
15166 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
15167
15168         * reflection.c: handle finally clauses.
15169
15170 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
15171
15172         * socket-io.c: use g_snprintf() instead of snprintf.
15173
15174 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
15175
15176         * reflection.c (mono_param_get_objects): Cast second argument to
15177         mono_method_get_param_names to a const char** to silence the
15178         compiler warning.
15179
15180         * appdomain.c (mono_domain_assembly_open): Put parens around the
15181         truth statement in the for-loop.
15182
15183         * unicode.c (iconv_convert): Got rid of a compiler warning about
15184         int i being unused when the system has a new iconv.
15185         (iconv_get_length): Same.
15186
15187         * image.c (load_class_names): Cast the second argument to
15188         g_hash_table_insert() to char* to hush compiler warnings about the
15189         arg being a const.
15190         (mono_image_open): Same here.
15191
15192         * socket-io.c: Don't conditionally include sys/filio.h or
15193         sys/sockio.h here anymore since we now get them from
15194         io-layer/io-layer.h
15195         (inet_pton): If the system doesn't support inet_aton, implement
15196         using inet_addr and also #define INADDR_NONE if it isn't defined
15197         by the system.
15198
15199 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
15200
15201         * metadata.c, metadata.h: added function to get packing and size info
15202         of a typedef.
15203         * reflection.h, reflection.c: handle field RVA data. Save info about
15204         the table layout if needed. Assign typedef indexes to all the types
15205         before dumping the info about them to avoid forward reference problems.
15206
15207 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
15208
15209         * socket-io.c (convert_sockopt_level_and_name): ifdef
15210         SO_ACCEPTCONN because it is not defined on my system (old debian)
15211
15212 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
15213
15214         * opcode.c: use stddef.h to get NULL.
15215
15216 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
15217
15218         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
15219         for FIONBIO, FIONREAD and SIOCATMARK.
15220         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
15221         define INADDR_NONE and besides, inet_addr() is deprecated and
15222         should not be used. Use inet_pton() instead - it also has the
15223         added bonus that it can easily handle IPv6 addresses as well.
15224         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
15225
15226 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
15227
15228         * decimal.c: remove _MSC_VER conditional.
15229
15230 2002-02-13  Dick Porter  <dick@ximian.com>
15231
15232         * socket-io.c: 
15233         * icall.c: Internal calls for Blocking, Select, Shutdown,
15234         GetSocketOption and SetSocketOption
15235
15236 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
15237
15238         * assembly.cs: better resolver: use it instead of some kludgy
15239         code.
15240
15241 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
15242
15243         * reflection.c: the best way to speed-up the compiler is to avoid
15244         infinite loops.
15245
15246 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
15247
15248         * class.c (mono_class_vtable): changed the object layout
15249         (obj->vtable->class). 
15250         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
15251
15252 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
15253
15254         * assembly.c: look for assemblies in the assembly dir, too.
15255
15256 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
15257
15258         * class.c: fix thinko in mono_class_from_type().
15259
15260 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
15261
15262         * exception.h, exception.c: added TypeLoadException.
15263         * object.h, object.c: added mono_array_clone ().
15264         * icall.c: handle throwOnError in AssemblyGetType().
15265         Added Array.Clone().
15266         * opcode.h, opcode.c: use a single value for the opcode val.
15267         Compile fix for non-gcc compilers.
15268
15269 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
15270
15271         * opcodes.c, opcodes.h: export interesting info about opcodes.
15272
15273 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
15274
15275         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
15276         icalls. 
15277
15278         * class.c (class_compute_field_layout): set element_class for enums
15279         (mono_class_create_from_typedef): set element_class for normal classes
15280
15281         * icall.c (ves_icall_System_Enum_get_value): impl.
15282
15283         * class.c (mono_class_create_from_typedef): do not set valuetype
15284         flag for System.ValueType and System.Enum
15285
15286 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
15287
15288         * unicode.c (iconv_convert): fix big endian problem.
15289
15290 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
15291
15292         * class.c: add asserts if we are ever going to scribble over memory.
15293         * socket-io.c: not all systems have AF_IRDA defined.
15294
15295 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
15296
15297         * class.c (class_compute_field_layout): do not consider static
15298         fields to compute alignment
15299
15300 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
15301
15302         * appdomain.c (mono_appdomain_get): impl.
15303         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
15304
15305 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
15306
15307         * icall.c: ignore "file://" prefix when loading an assembly.
15308
15309 2002-01-23  Dick Porter  <dick@ximian.com>
15310
15311         * socket-io.c:
15312         * icall.c:
15313         * Makefile.am: Added socket support
15314
15315 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
15316
15317         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
15318         code back.  This should return the assemblies that are loaded by
15319         the runtime on behalf of an application domain. 
15320
15321         The current implementation is still broken, it just returns every
15322         assembly loaded, but until we get real applications domain this
15323         will do.
15324
15325 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
15326
15327         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
15328         AppDomain object.
15329
15330 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
15331
15332         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
15333         the mono_class_from_name lookup.
15334         (ves_icall_get_parameter_info): ditto.
15335         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
15336         method.
15337         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
15338
15339 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
15340
15341         * class.c: load also nested classes on class init.
15342         System.ValueType instance methods gets passed boxed
15343         values, unless methods in derived classed that get a pointer to the
15344         data.
15345         * icall.c: use better name parsing code in GetType().
15346         * image.c, image.h: add mono_image_loaded ().
15347         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
15348         * reflection.c, reflection.h: added mono_reflection_parse_type().
15349
15350 2002-01-22  Veronica De Santis <veron78@interfree.it>
15351
15352         * icall.c : Added mapping of internal calls for Manual and Auto reset events
15353         * threads.c : Added the implementation of internal calls for events
15354         * threads.h : Added prototypes of internal calls for events
15355         
15356 2002-01-21  Radek Doulik  <rodo@ximian.com>
15357
15358         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
15359
15360 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
15361
15362         * class.c (mono_class_init): set min_align to 1 (instead of 0)
15363         (mono_class_value_size): use min_align
15364
15365 2002-01-20  Dick Porter  <dick@ximian.com>
15366
15367         * threads.h:
15368         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
15369         so it compiles on w32.
15370
15371 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
15372
15373         * metadata.c (mono_type_stack_size): impl.
15374
15375         * class.c (mono_class_get_field): impl. memberref token
15376
15377 2002-01-16 Veronica De Santis <veron78@@interfree.it>
15378
15379         * icall.h : Added the internal calls mapping for CreateMutex_internal
15380                     and ReleaseMutex_internal.
15381         * threads.h : Added the prototype of mutexes internal calls.
15382         * threads.c : Added the implementations of mutexes internal calls.
15383
15384 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
15385
15386         * metaparse.h: removed unused file.
15387         * reflection.c, reflection.h: added stream_data_align () function 
15388         to align data in streams and keep stream aligned. Add support for
15389         exception support in method headers.
15390
15391 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
15392
15393         * unicode.c: make iconv_convert () return the number of bytess written
15394         in the output buffer.
15395
15396 2002-01-15  Dick Porter  <dick@ximian.com>
15397         * threads.c: Make the runtime's idea of infinite timeouts coincide
15398         with the class library's
15399
15400         Fix a particularly egregious bug in mono_thread_cleanup(). That
15401         code was so utterly bogus it must have been written on a Monday.
15402
15403 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
15404
15405         * reflection.h: add subtypes field to TypeBuilder.
15406         * reflection.c: encode constants for literal fields.
15407         Handle subtypes. Fix user string token (and add a zero byte)
15408         at the end.
15409         
15410 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
15411
15412         * class.c (mono_class_init): bug fix: assign slot numbers for
15413         abstract methods.
15414
15415 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
15416
15417         * reflection.c: don't try to output a code RVA for abstract methods.
15418         Small fixes for method header format. Output parameter info to the
15419         ParamDef table. Save method overriding info to MethodImpl table.
15420         Fix property support. Allow typedef.extends to be a type in the
15421         building assembly.
15422         * verify.c: fix off-by-one error.
15423
15424 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
15425
15426         * class.c: fix mono_class_from_mono_type () for szarray types.
15427         Remove unused cache check in mono_class_from_type_spec().
15428         * icall.c: *type_from_name () functions handle simple arrays and byref.
15429         * reflection.c: handle byref and szarray types. Handle methods without
15430         body (gets P/Invoke compilation working). Handle types and fields in
15431         get_token ().
15432         * reflection.h: add rank to MonoTypeInfo.
15433
15434 2002-01-10  Dick Porter  <dick@ximian.com>
15435
15436         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
15437         internal calls
15438
15439 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
15440
15441         * icall.c: initialize class in type_from_handle ().
15442         Loop also in parent classes for get_method ().
15443         * reflection.c: properly encode class and valuetype types.
15444         Start on encoding TypeBuilder types. Handle fieldrefs.
15445         Use correct length when registering a user string.
15446         Handle ConstructorBuilder and MonoMethod in get_token ().
15447         Make mono_type_get_object () aware of cached types.
15448         * object.c: back out change to mono_string_new ().
15449
15450 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
15451         * object.c: mono_string_new should return a NULL when the string 
15452         passed in is NULL -- not try to deference it.
15453         
15454 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
15455
15456         * icall.c: hack to make IsSubType work for TypeBuilders.
15457         * reflection.c: emit constructors before methods.
15458         Retrieve param names in mono_param_get_objects().
15459
15460 2002/01/05  Nick Drochak  <ndrochak@gol.com>
15461
15462         * Makefile.am: fix list of headers and sources so automake 1.5
15463         doesn't complain. Removed \# at end of list.
15464
15465 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
15466
15467         * reflection.c: get token for a method ref. Set return type of
15468         constructor to void.
15469         * loader.c: debug message.
15470         * class.c: typo fix.
15471
15472 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
15473
15474         * icall.c: fix array init with rank > 1. FindMembers
15475         loops in parent class as well.
15476         * image.c: do not insert nested types in name cache.
15477         * reflection.c: warning fix.
15478         * reflection.h: add override method (for interface impl).
15479
15480 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
15481
15482         * metadata.c: fix customattr decoding.
15483
15484 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
15485
15486         * rawbuffer.cs: Added native Win32 implementation, avoids using
15487         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
15488
15489 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
15490
15491         * class.c: make the low-level routines handle the cache.
15492
15493 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
15494
15495         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
15496
15497 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
15498
15499         * class.c: fix mono_array_element_size() for objects.
15500         * class.h, class.c: add properties to MonoClass and load them
15501         at init time.
15502         * icall.c: check with isinst() when assigning a value to an array
15503         instead of requiring the classes to match exactly.
15504         Implemented icall for System.Type::GetType().
15505         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
15506         enums. Handle bindingflags when looking for methods and fields.
15507         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
15508         and mono_metadata_methods_from_property().
15509         * reflection.h, reflection.c: added structures for propreties,
15510         parameters and enums. Implemented mono_property_get_object() and
15511         mono_param_get_objects().
15512
15513 2001-12-18  Dick Porter  <dick@ximian.com>
15514
15515         * file-io.c: Use mono_string_to_utf16() instead of
15516         mono_string_chars()
15517
15518         * object.c: Added mono_string_to_utf16(), which copies the non
15519         NULL-terminated MonoString into a new double-null-terminated
15520         buffer.
15521
15522 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
15523
15524         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
15525
15526 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
15527
15528         * file-io.c: raise exceptions if handle is invalid.
15529
15530 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
15531
15532         * assembly.c: yet another check for mscorlib.
15533         * class.c, class.h: load nesting info for classes.
15534         * icall.c: many new functions to support the Reflection classes.
15535         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
15536         * reflection.h, reflection.c: mono_image_create_token(),
15537         mono_assembly_get_object(), mono_type_get_object(),
15538         mono_method_get_object(), mono_field_get_object(): methods to return
15539         objects that parallel the C representation of assemblies, types,
15540         methods, fields.
15541
15542 2001-12-11  Dick Porter  <dick@ximian.com>
15543
15544         * icall.c:
15545         * file-io.c: Internal calls for file IO.
15546
15547 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
15548
15549         * tabledefs.h: missing FileAttributes.
15550         * verify.h, verify.c: use is_valid_string () to simplify and check for
15551         valid strings more correctly. Fix warnings and speeling.
15552         Check more tables: Filed, File, ModuleRef, StandAloneSig.
15553         Check code: branches, maxstack, method calls.
15554
15555 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
15556
15557         * object.c (mono_object_allocate): removed static, so that the jit
15558         can allocate value types.
15559
15560         * icall.c (ves_icall_System_DateTime_GetNow): impl.
15561
15562 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
15563
15564         * class.c: init enum types right away and register the
15565         token->MonoClass map in mono_class_create_from_typedef ().
15566         * verify.h, verify.c: first cut of the verifier.
15567         * pedump.c: add --verify switch to verify metadata tables.
15568         * tabledefs.h: add some missing enums.
15569
15570 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
15571
15572         * class.c (mono_install_runtime_class_init): impl.
15573         (mono_class_init): renamed mono_class_metadata_init to
15574         mono_class_init, also removed the metadata_inited flag
15575
15576         * object.c (mono_object_isinst): use faster algorithm
15577
15578 2001-11-30  Radek Doulik  <rodo@ximian.com>
15579
15580         * mono-endian.h: reverted last change
15581         added function prototypes
15582
15583         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
15584         add mono-endian.c back
15585
15586         * mono-endian.c: returned back, as Paolo pointed out, it's needed
15587         for unaligned access, I've mistaked it with endianess. I am
15588         sorry.
15589         (mono_read16): fix reverted endianess
15590         (mono_read64): ditto
15591         (mono_read32): ditto
15592
15593 2001-11-30  Dick Porter  <dick@ximian.com>
15594
15595         * exception.c: Implement mono_exception_from_name()
15596
15597 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
15598
15599         * metadata.h, metadata.c: remove params_size and locals_size and their
15600         calculation from the metadata code: they are only usefult to the
15601         interp.
15602
15603 2001-11-29  Radek Doulik  <rodo@ximian.com>
15604
15605         * object.c (mono_ldstr): swap bytes here, it's probably not the
15606         best place, but works for me now, I'll redo it once I know mono
15607         better, also note that I add PROT_WRITE and don't reset back, also
15608         note that it's only affects big endians, so x86 should be OK
15609
15610         * mono-endian.h (read16): use just glib macros for both endians
15611
15612         * mono-endian.c: removed as glib macros are used in in
15613         mono-endian.h so we don't need to care about endianess for read
15614         macros as glib does that for us already
15615
15616 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
15617
15618         * class.h, class.h: take minimum alignment into consideration so
15619         that the fields of a class remain aligned also when in an array.
15620
15621 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
15622
15623         * loader.h, loader.c: add mono_method_get_param_names().
15624         * class.c: 0-init class fields.
15625
15626 2001-11-26  Dick Porter  <dick@ximian.com>
15627
15628         * icall.c:
15629         * threads-types.h:
15630         * threads.c: New file that handles System.Threading on all platforms
15631
15632         * object.c: 
15633         * object.h: Remove the synchronisation struct from MonoObject,
15634         replace it with a pointer that gets initialised on demand
15635
15636         * Makefile.am: Replace all the system-specific threading code with
15637         a single file that uses the new wrapper library
15638
15639 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
15640
15641         * class.c, class.h: add mono_install_trampoline() so that the runtime
15642         can register a function to create a trampoline: removes the ugly
15643         requirement that a runtime needed to export arch_create_jit_trampoline.
15644         * object.h, object.c: added mono_install_handler() so that the runtime
15645         can install an handler for exceptions generated in C code (with
15646         mono_raise_exception()). Added C struct for System.Delegate.
15647         * pedump.c: removed arch_create_jit_trampoline.
15648         * reflection.c: some cleanups to allow registering user strings and
15649         later getting a token for methodrefs and fieldrefs before the assembly
15650         is built.
15651         * row-indexes.h: updates and fixes from the new ECMA specs.
15652
15653 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
15654
15655         * class.h, class.c: add enum_basetype field to MonoClass.
15656         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
15657         to get index in the constant table reated to a field, param or
15658         property.
15659         * reflection.h, reflection.c: handle constructors. Set public-key and
15660         version number of the built assembly to 0.
15661         * row-indexes.h: update from new ECMA spec.
15662
15663 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
15664
15665         * class.h, class.c: add a max_interface_id to MonoClass.
15666         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
15667         since it's used to do that. Added mono_type_type_from_obj().
15668         Make GetType() return NULL instead of segfaulting if the type was not
15669         found. Handle simple arrays in assQualifiedName.
15670         * object.h: add a struct to represent an Exception.
15671         * reflection.c: output call convention in method signature.
15672         Add code to support P/Invoke methods and fixed offsets for fields.
15673
15674 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
15675
15676         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
15677         the value.
15678         * icall.c: use mono_array_addr instead of array->vector: fixes the
15679         reflection image writing.
15680         * reflection.c: init call convention byte to 0 in method signature.
15681         Encode the property signature. Don't output property-related methods
15682         twice. Really process the properties for a type (don't cast a field to
15683         a property, my mom always told me that).
15684         Fix 64 bit issues in pointer alignment in a different and more
15685         readable way.
15686
15687 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
15688
15689         * loader.h: Removed type class from MonoDefaults, added monotype
15690
15691         * loader.c: Loaded MonoType, removed loading of Type
15692
15693         * icall.c (my_mono_new_object): Now returns a System.MonoType,
15694         and fills in System.Type._impl with a RuntimeTypeHandle rather
15695         than the actual MonoClass *
15696
15697         (ves_icall_type_from_handle): change from type_class to
15698         monotype_class
15699
15700         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
15701         implemented
15702
15703         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
15704         implemented
15705
15706         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
15707
15708         (ves_icall_System_Reflection_Assembly_GetType): implemented
15709
15710         (ves_icall_System_MonoType_assQualifiedName): implemented
15711
15712         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
15713
15714 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
15715
15716         * assembly.c (mono_assembly_open): Implement a cache for the
15717         assemblies. 
15718
15719         (mono_assembly_close): only destroy the assembly when the last
15720         reference is gone.
15721         
15722 2001-11-09  Dick Porter  <dick@ximian.com>
15723
15724         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
15725
15726 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
15727
15728         * class.c (mono_class_metadata_init): bug fix: compute the right slot
15729
15730 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
15731
15732         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
15733         from Martin Weindel.
15734         * object.h: add mono_string_chars ().
15735
15736 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
15737
15738         * reflection.c (build_compressed_metadata): Eliminates warnings
15739         and uses 64-bit clean code.
15740
15741         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
15742         (mono_type_equal): Change signature to eliminate warnings.
15743
15744 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
15745
15746         * icall.c, loader.c: remove the internalcall array constructors.
15747         Changes to match the new MonoArray structure.
15748         * object.h, object.c: an array object doesn't allocate an extra
15749         vector. Add mono_array_new_full () to create jagged arrays easily.
15750
15751 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
15752
15753         * metadata.h, metadata.c: add mono_metadata_field_info () to
15754         retreive all the info about a field from vairous tables.
15755         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
15756         * class.h, class.c: augment MonoClassField with more info.
15757         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
15758         policy and load a field's RVA if needed.
15759
15760 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
15761
15762         * class.c (mono_class_metadata_init): create a trampoline for all
15763         virtual functions instead of actually compiling them.
15764
15765 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
15766
15767         * class.h, class.c: include name in MonoClassField.
15768         * class.c: fix fundamental type of System.Object and System.String.
15769         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
15770         tokens in ldtoken.
15771         * icall.c: remove internalcalls for the Reflection stuff that is now
15772         done in C# code.
15773         * loader.c: mono_field_from_memberref () implementation.
15774         * mono-endian.c: thinko (s/struct/union/g).
15775         * object.c, object.h: make the mono_string_* prototypes actually use
15776         MonoString instead of MonoObject.
15777         * reflection.c, reflection.h: updates for changes in the reflection
15778         code in corlib: we use C structures that map to the actual C# classes.
15779         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
15780         fat method header if needed and use the info from the ILGenerator for
15781         methods. Handle fields in types. Misc fixes.
15782
15783 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
15784
15785         * class.c (mono_class_metadata_init): bug fix: always allocate
15786         space for static class data
15787
15788 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
15789
15790         * class.c (mono_compute_relative_numbering): use relative
15791         numbering to support fast runtime type checks.
15792
15793 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
15794
15795         * class.c (mono_class_create_from_typeref): added debugging output
15796         to print class name when MonoDummy is returned instead of real class
15797
15798 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
15799
15800         * class.c (mono_class_metadata_init): interface offset table now
15801         contains pointers into the vtable - this is more efficient for the jit
15802
15803 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
15804
15805         * class.c (mono_class_metadata_init): use a temporary vtable (the
15806         old algorithm only worked for the interpreter, but not for the jit)
15807
15808 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
15809
15810         * loader.c (method_from_memberref): use mono_class_get to get the
15811         class of an array instead of using System.Array directly.
15812         (mono_get_method): also add MEMBERREF methods to the method cache
15813         which usefull for arrays.
15814
15815 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
15816
15817         * pedump.c (arch_compile_method): added to compute vtable entry
15818
15819         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
15820         number of interfaces.
15821         
15822         * class.h: merged MonoArrayClass into MonoClass
15823
15824         * class.c (mono_class_create_from_typedef): compute the vtable size and
15825         allocate space to include the vtable inside MonoClass
15826         (mono_class_metadata_init): initialize the vtable
15827
15828 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
15829
15830         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
15831         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
15832         * image.c: endian fixes by Laurent Rioux.
15833         * object.h, object.c: rename MonoStringObject to MonoString and
15834         MonoArrayObject to MonoArray. Change some function names to conform to
15835         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
15836         guint16* as first argument, so don't use char*.
15837         Provide macros to do the interesting things on arrays in a portable way.
15838         * threads-pthread.c: updates for the API changes and #include <sched.h>
15839         (required for sched_yield()).
15840         * icall.c: updates for the API changes above.
15841         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
15842         platforms that need them.
15843
15844 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
15845
15846         * class.c: set the correct type for all the fundamental
15847         type when loading the class.
15848
15849 2001-10-05  Dick Porter  <dick@ximian.com>
15850
15851         * threads-pthread.c (pthread_mutex_timedlock): Simple
15852         compatibility version for C libraries that lack this call.
15853
15854 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15855
15856         * class.c: MonoTypes stored in MonoClass are stored as
15857         fundamental MonoTypes when the class represents a
15858         fundamental type (System.Int32, ...).
15859         The TypeHandle return by ldtoken is a MonoType*.
15860         * icall.c: ves_icall_get_data_chunk () write out all the
15861         PE/COFF stuff. Implement ves_icall_define_method (),
15862         ves_icall_set_method_body (), ves_icall_type_from_handle ().
15863         * image.c: properly skip unknown streams.
15864         * loader.h, loader.c: add type_class to mono_defaults.
15865         * metadata.c, metadata.h: export compute_size () as
15866         mono_metadata_compute_size () with a better interface.
15867         Typo and C&P fixes.
15868         * pedump.c: don't try to print the entry point RVA if there is no entry point.
15869         * reflection.c, reflection.h: many cleanups, fixes, output method
15870         signatures and headers, typedef and typeref info, compress the metadata
15871         tables, output all the heap streams, cli header etc.
15872         * row-indexes.h: typo fixes.
15873
15874 2001-10-04  Dick Porter  <dick@ximian.com>
15875
15876         * object.h: Add a synchronisation mutex struct to MonoObject
15877
15878         * object.c (mono_new_object): Initialise the object
15879         synchronisation mutexes
15880
15881         * icall.c: System.Threading.Monitor internal calls
15882         
15883         * threads-pthread.h:
15884         * threads-pthread.c: System.Threading.Monitor internal calls
15885
15886         * threads-types.h: New file, includes the system-specific thread
15887         structures
15888         
15889         * threads-pthread-types.h:
15890         * threads-pthread-types.c: New files, handle pthread-specific
15891         synchronisation types
15892
15893         * threads-dummy-types.h: 
15894         * threads-dummy-types.c: New files of dummy support for
15895         thread-specific types
15896
15897         * metadata.c:
15898         * image.c:
15899         * pedump.c: include mono-endian.h not endian.h
15900         
15901         * Makefile.am: More threads files.
15902         Name mono-endian.h not endian.h
15903
15904 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
15905
15906         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
15907         stuff and implement a few more bits.
15908         * icall.c: a field needs to be dereferenced twice. Do not use the same
15909         name for two variables in the same scope.
15910         * image.c, image.h: cleanups.
15911
15912 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
15913
15914         * class.c (mono_class_metadata_init): bug fix: compute the right size
15915
15916 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
15917
15918         * icall.c: implemented some of the Reflection internalcalls.
15919         * image.c, image.h: start writing out the PE/COFF image.
15920         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
15921         that does the reverse than decode_blob_size ().
15922         * object.c: use mono_metadata_encode_value (). Move here
15923         temporary implementation of mono_string_to_utf8 ().
15924         * rawbuffer.c: make malloc_map static.
15925
15926 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15927
15928         * metadata.c: fix type comparison for arrays.
15929         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
15930         Added a couple of new classes to monodefaults.
15931         * icall.c: added a couple of Reflection-related internalcalls.
15932         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
15933         Added a byval_arg MonoType to MonoClass.
15934
15935 2001-09-28  Dick Porter  <dick@ximian.com>
15936
15937         * icall.c:
15938         * threads-pthread.h: 
15939         * threads-pthread.c: Implemented internal calls for
15940         LocalDataStoreSlot operations.  Applied mutexes around all shared
15941         data.  Reworked the thread creation and Start() operations to
15942         avoid a race condition.
15943         
15944         * threads-dummy.h:
15945         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
15946
15947 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
15948
15949         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
15950
15951 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
15952
15953         * class.c, loader.c: warn and return NULL instead of erroring out.
15954         * icall.c: added System.AppDomain::getCurDomain().
15955         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
15956
15957 2001-09-25  Dick Porter  <dick@ximian.com>
15958
15959         * threads-pthread.h:
15960         * threads-pthread.c: Implemented timed thread joining and added
15961         System.Threading.Thread::Join_internal internal call
15962
15963         * icall.c: Added System.Threading.Thread::Join_internal internal call
15964
15965         * threads-dummy.h:
15966         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
15967
15968 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
15969
15970         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
15971         mono_string_intern () to implement the semantics of the ldstr opcode
15972         and the interning of System.Strings.
15973         * icall.c: provide hooks to make String::IsIntern and String::Intern
15974         internalcalls.
15975
15976 2001-09-23  Dick Porter  <dick@ximian.com>
15977
15978         * threads-dummy.c: 
15979         * threads-dummy.h: New files of dummy threading routines
15980
15981         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
15982         support code based on system specifics
15983
15984         Rename PTHREAD_LIBS to THREAD_LIBS
15985         
15986 2001-09-23  Dick Porter  <dick@ximian.com>
15987
15988         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
15989         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
15990         internal calls.
15991         (mono_thread_init): Set up a Thread object instance to return when
15992         the main thread calls Thread.CurrentThread
15993         (mono_thread_cleanup): Wait for all subthreads to exit
15994
15995         * icall.c: New internal calls for System.Threading.Thread::Sleep
15996         (including Schedule) and CurrentThread
15997
15998         * threads.h: New file, to insulate thread-specific stuff from the
15999         rest of the code
16000
16001 2001-09-21  Dick Porter  <dick@ximian.com>
16002
16003         * threads-pthread.h: 
16004         * threads-pthread.c: New file, for handling pthreads-style
16005         threading support.  Start() now starts a new thread and executes
16006         the ThreadStart delegate instance.
16007
16008         * icall.c: Added the internalcall for
16009         System.Threading.Thread::Start_internal
16010
16011         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
16012
16013 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
16014
16015         * loader.c: work around the different signatures for delegates
16016         constructors csc generates in compiled code vs the ones compiled in mscorlib.
16017
16018 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
16019
16020         * class.h, class.c: add mono_class_get_field_from_name ().
16021         * *: Fix C comments and other ANSI C issues.
16022
16023 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
16024
16025         * endian.h, assembly.c: fix some endianness issues.
16026
16027 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
16028
16029         * loader.h, load.c: add delegate_class to mono_defaults.
16030         Handle runtime provided methods in mono_get_method ().
16031
16032 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
16033
16034         * loader.c (mono_get_method): use pinvoke for internal call
16035
16036         * icall.c: use pinvoke for internal call
16037
16038         * loader.c (method_from_memberref): set the method name
16039
16040 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
16041
16042         * metadata.c: help the compiler generate better code for
16043         mono_class_from_mono_type ().
16044
16045 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
16046
16047         * class.c (mono_class_metadata_init): delayed computing of the
16048         class size to mono_class_metadata_init ()
16049
16050 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
16051
16052         * class.c, class.h: add an interfaces member to MonoClass.
16053         * image.c, image.h: add assembly_name field to MonoImage
16054         from the assembly table.
16055         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
16056
16057 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
16058
16059         * class.c: Handle Array in mono_class_from_mono_type ().
16060         * metadata.c, pedump.c: some endian fixes.
16061
16062 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
16063
16064         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
16065         * metadata.c: fix small problem introduced with the latest commit.
16066
16067 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
16068
16069         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
16070         We don't need a MonoMetadata pointer anymore to compare signatures in
16071         mono_metadata_signature_equal (), update callers.
16072         Reduced memory usage an number of allocations for MonoMethodHeader and
16073         MonoMethodSignature.
16074
16075 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
16076
16077         * metadata.c: added compare for szarray.
16078
16079 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
16080
16081         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
16082         and add a couple more types to it and mono_defaults. Give an hint on
16083         classes that need implementing in our corlib and are referenced
16084         in mscorlib.
16085
16086 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
16087
16088         * class.h, class.c: keep track if a class is also an Enum.
16089         * loader.c: Implement a couple more types for use in libffi
16090         marshalling. Gives better diagnostics when failing to dlopen
16091         a library. Set method->klass for P/Invoke methods, too.
16092
16093 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
16094
16095         * class.c, class.h: add a MonoType this_arg to MonoClass that
16096         represents a pointer to an object of the class' type that
16097         can be used by the interpreter and later the type cache.
16098         Add best guess alignment info for valuetype objects.
16099
16100 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
16101
16102         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
16103         into MonoType: one less level of indirection and allocation and
16104         simplifies quite a bit of code. Added cache for MonoTypes that are
16105         used frequently, so that we don't need to allocate them all the time.
16106
16107 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
16108
16109         * class.c (mono_class_create_from_typedef): System.Enum is also a
16110         value type, although it does not derive from System.ValueType
16111         (maybe a bug in the ms compiler?)
16112
16113         * metadata.c (mono_type_size): return the right size for value types
16114
16115         * loader.c (mono_get_method): only initialize method header if not abstract
16116
16117         * class.c (mono_class_from_mono_type): use mono_default values. 
16118
16119 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
16120
16121         * *: use MonoClass pointers instead of <type_tokens>
16122         
16123         * class.h: new flag: metadata_inited.
16124
16125         * class.c (mono_class_metadata_init): impl.
16126         (mono_class_instance_size): impl.
16127         (mono_class_data_size): impl.
16128
16129 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
16130
16131         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
16132         MonoClass now has the name and name_space fields. 
16133         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
16134         mono_get_method () takes and optional MonoClass as argument.
16135         Removed mono_typedef_from_name() and added mono_class_token_from_name()
16136         instead that takes advantage of a map from class names to typedef
16137         tokens in MonoImage.
16138
16139 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
16140
16141         * metadata.c: zero is not a valid alignment boundary.
16142         Merge MONO_TYPE_VOID in default decoding code.
16143
16144 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
16145
16146         * image.h: merged MonoMetadata into MonoImage
16147
16148         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
16149         identify the type of elements.
16150
16151 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
16152
16153         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
16154         * cil-coff.h: split MonoMSDOSHeader and add size info.
16155         * image.c: add some consistency checks.
16156         * metadata.c: fix row size computation: one programmer
16157         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
16158         add explanation for the locator routine.
16159         Fix decoding of size in method header.
16160         
16161 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
16162
16163         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
16164         (g_concat_dir_and_file): Bring g_concat_dir_and_file
16165         function from gnome-libs.  This uses the right path separator
16166         based on the OS, and also works around a bug in some systems where
16167         a double slash is not allowed. 
16168         (default_assembly_name_resolver): Use g_concat_dir_and_file
16169         (mono_assembly_open): ditto.
16170
16171 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
16172
16173         * metadata.c (mono_metadata_signature_equal): impl.
16174
16175         * *: void is now a realy MonoType (instead of using NULL)
16176         
16177         * metadata.c (do_mono_metadata_parse_type): use
16178         mono_metadata_parse_type to parse void value.
16179
16180 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
16181
16182         * metadata.c, metadata.h: in the signature and method header store
16183         only the space required for holding the loca vars and incoming arguments.
16184
16185 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
16186
16187         * metadata.c (do_mono_metadata_parse_type): treat void like any
16188         other type (instead of assigning NULL);
16189
16190 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
16191
16192         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
16193
16194 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
16195
16196         * image.c (do_mono_image_open): added a cache for arrays.
16197
16198 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
16199
16200         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
16201         decode a single column from a row in a metadata table and changes
16202         to take advantage of it in the typedef locator (gives a nice speed up).
16203         Store offset info for function params.
16204
16205 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
16206
16207         * image.h (MONO_IMAGE_IS_CORLIB): removed 
16208
16209 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
16210
16211         * assembly.c: how could mono_assembly_close () had ever worked?
16212         * metadata.c, metadata.h: provide offset info for local vars.
16213         Implement mono_type_size () to take care of alignment as well
16214         as size (it was mono_field_type_size in cli/class.c before).
16215
16216 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
16217
16218         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
16219
16220         * assembly.h (CORLIB_NAME): set to corlib.dll
16221
16222         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
16223
16224 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
16225
16226         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
16227         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
16228         tokentype.h: massive namespace cleanup.
16229
16230 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
16231
16232         * metadata.h, metadata.c: decode exception clauses when parsing method header.
16233
16234 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
16235
16236         * metadata.c (mono_metadata_free_type): added check for type !=
16237         NULL (void) before calling mono_metadata_free_type()
16238
16239 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
16240
16241         * metadata.h, row_indexes.h: added header with enumerations to use
16242         to index in the columns from tables in metadata and to decode coded
16243         tokens: we should start using this instead of embedding magic numbers
16244         all over the code.
16245
16246 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
16247
16248         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
16249         Move metadata_t info from cli_image_info_t to MonoImage, where
16250         it's easily accessible. Changed all the uses accordingly.
16251         Added the method and class caches to MonoImage.
16252         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
16253         and mono_metadata_decode_value () signature to be more consistent
16254         with the other parse functions (and simplify code). Taken advantage
16255         of zero-length array allocation with GCC. Removed reduntant (and
16256         wrong) MonoFieldType struct and use MonoParam instead. Changed
16257         mono_metadata_parse_field_type () to use common code for parsing.
16258         Added mono_metadata_typedef_from_field () and
16259         mono_metadata_typedef_from_method () to lookup a typedef index from a
16260         field or method token.
16261         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
16262
16263 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
16264
16265         * metadata.c (mono_metadata_parse_field_type): Implement. 
16266         (do_mono_metadata_parse_type): Split engine from
16267         mono_metadata_parse_type, so that we can create smaller structures
16268         for things that just have one pointer to the MonoType (look at
16269         the MonoFieldType)
16270
16271 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
16272
16273         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
16274         as Jan Gray found out, it is incorrect. 
16275
16276 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
16277
16278         * assembly.c: Implement asssembly loading.  This loads an image
16279         and loads all the referenced assemblies.  Come to think of it, we
16280         could always do lazy loading of the assemblies. 
16281
16282         * image.c (mono_image_open): Keep loaded images in a hashtable.
16283
16284         * image.h (MonoImage): Add reference count.
16285
16286 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
16287
16288         * assembly.c (mono_assembly_open): Keep track of the file name in
16289         case the assembly has no ASSEMBLY table.
16290
16291         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
16292         from get.c here.
16293
16294 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
16295
16296         * metadata.c, metadata.h: decode local vars in method header
16297         parse function. Change callers accordingly.
16298
16299 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
16300
16301         * metadata.h, cil-coff.h: protect against multiple inclusion.
16302         Added some new structures to hold information decoded from metadata:
16303         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
16304         and relevant decoding/free functions.
16305         * metadata.c: implement decoding functions. Add warning for out of bounds
16306         index in mono_metadata_locate(). Implement mono_get_method () to retreive
16307         all the info about a method signature and invocation. Remove check on
16308         uninitialized local var in parse_mh() and fix memory leak.
16309
16310 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
16311
16312         * metadata.h: More macros.
16313
16314         * tokentype.h: New file.
16315
16316 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
16317
16318         * assembly.c: added a consistency check and initialize
16319         some structures with g_new0().
16320         * metadata.c: fixed a couple more bugs in table size computation
16321         and add other checks for out-of bound access to metadata.
16322
16323 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
16324
16325         * metatada.c: fix bugs computing table sizes. Spew a
16326         warning when index in string heap is out of bounds.
16327
16328 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
16329
16330         * metadata.h: Add a couple of macros to manipulate tokens. 
16331
16332 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
16333
16334         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
16335         cli_section_tables).
16336
16337 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
16338
16339         * metadata.c (mono_metadata_user_string): New function, provides
16340         access to the UserString heap. 
16341
16342 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
16343
16344         * metadata.c: Add inline documentation.
16345
16346 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
16347
16348         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
16349         files. 
16350
16351 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
16352
16353         * typeattr.h: New file, TypeAttribute flags. 
16354
16355 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
16356
16357         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
16358         mono_assembly_ensure_section): Section loading code.
16359         (load_section_tables): Load the sections.
16360
16361         * mono/metadata/metadata.c (mono_metadata_locate_token,
16362         mono_metadata_locate): Functions to locate the information
16363         definition given a token or a table and an index.
16364         (mono_metadata_compute_table_bases): New.
16365         (compute_size): New function to compute the sizes of the various
16366         tables.
16367
16368         * mono/metadata/metadata.h: Finish listing the different index
16369         types. 
16370
16371         * mono/metadata/pedump.c: Improve to dump new information.
16372
16373 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
16374
16375         * mono/metadata/metadata.c: Entered all the tables matching
16376         Beta2. 
16377
16378         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
16379
16380