ccc074a2cc59a41fde68805cf60c33535d643ac1
[mono.git] / mono / metadata / ChangeLog
1 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
2
3         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
4
5 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
6
7         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
8         version macros.
9
10 2008-03-20  Mark Probst  <mark.probst@gmail.com>
11
12         * generic-sharing.c, class-internals.h: Code for putting
13         reflection types into the runtime generic context.
14
15 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
16
17         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
18         Fixes #340662. 
19
20
21 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
22
23         * verify.c (VerifyContext): Added instruction prefix data to the struct.
24
25         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
26
27         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
28
29         * verify.c (do_cast): Let the result value keep the boxed status.
30
31         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
32
33 2008-03-17  Jb Evain  <jbevain@novell.com>
34
35         * reflection.c: when running on a 2.0 runtime, emit
36         unconditionally the #~ header version as 2.0, and the
37         CLI header version as 2.5, for symmetry's sake with csc.
38
39 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
40
41         * class.c: Remove the unused cache_interface_offsets stuff.
42
43         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
44         profiler.c: Fix warnings.
45
46 2008-03-16  Mark Probst  <mark.probst@gmail.com>
47
48         * generic-sharing.c, class-internals.h: Support for putting
49         methods into the runtime generic context.
50
51 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
52
53         * class.c (mono_class_setup_fields): Ignore calls made to this function for
54         classes which are generic instances of not-yet finished typebuilders. Fixes
55         #351172.
56
57         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
58
59 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
60
61         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
62
63         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
64         field, replace it with a hash table in MonoDynamicImage.
65
66         * reflection.c (inflate_mono_method): Access the generic definition object from
67         image->generic_def_objects instead of imethod->reflection_info.
68
69         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
70
71         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
72         
73         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
74         function in reflection.c so it is easier to keep in sync with the dynamic image
75         creation code.
76
77         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
78         mono_image_close ().
79
80 2008-03-15  Mark Probst  <mark.probst@gmail.com>
81
82         * class.c (mono_class_generic_sharing_enabled): Disable generic
83         sharing for all architectures except AMD64 and x86 to fix build.
84
85 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
86
87         * verify.c: Use the generic definition MonoGenericContext when available.
88         Remove code for checking generics instance compatibility in favor of
89         mono_class_is_assignable_from.
90
91 2008-03-14  Mark Probst  <mark.probst@gmail.com>
92
93         * marshal.c, marshal.h, metadata-internals.h, image.c,
94         wrapper-types.h: New wrapper for invoking a shared static method
95         without having to pass the runtime generic context argument.
96
97 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
98
99         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
100
101 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
102
103         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
104         
105         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
106         create a token from a FieldOnTypeBuilderInst.
107         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
108         (resolve_object): Ditto.
109
110         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
111         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
112
113 2008-03-14  Martin Baulig  <martin@ximian.com>
114
115         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
116
117         * debug-mono-symfile.h
118         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
119         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
120
121 2008-03-10  Martin Baulig  <martin@ximian.com>
122
123         * debug-mono-symfile.h
124         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
125         `lexical_block_table_offset'.
126         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
127         `lexical_blocks'.
128         (MonoSymbolFile): Added `version'.
129
130         * mono-debug.h
131         (MonoDebugLexicalBlockEntry): Removed.
132         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
133         `lexical_blocks'.
134
135         * mono-debug.c (mono_debug_add_method): Don't compute lexical
136         blocks here; the debugger now does this internally.
137
138 2008-02-27  Martin Baulig  <martin@ximian.com>
139
140         * object.c (mono_runtime_exec_main): Call
141         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
142         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
143
144 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
145
146         * verify.c (verify_type_compatibility_full): Allow native int to be converted
147         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
148
149 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
150
151         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
152         ldftn with a virtual method.
153
154 2008-03-13  Geoff Norton  <gnorton@novell.com>
155
156         * decimal.c:  Only include memory.h if the platform has it.
157
158 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
159
160         * assembly.c, class.c, metadata-internals.h: make sure public key
161         tokesns are compared in a case-insensitive way. Also, all
162         the lookups in the GAC use a lowercase public key token
163         (gaacutil already does the lowercasing on install). Fixes
164         bug #369541.
165
166 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
167
168         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
169         and return value.
170
171 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
172
173         * image.c: when someone loads a mscorlib from a file, return the
174         currently loaded mscorlib (fixes bug #369253).
175
176 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
177
178         * class.c: handle types with no parents by forcing them to have
179         System.Object as a parent and marking them as broken (this currently
180         allows the first part of bug #369173 to work as well, likely because
181         we don't check for typeload exceptions everywhere yet).
182
183 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
184
185         * class.c: more complete check that types belong to corlib
186         (fixes second part of bug #369173).
187
188 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
189
190         * generic-sharing.c:  Including glib.h for the MSVC builds to define
191           "inline" to "__inline" before including mono-membar.h.
192           
193         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
194           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
195           MSVC builds.
196
197         Contributed under MIT/X11 license.
198
199 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
200
201         * verify.c (do_invoke_method): Remove return type validation.
202
203         * verify.c (do_ret): Do return type validation at return site instead of
204         call site.
205
206 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
207
208         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
209
210         * verify.c: Some todos cleaned and improved a few error messages.
211
212 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
213
214         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
215
216 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
217
218         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
219         system types correctly.
220
221         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
222         function.
223
224 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
225
226         * assembly.c (build_assembly_name): Fix a warning.
227
228 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
229
230         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
231         the called function takes an object type argument. Fixes storing or
232         valuetypes across remoting as well as reducing memory usage.
233         * image.c, metadata-internals.h: remove now unused ldfld_remote and
234         stfld_remote wrapper caches.
235
236 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
237
238         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
239         is not found.
240
241         * reflection.c (mono_image_register_token): New helper function to save
242         a token->object mapping.        
243
244         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
245         managed code.
246
247         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
248         one dimension arrays. Fixes #367670.
249         (mono_reflection_get_type_internal): Ditto.
250
251 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
252
253         * marshal.c: mono_load_remote_field_new() always returns object.
254         so use the proper signature (fixes bug #366445).
255
256 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
257         
258         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
259         add an 'inline_failure' flag instead.
260
261 2008-03-04  Mark Probst  <mark.probst@gmail.com>
262
263         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
264         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
265         contains the location of "this", used for exception handling.
266
267 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
268
269         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
270         their size on all platforms for perf reasons.
271
272 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
273
274         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
275         object-internal.h
276
277         * object-internal.h: Same.
278
279 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
280
281         * reflection.h: Fix the build I just broke.
282
283 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
284
285         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
286         Test if a token is valid, this remove explicit usage of 
287         MonoDynamicImage::tokens from the verifier code.
288
289         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
290
291         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
292         instead of direct access to MonoDynamicImage::tokens.
293
294 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
295
296         * verify.c (token_bounds_check): Fix the build I just broke.
297
298 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
299
300         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
301
302         * verify.c (verifier_load_method): Fixed the errors message.
303
304         * verify.c (mono_method_verify): Fixed a debug message.
305
306 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
307
308         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
309         mono-perfcounters.h, class-internals.h: support for predefined
310         writable counters, query of categories and counters, bugfixes.
311
312 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
313
314         * verify.c (do_refanytype): Verify the refanytype opcode.
315
316         * verify.c (mono_method_verify): Use do_refanytype.
317
318 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
319
320         * verify.c (do_mkrefany): Verify the mkrefany opcode.
321
322         * verify.c (mono_method_verify): Use do_mkrefany.
323
324 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
325
326         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
327         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
328         implementation.
329
330 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
331
332         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
333         the type load exception.
334
335 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
336
337         * verify.c: Added a few FIXME for method signatures
338
339         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
340         of mono_method_get_signature and get vararg call working. Removed unused
341         checks for return value.
342
343         * verify.c (do_refanyval): Verify the refanyval opcode.
344
345         * verify.c (mono_method_verify): Implemented verification of arglist and
346         use do_refanyval.
347
348 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
349
350         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
351         vtypes to marshal.c.
352
353         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
354         it works for AOT as well.
355
356 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
357
358         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
359         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
360         the system time is adjusted.
361
362 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
363
364         * icall.c, icall-def.h: use the new time functions (fixes the
365         non-monotonic behaviour of TickCount).
366
367 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
368
369         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
370         it breaks the build.
371         
372         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
373         cattr is not finished yet.
374
375 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
376
377         * verify.c: Proper token validation for field, method and type.
378
379 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
380
381         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
382
383         * loader.c (method_from_memberref): Generate type load error instead of method missing
384         if the type is not found.
385
386 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
387
388         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
389         some of the conversions caused the generation of a marshal directive exception.
390
391 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
392
393         verify.c: Report which exception should be thrown by the JIT.
394         Added a lot of FIXME notes.
395
396 2008-02-22  Mark Probst  <mark.probst@gmail.com>
397
398         * generic-sharing.c: Runtime generic context slots are not
399         instantiated on init anymore.  Instead, provide function to do the
400         instantiating on demand.
401
402         * class-internals.h: Added vtable to runtime generic context.
403         Macros for encoding direct and indirect slot offsets in one
404         guint32.
405
406 2008-02-21  Mark Probst  <mark.probst@gmail.com>
407
408         * object.c, generic-sharing.c: Moved some generic sharing code
409         from object.c to generic-sharing.c.
410
411         * generic-sharing.c: Added support for extensible runtime generic
412         context.
413
414         * metadata-internals.h: Two new hash tables in MonoImage for
415         extensible runtime generic context support.
416
417         * domain.c: Unregister generic vtables upon domain unloading.
418
419         * image.c: Destroy new hash tables upon image unloading.
420
421         * metadata.c: Unregister generic subclasses upon image unloading.
422
423         * class-internals.h: New data structure for runtime generic
424         context template.  New fields in the runtime generic context for
425         extensible part.
426
427         * Makefile.am: Added generic-sharing.c.
428
429 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
430
431         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
432         there is a pending loader exception, raise it.
433
434         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
435         same.
436
437         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
438         same.
439
440         Fixes #363450.
441
442 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
443
444         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
445
446         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
447         
448         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
449         ref-only requests for compatibility with MS.
450
451 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
452
453         * reflection.c (mono_custom_attrs_from_method): Don't silently
454         return an empty list for generic method instances.
455         (mono_custom_attrs_from_param): Likewise.
456
457 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
458             Raja R Harinath  <harinath@hurrynot.org>
459
460         Fix #354757
461         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
462         * class.c (mono_class_inflate_generic_method_full): Initialize it
463         when a fully-open method is instantiated.
464         * metadata.c (inflated_method_equal, inflated_method_hash): Update
465         to new field.
466         * reflection.c (inflate_mono_method): Don't create a temporary context.
467
468 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
469
470         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
471         Compute correct value, to prepare for imethod->reflection_info going away.
472
473 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
474
475         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
476
477 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
478
479         * verify.c: Implement skip visibility flag.
480
481 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
482
483         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
484         which contains an extra field to tell the kind of exception that should be thrown.
485
486         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
487
488 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
489
490         * loader.c (mono_method_get_param_names): Initialize 'klass' after
491         'method' is updated.
492
493 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
494
495         * class.c (mono_class_layout_fields): Set class->min_align for classes using
496         explicit layout as well. Fixes #360375.
497
498 2008-02-11  Geoff Norton  <gnorton@novell.com>
499
500         * loader.c: Guard and dereference against inflated generic methods
501
502 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
503
504         * class.c: Include Retargetable spec in assembly name.
505         * assembly.c: Always include PublicKeyToken spec in assembly name
506         (with value "null" if assembly is not signed), and include
507         Retargetable spec.
508         * icall-def.h: Added icall for Assembly.get_fullname.
509         * icall.c: Added icall returning the fullname of an assembly.
510
511 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
512
513         * class.c (mono_class_setup_vtable_general): Add a missing call to
514         mono_class_setup_methods () which is needed in the AOT case.
515
516 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
517
518         * verify.c (mono_type_get_stack_name): Added. Return the name for the
519         stack type of the given MonoType.
520
521         * verify.c (verify_type_compatibility_full): Handle the void type.
522
523         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
524         way stack merging works.
525
526         * verify.c (store_local): Improved verification message.
527
528         * verify.c (do_branch_op): If the merging is invalid, the method
529         is unverifiable and not invalid. Improved error message.
530
531         * verify.c (merge_stacks): Properly merge a boxed valuetype and
532         a reference type diferent than System.Object. Improved error
533         message.
534
535 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
536
537         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
538
539         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
540         type of an enum even if the argument is byref.
541
542         * verify.c: Replace all explicit uses of enumtype and enum_basetype
543         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
544
545         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
546
547         *verify.c (verify_type_compatibility_full): Make enum types
548         compatible with their base types.
549
550         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
551         types are compatible for the special case of a boxed valuetype and
552         System.Object.
553
554         * verify.c (verify_stack_type_compatibility): The function
555         is_compatible_boxed_valuetype was extracted from here.
556
557         * verify.c (push_arg): Only set ctx->has_this_store if the method
558         is not static.
559
560         * verify.c (do_ldelem): Fixed a typo in an error message and added
561         strict check for mixing int32 and native int as the array type
562         and ldelem type.
563
564         * verify.c (merge_stacks): Consider boxed valuetypes in the
565         compatibility checks.
566
567 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
568         * profiler.h: (MonoGCEvent): Added start-stop the world events.
569
570 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
571         *class.c: use_new_interface_vtable_code: renamed the env var to have
572         a "MONO_" prefix, and fix the logic to enable it by default.
573
574 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
575         *class.c:
576         mono_class_setup_vtable_general: rewrote the way in which interface
577         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
578         makes the code more maintainable.
579         For now the old code is still there, and can be activated setting
580         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
581
582 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
583
584         * verify.c: guarded some debug functions around and #ifdef.
585
586         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
587
588 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
589
590         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
591         changes for now since they seem to break too many things.
592
593 2008-02-05  Mark Probst  <mark.probst@gmail.com>
594
595         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
596         mono_marshal_find_nonzero_bit_offset): Added macro and function
597         for finding the byte- and bit-offset of a bitfield within a
598         struct.
599
600 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
601
602         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
603         (mono_marshal_get_struct_to_ptr): Ditto.
604
605         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
606         cctor_signature.
607
608 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
609
610         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
611         between methods for non-corlib types.
612
613 2008-02-02  Geoff Norton  <gnorton@novell.com>
614
615         * loader.c (mono_method_get_param_names): Populate the parameter name for 
616         generic parameters as well. (Fixes #342536)
617
618 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
619
620         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
621
622         * verify.c (do_invoke_method): Fix for calling with byref structs.
623
624         * verify.c (do_cast): push a boxed value type based on the type token and not
625         the type of stack.
626
627 2008-01-31  William Holmes  <billholmes54@gmail.com>
628
629         * process.c (process_module_string_read): Check the size returned form 
630           VerQueryValue to avoid out of memory exception. 
631
632 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
633
634         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
635         Handle properly modules which are not in the moduleref table. Fixes
636         #356938.
637
638 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
639
640         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
641         the dynamic case which is now in managed code.
642         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
643
644         * marshal.c (mono_string_to_bstr): Fix a warning.
645         (init_com_provider_ms): Ditto.
646
647         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
648
649         * exception.c (mono_get_exception_out_of_memory): New helper function.
650
651 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
652
653         * marshal.c: Add support for BSTR marshalling
654         using other COM systems.
655
656         Code is contributed under MIT/X11 license.
657
658 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
659
660         * object.c (mono_runtime_invoke_array): reverted previous
661         commit as it breaks the build.
662
663 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
664
665         * object.c (mono_runtime_invoke_array): Verify arguments for
666         invalid types. Fixes #348522.
667
668 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
669
670         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
671         non-final virtual calls using call. 
672
673         * verify.c (do_invoke): fixed some TODOs.
674
675         * verify.c (push_arg): set has_this_store for "ldarga 0".
676
677 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
678
679         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
680         which belong to an inflated class. Fixes #356531.
681
682 2008-01-26  Robert Jordan  <robertj@gmx.net>
683
684         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
685         which resort to FindFirstFile when a certain error condition
686         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
687         Code is contributed under MIT/X11 license.
688
689 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
690
691         * marshal.c (emit_marshal_string): Fix out string marshalling
692         to use specified encoding. Fixes #323900.
693
694         Code is contributed under MIT/X11 license.
695
696 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
697
698         * class.c (mono_class_inflate_generic_method_full): Don't modify
699         iresult->context after cache check.
700
701 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
702
703         * class.c (mono_class_inflate_generic_method_full): Change the
704         struct assignments to memcpy for better visibility and add some comments.
705
706 2008-01-23  Dick Porter  <dick@ximian.com>
707
708         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
709         procedure, and make it work on windows.
710
711 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
712
713         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
714         a MonoReflectionTypeBuilder since it is always of that type.
715
716         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
717
718         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
719
720         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
721         
722         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
723
724         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
725
726         * reflection.c (mono_reflection_create_runtime_class): Remove already created
727         instantiations from the type cache.
728
729 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
730
731         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
732
733         * verify.c (do_unbox_value): push a controled mutability managed pointer.
734
735 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
736
737         * verify.c (do_ldstr): added, verifies if the #US token is valid.
738
739         * verify.c (mono_method_verify): removed old TODO
740
741 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
742
743         * verify.c (do_newobj): add visibility check.
744
745 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
746
747         * verify.c (do_load_function_ptr): add visibility check.
748
749 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
750         *class.c:
751         mono_generic_class_get_class: hook profiler events.
752         mono_field_get_offset: added to support heap-shot in the new profiler.
753         *class.h: exported mono_field_get_offset.
754         * reflection.c:
755         mono_reflection_setup_internal_class: hook profiler events.
756
757 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
758
759         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
760         argument here too and use it to avoid checking for pending exceptions if 
761         possible.
762
763 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
764
765         * assembly.c (build_assembly_name): add arg for passing the assembly
766         flags. Do not consider a PublicKey with value "null" valid.
767         (mono_assembly_name_parse_full): added boolean argument that will be
768         set if the assembly name contains a PublicKeyToken spec. Added support
769         for the Retargetable spec for which only Yes or No are allowed as valid
770         value. Consider assembly name invalid if Retargetable spec is set, but
771         either version, culture or public key (token) are not specified.
772         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
773         with implementation in assembly.c.
774         * icall.c (fill_reflection_assembly_name): also copy assembly flags
775         from MonoAssemblyName.
776         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
777         introduced argument for mono_assembly_name_parse_full to know if the
778         assembly name has a PublicKeyToken spec, and if it has instruct
779         fill_reflection_assembly_name to use default value for keyToken (if
780         PublicKeyToken is null).
781
782 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
783
784         * verify.c (mono_method_verify): fixed ovf ops with
785         float values. They are unverifiable now.
786
787 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
788
789         * class.c (set_failure_from_loader_error): add BadImageException to the
790         list of exceptions that can cause a type to fail to load.
791
792         * class.c (mono_class_get_exception_for_failure): same.
793
794 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
795
796         * verify.c (in_any_exception_block): added, check if offset
797         is part of any exception handling clause.
798
799         * verify.c (get_stack_type): added VAR and MVAR types.
800
801         * verify.c (do_stobj): better error messages.
802
803         * verify.c (do_cpobj): added, check cpobj.
804
805         * verify.c (do_initobj): added, check initobj.
806
807         * verify.c (do_sizeof): added, check sizeof.
808
809         * verify.c (do_localloc): added, check localloc.
810
811         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
812
813 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
814
815         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
816         save_lmf/restore_lmf opcodes.
817
818         * threads.c (mono_threads_install_notify_pending_exc): New function to
819         install a callback notifying the JIT there is a pending exception on a thread.
820         (mono_thread_request_interruption): Call the new callback.
821         (mono_thread_get_and_clear_pending_exception): New function to return the
822         exception pending on a thread.
823
824         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
825         to turn off checking for pending exceptions.
826         (mono_marshal_get_native_wrapper): Ditto.
827
828 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
829
830         * threads-types.h: Get rid of the unnecessary extern declarations.
831
832 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
833
834         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
835         return field from parent class if not private.
836         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
837         returns fields from parent class if they are not private.
838         (method_nonpublic): added function to determine if a given method
839         should be considered non-public. Returns false for private methods
840         on parent class, and internal methods from parent on the 1.0 profile.
841         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
842         use method_nonpublic function to determine whether method should be
843         returned.
844         (property_accessor_public): use newly introduced method_nonpublic
845         function to determine whether accessor is non-public. 
846         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
847         event from parent class if not private. Only return static event if
848         Static flag is set, and only return static event from parent class if
849         FlattenHierarchy flag is set.
850         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
851         include non-private events from parent class.
852
853 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
854
855         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
856         warning.
857
858 2008-01-16  Wade Berrier <wberrier@novell.com>
859
860         * security.c: Add assembly.h header to appease some warnings
861
862 2008-01-16  Dick Porter  <dick@ximian.com>
863
864         * process.c (process_module_string_read): Remove trailing null
865         when saving string.
866
867 2008-01-16  Mark Probst  <mark.probst@gmail.com>
868
869         * class-internals.h: A new data structure describing the layout of
870         a runtime generic context (MonoRuntimeGenericContextTemplate).
871
872         * metadata-internals.h: Added a hash table to MonoDomain that maps
873         from open generic classes to their runtime generic context
874         templates.
875
876         * object.c: Building of the runtime generic context, including
877         proper handling of generic type arguments of superclasses.
878         Building of the runtime generic context according to the template.
879
880 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
881
882         * class.c (mono_class_setup_fields): Set field.count for generic instances.
883         Fixes #350856.
884
885         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
886         mono_portability_find_file (). Fixes #325466.
887         (mono_image_get_public_key): Fix a warning.
888
889 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
890
891         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
892         Fixes #353550.
893         (mono_class_from_name_case): Ditto.
894
895 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
896
897         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
898           common storage for the tables used in the System/NumberFormatter class.
899
900 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
901
902         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
903
904 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
905
906         * verify.c (get_boxable_mono_type): check if the token is valid.
907
908         * verify.c (set_stack_value): changed to add an error if an
909         invalid type is set on stack. Changed all callers due to signature change.
910
911         * verify.c (do_stobj): implement stobj validation.
912
913 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
914
915         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
916         set container->is_method, it was set earlier.
917
918         * metadata.c (type_in_image): Handle MVARs which belong to not finished
919         generic methods.
920
921         * reflection.c (mono_reflection_initialize_generic_parameter): Set
922         is_method of the generic container to TRUE for methods.
923
924 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
925
926         * metadata.c (type_in_image): Handle type parameters properly.
927
928         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
929         memory ownership of this structure.
930
931 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
932
933         * verify.c (get_boxable_mono_type): make typedref types been just
934         unverifiable. check for void type.
935
936         * verify.c (do_unbox_any): added, verify opcode unbox.any.
937
938         * verify.c (do_load_function_ptr): accept method spec tokens.
939
940 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
941
942         * marshal.c (mono_class_native_size): Always set *align even if this is called
943         recursively.
944
945 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
946
947         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
948         out-of-date.
949
950 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
951
952         * verify.c: removed some old unused tables. A huge bunch of small fixes
953         to things found while testing the verifier with mono basic.
954
955         * verify.c (dump_stack_value): dump null literal flag to.
956
957         * verify.c (verify_type_compatibility_full): fix comparison
958         for types that have a generic super type.
959
960         * verify.c (verify_stack_type_compatibility): fix compatibility
961         between null literals and reference types. fix compatibility between
962         boxed valuetypes and object. fix corner case test for enums.
963
964         * verify.c (do_cmp_op): proper verification of cgt.un in case
965         of reference types.
966
967         * verify.c (do_invoke_method): fix error message.
968
969         * verify.c (do_store_indirect
970
971         * verify.c (check_is_valid_type_for_field_ops): proper verification
972         of managed pointers to valuetypes and boxed valuetypes. proper verification
973         of null literals.
974
975         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
976         allow token to be a reference type.
977
978         * verify.c (do_cast): proper handling of boxes valuetypes.
979
980         * verify.c (do_stelem): proper handling of storing a boxed valuetype
981         in object[].
982
983         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
984         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
985         fixed the decoding of unbox_any
986
987 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
988
989         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
990
991 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
992
993         * verify.c (do_newobj): do delegate verification.
994
995         * verify.c (verify_delegate_compatibility): perform delegate
996         verification.
997
998         * verify.c (verify_ldftn_delegate): perform tests related to
999         ldftn delegates.
1000
1001         * verify.c (mono_delegate_signature_equal): perform the
1002         slightly diferent signature comparison required by delegates.
1003
1004         * metadata.c (mono_metadata_type_equal_full): added and exported
1005         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
1006         allows signature only comparison.
1007
1008         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
1009         as MONO_INTERNAL.
1010
1011 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
1012
1013         * verify.c: added a bunch of stack_slot_* functions to
1014         make access to stack slot type easier. This is required to
1015         allow optional flags, like null literal, boxed value and
1016         this pointer.
1017         All access paths to IlStackDesc::stype have been changed 
1018         to use these new funcions.
1019         Removed a bunch of unused functions and cleared all warnings.
1020         This patch introduces the usage of the this pointer and 
1021         boxed value flags.
1022
1023 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
1024
1025         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
1026
1027 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
1028
1029         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
1030         match managed version.
1031
1032         * appdomain.c: Bump corlib version.
1033         
1034         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
1035         argument.
1036
1037 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
1038
1039         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
1040         Set public key token to zero-length byte array if assembly is not
1041         strongnamed.
1042
1043 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
1044
1045         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
1046         writing a vtype array elem.
1047
1048 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1049
1050         * assembly.c (build_assembly_name): return FALSE if length of token is
1051         not 16 (if not "null").
1052         (mono_assembly_name_parse_full): return FALSE if value of version,
1053         culture, token or key is 0.
1054         * icall.c (fill_reflection_assembly_name): add boolean arguments to
1055         specify whether public key and public key token must be set to default
1056         value (zero-length byte array) if not available. Set versioncompat to
1057         SameMachine. If public key is available or the default is set, then
1058         set PublicKey flag.
1059         (ves_icall_System_Reflection_Assembly_FillName): if no public key
1060         is available, use empty byte array as default value. On the 2.0
1061         profile, use default value for public key token if not set.
1062         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
1063         profile, use default value for public key if not set. On the 2.0
1064         profile, use default value for public key token if not set.
1065         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
1066         default values for public key and public key token.
1067
1068 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
1069
1070         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
1071         field to keep it in synch with the managed object.
1072
1073         * marshal.c (emit_marshal_object): Add support for byref marshalling of
1074         delegates. Fixes #351520.
1075
1076         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
1077         contains defined memory.
1078         
1079         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
1080
1081         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
1082         
1083         * sgen-gc.c (check_consistency): New helper function to do a consistency check
1084         of the GC data structures.
1085
1086         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
1087
1088         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
1089         
1090         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
1091         barrier.
1092         (mono_array_clone_in_domain): Ditto.
1093         (mono_array_clone_in_domain): Ditto.
1094
1095         * threads.c (start_wrapper): Register the thread start argument as a GC root.
1096         (cache_culture): Use a write barrier.
1097
1098         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
1099         (ves_icall_get_property_info): Ditto.
1100
1101         * object.h (MONO_STRUCT_SETREF): New macro.
1102
1103         * class-internals.h (MonoStats): Add some GC statistics.
1104
1105         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
1106
1107 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
1108
1109         * exception.c (mono_exception_from_name_two_strings):
1110         Break from loop after method is found.
1111
1112 2008-01-04  Dick Porter  <dick@ximian.com>
1113
1114         * process.c (process_module_string_read): Rename variable to
1115         reflect correct usage, after fixing bug 345972.
1116
1117 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
1118
1119         * verify.c (mono_type_create_fnptr_from_mono_method): 
1120         created a MonoType function pointer instance to be used during
1121         verification. The verifier releases this memory at end.
1122
1123         * verify.c (mono_method_is_constructor): extracted repeated
1124         checks for constructor into a single class.
1125
1126         * verify.c (do_push_field): use new extracted method
1127         for constructor check.
1128
1129         * verify.c (do_newobj): same.
1130
1131         * verify.c (do_ldftn): renamed to do_load_function_ptr
1132         and make it verify ldvirtftn too.
1133
1134         * verify.c (mono_method_verify: proper verification
1135         of ldvirtftn. release created MonoMethod instances.
1136
1137 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
1138
1139         * verify.c (token_bounds_check): added.
1140
1141         * verify.c (do_ldftn): added.
1142
1143         * verify.c (mono_method_verify): proper verificartion of ldftn.
1144
1145 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
1146
1147         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
1148         than the table row count. It's the resposibility of the caller to
1149         make the bounds check and raise the correct error.
1150
1151         * metadata.c (mono_metadata_decode_row_col): Same.
1152
1153         * loader.c (mono_get_method_from_token): perform bounds check
1154         on token for methoddef table.
1155
1156 2007-12-29  Miguel de Icaza  <miguel@novell.com>
1157
1158         * icall.c
1159         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
1160         assert into a negative result, the managed code already coped with
1161         that.
1162
1163         Some folks on Windows reported this error. 
1164
1165 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
1166
1167         * appdomain.c: Bump corlib version.
1168         * icall.c:
1169         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
1170         CultureInfo.CreateCulture to create CultureInfo for name.
1171         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
1172         create CultureInfo for name. Fixes bug #347174.
1173
1174 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
1175
1176         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
1177         flags.
1178
1179         * verify.c (is_valid_branch_instruction): allow branching to the
1180         first instruction of the protected block.
1181
1182         * verify.c (is_valid_cmp_branch_instruction): same.
1183
1184         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
1185         avoid double initialization.
1186
1187         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
1188         detect which cases the eval stack should just be copied.
1189
1190         * verify.c (mono_method_verify): check if the eval stack
1191         is empty when entering a protected block.
1192
1193 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
1194
1195         * verify.c: added is_clause_in_range, is_clause_inside_range,
1196         is_clause_nested and verify_clause_relationship. They perform
1197         the verifications stated in P1 12.4.2.7.
1198
1199         * verify.c (mono_method_verify): remove some unused variables,
1200         add the new exception clause checks, add instruction border
1201         checks for protected block start/end, improved some error 
1202         messages and fixed a bug in the way invalid instruction access
1203         is detected.
1204
1205 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
1206
1207         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
1208         from GC 7.0 if available.
1209
1210         * object.c: Remove an unused define.
1211         
1212         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
1213
1214         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
1215
1216         * null-gc.c (mono_gc_make_descr_for_array): Implement.
1217
1218         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
1219
1220         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
1221         to take the same arguments as the other make_descr functions.
1222
1223         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
1224
1225         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
1226         directly.
1227
1228         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
1229         mini.c.
1230
1231         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
1232         call to boehm-gc.c.
1233
1234         * boehm-gc.c (mono_gc_register_root): Fix a warning.
1235
1236         * null-gc.c (mono_gc_register_root): Fix a warning.
1237
1238         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
1239
1240         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
1241         (mono_gc_base_init): Call GC_init ().
1242
1243         * null-gc.c: Define mono_gc_register_root () as a no-op.
1244
1245         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
1246
1247 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
1248
1249         * verify.c: add prototype for merge_stacks at top
1250
1251         * verify.c (do_switch): added.
1252
1253         * verify.c (merge_stacks): on some cases the stack merging
1254         was not happening properly. Unequal stack sizes at merge
1255         points should be invalid.
1256
1257         * verify.c (mono_method_verify): added more debug info on stack state.
1258         verify switch properly.
1259
1260 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
1261
1262         * method-builder.h: New file, moved the mono_mb_ declarations here from 
1263         marshal.h.
1264
1265         * boehm-gc.c marshal.c: Include method-builder.h.
1266
1267         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
1268
1269         * marshal.c: Remove some code which is now in method-builder.c.
1270
1271 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
1272
1273         * method-builder.c: New file, extraction of the method builder functionality 
1274         from marshal.c.
1275
1276         * marshal.c: Move the mb functions into method-builder.c.
1277
1278         * marshal.h marshal.c: Export some mono_mb_... functions.
1279
1280         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
1281
1282         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
1283         the caller.
1284
1285         * class.c (mono_class_get_full): Check the token type in the dynamic case.
1286
1287         * loader.c (mono_field_from_token): Ditto.      
1288
1289         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
1290         type as well.
1291         
1292         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
1293         Fixes #342565.
1294
1295         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
1296         a helper function for setting it.
1297
1298         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
1299
1300         
1301         * assembly.c: Significally simplify code now that referenced assemblies are 
1302         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
1303
1304         * threads.h: Don't include  the internal threads-types.h header file. Fixes
1305         #349952.
1306
1307 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
1308
1309         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
1310         instructions that were target of branches or are at protected block boundaries.
1311
1312         * verify.c (in_same_block): handle filter clauses.
1313
1314         * verify.c (is_valid_branch_instruction): added. checks the target of
1315         instructions br or brtrue/false.
1316
1317         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
1318         binary branch instructions such as beq and bge.
1319
1320         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
1321         and made it pin the instruction as been part of the exception block.
1322
1323         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
1324         of in_same_block.
1325
1326         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
1327         of in_same_block.
1328
1329         * verify.c (do_ret): ret from a protected block is unverifiable and
1330         not invalid.
1331
1332         * verify.c (do_static_branch): verify br and br.s instructions.
1333
1334         * verify.c (merge_stacks): add extra param to support detection
1335         of branches in the middle of instructions.
1336         
1337         * verify.c (mono_method_verify): verify branches and exception blocks
1338         that target the middle of instructions. Proper verification of br and br.s.
1339
1340 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
1341
1342         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
1343         skip_visibility field.
1344         (reflection_methodbuilder_from_dynamic_method): Ditto.
1345
1346         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
1347         registrations. Fixes #348193.
1348
1349         * threads.h: Move the internal mono_thread_get_pending_exception () to
1350         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
1351
1352 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
1353
1354         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
1355         icall registration. Fixes #348193.
1356
1357         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
1358         for corlib classes into object. Fixes #349621.
1359
1360 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1361
1362         * icall.c (property_accessor_nonpublic): new function to determine
1363         whether an accessor allows a property to be considered non-public.
1364         Returns false for private accessor(s) from parent class, and internal
1365         accessor(s) from parent on 2.0 profile (and higher).
1366         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
1367         to determine whether property should be included if NonPublic flag
1368         is set. Fixes bug #349078.
1369
1370 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
1371
1372         * verify.c (init_stack_with_value): added.
1373
1374         * verify.c (mono_method_verify): extracted common
1375         code for exception initialization into init_stack_with_value.
1376
1377         * verify.c (mono_method_verify): initialize the exception
1378         for handler clauses as well.
1379
1380         * verify.c (mono_method_verify): fix the exception clause
1381         ordering rules, it should use handler end offset and not
1382         start offset.
1383
1384 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
1385
1386         * rawbuffer.c: remove useless warning.
1387
1388 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
1389
1390         * threads.h, threads-types.h: move functions to the correct header
1391         (fixes bug#349952).
1392
1393 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1394
1395         * verify.c (mono_method_verify): proper verification
1396         of exception handling clauses ranges and fallthru in
1397         and out of protected blocks.
1398
1399 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1400
1401         * verify.c (mono_method_verify): fixed compilation issue.
1402
1403 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1404
1405         * verify.c (mono_method_verify): a printf slipped in, changed
1406         to use verifier debug macro.
1407
1408 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
1409
1410         * verify.c (is_correct_leave): check for filter clauses.
1411
1412         * verify.c (do_filter): added.
1413
1414         * verify.c (mono_method_verify): property verification of leave.
1415
1416
1417 2007-12-18  Mark Probst  <mark.probst@gmail.com>
1418
1419         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
1420         Win32 build, until we figure out how to do the proper thing on
1421         Win32.
1422
1423 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
1424
1425         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
1426         by the previous patch.
1427         
1428         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
1429         the assembly resolve handler for refonly assemblies.
1430
1431 2007-12-17  Mark Probst  <mark.probst@gmail.com>
1432
1433         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
1434         Make sure only one thread is allowed to commence shutdown, and
1435         don't allow new threads to be started once shutdown is in
1436         progress.
1437
1438 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
1439
1440         * verify.c (is_correct_endfilter): added.
1441
1442         * verify.c (is_unverifiable_endfilter): added.
1443
1444         * verify.c (do_endfilter): added.
1445
1446         * verify.c (mono_method_verify): property verification of endfilter
1447         and fixed a corner case or endfinally.
1448
1449 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
1450
1451         * verify.h: new flags to support fail fast of unverifiable code and
1452         do non-strict verification. Non-strict verification is required to
1453         have MS runtime compatibility. There are a huge amount of unverifiable
1454         code that it accepts as verifiable. The strict mode verifies the code
1455         as the specs says.
1456         Non-strict mode will be required in cases where code needs to be
1457         accepted as verifiable but fails under strict mode.
1458
1459         * pedump.c: added support to fail fast and non-strict verification.
1460
1461         * verify.c: added support for both fail fast and non-strict verification.
1462
1463 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
1464
1465         * verify.c (is_correct_endfinally): added.
1466
1467         * verify.c (mono_method_verify): property verification of endfinally.
1468
1469 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
1470
1471         * verify.c (in_any_block): check for filter clauses.
1472
1473         * verify.c (is_correct_rethrow): added.
1474
1475         * verify.c (mono_method_verify): property verification of rethrow.
1476
1477         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
1478
1479 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
1480
1481         * verify.c (do_throw): added.
1482
1483         * verify.c (mono_method_verify): property verification of throw
1484
1485 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
1486
1487         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
1488         assemblies. Fixes #346425.
1489
1490 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
1491
1492         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
1493         FieldBuilders.
1494
1495         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
1496
1497         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
1498         prevent asserts when this is called with a token which might not be valid.
1499
1500         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
1501         lookup_dynamic_token_class with valid_token == FALSE.
1502
1503         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
1504
1505         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
1506
1507         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1508         
1509 2007-12-10  Mark Probst  <mark.probst@gmail.com>
1510
1511         * gc.c: Don't delay threadpool thread finalization unless Mono is
1512         shutting down.
1513
1514 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1515
1516         * threads.c: turn an assert into a non-fatal warning.
1517
1518 2007-12-09  Robert Jordan  <robertj@gmx.net>
1519
1520         * icall.c (GetVirtualMethod): Add missing argument validation.
1521
1522 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1523
1524         * verify.c (do_cast): added.
1525
1526         * verify.c (mono_method_verify): property verification of castclass and isinst.
1527
1528
1529 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1530
1531         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
1532
1533         * verify.c (do_stelem): added.
1534
1535         * verify.c (mono_method_verify): property verification of stelem.X.
1536
1537 2007-12-07  Mark Probst  <mark.probst@gmail.com>
1538
1539         * class.c, class-internals.h: Introduce an environment variable
1540         (MONO_GENERIC_SHARING) through which the extent of generic code
1541         sharing can be controlled (share all classes, share only corlib
1542         classes, or share nothing).
1543
1544         * object.c: Only create runtime generic context for classes for
1545         which sharing is enabled.
1546
1547 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1548
1549         * verify.c (do_ldelem): refactor it to work with ldelem.any.
1550
1551         * verify.c (mono_method_verify): property verification of ldelem.any.
1552
1553 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1554
1555         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
1556         added ldelem.X opcodes.
1557
1558         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
1559
1560         * verify.c: proper verification of ldelem.X 
1561
1562 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
1563
1564         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
1565
1566 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
1567
1568         * verify.c (mono_method_verify): null literal requires special handling,
1569         the value pushed on stack need to be flagged as so.
1570
1571         * verify.c (do_ldelema): Verify ldelema properly.
1572
1573 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
1574
1575         * verify.c: Verify ldlen properly.
1576
1577 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
1578
1579         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
1580         to the target object's type. Fixes #346160.
1581
1582 2007-12-05  Dick Porter  <dick@ximian.com>
1583
1584         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
1585         Solaris needs the same workaround as BSD-derived systems.  Fixes
1586         bug 323524, patch by Burkhard Linke
1587         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
1588
1589 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
1590
1591         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
1592         handle to use when error dialog is shown; otherwise, update mask
1593         to show no error dialog when an error occurs.
1594
1595 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
1596
1597         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
1598
1599         * class.c (mono_class_get_field_default_value): New helper function to initialize
1600         field->def_type and field->data.
1601
1602 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
1603
1604         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
1605         the general one.
1606
1607         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
1608
1609         * marshal.c: Avoid depending on delegate->method_info being set.
1610
1611         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
1612         
1613         * object.c (mono_delegate_ctor): Set delegate->method.
1614
1615         * object-internals.h (struct _MonoDelegate): Add 'method' field.
1616
1617         * appdomain.c: Bump corlib version.
1618
1619 2007-11-27  Raja R Harinath  <harinath@gmail.com>
1620
1621         * metadata.c (mono_generic_inst_equal_full): Short-circuit
1622         equality check if we're comparing canonicalized MonoGenericInsts.
1623
1624 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
1625
1626         * class.c (generic_array_methods): Call mono_class_setup_methods () before
1627         accessing class->methods.
1628
1629 2007-11-22  Dick Porter  <dick@ximian.com>
1630
1631         * threads.c: Ensure that the synch_cs is set before trying to use
1632         it.
1633
1634 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
1635
1636         * profiler.c: r89126 broke the statistial profiler, unbreak.
1637
1638 2007-11-22  Martin Baulig  <martin@ximian.com>
1639
1640         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
1641
1642         * mono-debug.c
1643         (mono_debug_debugger_version): Bump to 3.
1644         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
1645         -> mono_debugger_class_initialized().
1646
1647         * mono-debug-debugger.c
1648         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
1649
1650         * class.c
1651         (mono_debugger_start_class_init_func): Removed.
1652         (mono_debugger_class_loaded_methods_func): Added.
1653         (mono_class_setup_methods): Call it here.
1654
1655 2007-11-22  Martin Baulig  <martin@ximian.com>
1656
1657         * mono-debug.c
1658         (mono_debug_add_delegate_trampoline): New public method.
1659         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
1660
1661         * mono-debug.h
1662         (MonoSymbolTable): Added `global_data_table'.
1663         (MonoDebuggerTypeKind): Removed.
1664
1665 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
1666
1667         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
1668         these methods.
1669
1670         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1671         
1672 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1673
1674         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
1675
1676 2007-11-20  Martin Baulig  <martin@ximian.com>
1677
1678         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
1679
1680         * mono-debug-debugger.c
1681         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
1682         (mono_debugger_remove_breakpoint): Likewise.
1683         (mono_debugger_check_breakpoints): Likewise.
1684         (mono_debugger_register_class_init_callback): New public method.
1685         (mono_debugger_remove_class_init_callback): Likewise.
1686         (mono_debugger_add_type): Likewise.
1687
1688         * mono-debug-debugger.h
1689         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
1690
1691 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
1692
1693         * class.c: more interface implementations needed for the
1694         array enumerator (fixes bug #341112).
1695
1696 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
1697
1698         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
1699         fix ParamName of ArgumentNullExceptions.
1700
1701 2007-11-17  Miguel de Icaza  <miguel@novell.com>
1702
1703         * reflection.c (mono_reflection_encode_sighelper): Generate the
1704         modopts and modreqs.   I have a useless test that crashes monodis,
1705         but that shows the code working.
1706
1707 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
1708
1709         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
1710         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
1711
1712 2007-11-15  Dick Porter  <dick@ximian.com>
1713
1714         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
1715         When joining a thread, it's the thread that's calling Join that
1716         gets WaitSleepJoin state not the target.  Fixes the standalone
1717         test case in bug 334740, and hopefully the whole bug too.
1718
1719 2007-11-15  Dick Porter  <dick@ximian.com>
1720
1721         * process.c: Read file version info from the files pointed at by
1722         process modules, not the current process.  Fixes bug 315969.
1723
1724         Use windows typedef names in some places to fix warnings on the
1725         windows build.
1726
1727 2007-11-15  Mark Probst  <mark.probst@gmail.com>
1728
1729         * image.c, metadata-internals.h: Added a generic_class_cache hash
1730         to MonoImage for looking up generic classes when sharing generics.
1731
1732 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1733
1734         * sgen-gc.c: warning cleanups.
1735
1736 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
1737
1738         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
1739         inherited properties.
1740
1741 2007-11-14  Mark Probst  <mark.probst@gmail.com>
1742
1743         * object.c, class-internals.h: Added more information to the
1744         runtime generic context.
1745
1746 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
1747
1748         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
1749         instead of just the target method. Generalize the abstract method handling to
1750         handle any non-static method.
1751
1752         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1753         mono_marshal_get_delegate_invoke () signature change.
1754
1755 2007-11-13  Mark Probst  <mark.probst@gmail.com>
1756
1757         * class.c, class-internals.h: Made
1758         mono_type_get_basic_type_from_generic () public.  Fixed member
1759         access check for shared generics.
1760
1761         * loader.c: Don't insert field into field cache if it's part of a
1762         non-inflated generic class.
1763
1764         * domain.c, domain-internals.h: The generic sharing context is now
1765         part of the jit info data structure.  Added two accessor
1766         functions.
1767
1768 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
1769
1770         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
1771         the array Get/Set/Address methods, since the JIT inlines them.
1772
1773         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
1774
1775         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
1776         (mono_image_init): Initialize runtime_invoke_direct_cache.      
1777
1778         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1779         mono_marshal_get_delegate_invoke signature change.
1780
1781         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
1782         an additional argument. Add support for invoking abstract methods.
1783
1784         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
1785
1786         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
1787
1788 2007-11-09  Mark Probst  <mark.probst@gmail.com>
1789
1790         * class.c: Do field layout for open generic classes as well.
1791
1792 2007-11-09  Mark Probst  <mark.probst@gmail.com>
1793
1794         * gc.c, gc-internal.h: Don't finalize threadpool threads with
1795         other objects, because the threadpool is still around.  Put them
1796         in a list instead and after finalizing all other objects in the
1797         root domain shut down the thread pool and then finalize the
1798         threads.  Fixes bug #337383.
1799
1800         * threads.c, thread-types.h: New mono_thread_create_internal()
1801         function for marking a thread with the threadpool flag before it
1802         started.  Set synch_cs to NULL after freeing it.
1803
1804         * threadpool.c: Mark threadpool threads before they start.
1805
1806 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1807
1808         * reflection.h, reflection.c: don't export random functions
1809         and lazy load dbnull and missing objects.
1810
1811 2007-11-07  Jonathan Chambers <joncham@gmail.com>
1812
1813         * class.c: Initialize COM types if COM interfaces
1814         are present (not just COM classes).
1815         
1816         Code is contributed under MIT/X11 license.
1817
1818 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
1819         * reflection.c:
1820         create_dynamic_mono_image: hook module profiler events (dynamic case).
1821         mono_image_basic_init: hook assembly profiler events (dynamic case).
1822
1823 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
1824         * profiler.c:
1825         simple_appdomain_unload: completely terminate the profiler
1826         instead of only processing the statistical samples.
1827         simple_shutdown: make sure this is really called exactly once,
1828         even in multithreaded applications, and always listen to
1829         appdomain events.
1830         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
1831         here, the "[un]load" functions will do it.
1832         Fixes bugs #333791 and #325261.
1833
1834 2007-11-07  Geoff Norton  <gnorton@novell.com>
1835
1836         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
1837         rather than depend on __APPLE__.
1838
1839 2007-11-07  Mark Probst  <mark.probst@gmail.com>
1840
1841         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
1842
1843 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
1844
1845         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
1846         UTF16 MonoString. Fix the crash from bug #335488
1847
1848 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
1849
1850         * marshal.c: Correct (for non-Win32 OS) length != size in 
1851         mono_string_from_bstr. Fix #339530.
1852
1853 2007-11-06  Geoff Norton  <gnorton@novell.com>
1854
1855         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
1856         to succeed
1857
1858 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
1859
1860         * process.c: Added run-time GetProcessId API detection for Windows.
1861
1862 2007-11-04  Miguel de Icaza  <miguel@novell.com>
1863
1864         * reflection.c  (mono_param_get_objects): If a parameter has the
1865         attribute [System.Runtime.InteropServices.Optional] we should
1866         set the DefaultValue of the ParameterInfo to be
1867         System.Reflection.Missing instead of DBNull.
1868
1869         See bug #339013.
1870
1871         (mono_get_reflection_missing_object): New method,
1872         returns the System.Reflection.Missing.Value singleton instance.
1873
1874 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
1875
1876         * culture-info-table.h : regenerated.
1877
1878 2007-11-02  Jonathan Chambers <joncham@gmail.com>
1879
1880         * icall.c: Use GetEnvironmentStrings on windows
1881         so we are using the same environment block as 
1882         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
1883         #333740.
1884         
1885         Code is contributed under MIT/X11 license.
1886
1887 2007-10-31  Martin Baulig  <martin@ximian.com>
1888
1889         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
1890
1891         * mono-debug-debugger.h
1892         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
1893
1894 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
1895
1896         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
1897         classes.
1898
1899 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
1900
1901         * culture-info-table.h : regenerated.
1902
1903 2007-10-30  Robert Jordan  <robertj@gmx.net>
1904
1905         * icall-def.h, icall.c:
1906         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
1907
1908         Code is contributed under MIT/X11 license.
1909
1910 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
1911
1912         * class.c (mono_class_setup_vtable): Find the inflated methods in the
1913         inflated class instead of inflating them again.
1914         
1915         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
1916         dynamic case.
1917
1918         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
1919         Call setup_supertypes () after klass->parent is set.
1920         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
1921
1922         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
1923         for inflated instances of not yet created dynamic generic classes.
1924         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
1925         times from inflated_method.
1926         (methodbuilder_to_mono_method): Ditto.
1927
1928 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1929
1930         * gc.c: code cleanup and removed old untested option of not creating the
1931         finalizer thread.
1932
1933 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
1934
1935         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
1936         creating a jump trampoline for dynamic methods.
1937
1938 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
1939
1940         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
1941         generic TypeBuilders when called from another method of the same type (bug #335131).
1942
1943
1944 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
1945
1946         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
1947         doesn't seem to work perfectly.
1948         
1949         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
1950         called multiple times.
1951         (methodbuilder_to_mono_method): Ditto.
1952         (resolve_object): Inflate FieldBuilder's.
1953
1954 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1955
1956         * string-icalls.c, string-icalls.h, appdomain.c: patch from
1957         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
1958         RemoveEmptyEntries in the string.Split implementation (bug #322375).
1959
1960 2007-10-26  Dick Porter  <dick@ximian.com>
1961
1962         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
1963         Thread initialisation changes
1964
1965 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
1966
1967         * verify.c: fix compatibility check between arrays and System.Array
1968
1969 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
1970
1971         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
1972         too. Fixes #336999.
1973
1974 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
1975
1976         * object.c (mono_value_box): Use typed allocation here.
1977
1978 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
1979
1980         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
1981         trampoline instead of compiling the method right away.
1982
1983         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
1984
1985 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
1986
1987         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
1988         related fields for dynamic classes. Fixes #334493.
1989
1990 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
1991
1992         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
1993         
1994         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
1995
1996         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
1997         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
1998
1999         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
2000
2001         * reflection.c (create_generic_typespec): Initialize klass->generic_container
2002         if needed.
2003         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
2004
2005 2007-10-18  Jonathan Chambers <joncham@gmail.com>
2006
2007         * marshal.c: Use correct key when removing item
2008         from ccw_hash.
2009         
2010         Code is contributed under MIT/X11 license.
2011
2012 2007-10-17  William Holmes  <billholmes54@gmail.com>
2013
2014         *marshal.c: Adding a case to marshal booleans to U1
2015
2016         Code is contributed under MIT/X11 license.
2017
2018 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
2019
2020         * class.c (mono_class_from_name): Search the modules compromising dynamic
2021         assemblies. Fixes #331601.
2022
2023 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
2024
2025         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
2026         exception if the type name contains an assembly component. Fixes #334203.
2027
2028         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
2029         modules inside dynamic assemblies. Fixes #334200.
2030         
2031         * reflection.c: Set image->public_key and image->public_key_length;
2032
2033         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
2034         fields.
2035
2036         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
2037         
2038 2007-10-16  Mark Probst  <mark.probst@gmail.com>
2039
2040         * metadata.c: Implemented correct comparing of generic classes.
2041         An inflated generic class can be equal to a non-inflated one if it
2042         is inflated with generic type variables as type arguments.  Fixes
2043         bug #333798.
2044
2045 2007-10-15  Dick Porter  <dick@ximian.com>
2046
2047         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
2048         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
2049         81646.
2050
2051         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
2052         instead of a monitor lock.  This means that monitor_try_enter and
2053         co can set the thread state safely.
2054         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
2055         thread_interrupt_requested, so interrupt actually works.
2056
2057         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
2058         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
2059         state accessor function
2060
2061 2007-10-15  Martin Baulig  <martin@ximian.com>
2062
2063         * mono-debug.h
2064         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
2065         the debugger with the current runtime.
2066
2067 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
2068
2069         * object.c, object-internals.h: added the ability to set a single
2070         trampoline for all the slots in a vtable.
2071
2072 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2073
2074         * marshal.c: deal with a possible race condition during multicast
2075         delegate invocation.
2076
2077 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2078
2079         * class.c: ensure value type methods don't have the synchronized
2080         flag set.
2081
2082 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
2083
2084         * string-icalls.c, string-icalls.h: reverted unapproved patch that
2085         breaks the build.
2086
2087 2007-10-11  Joel Reed  <joelwreed@comcast.com>
2088
2089         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
2090         to take an options parameter so that empty entries can be removed during
2091         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
2092
2093 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2094
2095         * marshal.c: make sure we don't store the signature from a dynamic
2096         method into the runtime invoke cache (bug #327189).
2097
2098 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2099
2100         * marshal.c: make sure the wrapper methods are properly initialized.
2101
2102 2007-10-11  Mark Probst  <mark.probst@gmail.com>
2103
2104         * metadata.c, metadata-internals.h: Generalized
2105         mono_type_stack_size() to mono_type_stack_size_internal() which
2106         takes an additional argument specifying whether it allows open
2107         types.
2108
2109 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
2110
2111         * verify.c (do_invoke_method): handle typedbyref params
2112         correctly and check for unverifiable return values.
2113
2114         * verify.c (do_newobj): fix a warning.
2115
2116 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
2117
2118         * verify.c: don't tread typedbyref as allways unverifable,
2119         so uses, like (ld/st)loc.0 are valid. verify for the cases
2120         that it matters, like boxing related operations.
2121
2122 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
2123
2124         * verify.c: add verification of the newobj opcode. verification
2125         of delegate instantation still missing due ldftn and virldftn not
2126         pushing the function type on stack
2127
2128 2007-10-08  Mark Probst  <mark.probst@gmail.com>
2129
2130         * class-internals.h: Runtime generic context data structure
2131         definition.
2132
2133         * object.c: Initialization of runtime generic context at runtime
2134         vtable creation time.
2135
2136 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
2137         * class.c (mono_class_create_from_typedef,
2138         mono_class_from_generic_parameter, mono_ptr_class_get,
2139         mono_fnptr_class_get, mono_bounded_array_class_get)
2140         * domain.c (mono_domain_create, mono_domain_free)
2141         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
2142         * image.c (do_mono_image_load, mono_image_close):
2143         Hooked up load-unload profiler events.
2144
2145 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
2146
2147         * domain.c: track statistics about the actual amount of native code
2148         allocated.
2149
2150 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
2151
2152         * class.c: the valuetype enumerators don't have the additional
2153         supertypes interfaces.
2154
2155 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2156
2157         * class.c: need more interfaces setup for the IEnumerator<T>
2158         object created for arrays (tests/ienumerator-interfaces.2.cs).
2159
2160 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
2161
2162         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
2163
2164 2007-10-05  Alp Toker  <alp@atoker.com>
2165
2166         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2167         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2168         #315863.
2169
2170 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
2171
2172         * verify.c (verify_type_compatibility_full): verification of
2173         compatibility improved, validates correctly non-strict checks between
2174         native int and I4 types different than (unsigned)int32.
2175
2176         * verify.c (do_store_indirect): added, do all verification of
2177         ldind.X opcodes. 
2178
2179         * verify.c (get_load_indirect_mono_type): renamed to
2180         get_indirect_op_mono_type, as it now returns the MonoType for 
2181         ldind.X and stind.X opcodes.
2182
2183 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
2184
2185         * reflection.c: Fix the encoding of generic type definition for
2186         TypeBuilders.
2187
2188         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
2189         mono_image_typedef_or_ref but allows to specify if typespec lookups should
2190         be made. Typespec check is done prior to typeref cache lookup.
2191
2192         * reflection.c (mono_image_typedef_or_ref): now just delegate to
2193         mono_image_typedef_or_ref_full.
2194
2195         * reflection.c (encode_generic_class): encode the generic class
2196         directly instead of calling encode_type.
2197
2198         * reflection.c (encode_type): encode the generic type definition
2199         MonoClass as a generic instantiation.
2200
2201         * reflection.c (create_typespec): cache typespec tokens in
2202         the assembly->typespec cache. Don't create typespec for a generic
2203         instance MonoClass. Create typespec for the generic type defintion.
2204
2205         * reflection.c (create_generic_typespec): encode the generic
2206         class directly instead of calling encode_type.
2207
2208         * reflection.c (mono_image_create_token): encode the generic
2209         type definition not using a typespec for MonoType instances.
2210
2211
2212 2007-10-04  Raja R Harinath  <rharinath@novell.com>
2213
2214         Fix #328812
2215         * class.c (mono_image_init_name_cache): Don't return nested
2216         'protected internal' classes.
2217         (mono_class_from_name_case): Likewise.
2218
2219 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2220
2221         * icall-def.h, icall.c : get_bundled_machine_config() is now the
2222           common function used by both DefaultConfig in System.dll and
2223           InternalConfigurationHost in System.Configuration.dll.
2224
2225 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2226
2227         * class.c: automatically add to vectors only a few essential explicit
2228         generic interfaces. The rest of the interfaces that arrays should
2229         provide are currently implicitly added (but still not lazily, see the
2230         design in the discussion of bug#325495 for the details of what is
2231         needed for that). Additionally, implicit interfaces are assigned the
2232         same vtable slot as the explicit interfaces (as they are compatible):
2233         this enables huge memory savings since we don't need to instantiate
2234         as many memthods and as large vtables anymore. Also, Since
2235         GetEnumerator<T> returns an instance of a type that is required to
2236         support a similarly large set of interfaces as arrays, we add
2237         implicit interfaces and interface offset sharing support to those
2238         types, too. This change adds all the required interfaces so that
2239         the anonarray.cs test case in the bug report works (we don't add
2240         all the interfaces to arrays of arrays 3-level deep and more because
2241         of the memory requirements explained in the bug and since they are much
2242         less common: the lazy-loading support will enabled them to work, too).
2243
2244 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
2245
2246         * verify.c (merge_stacks): major clean up, all type compatibility
2247         checks are done by verify_type_compatibility. This fix my earlier lack
2248         of understanding of the CLR type system and merge_stacks no longer looks
2249         scary.
2250
2251         * verify.c: fixed some bad spelling.
2252
2253 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
2254
2255         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
2256         a given stack slock.
2257         
2258         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
2259         verify_type_compatibility_full. This removed a near indentical function and fixed
2260         handling of Int32 and IntPtr across all opcodes.
2261
2262 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2263
2264         * class.c: only vectors have the additional generic interfaces.
2265
2266 2007-10-01  Jonathan Chambers <joncham@gmail.com>
2267
2268         * mono-config.c: Use g_strcasecmp instead of
2269         strcasecmp like everywhere else to fix
2270         compilation with MSVC.
2271         
2272         Code is contributed under MIT/X11 license.
2273
2274 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2275
2276         * object.c, object-internals.h: refactored the IMT code to enable
2277         building a single slot at a time and lazily creating the IMT trampolines
2278         and thunks.
2279
2280 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
2281
2282         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
2283
2284         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
2285         Fixes #328501.
2286         
2287 2007-09-29  Raja R Harinath  <harinath@gmail.com>
2288
2289         * loader.c (method_from_methodspec): Rearrange to avoid
2290         un-necessary exposition.  Don't assert out if the method's
2291         declaring type is a generic type definition.
2292
2293 2007-09-28  Martin Baulig  <martin@ximian.com>
2294
2295         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
2296
2297 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
2298
2299         * class-internals.h: optimize field layout of MonoClass to
2300         requires less cachelines at runtime and save a few bytes on 64 bit
2301         systems.
2302
2303 2007-09-28  Jb Evain  <jbevain@novell.com>
2304
2305         * reflection.c: when encoding type names in custom attributes,
2306         if the type is a closed generic type, its generic arguments
2307         have to be serialized as AssemblyQualifiedName, so that when
2308         they are deserialized, it's possible to re-create them properly.
2309         Fixes #329450.
2310
2311
2312 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2313
2314         * object.c, class-internals.h: added delegate-creation counter.
2315
2316 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
2317
2318         * class.c: cleanup of the code that synthetizes interfaces for
2319         arrays in 2.0: saves quit a bit of corlib mempool memory.
2320         Code to fix bug #325495 ifdeffed out for now until the issues
2321         with memory usage and O(n^2) behaviour are fixed.
2322
2323 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2324
2325         * marshal.c: when possible, do not duplicate the name of the methods
2326         in the method builder and in the generated MonoMethod.
2327
2328 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2329         * verify.c: added support for type checking ldind_* opcodes.
2330
2331 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2332
2333         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
2334         which is used to distinguish the fully open instantiation of a TypeBuilder
2335         with the rest. This temporary hack is required to restore the property that
2336         the fully open instantiation is the same type of the generic type definition.
2337
2338         * class-internals.h (mono_generic_class_is_generic_type_definition):
2339         new function as part of the internal API.
2340
2341         * class.c (inflate_generic_type): return NULL when the generic inst is
2342         fully open. The fully open generic type is now the same as the generic type
2343         definition for non TypeBuilder types.
2344
2345         * class.c (mono_generic_class_get_class): removed assert since it is
2346         no longer valid, gklass->cached_class can point to the generic type definition.
2347
2348         * class.c (mono_generic_class_is_generic_type_definition): new.
2349
2350         * metadata.c (mono_generic_class_hash): added is_tb_open field
2351         to the hash calculation.
2352
2353         * metadata.c (free_generic_class): if the generic class is associated
2354         with the generic type definition, its field will come from the mempool and
2355         must not be freed.
2356
2357         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
2358         new, this function identifies the corner case of a TypeBuilder fully open
2359         instantiation.
2360
2361         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
2362         for lookup. Set gclass->cached_class to be the container class in case of
2363         the fully open instantiation of non TypeBuilder types.
2364
2365         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
2366         to compare generic classes.
2367
2368         * reflection.c (method_encode_methodspec): remove assert that
2369         no longer is valid.
2370
2371         * reflection.c (mono_reflection_generic_class_initialize): add
2372         an aditional assert to ensure the proper type is used.
2373
2374 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
2375
2376         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
2377         to enjoy it.
2378
2379 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
2380
2381         * verify.c (push_arg): Fixed support for ldarga
2382         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
2383         MonoType used as first arg in case of instance calls.
2384
2385 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
2386
2387         * verify.c: Support for verifying VAR and MVAR types, 
2388
2389 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
2390
2391         * icall.c (ves_icall_get_property_info): Set the reflected type of the
2392         accessors correctly.
2393
2394 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
2395
2396         * threads.c: support OSX and other systems in
2397         mono_thread_get_stack_bounds (bug #328026).
2398
2399 2007-09-25  Martin Baulig  <martin@ximian.com>
2400
2401         * mono-debug.h
2402         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
2403
2404 2007-09-24  Martin Baulig  <martin@ximian.com>
2405
2406         * mono-debug.h
2407         (MonoDebugClassEntry): Moved the definition of this struct into
2408         mono-debug.c to make it private.
2409
2410         * mono-debug.c
2411         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
2412         type table per symbol file, we don't need to store the symfile id
2413         any longer.
2414
2415 2007-09-24  Martin Baulig  <martin@ximian.com>
2416
2417         Create one type table per symbol file, since a `MonoClass *' gets
2418         invalid when its image is unloaded.
2419
2420         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
2421         (MonoDebugHandle): Added `type_table'.
2422
2423 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2424
2425         * mempool.c, mempool.h: added mono_mempool_new_size () API
2426         to be able to specify a smaller initial size for the pool.
2427         Adjusted the code to slowly increase pool size before using
2428         the previous default size.
2429         * image.c: use a small initial size for image mempools.
2430
2431 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
2432
2433         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
2434         Fixes ##320990.
2435
2436         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
2437         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
2438
2439 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
2440
2441         * metadata.c (mono_type_create_from_typespec): Remove an invalid
2442         free. Fixes #327438.
2443
2444 2007-09-21  Raja R Harinath  <harinath@gmail.com>
2445
2446         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
2447         generic instantiations, etc.
2448         <MONO_TYPE_ARRAY>: Likewise.
2449
2450 2007-09-21  Martin Baulig  <martin@ximian.com>
2451
2452         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
2453         these structs were never defined.
2454         (MonoDebugHandle): Removed the `_priv' field, it was never used.
2455
2456 2007-09-21  Martin Baulig  <martin@ximian.com>
2457
2458         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
2459
2460 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
2461
2462         * image.c: removed the guid hash tables: we can get the same info
2463         without the additional memory usage hit (partially fixes also bug #327052).
2464
2465 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2466
2467         * profiler.h, profiler-private.h, profiler.c: add a new profiler
2468         event to handle unloading methods. After the event is called, the
2469         corresponding MonoMethod* must be considered invalid.
2470         * loader.c (mono_free_method): call the new mono_profiler_method_free
2471         event.
2472
2473 2007-09-20  Mark Probst  <mark.probst@gmail.com>
2474
2475         * domain-internals.h: New flag in MonoJitInfo which marks shared
2476         generic methods.  New hash table (shared_generics_hash) in
2477         MonoDomain to keep track of shared generic methods.  Prototypes
2478         for functions to register and lookup shared generic methods.
2479
2480         * domain.c: Support for registering and looking up shared generic
2481         methods via a hash table (shared_generics_hash) in MonoDomain.
2482
2483         * class-internals.h: New exception to signal failure of shared
2484         compilation of a generic method.  New counters for generics
2485         sharing in MonoStats.
2486
2487 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
2488
2489         * image.c, metadata-internals.h: don't keep a file descriptor open
2490         for loaded assemblies (bug#325988).
2491
2492 2007-09-19  Raja R Harinath  <rharinath@novell.com>
2493
2494         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
2495         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
2496         use the corresponding datatypes.
2497         (type_in_image): Update to changes.
2498         (CleanForImageUserData): Simplify.
2499         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
2500         Avoid quadratic behaviour in handling the "stolen" list by
2501         separating the filter predicate out, and by prepending the stolen
2502         items rather than appending them.
2503         (steal_ginst_in_image): Likewise.
2504         (mono_metadata_clean_for_image): Update to changes.
2505
2506 2007-09-19  Martin Baulig  <martin@ximian.com>
2507
2508         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
2509
2510 2007-09-19  Martin Baulig  <martin@ximian.com>
2511
2512         * mono-debug.c (mono_debug_cleanup): Don't call
2513         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
2514
2515 2007-09-19  Raja R Harinath  <harinath@gmail.com>
2516
2517         Fix crash on 'make run-test' in mcs/errors
2518         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
2519         Avoid more potential allocations in mono_class_from_mono_type.
2520         (ginst_in_image): Update to changes.
2521         (gclass_in_image): Rearrange slightly.
2522
2523 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
2524
2525         * class.c (mono_class_init): Move the code that sets up class->methods to 
2526         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
2527
2528         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
2529         canonical instance of an inflated generic signature.
2530         (mono_type_create_from_typespec): Remove an invalid free.
2531
2532         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
2533
2534 2007-09-18  Marek Habersack  <mhabersack@novell.com>
2535
2536         * domain-internals.h: added a declaration of the
2537         mono_assembly_load_full_nosearch internal function.
2538
2539         * assembly.c (mono_assembly_load_with_partial_name): use
2540         mono_try_assembly_resolve return value properly.
2541         (mono_assembly_load_full_nosearch): copied the function body from
2542         mono_assembly_load_full, without the code to invoke assembly
2543         search hooks.
2544         (mono_assembly_load_full): calls the above new function and if the
2545         assembly is not resolved, invokes the search hooks.
2546
2547         * appdomain.c (mono_runtime_init): restore the global postload
2548         assembly search handlers.
2549
2550 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
2551
2552         * class.c (mono_class_init): Make sure class->methods and class->properties
2553         are never NULL in the generics case.
2554
2555         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
2556
2557 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
2558
2559         * metadata.c (free_generic_class): Disable some code to fix the build.
2560
2561         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
2562
2563         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
2564         from the image mempool.
2565
2566         * metadata.c (free_generic_class): Free more data from the inflated class.
2567
2568         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
2569
2570         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
2571         mempool.
2572         (mono_type_create_from_typespec): Ditto.
2573
2574         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
2575         MonoImage to the caller.
2576         (mono_init_internal): Save the opened image in a global variable.
2577         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
2578
2579         * reflection.c (resolve_object): Fix a leak.
2580
2581         * metadata.c: Fix the freeing of data in the generics caches.
2582         
2583         * metadata.c (free_generic_inst): Comment this out to fix the build.
2584         (free_generic_class): Ditto.
2585
2586         * metadata.c: Free cached generic methods, instantinations and classes when
2587         they are removed from the caches.
2588         (mono_metadata_free_type): Free the type itself.
2589
2590         * class.c: Free the result of mono_class_inflate_generic_type () in a few
2591         places.
2592
2593 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2594
2595         * boehm-gc.c: restrict managed allocs to __thread supporting
2596         architectures.
2597
2598 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
2599
2600         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
2601         (mono_generic_class_get_class): Fix a leak.
2602
2603         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
2604         mono_metadata_free_type ().
2605         (mono_metadata_inflate_generic_inst): Fix a leak.
2606
2607 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2608
2609         * mono-debug.c (free_header_data): Fix a leak missed earlier.
2610
2611         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
2612         mempool.
2613
2614         * mono-debug.c (mono_debug_close_image): Fix call to 
2615         g_hash_table_remove ().
2616
2617 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2618
2619         * icall-def.h: redirect all the string ctor to the managed
2620         CreateString () methods.
2621         * string-icalls.c, string-icalls.h: removed dead code for string
2622         ctors and icalls.
2623
2624 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2625
2626         * mono-debug.c: Fix memory leaks.
2627
2628 2007-09-14  Jonathan Chambers <joncham@gmail.com>
2629
2630         * threads-types.h: Implement mono_hazard_pointer_set and 
2631         mono_hazard_pointer_clear macros using do/while(0) to fix
2632         compilation with MSVC.
2633         
2634         Code is contributed under MIT/X11 license.
2635
2636 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2637
2638         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
2639         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
2640
2641 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2642
2643         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
2644         icalls.
2645
2646 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2647
2648         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
2649         managed-code allocated as well.
2650
2651 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2652
2653         * class.c (mono_class_is_assignable_from): Add support for generic variance.
2654
2655 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2656
2657         * boehm-gc.c: fixed the build after the AOT changes.
2658
2659 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2660
2661         * wrapper-types.h: Add an ALLOC wrapper type.
2662
2663         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
2664         reference managed allocator methods.
2665
2666 2007-09-12  Marek Safar  <marek.safar@gmail.com>
2667
2668         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
2669         of Type array and not MonoType, a fix suggested by Hari.
2670         
2671 2007-09-12  Jonathan Chambers <joncham@gmail.com>
2672
2673         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
2674         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
2675         
2676         Code is contributed under MIT/X11 license.
2677
2678 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2679
2680         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
2681
2682 2007-09-12  Marek Habersack  <mhabersack@novell.com>
2683
2684         * image.c (do_mono_image_open): if assembly file fails to open and
2685         MONO_IOMAP is in effect, try to find the path in a
2686         case-insensitive way.
2687
2688         * appdomain.c (mono_runtime_init): do not install postload hooks -
2689         tests show that MS.NET doesn't use anything of that sort to
2690         trigger the AppDomain.AssemblyResolve event.
2691         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
2692         made non-static.
2693         (mono_runtime_init): init portability helpers here.
2694
2695         * assembly.c (mono_assembly_load_with_partial_name): if other   
2696         attempts fail, trigger the AppDomain.AssemblyResolve event handler
2697         to resolve the assembly.
2698
2699         * domain-internals.h: added mono_try_assembly_resolve and marked
2700         it as internal.
2701
2702 2007-09-11  Jb Evain  <jbevain@novell.com>
2703
2704         * object-internals.h (MonoReflectionDynamicMethod): add
2705         a `MonoReflectionType *owner` field. The owner is used
2706         * reflection.c:
2707         (mono_reflection_create_dynamic_method): use the owner of the dynamic
2708         method as the class declaring the dynamic method.
2709         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
2710         dynamic method to the declaring type of the methodbuilder.
2711
2712 2007-09-11  Mark Probst  <mark.probst@gmail.com>
2713
2714         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
2715         rules for calling methods via reflection.
2716
2717 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
2718
2719         * reflection.c (resolve_object): Add support for MonoGenericClass. 
2720         Inflate MonoType's.
2721
2722 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
2723
2724         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
2725         provide a managed method that does fast allocations without needing
2726         a managed->unmanaged transition. Boehm GC implementation currently
2727         enabled for ptrfree objects on sane architectures.
2728
2729 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2730
2731         * marshal.c, marshal.h: exported a couple of useful functions and
2732         added mono_mb_get_label () to easily handle backward branches.
2733
2734 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
2735
2736         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
2737
2738 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2739
2740         * loader.c (find_method): Fixed the regression introduced while
2741         fixing bug #81466.
2742
2743 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
2744
2745         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
2746         well.
2747         
2748         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
2749         icall.c reflection.c: Pass a MonoGenericContext argument to 
2750         mono_lookup_dynamic_token ().
2751
2752         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
2753         #82744.
2754         
2755 2007-09-09  Robert Jordan  <robertj@gmx.net>
2756
2757         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
2758         for generic methods.
2759
2760         * object.c (mono_object_get_virtual_method): Handle generic methods.
2761         Fixes bug #78882.
2762
2763         Code is contributed under MIT/X11 license.
2764
2765 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
2766
2767         * image.c: fix locking in mono_image_load_file_for_image ().
2768
2769 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
2770
2771         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
2772         used only as a cache: added an icall to fill it.
2773
2774 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
2775
2776         * reflection.h: exposed mono_reflection_free_type_info
2777         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
2778         since mono_reflection_bind_generic_parameters makes a copy of it.
2779         * reflection.c (free_type_info): subinfos should be freed.
2780         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
2781         made non static.
2782         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
2783         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
2784         this fixes #82695 and #81726.
2785    
2786
2787 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
2788
2789         * process.h, process.c:  added support for user profile/info in
2790           ProcessStartInfo. For now only Windows works.
2791
2792 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2793
2794         * metadata.c: consider the generic arguments when comparing
2795         signatures (bug #82614).
2796
2797 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2798
2799         * cil-coff.h, image.c: updated assembly loader to cope with the
2800         PE32+ 64 bit file format.
2801
2802 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2803
2804         * assembly.c, class.c, domain.c, loader.c: remove useless
2805         inclusion of cil-coff.h.
2806
2807 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
2808
2809         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
2810         if interface is marked with CoClassAttribute. 
2811    
2812         Code is contributed under MIT/X11 license.
2813
2814 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2815
2816         * sgen-gc.c: ensure no object from the to space is copied again or finalized
2817         if it's seen twice in major collections.
2818
2819 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2820
2821         * sgen-gc.c: big objects are not copied to the gray area, but they
2822         need to be considered for scanning, too, if they are brought alive
2823         by an object ready for finalizations or a survived one.
2824
2825 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2826
2827         * sgen-gc.c: properly account the number of disappearing links when
2828         they are nullified.
2829
2830 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2831
2832         * sgen-gc.c: share the code to scan the registered roots between the
2833         different types of collections.
2834
2835 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2836
2837         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
2838
2839 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2840
2841         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
2842         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
2843
2844 2007-08-28  Mark Probst  <mark.probst@gmail.com>
2845
2846         * security-manager.c (mono_security_manager_get_methods):
2847         LinkDemandSecurityException now has 2 arguments instead of 3.
2848
2849 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
2850
2851         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
2852         platforms which need it.
2853
2854 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2855
2856         * sgen-gc.c: unregister thread data structures with a pthread_key_t
2857         dtor.
2858
2859 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2860
2861         * threads.c: free the thread static data on thread exit.
2862
2863 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
2864
2865         * class.c: walk the hierarchy to find the generic definition for
2866         a class (fixes runtime part of bug #82498).
2867
2868 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2869
2870         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
2871         ...
2872
2873         * image.c (mono_image_close): Here. Hopefully fixes #82510.
2874
2875 2007-08-24  Mark Probst  <mark.probst@gmail.com>
2876
2877         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
2878
2879 2007-08-24  Robert Jordan  <robertj@gmx.net>
2880
2881         * appdomain.c: don't perform the ':'->';' substitution on Win32.
2882
2883 2007-08-24  Jb Evain  <jbevain@novell.com>
2884
2885         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
2886         for byref types.
2887
2888 2007-08-24  Mark Probst  <mark.probst@gmail.com>
2889
2890         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
2891         #82286.
2892
2893 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2894
2895         * assembly.c: Fix a warning.
2896         
2897 2007-08-23  Marek Habersack  <mhabersack@novell.com>
2898
2899         * appdomain.c: parse the <runtime> section looking for the probing
2900         element with the 'privatePath' attribute, which sets additional
2901         directories in which the runtime should look for assemblies.
2902
2903 2007-08-23  Robert Jordan  <robertj@gmx.net>
2904
2905         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
2906         Fixes #82499.
2907
2908 2007-08-23  Martin Baulig  <martin@ximian.com>
2909
2910         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
2911         _mono_debug_init_corlib() and remove it from the header file.
2912
2913 2007-08-23  Martin Baulig  <martin@ximian.com>
2914
2915         * mono-debug-debugger.c
2916         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
2917         don't notify the debugger about it.
2918
2919         * mono-debug-debugger.h
2920         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
2921
2922 2007-08-23  Robert Jordan  <robertj@gmx.net>
2923
2924         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
2925         Code is contributed under MIT/X11 license.
2926
2927 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2928
2929         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
2930
2931 2007-08-22  Martin Baulig  <martin@ximian.com>
2932
2933         * mono-debug.c: Store debugging info on a per-domain basis and
2934         free it on domain unload.  Add support for unloading symbol files.
2935
2936         * mono-debug.h
2937         (MonoDebugList): New typedef.
2938         (MonoSymbolTable):
2939         - add `data_tables and `type_table'.
2940         - replace 'symbol_files' and `num_symbol_files' with a
2941           `MonoDebugList *'.
2942         (mono_debug_data_table): Removed.
2943         (mono_debug_list_add): New public function.
2944         (mono_debug_list_remove): New public function.
2945         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
2946         (mono_debug_init_2_memory): Renamed into
2947         mono_debug_open_image_from_memory().
2948         (mono_debug_close_image): New public function.
2949         (mono_debug_domain_create): Likewise.
2950         (mono_debug_domain_unload): Likewise.
2951         (MONO_DEBUGGER_VERSION): Bump to 60.
2952
2953         * mono-debug-debugger.h
2954         (MonoDebuggerEvent):
2955         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
2956         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
2957         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
2958         - rename `THREAD_CREATED' and `THREAD_EXITED' into
2959           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
2960         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
2961           meaning.
2962         (mono_debugger_add_symbol_file): Removed.
2963         (mono_debugger_add_type): Removed.
2964         (mono_debugger_lookup_type): Removed.
2965         (mono_debugger_lookup_assembly): Removed.
2966
2967         * domain.c
2968         (mono_domain_create): Call mono_debug_domain_create().
2969         (mono_init_internal): Call mono_debug_init_corlib().
2970
2971         * assembly.c
2972         (mono_assembly_close): Call mono_debug_close_image().
2973
2974 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
2975
2976         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
2977         mmap call.
2978
2979 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2980
2981         * sgen-gc.c: ensure section->pin_queue_end is initialized
2982         correctly when non pinning objects in the section have been found.
2983
2984 2007-08-22  Marek Habersack  <mhabersack@novell.com>
2985
2986         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
2987         containing a list of directories separated by ':'. MSDN docs say
2988         the directories should be separated with ';'. Part of a bugfix for
2989         bug #81446
2990
2991 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
2992
2993         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
2994         it should MonoType and not MonoClass.
2995
2996 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
2997
2998         * culture-info-table.h : regenerated.
2999
3000 2007-08-20  William Holmes  <billholmes54@gmail.com>
3001
3002         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
3003          to call ReplaceFile Kernel32 on windows or in io-layer.
3004         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
3005         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
3006          as an internal call.
3007
3008         Code is contributed under MIT/X11 license.
3009
3010 2007-08-20  Jb Evain  <jbevain@novell.com>
3011
3012         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
3013         and MONO_EXCEPTION_FIELD_ACCESS.
3014
3015         * debug-helpers.[c|h]: new mono_field_full_name function.
3016
3017 2007-08-20  Mark Probst  <mark.probst@gmail.com>
3018
3019         * class.c: Removed class_security_level() and moved it to
3020         security-core-clr.c.
3021
3022         * security-core-clr.c, security-core-clr.h: class_security_level()
3023         is now public and renamed to mono_security_core_clr_class_level().
3024         It also looks for security attributes in the classes a class is
3025         nested in.
3026
3027 2007-08-20  Mark Probst  <mark.probst@gmail.com>
3028
3029         * security-core-clr.c, security-core-clr.h: CoreCLR security
3030         utility functions.
3031
3032         * Makefile.am: Added security-core-clr.[ch].
3033
3034         * security-manager.c, security-manager.h: Functions and enum for
3035         setting and getting the security mode.
3036
3037         * class.c: CoreCLR security checks.
3038
3039 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
3040
3041         * icall-def.h, process.c, process.h: implemented icall to get
3042         user/system processor times.
3043
3044 2007-08-17  Mark Probst  <mark.probst@gmail.com>
3045
3046         * domain.c, threads.c, class-internals.h, domain-internals.h: New
3047         reader-lock-free jit_info_table.
3048
3049 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
3050
3051         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
3052
3053         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
3054
3055         * object-internals.h (MonoException): Add missing _data member.
3056
3057 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
3058
3059         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
3060         checking that only methods with matching qname or fqname are picked
3061         from implemented interfaces.
3062
3063 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
3064
3065         * verify.c (do_newarr):added, do type verification of
3066         newarr ops, push the right value on the eval stack.
3067         * verify.c (mono_method_verify): use do_newarr
3068
3069
3070 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
3071
3072         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
3073         factored the common code into get_boxable_mono_type, which
3074         is now using mono_type_get_full, this fixed byref related tests.
3075
3076 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
3077
3078         * class.c: added mono_type_get_full, this function has the same
3079         behavior of mono_class_get_full but the returned MonoType has
3080         all metadata of the associated token in case of a typespec token.
3081         * class.c: added mono_type_retrieve_from_typespec, used by 
3082         mono_type_get_full to retrieve the token type.
3083         * class.c (mono_class_create_from_typespec): changed to use
3084         mono_type_retrieve_from_typespec.
3085         * class.c (mono_ldtoken): changed to use mono_type_get_full
3086         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
3087         * class-internals.h: exported mono_type_get_full for internal use.
3088
3089 2007-08-16  Jb Evain  <jbevain@novell.com>
3090
3091         * domain.c (supported_runtimes): add entry for
3092         the 'moonlight' runtime version.
3093
3094 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
3095
3096         * verify.c (mono_method_verify): small typo sliped in.  
3097
3098 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
3099
3100         * verify.c (do_unbox_value): added, do type verification of
3101         unboxing ops
3102         * verify.c (mono_method_verify): use do_unbox_value
3103
3104
3105 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
3106
3107         * verify.c (dump_stack_value): fixed typo, was printing string
3108         instead of object on stack.
3109         * verify.c (do_box_value): moved the byref check up as it leads
3110         to invalid code and should be done earlier.
3111         * verify.c: improved error messages for and ldobj
3112
3113 2007-08-15  William Holmes  <billholmes54@gmail.com>
3114
3115         * marshal.c (emit_marshal_custom): Omit the call to 
3116           marshal_native_to_managed when calling native to managed 
3117           and the argument is specified as an out argument.
3118
3119         Code is contributed under MIT/X11 license.
3120
3121 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
3122
3123         * verify.c: fixed the type checks for generics, function pointers and vectors.
3124         Added type verification for ldobj and ldtoken. The verifier
3125         would segfault if header or signature of a method contained references
3126         to non-existant types.
3127
3128 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
3129
3130         * marshal.c (cominterop_get_ccw): Patch from
3131         Bill Holmes to no walk up interface hierarchy. 
3132         All parent methods should be present in the interface for COM.
3133    
3134         Code is contributed under MIT/X11 license.
3135
3136 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
3137
3138         * marshal.c (emit_marshal_com_interface): Patch from
3139         Bill Holmes to handle COM Interfaces as return values
3140         for native->managed calls.
3141    
3142         Code is contributed under MIT/X11 license.
3143
3144 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
3145
3146         * marshal.c (cominterop_get_idispatch_for_object): Implement
3147         for runtime callable wrappers.
3148    
3149         Code is contributed under MIT/X11 license.
3150
3151 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
3152
3153         * pedump.c (main): changed from mono_init to mono_init_from_assembly
3154         so 2.0 types are accessible
3155
3156
3157 2007-08-13  Miguel de Icaza  <miguel@novell.com>
3158
3159         * domain.c (mono_init_internal): Call mono_assembly_load_friends
3160         once we load mscorlib.   Due to the order in which we initialize,
3161         the mono_assembly_load_full routine that loads mscorlib did not
3162         load friends.   We now load it once we load the
3163         mono_defaults.internals_visible_class class. 
3164
3165         * assembly.c: Expose the mono_load_friend_assemblies method.
3166
3167 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
3168
3169         * verify.c: improved the handling of boxing, better
3170         type checking for unary ops and conversion. Fix bug
3171         regarding managed pointer compatibility checking
3172
3173 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
3174
3175         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
3176
3177         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
3178
3179 2007-08-09  Raja R Harinath  <rharinath@novell.com>
3180
3181         * reflection.c (dup_type): Remove.
3182         * class.c (dup_type): Remove.
3183         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
3184         instead of the dodgy 'dup_type'.
3185         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
3186         handle the case where 'dup_type' needed the second argument.
3187
3188 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
3189
3190         * domain.c: Fix a warning.
3191
3192 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
3193
3194         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
3195         checking that methods with the same fqname are not overridden
3196         with a method from an ancestor.
3197
3198 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
3199
3200         * threads.c (free_thread_static_data_helper): Avoid a crash if
3201         thread->static_data is not yet set.
3202
3203 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
3204
3205         * marshal.c: Use correct image when emitting
3206         native wrapper for COM calls.
3207    
3208         Code is contributed under MIT/X11 license.
3209
3210 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
3211
3212         * icall-def.h, security.c, security.h :
3213           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
3214
3215 2007-08-07  Martin Baulig  <martin@ximian.com>
3216
3217         * mono-debug-debugger.h
3218         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
3219
3220         * domain.c (mono_domain_free): Call
3221         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
3222
3223 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
3224
3225         * verify.c (check_underflow, check_overflow): error message now returns IL offset
3226         * verify.c (in_same_block): code should test if either offset is inside the clauses
3227         * verify.c (mono_method_verify): push the exception into the eval stack of exception
3228         and filter blocks
3229
3230 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
3231
3232         * image.c (mono_image_close): Fix a leak.
3233
3234         * object.c (mono_runtime_invoke_array): Avoid using alloca.
3235
3236         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
3237
3238 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
3239
3240         * domain.c, threads.c, threads-types.h: fix memory retention issue
3241         with thread static variables not being cleared on domain unload.
3242         Reuse thread static slots after domain unload.
3243
3244 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
3245
3246         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
3247         nullable type.
3248
3249         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
3250         now done in mono_runtime_invoke_array.
3251
3252         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
3253         receiver is a nullable type.
3254
3255         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
3256         generic parameter.
3257
3258 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
3259
3260         * marshal.c: Implement COM Objects as return type for 
3261         managed->unmanaged calls. Added Release calls for COM Object
3262         out/return values in managed->unmanaged calls.
3263
3264         Code is contributed under MIT/X11 license.
3265
3266 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
3267
3268         * threads.h, threads-type.h: move the hazard pointer declarations
3269         to the private header.
3270
3271 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
3272
3273         * file-io.c, appdomain.c: memory leak fixes.
3274
3275 2007-08-02  Dick Porter  <dick@ximian.com>
3276
3277         * socket-io.c
3278         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
3279         SO_REUSEADDR setting into io-layer/sockets.c.
3280
3281 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
3282
3283         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
3284         from Object when called on a generic parameter. Fixes #82211.
3285
3286 2007-08-01  Dick Porter  <dick@ximian.com>
3287
3288         * file-io.c (convert_share): Test FileShare values bit-by-bit.
3289         Fixes bug 79250 yet again.
3290
3291 2007-07-30  Martin Baulig  <martin@ximian.com>
3292
3293         Merged the `debugger-dublin' branch.
3294
3295         * mono-debug.h
3296         (MonoDebugDataTable): New typedef.
3297         (MonoDebugMethodAddressList): New typedef.
3298         (MonoDebugWrapperData): Removed.
3299         (MonoDebugSymbolTable): Removed `current_data_table',
3300         `current_data_table_size', `current_data_table_offset'.
3301         (MonoDebugDataItemType): Moved into mono-debug.c.
3302         (MonoDebugMethodJitInfo): Remove `address'.
3303         (mono_debug_data_table): New global variable.
3304         (mono_debug_lookup_method_addresses): New public function.
3305         (mono_debug_find_method): Take a `MonoMethod *', not a
3306         `MonoDebugMethodInfo *'.
3307
3308         * mono-debug.c: Drop support for the old symbol tables.
3309
3310 2007-06-28  Martin Baulig  <martin@ximian.com>
3311
3312         * mono-debug.c (mono_debug_debugger_version): New public variable.
3313
3314 2007-07-31  William Holmes  <billholmes54@gmail.com>
3315
3316         * metadata.c Changed mono_type_create_from_typespec to not insert
3317           the type into the hash map until after
3318           do_mono_metadata_parse_type has completed.
3319         Fixes Bug #82194
3320         Code is contributed under MIT/X11 license.
3321
3322 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
3323
3324         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
3325         generic parameter. Fixes #82211.
3326
3327 2007-07-27  Jb Evain  <jbevain@novell.com>
3328
3329         * pedump.c (dump_metadata, dump_metadata_header): dump
3330         versions contained in the metadata header.
3331
3332 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3333
3334         * threads.c: register small_id_table with the GC.
3335
3336 2007-07-27  Mark Probst  <mark.probst@gmail.com>
3337
3338         * threads.c, threads.h, class-internals.h, object-internals.h:
3339         Hazard pointers, to be used by lock-free parallel algorithms.
3340
3341 2007-07-26  Dick Porter  <dick@ximian.com>
3342
3343         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
3344         routine on non-windows platforms, as I've not managed to think of
3345         a non-kludgy way of doing this.  Finishes off bug 78739.
3346
3347 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
3348
3349         * object.c: properly setup interface_bitmap in proxy vtables.
3350
3351 2007-07-25  Marek Habersack  <mhabersack@novell.com>
3352
3353         * appdomain.c (get_shadow_assembly_location): do not use TickCount
3354         to create unique shadow copy target directories, use the domain's
3355         serial number instead. Each domain gets a unique target directory
3356         that way.
3357
3358         * domain.c (mono_domain_create): added code to increment domain
3359         shadow copy serial number and cache the value in the current
3360         domain structure.
3361
3362         * domain-internals.h (struct _MonoDomain): added a new field -
3363         shadow_serial to hold the serial number used in generation of
3364         shadow-copy directories. This is to make sure that the directory
3365         name is unique for each and every domain created. We avoid a race
3366         condition with overriding assemblies already in use by other app
3367         domains.
3368
3369 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
3370
3371         * class.c (mono_bounded_array_class_get): fixed memory leak when 
3372         binding generic parameters.
3373
3374 2007-07-24  Raja R Harinath  <rharinath@novell.com>
3375
3376         * metadata.c (do_mono_metadata_parse_generic_class): Use
3377         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
3378         error.
3379
3380 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
3381
3382         * loader.c, class-internals.h, reflection.c: removed the per-method
3383         generics hashtable: we use the global one through the call of
3384         mono_class_inflate_generic_method ().
3385
3386 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3387
3388         * class.c, metadata.c, class-internals.h: introduce yet another
3389         generics global cache for inflated methods (fixes 98% of the perf
3390         issue in bug #81806).
3391
3392 2007-07-23  Raja R Harinath  <rharinath@novell.com>
3393
3394         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
3395         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
3396         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
3397         return a MonoGenericInst containing (a copy) of those types.
3398         (mono_metadata_inflate_generic_inst): Update to changes.
3399         (mono_metadata_parse_generic_inst): Likewise.
3400         (mono_get_shared_generic_inst): Likewise.
3401         * reflection.c (mono_class_bind_generic_parameters): Likewise.
3402         (mono_reflection_bind_generic_method_parameters): Likewise.
3403         * metadata-internals.h: Likewise.
3404         * icall.c (free_generic_context): Kill.
3405         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
3406
3407         * reflection.c (reflection_methodbuilder_to_mono_method): Use
3408         mono_metadata_type_dup.
3409         * marshal.c (mono_mb_create_method): Likewise.
3410
3411         * metadata.c (mono_metadata_type_dup): Rename from
3412         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
3413         MonoImage.  Handle a few more cases, esp. when no mempool is given.
3414         * marshal.c, metadata-internals.h: Update to changes.
3415
3416 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3417
3418         * class.c: fixed a small leak for array classes and removed warning.
3419
3420 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
3421
3422         * loader.c (mono_method_get_param_token): Make this work on generic methods.
3423         Return 0x8000000 for return parameters. Fixes #82161.
3424
3425 2007-07-21  Marek Habersack  <grendello@gmail.com>
3426
3427         * appdomain.c (get_shadow_assembly_location): append the current
3428         ticks value to the path. Avoids overwriting the same assemblies by
3429         several threads at the same time.
3430
3431 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3432         and Raja R Harinath  <rharinath@novell.com>
3433
3434         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3435         Simplify slightly.
3436         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
3437         property for testing if a method is a generic method definition.
3438
3439 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3440
3441         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
3442
3443 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3444
3445         * verify.c: used function from private branch, reverted to the one in class.h 
3446
3447 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3448
3449         * verify.c: a typo slipped in and the code wont compile
3450
3451 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3452
3453         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
3454         disabled box instruction as it is doing the wrong thing
3455         improved stack dump messages, now it is easier to debug type related issues
3456
3457
3458 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
3459
3460         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
3461
3462 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3463
3464         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
3465         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
3466         grouped with class and valuetype. This change will simply 
3467         the code as it should be handled just like unmanaged pointers.
3468
3469 2007-07-19  Mark Probst  <mark.probst@gmail.com>
3470
3471         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
3472
3473 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3474
3475         * verify.c: several stack merge issues fixed, reference comparisons now
3476         check the type size. strict type check now works correctly.
3477         added more uses of IS_MANAGED_POINTER macro.
3478         fixed issues pointed by running the test suite against .net.
3479         
3480
3481 2007-07-19  Mark Probst  <mark.probst@gmail.com>
3482
3483         * class.c, loader.c, class-internals.h: Removed the
3484         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
3485         defines.
3486
3487         * icall.c: Better error checking in some internal reflection
3488         methods.
3489
3490 2007-07-18  William Holmes  <billholmes54@gmail.com>
3491
3492         * filewatcher.c : removed unused variable 'filename' in 
3493           ves_icall_System_IO_FSW_SupportsFSW
3494
3495 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
3496
3497         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
3498         obsolete, removed.
3499
3500 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
3501
3502         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
3503         
3504         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
3505
3506 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
3507
3508         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
3509         Implement generics support.
3510         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3511
3512         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
3513         type_args and method_args arguments.
3514         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
3515         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3516         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
3517
3518 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
3519
3520         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
3521           It adds a rootimage parameter to mono_reflection_get_type_internal,
3522           adds new function mono_reflection_get_type_with_rootimage and use
3523           the rootimage to resolve the types instead of the current image
3524
3525 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3526
3527         * culture-info-table.h: Forgot to update after r78304.
3528
3529 2007-07-13  Raja R Harinath  <rharinath@novell.com>
3530
3531         * class.c (mono_class_is_open_constructed_type)
3532         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
3533
3534 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
3535
3536         * class.c (mono_bounded_array_class_get):  method fails if used with
3537         an incomplete TypeBuilder enum (no basetype field), fixed it by 
3538         avoiding calculating the size for such array as it cannot be instantiated.
3539         Fix bug #82015
3540
3541 2007-07-12  Raja R Harinath  <rharinath@novell.com>
3542
3543         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
3544         field.
3545         * metadata.c, reflection.c: Update to changes.
3546
3547 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
3548
3549         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
3550         mono_class_is_valid_enum, they are used to valide a enum when loading.
3551         * reflection.c: used new functions to throw TypeLoadException when and
3552         invalid enum is build with TypeBuilder. Fixes #82018
3553   
3554 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3555
3556         * object.c: forgot commit of mono_class_setup_methods () to access
3557         iface->methods.
3558         * object-internals.h: added a few more handy fields to
3559         MonoIMTCheckItem.
3560
3561 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
3562
3563         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
3564         iface->methods.
3565
3566 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
3567
3568         * class-internals.h, object-internals.h, object.c: IMT-based
3569         interface invocation core from Massimiliano Mantione
3570         (massi@ximian.com) with a reworked arch-specific interface,
3571         bsearch implementation and a few bugfixes and memory savings by me.
3572
3573 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
3574
3575         * class.c (mono_class_create_from_typedef): mono would segfault if 
3576         an enum did not have a __value field. It now throws a TypeLoadException
3577         for such cases. Fix bug #82022
3578
3579 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
3580
3581         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
3582
3583 2007-07-09  Mark Probst  <mark.probst@gmail.com>
3584
3585         * class.c (mono_class_init): If a class is already inited but has
3586         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
3587
3588 2007-07-09  Mark Probst  <mark.probst@gmail.com>
3589
3590         * class.c: Properly handle the case of an unimplemented interface
3591         method.  Fixes: 81673.
3592
3593 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
3594
3595         * class-internals.h, object.c: cleanup patch from massi: use
3596         MonoVTable->interface_bitmap since the vtable interfaces offset array
3597         is going away.
3598
3599 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
3600
3601         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
3602         GetMDStreamVersion icall instead.
3603
3604 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
3605
3606         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
3607         not use mono_dl_build_path() with a full library name: makes
3608         fallbacks to libgaim and libfam work.
3609
3610 2007-07-06  William Holmes  <billholmes54@gmail.com>
3611
3612         * assembly.c: Added a continue statement in probe_for_partial_name when
3613          parse_assembly_directory_name fails.  Fixes : 82002
3614
3615 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
3616
3617         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
3618         and added a verification  for TYPEDBYREF.
3619         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
3620         make native int interchangeable with int32 and some small cleanup and formating.
3621         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
3622         handle byref of byref.
3623         * verify.c (push_local): handle byref of byref.
3624         * verify.c (do_binop): invalid mix of values is unverifiable
3625         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
3626         added visibility checks
3627         * verify.c (field related method): added visibility checks
3628         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
3629
3630 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
3631
3632         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
3633         string.
3634
3635 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
3636
3637         * profiler.c (mono_profiler_load): Fix an off-by-one error.
3638
3639         * marshal.c (emit_marshal_string): When returning a string from managed code,
3640         allways make a copy even for unicode strings. Fixes #81990.
3641
3642 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
3643
3644         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
3645         of byref generic inst types (bug #81997).
3646
3647 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
3648
3649         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
3650         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
3651
3652 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
3653
3654         * marshal.c (emit_marshal_string): Add support for unicode strings in
3655         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
3656
3657 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
3658
3659         * verify.c: field load/store are now verified, missing only access checks now
3660
3661 2007-06-28  Martin Baulig  <martin@ximian.com>
3662
3663         * mono-debug.c (mono_debug_debugger_version): New public variable.
3664
3665 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
3666
3667         * locales.c: When constructing DateTimeFormat or NumberFormat for
3668         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
3669         MonoCultureInfo contructed from the current locale is always
3670         read-only and has UseUserOverride set to true. All MonoCultureInfo
3671         instances returned for GetCultures have both IsReadOnly and
3672         UseUserOverride set to true. Fixes part of bug #81930.
3673
3674 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
3675
3676        * icall-def.h: Update System.__ComObject icalls
3677        * marshal.c: Avoid managed transition (and object creation)
3678        when looking up COM interface in RCW.
3679        * marshal.h: Ditto.
3680        
3681        Code is contributed under MIT/X11 license.
3682
3683 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
3684
3685         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
3686         to avoid crashes during assembly unloading.
3687
3688 2007-06-22  Raja R Harinath  <rharinath@novell.com>
3689
3690         Fix MethodInfo.IsGenericMethodDefinition
3691         * reflection.c (mono_reflection_bind_generic_method_parameters):
3692         Rearrange code to ensure we always uses a generic method definition.
3693         * class.c (mono_class_inflate_generic_method_full): Set
3694         'generic_container' field only for generic method definitions.
3695         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3696         Use presense of 'generic_container' field as indication of being a
3697         generic method definition.
3698
3699 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
3700
3701         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3702
3703         * object-internals.h: Reflect changes in the layout of the managed Delegate
3704         class.
3705         
3706         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
3707         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
3708         runtime memory used by the dynamic method. Fixes #77146.
3709
3710 2007-06-21  Dick Porter  <dick@ximian.com>
3711
3712         * file-io.h: 
3713         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
3714         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
3715         81767.
3716
3717 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3718
3719         * reflection.c (method_encode_methodspec): Add a tripwire.
3720         * class.c (inflate_generic_type): The fully open generic type is
3721         not the same as the generic type definition.
3722
3723 2007-06-21  Martin Baulig  <martin@ximian.com>
3724
3725         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
3726
3727         * mono-debug-debugger.h
3728         (MonoDebuggerBreakpointInfo): Removed.
3729         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
3730         (mono_debugger_remove_breakpoint): Likewise.
3731         (mono_debugger_breakpoint_callback): Likewise.
3732         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
3733
3734 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3735
3736         * metadata.c (mono_metadata_lookup_generic_class): The fully open
3737         generic type is not the same as the generic type definition.
3738         * class.c (mono_generic_class_get_class): Likewise.
3739
3740 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
3741
3742         * icall.c: The second argument to 
3743         System.Reflection.MethodBase.GetMethodFromHandleInternalType
3744         is a MonoType not a MonoClass.
3745
3746 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3747
3748         * verify.c: support for function pointers in the verifier
3749
3750 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3751
3752         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
3753
3754 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
3755
3756         * assembly.c: removed Mono.Data.SqliteClient from the list of
3757         forward-compatible assemblies as it breaks the ABI (bug #81899).
3758
3759 2007-06-19  Raja R Harinath  <rharinath@novell.com>
3760
3761         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
3762         lookup/update with the loader lock.
3763         * reflection.c (mono_class_bind_generic_parameters): No need to
3764         protect mono_metadata_lookup_* with the loader lock.
3765         * class.c (inflate_generic_type): Likewise.
3766         
3767         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
3768         on a generic instantiated type.
3769
3770 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
3771
3772         *verify.c: produce meanfull error messages on verification error
3773         *verify.c: fixed some cases of verification errors reported as validation errors
3774         *pedump.c: fixed the error name array, now it shows validation errors properly
3775         *verify.h: fixed the contant that should be used for verification errors
3776
3777 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
3778
3779         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
3780         for bug #77596, 81858 and 80743 (generics data structures on domain
3781         unload).
3782
3783 2007-06-15  Raja R Harinath  <rharinath@novell.com>
3784
3785         Avoid allocating 'MonoGenericContext' on the heap.
3786         * class-internals (_MonoMethodInflated::context): Make field
3787         inline, not a pointer.
3788         * loader.c (method_from_methodspec): Allocate 'new_context' on the
3789         stack.  Use the context embedded within the inflated method as the
3790         hash key, rather than 'new_context'.
3791         * class.c (inflate_generic_context): Simplify.  Return a struct
3792         rather than allocating on the heap.
3793         (mono_class_inflate_generic_method_full): Update to changes.  Now,
3794         doesn't salt away a copy of the context -- simplifying the
3795         lifetime rules of a 'MonoGenericContext *'.
3796         (mono_method_get_context): Return pointer to embedded context.
3797         (setup_generic_array_ifaces): Allocate temporary context on stack.
3798         * reflection.c (inflate_mono_method): Likewise.
3799         (mono_reflection_bind_generic_method_parameters): Likewise.
3800         Use the context embedded within the inflated method as the hash key.
3801
3802         Avoid a source of allocation of 'MonoGenericContext'.
3803         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
3804         and 'cached_context' fields into embedded 'MonoGenericContext' field.
3805         * class.c: Update to changes.
3806         (mono_generic_class_get_context): Simplify drastically.  Now just
3807         returns a pointer to the field.
3808         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
3809         argument as a const pointer.
3810         (mono_metadata_generic_context_equal): Likewise.
3811         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
3812         Update to changes.
3813
3814 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
3815
3816         * verify.c improved the handling of brtrue/brfalse, factored out common code
3817
3818 2007-06-14  Raja R Harinath  <rharinath@novell.com>
3819
3820         Kill MonoGenericMethod.
3821         * class-internals.h (MonoGenericContext::method_inst): Rename from
3822         'gmethod' and convert to a MonoGenericInst.
3823         (MonoGenericMethod): Remove.
3824         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
3825         * loader.c (method_from_methodspec): Update to changes.  Use a
3826         MonoGenericContext as the key to the hashtable.
3827         * metadata.c (mono_metadata_generic_context_equal): Rename from 
3828         'mono_metadata_generic_method_equal' and take MonoGenericContext.
3829         (mono_metadata_generic_context_hash): Likewise from
3830         'mono_metadata_generic_method_hash'.  Change hash function.
3831         (mono_metadata_load_generic_params): Update to changes.
3832         (mono_get_shared_generic_method): Remove.
3833         * metadata-internals.h (mono_get_shared_generic_method): Remove.
3834         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
3835         (inflate_generic_context): Likewise.
3836         (mono_class_inflate_generic_method_full): Likewise.
3837         (setup_generic_array_ifaces): Likewise.
3838         (mono_class_create_from_typespec): Likewise.
3839         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
3840         (method_encode_methodspec): Update callsite.
3841         (reflection_methodbuilder_to_mono_method): Update to changes.
3842         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
3843         MonoGenericContext as the key to the hashtable.
3844         (inflate_mono_method): Update to changes.
3845
3846         * class-internals.h (MonoGenericMethod::container): Remove.
3847         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
3848
3849 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
3850
3851         * profiler-private.h, profiler.c, profiler.h: added API to profile
3852         exception events.
3853
3854 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
3855
3856         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
3857
3858 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
3859
3860         * verify.c: method invocation is now validated, now we verify parameter types on stack.
3861         Fixed overflow and underflow not aborting the verification process.
3862
3863 2007-06-13  Mark Probst  <mark.probst@gmail.com>
3864
3865         * class-internals.h (MonoStats): Added stats entries for dynamic
3866         code allocations.
3867
3868 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
3869
3870         * loader.c (mono_free_method): Free header->locals and header->clauses.
3871
3872         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
3873         dynamic case.
3874
3875         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
3876
3877         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
3878
3879 2007-06-12  Raja R Harinath  <rharinath@novell.com>
3880
3881         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
3882         the tables.
3883
3884 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3885
3886         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
3887
3888 2007-06-11  Raja R Harinath  <harinath@gmail.com>
3889
3890         MonoGenericMethod on a diet
3891         * class-internals.h (_MonoMethodInflated::reflection_info): Move
3892         here ...
3893         (_MonoGenericMethod::reflection_info): ... from here.
3894         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
3895         Update to changes.
3896         * reflection.c (inflate_mono_method): Likewise.
3897         (mono_reflection_bind_generic_method_parameters): Likewise.
3898
3899 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3900
3901         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
3902         *verify.c: factored long ldarg forms to share code with short forms
3903
3904 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3905
3906         *verify.c: fixed code formating factored some duplicate code
3907         into a new function
3908
3909         *verify.h: fixed binary incompatibility introduced earlier
3910
3911         *pedump.c: fixed formating
3912
3913 2007-06-11  Raja R Harinath  <harinath@gmail.com>
3914
3915         Fix assertion when disassembling Mono.C5.dll
3916         * loader.c (method_from_methodspec): Avoid inflating a method
3917         twice with the same context.  If the methodref is inflated, use
3918         the declaring method instead.
3919
3920         * class.c (mono_class_from_generic_parameter): Fix case similar to
3921         bug #81830 handled below, but for method containers.
3922
3923 2007-06-10  Raja R Harinath  <harinath@gmail.com>
3924
3925         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
3926         get_shared_generic_class.  Directly inflate the instance.
3927         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
3928         (inflate_generic_class): Delete.
3929         (get_shared_generic_class): Delete.  Move setting of
3930         'cached_class' and 'cached_context' ...
3931         * metadata.c (mono_metadata_lookup_generic_class): ... here.
3932
3933         * metadata.c (mono_metadata_lookup_generic_class): Change
3934         signature to take the components of a MonoGenericClass rather than
3935         an allocated MonoGenericClass.  Change semantics to be intern-like.
3936         * reflection.c (mono_class_bind_generic_parameters): Update to
3937         changes.  Make locking region tighter.
3938         * class.c (inflate_generic_class): Update to changes.
3939         (get_shared_generic_class): Likewise.
3940         * metadata-internals.h: Likewise.
3941
3942         * reflection.c (mono_class_bind_generic_parameters): Take and
3943         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
3944         (mono_reflection_bind_generic_parameters): Use
3945         'mono_class_bind_generic_parameters' rather than duplicate the code.
3946         * class.c (mono_bounded_array_class_get): Update to changes.
3947         * object-internals.h: Likewise.
3948
3949         * reflection.c (mono_class_bind_generic_parameters): Only support
3950         parameterizing generic type definitions.  Remove support for other
3951         open types.
3952
3953 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
3954
3955         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
3956
3957         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
3958         in the dynamic case.
3959
3960 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
3961
3962         * threads.c: When cleaning up thread, reset the Background bit.
3963         Fixes bug #81720.
3964
3965 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
3966
3967        * metadata.c: Move variable declarations to top of scope.
3968        * verify.c: Move variable declarations to top of scope.
3969
3970        Code is contributed under MIT/X11 license.
3971
3972 2007-06-08  Raja R Harinath  <rharinath@novell.com>
3973
3974         * reflection.c (mono_class_bind_generic_parameters): Replace
3975         open-coded loop with mono_metadata_inflate_generic_inst.
3976
3977         * class.c (get_shared_generic_class): Don't call
3978         mono_get_shared_generic_inst.  Use the container's own
3979         'class_inst'.
3980
3981         * metadata.c (mono_metadata_load_generic_params): Move
3982         initialization of 'context' field here from ...
3983         * class.c (mono_class_create_from_typedef): ... here, and ...
3984         * loader.c (mono_get_method_from_token): ... here.
3985
3986         * class.c (get_shared_generic_class): Rename from
3987         mono_get_shared_generic_class and make static.
3988         (mono_get_shared_generic_inst): Move to metadata.c.
3989         * loader.c (mono_get_shared_generic_method): Likewise.
3990         * class-internals.h, metadata-internals.h: Update to changes.
3991
3992         Fix #81830
3993         * class.c (mono_class_from_generic_parameter): Don't assume a
3994         generic container owner exists.  Generic containers from monodis
3995         don't have any.
3996
3997 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
3998
3999         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
4000         * verify.h: new typedefs to returns the non-verifiable status
4001         * verify.c: initial implementation of generics, stack merging and object compatibility check
4002
4003 2007-06-06  Mark Probst  <mark.probst@gmail.com>
4004
4005         * class.c, image.c, class-internals.h (MonoImage): class_cache is
4006         a MonoInternalHashTable again (fixed bug in internal hash table
4007         code).
4008
4009 2007-06-06  Mark Probst  <mark.probst@gmail.com>
4010
4011         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
4012         MonoInternalHashTable again (fixed bug in internal hash table
4013         code).
4014
4015 2007-06-06  Mark Probst  <mark.probst@gmail.com>
4016
4017         * class.c, image.c, class-internals.h, domain.c,
4018         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
4019         changes.  Have to figure out what makes them break the SWF
4020         regression.
4021
4022 2007-06-04  Mark Probst  <mark.probst@gmail.com>
4023
4024         * class.c, image.c, class-internals.h (MonoImage): class_cache is
4025         a MonoInternalHashTable now.
4026
4027 2007-06-04  Mark Probst  <mark.probst@gmail.com>
4028
4029         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
4030         MonoInternalHashTable now.
4031
4032 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
4033
4034         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
4035         invoke_impl code.
4036
4037         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
4038
4039         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
4040         dependent trampoline.
4041
4042         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4043
4044         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
4045
4046 2007-05-29  Robert Jordan  <robertj@gmx.net>
4047
4048         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
4049
4050 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
4051
4052         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
4053
4054 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
4055
4056        * marshal.c: Fix interface lookup loops for
4057        cominterop_get_com_slot_for_method and 
4058        cominterop_get_method_interface. Only need to lookup
4059        if type is a class, else use interface type method is on.
4060
4061        Code is contributed under MIT/X11 license.
4062
4063 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
4064
4065         * reflection.c: HasSecurity can be present even if no specially 
4066         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
4067         SecurityAttribute). Fix CAS regression tests on buildbot.
4068
4069 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
4070
4071        * appdomain.c: Add configure checks for header files.
4072        * image.c: Add configure checks for header files.
4073        * file-io.c: Add configure checks for header files.
4074        * debug-mono-symfile.c: Add configure checks for header files.
4075        * threadpool.c: Add configure checks for header files.
4076        * console-io.c: Add configure checks for header files.
4077        * profiler.c: Add configure checks for header files.
4078        * rawbuffer.c: Add configure checks for header files.
4079        * icall.c: Add configure checks for header files.
4080        * rand.c: Add configure checks for header files.
4081        * socket-io.c: Add configure checks for header files.
4082
4083        Code is contributed under MIT/X11 license.
4084
4085 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
4086
4087         * reflection.c (mono_custom_attrs_from_builders): Remove the 
4088         assertion as it breaks the build.
4089         
4090         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
4091
4092         * reflection.c (lookup_custom_attr): Make a copy here too.
4093
4094         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
4095         dynamic images.
4096
4097         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
4098         images.
4099
4100         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
4101         info.
4102
4103 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
4104
4105         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
4106         (load_cattr_value): Ditto.
4107
4108 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
4109
4110         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
4111
4112 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
4113
4114         * threads.c: In "start_wrapper", set apartment_state to MTA if
4115         apartment_state is Unknown and we're running on 2.0 profile or
4116         higher.
4117         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
4118         to main method, then set apartment_state to Unknown on 1.0 profile,
4119         and MTA on 2.0 profile.
4120
4121 2007-05-16  Jb Evain  <jb@nurv.fr>
4122
4123         * class-internals.h (MonoDefaults): Add an attribute_class and
4124           customattribute_data_class.
4125         * domain.c (mono_init_internal): Populate them.
4126         * reflection.c: Use them to remove duplicates. Make a vew
4127         MonoClass variables `static'.
4128
4129 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
4130
4131         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
4132         step in implementing IMT, so that all isinst checks now can go
4133         through the bitmap.
4134         This was needed because vtables for TransparentProxy need to look
4135         like the vtable of the "target" class, so they need to point to
4136         its interface bitmap directly.
4137
4138         * object.c: inside "mono_class_create_runtime_vtable" and
4139         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
4140
4141 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
4142
4143         * object-internals.h
4144           culture-info.h : added territory field in MonoCulture and
4145           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
4146         * locales.c : fill territory field above too.
4147         * culture-info-table.h : regenerated.
4148
4149 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
4150
4151         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
4152         Fixes #81599.
4153
4154 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
4155
4156         * object.c: Always initialize apartment, even if 
4157         there is no custom attributes on entry point.
4158         
4159         Code is contributed under MIT/X11 license.
4160
4161 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
4162
4163         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
4164         * metadata.c: If no encoding is set, check for unicode
4165         on class.
4166         
4167         Code is contributed under MIT/X11 license.
4168
4169 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
4170
4171         * threads.c: Handle if mono_thread_current returns NULL 
4172         
4173         Code is contributed under MIT/X11 license.
4174
4175 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
4176
4177         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
4178         in start_wrapper. Added mono_thread_init_apartment_state and
4179         mono_thread_cleanup_apartment_state.
4180         * object.c: Initialize thread apartment state on main thread
4181         by checking for STAThreadAttribute on entry point.
4182         * object-internals.h: Add apartment_state field to MonoThread.
4183         * threads-types.h: Add unmanaged definition of 
4184         System.Threading.ApartmentState, MonoThreadApartmentState.
4185         
4186         Code is contributed under MIT/X11 license.
4187         
4188 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
4189
4190         * class.c: Fix windows build.
4191         * class-internals.h: Fix windows build.
4192         
4193         Code is contributed under MIT/X11 license.
4194
4195 2007-05-08  Robert Jordan  <robertj@gmx.net>
4196
4197         * process.c (CreateProcess_internal):
4198         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
4199         .CreateNoWindow was specified. Fixes #81496.
4200
4201 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
4202
4203         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
4204         step in implementing IMT, replaced it with two compact arrays
4205         (interfaces_packed and interface_offsets_packed) and a bitmap that
4206         is used for isinst checks (interface_bitmap).
4207
4208         * class.c: (compare_interface_ids): compare function to pass to
4209         bsearch when looking for an interface with a given id.
4210         (mono_class_interface_offset): reimplemented using bsearch on
4211         interfaces_packed, getting the offset from interface_offsets_packed.
4212         (print_implemented_interfaces): utility debugging function.
4213         (setup_interface_offsets): reworked to initialize interfaces_packed,
4214         interface_offsets_packed and interface_bitmap.
4215
4216         * object.c: replaced all accesses to "MonoClass.interface_offsets"
4217         with uses of interfaces_packed and interface_offsets_packed.
4218
4219 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
4220
4221         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
4222         mono_class_interface_offset prototype to wrap all accesses to
4223         "MonoClass.interface_offsets".
4224
4225         * class.c: Implemented mono_class_interface_offset, and wrapped all
4226         accesses to "MonoClass.interface_offsets".
4227
4228         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
4229         "MonoClass.interface_offsets".
4230
4231 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
4232
4233         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
4234         GetMethodFromHandle overloads (bug #78637).
4235
4236 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
4237
4238         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
4239         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
4240
4241 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
4242
4243         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
4244         #81498.
4245
4246         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
4247         gracefully.
4248         (mono_custom_attrs_from_index): Ditto.
4249
4250         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
4251         Fixes #81501.
4252
4253 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
4254
4255         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
4256         is now allocated from a mempool.
4257
4258 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
4259
4260         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
4261         caller holds threads_lock, leading to deadlocks. Fixes #81476.
4262
4263 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
4264
4265         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
4266         mono_loader_clear_error () too late. Fixes #81463.
4267
4268 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
4269
4270         * culture-info-table.h : regenerated.
4271
4272 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
4273
4274         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
4275         is missing.
4276
4277 2007-04-25  Dick Porter  <dick@ximian.com>
4278
4279         * Makefile.am: Put the mingw enforced-optimisation back into the
4280         PLATFORM_WIN32 section.
4281
4282 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
4283
4284         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
4285         patch.
4286
4287         * image.c (mono_image_load_module): New API function to load a module reference.
4288
4289         * image.c (load_modules): Load modules lazily. Fixes #80812.
4290
4291         * class.c (mono_class_from_typeref): Use mono_image_load_module.
4292         
4293         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
4294
4295         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
4296         to mono_image_load_module_dynamic.
4297
4298 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
4299
4300         * marshal.c: Fix calling convention for CCW on non-windows
4301         platforms. STDCALL on windows, CDECL everywhere else to work 
4302         with XPCOM and MainWin COM.
4303         
4304         Code is contributed under MIT/X11 license.
4305
4306 2007-04-23  Martin Baulig  <martin@ximian.com>
4307
4308         Fix #80969.
4309
4310         * loader.c
4311         (method_from_memberref): Added `gboolean *used_context' argument.
4312         (mono_get_method_from_token): Likewise.
4313         (mono_get_method_full): Don't insert the method in the cache when
4314         `used_context' is true.
4315
4316 2007-04-23  Raja R Harinath  <rharinath@novell.com>
4317
4318         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
4319
4320         * reflection.c (mono_reflection_bind_generic_parameters): Don't
4321         create new MonoTypes for returned types.
4322         * class.c (mono_generic_class_get_class): Export mono-internal.
4323         * class-internals.h: Update to changes.
4324
4325 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
4326
4327         * threadpool.c, threadpool.h, icall-def.h: patch from
4328         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
4329
4330 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
4331
4332         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
4333         
4334         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
4335
4336         * threads.c (mono_thread_get_stack_bounds): New helper function.
4337
4338         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
4339         Correctly compute stack bounds when attaching. Fixes #81394.
4340
4341 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
4342
4343         * reflection.c: fix handling of doubles in custom attributes
4344         for the arm-fpa format (bug #81368).
4345
4346 2007-04-18  Raja R Harinath  <rharinath@novell.com>
4347
4348         * reflection.c (assembly_add_win32_resources): Mildly relax an
4349         bounds check to let the end pointer point just past the end of the
4350         allocated buffer.  (may fix #81384)
4351
4352 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
4353
4354         * culture-info-table.h : regenerated.
4355
4356 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
4357
4358         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
4359         the thread is aborted early.
4360
4361 2007-04-05  Dick Porter  <dick@ximian.com>
4362
4363         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
4364         FindFirstFile()/FindNextFile() to find entries.  This lets the
4365         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
4366         81038.
4367
4368         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
4369         the parameters of
4370         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
4371
4372 2007-04-04  Martin Baulig  <martin@ximian.com>
4373
4374         * debug-helpers.c
4375         (mono_method_desc_full_match): Add support for nested classes.
4376
4377 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
4378
4379         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
4380
4381 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
4382
4383         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
4384         waiting for too many threads.
4385
4386 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
4387
4388         * environment.c: Fix return value check on uname so we can get the 
4389         executing version on Solaris operating systems.
4390
4391 2007-03-28  Jb Evain  <jbevain@gmail.com>
4392
4393         * class.c (mono_type_get_name_recurse): Complete the
4394         fix for the creation of assembly qualified names for
4395         pointer types. Fixes #81208.
4396
4397 2007-03-27  Dick Porter  <dick@ximian.com>
4398
4399         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
4400         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
4401         changed.
4402
4403         * threads.c
4404         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
4405         the value of ReleaseMutex().
4406
4407 2007-03-27  Dick Porter  <dick@ximian.com>
4408
4409         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
4410         in little-endian order, not network endian, so must be converted
4411         to host endian here.  Fixes bug 80593.
4412
4413 2007-03-22  Jb Evain  <jbevain@gmail.com>
4414
4415         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
4416         qualified names for pointer types. Fixes #81208.
4417
4418 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
4419
4420         * marshal.c: Add support for PreserveSigAttribute. 
4421         
4422         Code is contributed under MIT/X11 license.
4423
4424 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
4425
4426         * process.c: Fix endianness issues. Fixes #81126.
4427
4428         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
4429         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
4430
4431         * image.c (mono_image_lookup_resource): Make this work on big-endian
4432         machines.Change API contract so the caller needs to free the return value.
4433         
4434         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
4435         API change.
4436         
4437 2007-03-14  Martin Baulig  <martin@ximian.com>
4438
4439         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
4440         mono_type_get_desc() as well.
4441
4442 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
4443
4444         * icall.c:  Fix environ access in VS.  
4445         
4446 2007-03-13  Alp Toker  <alp@atoker.com>
4447
4448         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
4449         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
4450         #63841.
4451
4452 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
4453
4454         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
4455         circular references among dynamic methods. Fixes #81091.
4456
4457         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
4458
4459 2007-03-09  Martin Baulig  <martin@ximian.com>
4460
4461         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
4462
4463 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
4464
4465         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
4466         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
4467         
4468         Code is contributed under MIT/X11 license.
4469         
4470 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
4471
4472         * loader.c: Reapply patch for bug #79424.
4473
4474 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
4475
4476         * metadata.c (mono_type_to_unmanaged): Only convert object to
4477         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
4478
4479 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
4480
4481         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
4482         (and incorrectly set) is_reference field from MonoGenericInst.
4483
4484 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
4485
4486         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
4487         a little earlier.
4488
4489         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
4490
4491         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
4492
4493 2007-03-05  Miguel de Icaza  <miguel@novell.com>
4494
4495         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
4496         FileOptions.1 value to mean "temporary", map that to
4497         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
4498
4499         Fixes 80688
4500
4501 2007-03-03  Marek Habersack  <mhabersack@novell.com>
4502
4503         * appdomain.c: implement MS .Net style shadow copying. Copies of
4504         the assemblies are made in a subdirectory of the dynamic base
4505         directory, the assembly names are preserved.
4506         Copy .mdb and .config files along with the assemblies being shadowed.
4507
4508 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
4509
4510         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
4511         (emit_marshal_handleref): Ditto.
4512
4513         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
4514         on Visual C++. Fixes #80671.
4515
4516 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
4517
4518         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
4519         for clone operations.
4520
4521 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
4522
4523         * marshal.c: Fix warnings.
4524
4525 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
4526
4527         * loader.c: allow case-insensitive matching of the dll name
4528         in dllmap handling when prefixed with "i:".
4529
4530 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
4531
4532         * threads.c: Fix #ifdef for dummy_apc function for VS.
4533
4534 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
4535
4536         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
4537
4538 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
4539         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
4540         giving precedence to the methods with a fully qualified name
4541         (InterfaceName.MethodName) when building the interface sections
4542         of the vtable.
4543
4544 2007-02-16  Dick Porter  <dick@ximian.com>
4545
4546         * threadpool.c (append_job): Fix fast-path array handling, so it's
4547         less likely the array will grow exponentially when the load is
4548         heavy.
4549
4550 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4551
4552         * metadata-internals.h, loader.c: fix dllmap lookup order
4553         for non-function maps, too, and prepare for fallback code.
4554
4555 2007-02-12  Robert Jordan  <robertj@gmx.net>
4556
4557         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
4558         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
4559         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
4560         GlobalFree. Fixes a part of bug #77075.
4561
4562 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
4563
4564         * loader.c: implemented typedef parent in field memberref.
4565
4566 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
4567
4568         * marshal.c: Fix warnings and remember to call Release on
4569         IUnknown of RCW.
4570         
4571         Code is contributed under MIT/X11 license.
4572
4573 2007-02-10  Miguel de Icaza  <miguel@novell.com>
4574
4575         * class-internals.h: Add MonoHandleRef definition, and
4576         handleref_class to mono_defaults. 
4577
4578         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
4579         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
4580
4581         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
4582         (do nothing on this stage)
4583         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
4584         (emit_marshal_handleref): New method, used for argument handling
4585         of HandleRefs. 
4586
4587 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
4588
4589         * class.c (mono_class_setup_parent): Lazily init com types.
4590         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
4591         init com types.
4592         * object.c (mono_remote_class_vtable): Lazily init com types.
4593         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
4594         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
4595         * domain-internals.h: Expose mono_init_com_types.
4596         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
4597         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
4598         Add support for COM Callable Wrapper marshalling.
4599         * marshal.h: Add icall definitions.
4600         * gc.c: Handle freeing of CCWs in finalizer code.
4601         
4602         Code is contributed under MIT/X11 license.
4603
4604 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
4605
4606         * reflection.c: changed all the signature encoding code to use
4607         a variable-sized buffer.
4608
4609 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4610
4611         * marshal.c: locking fixes: never take the loader lock
4612         or other runtime locks when holding the marshal lock
4613         (fixes bug#80664).
4614
4615 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
4616
4617         * marshal.c: make the delegate function pointer mapping
4618         work for the moving GC.
4619
4620 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
4621
4622         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
4623         for bug #80618.
4624
4625 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4626
4627         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
4628         gmodule.
4629
4630 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
4631
4632         * threadpool.c: made the code moving-GC safe.
4633
4634 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
4635
4636         * assembly.c, boehm-gc.c, class-internals.h, class.c,
4637         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
4638         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
4639         warning cleanup.
4640         * reflection.c: warning cleanup, some threading and moving GC fixes.
4641
4642 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
4643
4644         * class.c, loader.c: create the needed Set/Get/Address array methods
4645         as well as the .ctors in mono_class_init (), fixes bug #80567.
4646
4647 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
4648
4649         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
4650         we doesn't decrease its alignment. Should fix the sparc build.
4651
4652 2007-01-24  Dick Porter  <dick@ximian.com>
4653
4654         * socket-io.c
4655         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4656         Create the returned object if we need to ignore an unsupported
4657         socket option.  Fixes a segfault reported by Atsushi.
4658
4659 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
4660
4661         * class.c, object.c: restrict GC-tracked fields to
4662         UIntPtr fields used inside corlib, so we provide better
4663         type info to the GC and also allow broken packing as in
4664         bug #80580.
4665
4666 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
4667
4668         * sgen-gc.c: removed duplicated function.
4669
4670 2007-01-19  Miguel de Icaza  <miguel@novell.com>
4671
4672         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
4673         value that means that the value is not supported, but that we
4674         should not return a failure, but instead report this as a
4675         successful operation.
4676
4677 2007-01-19  Raja R Harinath  <rharinath@novell.com>
4678
4679         Fix tests/bug79956.2.il
4680         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
4681         (mono_generic_class_get_class): If the generic definition in an
4682         enum, copy over other fields related to it.
4683
4684 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
4685
4686         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
4687         genericinst enums (bug #79215).
4688
4689 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
4690         * class.c: Fix bug 80307.
4691
4692 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
4693
4694         * image.c: if the file table is not present, try to load
4695         all the modules, since we don't have info about them
4696         having or not metadata (bug #80517).
4697         * assembly.c: allow mono_assembly_load_references () to
4698         work for netmodules.
4699
4700 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4701
4702         * image.c, metadata-internals.h, object.c: execute module
4703         cctors when running on the 2 runtime if present (bug #80487).
4704
4705 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
4706
4707         * icall.c: optimized InitializeArray() on bigendian.
4708
4709 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
4710
4711         * icall.c: fix for the broken ARM FPA double format.
4712
4713 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
4714
4715         * icall.c: handle endian issues for r4 and r8 types, too, in
4716         the InitializeArray() icall.
4717
4718 2007-01-15  Miguel de Icaza  <miguel@novell.com>
4719
4720         * loader.c (mono_loader_error_prepare_exception): Clear the error
4721         once we have extracted the information from it, do this before we
4722         call into the JIT's class loading mechanisms.
4723
4724         * object.c (mono_class_create_runtime_vtable): Do not clear the
4725         loader error before calling mono_class_get_exception_for_failure
4726         as the loader error is needed inside
4727         mono_class_get_exception_for_failure to throw the error (thinko).
4728
4729         Fixes #80521
4730         
4731 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
4732
4733         * reflection.c: align fields rva data so it's faster to load at
4734         runtime.
4735
4736 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4737
4738         Prepare to simplify GenericMethod handling.
4739         * class-internals.h (mono_method_get_context): New accessor function.
4740         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
4741         rather than directly accessing '->context' field.
4742
4743         * class-internals.h (_MonoGenericParam.method): Move ...
4744         (_MonoGenericContainer): ... here.  Add into union with klass field.
4745         * class.c, icall.c, loader.c, metadata.c, reflection.c:
4746         Update to changes.
4747
4748 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
4749
4750         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
4751         the wrapper type enum and reduce relocations.
4752
4753 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4754
4755         * reflection.c (inflate_mono_method): Reuse method instantiation
4756         from the generic method, if available.
4757
4758 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4759
4760         * marshal.c (emit_marshal_variant): Fix conv_arg
4761         type in last commit, based on whether parameter is byref.
4762         
4763 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4764
4765         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
4766         marshalling.
4767         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
4768         MONO_TYPE_OBJECT back for VARIANT support.
4769
4770 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4771
4772         * marshal.c, marshal.h, icall-def.h: Implement 
4773         Marshal.ReAllocCoTaskMem.
4774
4775 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
4776
4777         * marshal.c: memory retention fixes: use the proper
4778         image cache for runtime_invoke method lookups.
4779
4780 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
4781
4782         * mempool.c: added code to help debug mempool allocations.
4783
4784 2007-01-11  Dick Porter  <dick@ximian.com>
4785
4786         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
4787         support (experimenting with faking it with IP_MTU_DISCOVER for
4788         systems that don't have IP_DONTFRAGMENT.)
4789         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
4790         icall.
4791
4792         * icall-def.h: new System.Net.Sockets.Disconnect icall.
4793
4794         * socket-io.h: Add new fields to MonoSocketAsyncResult
4795         corresponding to the new ones in Socket.cs.
4796
4797 2007-01-11  Raja R Harinath  <rharinath@novell.com>
4798
4799         Fix IronPython regression mentioned in #80249
4800         * metadata.c (do_mono_metadata_parse_generic_class): Clear
4801         'cached_context' field, since it may have been initialized as a
4802         side-effect of metadata parsing.
4803
4804         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
4805         (_MonoGenericClass.cached_class): Move here and rename from lone
4806         remaining field of ...
4807         (_MonoInflatedGenericClass): ... this.  Remove.
4808         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
4809         to changes.
4810
4811         Fix mcs/tests/test-128.cs regression.
4812         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
4813         2007-01-10 change below.
4814         [MONO_TYPE_OBJECT]: Recurse into array case.
4815
4816 2007-01-11  Raja R Harinath  <harinath@gmail.com>
4817
4818         * class-internals.h (mono_get_inflated_generic_class): Remove.
4819         * class.c (mono_get_inflated_generic_class): Remove.
4820         (mono_generic_class_get_class): Rename from
4821         mono_class_create_generic.
4822         (mono_class_from_mono_type) [GENERICINST]: Use it.
4823         * reflection.c, metadata.c: Update to changes.  Use
4824         'mono_class_from_mono_type'.
4825
4826 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
4827
4828         * reflection.c: use passed type when encoding an array element
4829         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
4830
4831 2007-01-09  Robert Jordan  <robertj@gmx.net>
4832
4833         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
4834         result arguments (someDelegate.EndInvoke (unrelatedAres)).
4835         Fixes bug #80392.
4836
4837 2007-01-09  Raja R Harinath  <rharinath@novell.com>
4838
4839         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
4840
4841         * object.c (set_value): Avoid aliasing between type->data.klass
4842         and type->data.generic_class.
4843
4844         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
4845
4846 2007-01-08  Raja R Harinath  <rharinath@novell.com>
4847
4848         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
4849         between type->data.klass and type->data.generic_class.
4850
4851 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
4852
4853         * marshal.c: In MS.NET, StringBuilder objects are not copied by
4854         value in out parameters.
4855
4856 2007-01-08  Raja R Harinath  <rharinath@novell.com>
4857
4858         Simplify invariant for MonoGenericClass::klass field.
4859         * class.c (mono_class_create_generic): Verify 'klass' is null.
4860         * metadata.c (do_mono_metadata_parse_generic_class): Don't
4861         initialize 'klass' field.
4862
4863 2007-01-05  Raja R Harinath  <rharinath@novell.com>
4864
4865         Ongoing work to avoid redundant data and simplify invariants.
4866         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
4867         'generic_class', and change type to a GenericInst.
4868         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
4869         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
4870
4871 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
4872
4873         * class.c : skip io-layer under PLATFORM_WIN32.
4874
4875 2007-01-03  Tor Lillqvist  <tml@novell.com>
4876
4877         Fix #80305: In a bundled executable, look in the bundled exe
4878         assembly to determine the runtime version. Add the possibility to
4879         bundle also the machine.config file.
4880         
4881         * assembly.c (mono_assembly_open_from_bundle): Make
4882         non-static. Allow being called even if we have no bundled
4883         assemblies, and return NULL right away in that case.
4884
4885         * domain-internals.h: Declare mono_assembly_open_from_bundle()
4886         here.
4887
4888         * domain.c (app_config_parse): Take an assembly exe file name as
4889         parameter instead of a config file name. Check for a bundled
4890         config file for that assembly by calling
4891         mono_config_string_for_assembly_file() (see below) before looking
4892         for one in the file system.
4893         (get_runtimes_from_exe): Corrsponding change to call of
4894         app_config_parse().
4895         (get_runtimes_from_exe): Check for bundled assembly exe file first
4896         by calling mono_assembly_open_from_bundle(). If no bundled
4897         assembly exe file is found, call mono_image_open() as before to
4898         look it up in the file system.
4899
4900         * mono-config.c: Add variable bundled_machinec_onfig.
4901         (mono_config_string_for_assembly_file): New function.
4902         (mono_config_for_assembly): Move code snippet that looks for a
4903         bundled assembly .config file into the above new function. Call
4904         it.
4905         (mono_register_machine_config, mono_get_machine_config): New
4906         functions to set and retrieve
4907
4908         * assembly.h: Declare mono_register_machine_config().
4909
4910         * mono-config.h: Declare mono_get_machine_config() and
4911         mono_config_string_for_assembly_file().
4912
4913         * icall.c: No declaration of environ necessary on Win32. It is
4914         declared (as a macro expanding to a function call) in stdlib.h.
4915         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
4916         New internal mono function. Returns the value of
4917         mono_get_machine_config() as a Mono string.
4918
4919         * icall-def.h: Add get_bundled_machine_config().
4920
4921 2007-01-04  Raja R Harinath  <rharinath@novell.com>
4922
4923         Remove redundant field
4924         * class-internals.h (_MonoGenericContext.container): Remove field.
4925         * loader.c (mono_method_get_signature_full): Don't parse a
4926         "container" for a signature parse when the signature is inflated
4927         immediately.
4928         (method_from_methodspec): Likewise, for a generic_inst.
4929         * class.c, metadata.c, reflection.c: Update to changes.
4930
4931 2006-01-04  Raja R Harinath  <rharinath@novell.com>
4932
4933         * class-internals.h (_MonoGenericClass): Rename 'context' field to
4934         'cached_context', and change semantics -- it starts off NULL, and
4935         is initialized on demand.
4936         * class.c (mono_generic_class_get_context): New accessor to
4937         replace 'context' field accesses.
4938         (mono_class_get_context): New helper.
4939         (*): Update to changes.
4940         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
4941
4942 2007-01-03  Miguel de Icaza  <miguel@novell.com>
4943
4944         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
4945         before the memcpy.   Fixes Marshal2 regression.
4946
4947 2007-01-02  Jb Evain  <jbevain@gmail.com>
4948
4949         * blob.h: add a MONO_TYPE_ENUM definition
4950         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
4951         fix the encoding of arrays of enums in custom attributes.
4952
4953         Fixes #79666.
4954
4955 2007-01-01  Miguel de Icaza  <miguel@novell.com>
4956
4957         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
4958         string is null terminated, but only cut the string short if it
4959         overflows the buffer.   
4960         
4961         (mono_string_to_byvalstr): Also fix this routine.   The code here
4962         was not properly terminating a string (it was only terminated
4963         because of the previous catch-all memset). 
4964
4965         I left the memset, because I do not know if applications expect
4966         the runtime to clear this region. 
4967
4968         Fixes #79944.
4969
4970         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
4971         Clear the error before returning to unmanaged code to prevent the
4972         runtime from being confused later on (fixes  80420).
4973         (ves_icall_type_from_name): Always call mono_loader_clear_error
4974         after parsing a type that could have failed.
4975         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
4976
4977         * loader.c (mono_loader_clear_error): Fix indentation.
4978
4979 2006-12-28  Martin Baulig  <martin@ximian.com>
4980
4981         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
4982
4983 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
4984
4985         * reflection.c: patch from Rolf Bjarne Kvinge to fix
4986         getting a token for an EnumBuilder.
4987
4988 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4989
4990         * reflection.c: be more careful in case resource generation
4991         fails to create the data array.
4992
4993 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
4994
4995         * sgen-gc.c: write barrier for clone and fix unregister handles.
4996
4997 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
4998
4999         * reflection.c: some fixes needed in the generics code for the moving GC.
5000
5001 2006-12-22  Robert Jordan  <robertj@gmx.net>
5002
5003         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
5004         account. Fixes bug #80299.
5005
5006 2006-12-21  Raja R Harinath  <rharinath@novell.com>
5007
5008         Fix WaitHandle usage in delegates.
5009         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
5010         * object.c (mono_wait_handle_new): Use the property set method to
5011         initialize the handle.
5012         (mono_wait_handle_get_handle): New.
5013         * threadpool.c (mono_async_invoke): Use it.
5014         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
5015         Likewise.
5016         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
5017
5018 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
5019
5020         * marshal.c (emit_marshal): Call emit_marshal_variant and
5021         emit_marshal_com_interface when applicable.
5022         (emit_marshal_variant, emit_marshal_com_interface): Add
5023         methods for this case and remove if's from emit_marshal_object.
5024         
5025 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
5026
5027         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
5028
5029 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
5030
5031         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
5032         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
5033         and GlobalFree on Windows. Remove FIXME.
5034
5035 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5036
5037         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
5038         implementation for managed objects.
5039
5040 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
5041
5042         * object.c: implemented code to be used for checking
5043         that no reference field overlaps with non-references.
5044
5045 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5046
5047         * threadpool.c: fix queue code to be compatible with the
5048         moving GC.
5049
5050 2006-12-18  Miguel de Icaza  <miguel@novell.com>
5051
5052         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
5053         in structures by throwing ArgumentNullException.
5054
5055         (emit_marshal_safehandle): Also when they are null parameters.
5056
5057         (emit_marshal_safehandle): Add support for ref
5058         SafeHandles parameters
5059
5060 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5061
5062         * profiler.c: updated to use the mono-dl API instead of
5063         gmodule.
5064
5065 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5066
5067         * profiler.c: updated to use the mono-dl dynamic loading
5068         API instead of gmodule.
5069
5070 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
5071
5072         * profiler.c: use readlink, older versions of glib don't have
5073         g_file_read_link ().
5074
5075 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5076
5077         * profiler.c: try to detect the path to mono if libc fails to provide
5078         a useful name (bug #80286).
5079
5080 2006-12-16  Raja R Harinath  <rharinath@novell.com>
5081
5082         Fix #80242
5083         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
5084         instance, use the generic type definition instead.
5085         (ves_icall_Type_GetNestedTypes): Likewise.
5086         * class.c (mono_class_create_generic): Always set the
5087         nested_classes of a generic instance to NULL, even if the generic
5088         type definition has nested types.
5089
5090 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
5091
5092         * marshal.c (mono_string_from_bstr): Revert previous Windows change
5093         and fix on Linux.
5094         
5095 2006-12-15  Miguel de Icaza  <miguel@novell.com>
5096
5097         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
5098         my arguments were in the wrong order.   I also fixed the Windows
5099         version which seems to have had the same issue.
5100
5101         (mono_free_bstr): On Unix, this is g_free.
5102         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
5103         conversions (for the tests in corlib to pass).
5104
5105 2006-12-14  Miguel de Icaza  <miguel@novell.com>
5106
5107         * marshal.c (emit_ptr_to_object_conv): For now, ignore
5108         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
5109         exception if a ref SafeHandle in a struct has changed).
5110         
5111         (emit_struct_conv): Do not perform layout checks for classes
5112         derived from SafeHandle, as those are specially handled. 
5113
5114         (emit_object_to_ptr_conv): Add support for
5115         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
5116
5117         (emit_marshal_safehandle): Implement conversion of return values
5118         of safehandles (MARSHAL_ACTION_CONV_RESULT).
5119         
5120         * threads.c: WaitHandle now is compiled with two different handles
5121         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
5122         for 2.0.
5123         
5124         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
5125         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
5126         these routines to cope with both kinds of fields.
5127
5128 2006-12-12  Miguel de Icaza  <miguel@novell.com>
5129
5130         * metadata.c (mono_type_to_unmanaged): Handle the case where
5131         type->data.klass is a SafeHandle, and in that case, return the
5132         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
5133         MONO_MARSHAL_CONV_SAFEHANDLE. 
5134
5135 2006-12-11  Miguel de Icaza  <miguel@novell.com>
5136
5137         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
5138         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
5139         calling emit_marshal_object.
5140
5141         (emit_marshal_safehandle): Implement marshalling of
5142         SafeHandle parameters (no ref support yet).
5143
5144         (MarshalAction): Document the defines as I implement
5145         them for SafeHandle.
5146
5147         (emit_marshal_object): indentation police.
5148
5149         * class-internals.h: Define MonoSafeHandle.
5150         Add safehandle_class to MonoDefaults type.
5151
5152         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
5153         list of classes to check for fields. 
5154
5155         * domain.c (mono_init_internal): Add SafeHandle to the list of
5156         mono_defaults loaded.
5157
5158 2006-12-15  Raja R Harinath  <rharinath@novell.com>
5159
5160         Fix #80253
5161         * reflection.c (mono_reflection_bind_generic_parameters): If the
5162         generic type definition is a type builder, ensure that it is fully
5163         initialized before instantiating it.  Kill some dead code.
5164
5165 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
5166
5167         * object.c: clear the loader_error () before loading
5168         more metadata stuff (bug #80258).
5169
5170 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
5171
5172         * icall.c, icall-defs.h: type modifiers icalls for
5173         parameters and properties.
5174
5175 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
5176
5177         * object.c, icall.c: fixed warnings.
5178
5179 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
5180
5181         * marshal.c: fixed a couple of leaks and coding style in a few places.
5182
5183 2006-12-08  Dick Porter  <dick@ximian.com>
5184
5185         * process.c: Cope with NULL ProcessStartInfo arguments on windows
5186         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
5187         80173.
5188
5189 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
5190
5191         * process.c: ProcessStartInfo may have only filename set and
5192         arguments can be NULL.
5193
5194 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5195
5196         * icall.c: fix leak found by Robert Jordan.
5197
5198 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
5199
5200         * marshal.c, marshal.h: generate managed method to access an element
5201         of a multi-dimensional array.
5202
5203 2006-11-30  Paolo Molaro (lupus@ximian.com)
5204
5205         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
5206
5207 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5208
5209         * icall.c: back out GetFields () fix until the serialization code is
5210         fixed to not depend on the incorrect behaviour.
5211
5212 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
5213
5214         * profiler.c: provide defaults if none are set.
5215
5216 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
5217
5218         * Makefile.am, attrdefs.h: new public header file with
5219         constants for attributes for use by embedders.
5220
5221 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
5222
5223         * icall.c: GetFields () fix for bug #80064.
5224
5225 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
5226
5227         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
5228         removed long unused icalls.
5229
5230 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
5231   
5232         * marshal.c: 
5233                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
5234                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
5235                 can be generated without a delegate class.
5236                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
5237         
5238         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5239
5240 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5241
5242         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
5243         #80069.
5244
5245 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5246
5247         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
5248         icall-def.h: added icalls needed by System.GC.
5249
5250 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
5251
5252         * loader.c: ensure the class in catch clauses is handled
5253         correctly for generics methods (fixes bug#79980).
5254
5255 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
5256
5257         * monitor.h, monitor.c: added mono_locks_dump () function
5258         to help debug deadlocks involving managed locks.
5259
5260 2006-11-13  Dick Porter  <dick@ximian.com>
5261
5262         * file-io.c (get_file_attributes): If the file is a symlink try
5263         and get the stat data for the target, but also add the
5264         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
5265         the specs for the windows symlink support, but will probably have
5266         to be reworked when I have test data from a vista machine.  Fixes
5267         bug 79887.
5268
5269 2006-11-13  Dick Porter  <dick@ximian.com>
5270
5271         * gc.c (mono_domain_finalize): 
5272         * marshal.c (mono_delegate_begin_invoke): 
5273         * threadpool.c (socket_io_init, mono_thread_pool_init)
5274         (mono_thread_pool_finish): 
5275         * monitor.c (mono_monitor_try_enter_internal): 
5276         * threads.c (mono_thread_resume, mono_thread_init)
5277         (mono_thread_suspend_all_other_threads)
5278         (mono_thread_execute_interruption): 
5279         * appdomain.c (mono_domain_unload): Check for NULL error returns
5280         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
5281         75733.
5282
5283 2006-11-11  Miguel de Icaza  <miguel@novell.com>
5284
5285         * process.c
5286         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
5287         Only close the handle if the value of the handle is not
5288         INVALID_HANDLE_VALUE.  This just makes the process a bit more
5289         robust.
5290
5291         Improvement for #75733, so that we do not run into this problem. 
5292
5293         
5294         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
5295         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
5296         internal variables.  Fixes #79462 
5297         
5298
5299 2006-11-09  Dick Porter  <dick@ximian.com>
5300
5301         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5302         Use poll() not select().  Fixes bug 79397.
5303
5304 2006-11-09  Raja R Harinath  <rharinath@novell.com>
5305
5306         Fix #79872
5307         * assembly.c (mono_assembly_load_from_full): Check that the given
5308         image has an assembly manifest.
5309
5310 2006-11-09  Ankit Jain  <jankit@novell.com>
5311
5312         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
5313         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
5314         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
5315
5316 2006-11-07  Dick Porter  <dick@ximian.com>
5317
5318         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5319         Put the old resolver behaviour back for pre-2.0 profiles.
5320
5321 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5322
5323         * threadpool.c: precise GC and locking fixes.
5324
5325 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
5326
5327         * class.c: don't load types that have an explicit unaligned
5328         managed reference. Provide better info in the TypeLoad exception.
5329         Part of the fix for bug #79744.
5330         * object.c: use the correct check for class type load issues.
5331
5332 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5333
5334         * class.c: enforce alignment of fields with managed references
5335         even when Pack=1 is forced by the user (bug #77788).
5336
5337 2006-11-03  Dick Porter  <dick@ximian.com>
5338
5339         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5340         If the address reverse lookup fails, return it as the hostname
5341         anyway.  Fixes bug 79721.
5342
5343 2006-11-03  Dick Porter  <dick@ximian.com>
5344
5345         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
5346         Fix build on Windows.
5347
5348 2006-11-02  Dick Porter  <dick@ximian.com>
5349
5350         * icall-def.h: 
5351         * object-internals.h: 
5352         * exception.c (mono_get_exception_thread_interrupted): 
5353         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
5354         Fixes bug 74525.
5355
5356         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
5357         Check for pending Thread.Interrupt.
5358
5359 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
5360         * loader.c: Fixed bug 79684.
5361
5362 2006-10-27  Dick Porter  <dick@ximian.com>
5363
5364         * file-io.c (get_file_attributes): Force symlinks to directories
5365         to be returned as a regular file.  Fixes bug 79733.
5366 2006-10-26  Dick Porter  <dick@ximian.com>
5367
5368         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
5369         CreateFile to open a directory then we need to set the
5370         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
5371
5372 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
5373
5374         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
5375         friends.
5376
5377 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5378
5379         * sgengc.c: small cleanup of timer code.
5380
5381 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5382
5383         * sgen-gc.c: fix some warnings and start adding support for
5384         complete object removal on domain unload.
5385
5386 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
5387
5388         * assembly.c: build_assembly_name should not consider a version
5389         number without build or revision number invalid. Fixes bug #79715.
5390
5391 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
5392
5393         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
5394         call kernel32 function OutputDebugString directly.
5395         
5396         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5397         
5398 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
5399
5400         * reflection.c: small cleanup, using a function to insert a MonoString
5401         in the string heap.
5402
5403 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
5404
5405         * reflection.c: moving GC fixes.
5406
5407 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
5408
5409         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
5410         all the objects with finalizers belonging to an unloading appdomain.
5411
5412 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
5413
5414         * sgen-gc.c: added ability to allocate even when the nursery is fully
5415         pinned and fixed a couple of bugs.
5416
5417 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
5418
5419         * threads.h: Revert the last change for now.
5420
5421         * threads.h (mono_thread_get_pending_exception): Rename this to
5422         mono_thread_get_undeniable_exception ().
5423
5424 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
5425
5426         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
5427         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
5428         when fname does not refer to valid assembly. This result in a more
5429         meaningful error message.
5430         * exception.c: added mono_get_exception_bad_image_format2 which 
5431         constructs a BadImageFormatException using the ctor taking a custom
5432         message and the file name. Passing in a NULL msg results in a default
5433         message.
5434         * exception.h: define mono_get_exception_bad_image_format2 function.
5435         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
5436         when file name pointed to an invalid IL image. Use 
5437         mono_get_exception_file_not_found2 to construct FileNotFoundException,
5438         as this results in a more meaningful error message.
5439
5440 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
5441
5442         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
5443         #79465.
5444
5445 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
5446
5447         * metadata.c (mono_type_size): Change the align parameter to guint32 for
5448         consistency with the other _size functions.
5449         (mono_type_stack_size): Ditto.
5450
5451         * class.c object.c icall.c: Fix warnings caused by the above change.
5452
5453         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
5454
5455         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
5456
5457         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
5458
5459 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5460
5461         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
5462         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
5463         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
5464         threadpool.h, threads-types.h: mark more internal functions.
5465
5466 2006-10-11  Dick Porter  <dick@ximian.com>
5467
5468         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5469         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
5470         reproduce the bug even before applying the fix.)
5471
5472 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
5473
5474         * reflection.c: allow retrieving attributes for arguments in generic
5475         methods (bug #79241).
5476
5477 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
5478
5479         * debug-mono-symfile.c: properly check fopen () result (found by
5480         coverity).
5481
5482 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
5483
5484         * reflection.c: make error message clearer and fixed two
5485         issuelets found by Coverity.
5486
5487 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
5488
5489         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
5490
5491 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5492
5493         * object-internals.h, gc-internal.h, profiler-private.h:
5494         mark internal functions.
5495
5496 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5497
5498         * reflection.c: put data in the text section.
5499         * icall.c: recognize more types in type_from_typename ().
5500         * process.c, marshal.c: added some GC FIXMEs.
5501
5502 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5503
5504         * loader.c: check for NULL before initializing.
5505
5506 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
5507
5508         * gc.c (finalizer_thread): Use a non-alertable wait here.
5509
5510         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
5511         until the correct solution is found.
5512
5513 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
5514
5515         * reflection.c (mono_module_get_object): Avoid an assert when operating on
5516         modules with no metadata. Fixes #79596.
5517
5518         * image.c (load_metadata_ptrs): Put back the error message when
5519         the #- heap is encountered since the support is not complete yet.
5520
5521 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5522
5523         * gc.c: do not allow the user to SuppressFinalize () a
5524         delegate because it would leak the trampoline if present.
5525
5526 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
5527
5528         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
5529         PropertyPtr table.
5530
5531 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
5532
5533         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
5534
5535         * metadata.c (mono_metadata_get_param_attrs): Ditto.
5536
5537         * row-indexes.h: Add definitions for *Ptr tables.
5538
5539         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
5540
5541         * metadata.c (mono_metadata_translate_token_index): New helper function to
5542         translate table indexes used in uncompressed metadata.
5543         (mono_metadata_decode_table_row): Ditto.
5544         (mono_metadata_decode_table_row_col): Ditto.
5545
5546         * metadata.c: Add table schema for *Ptr tables.
5547
5548         * class.c loader.c: Use the new helper function to access the affected metadata
5549         tables.
5550         
5551         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
5552         #38532.
5553         
5554 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
5555
5556         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
5557         sequences which can be unbounded in size. Fixes #79583.
5558
5559 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
5560
5561         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
5562         static initialization.
5563
5564         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
5565
5566         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
5567
5568         * domain.c (mono_domain_free): Free up type_init_exception_hash.
5569
5570         * object.c (mono_runtime_class_init): Implement correct semantics when a static
5571         ctor fails, i.e. throw the same exception on subsequent accesses.
5572         
5573 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
5574
5575         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
5576         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
5577         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
5578         Handle marshalling of interfaces and VARIANTs contained in structs.
5579         
5580         Code is contributed under MIT/X11 license.
5581         
5582 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
5583
5584         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
5585         
5586         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
5587         mempool.
5588
5589 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5590
5591         * console-io.c: ignore previous SIGINT handler.
5592
5593 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
5594
5595         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
5596         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
5597         #79460, #79461, #79485.
5598
5599         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
5600
5601         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
5602         #79217.
5603
5604 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
5605
5606         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
5607         could be generated from it.
5608
5609 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
5610
5611         * rand.c: fix read loop to correctly handle EINTR.
5612
5613 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5614
5615         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
5616         internal calls are defined to keep methods closer to the declaring
5617         type and allow a significant reduction in runtime relocations and
5618         memory usage.
5619
5620 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
5621
5622         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
5623         exception message to have FileNotFoundException use the default
5624         assembly load error message. Fixes bug #79426.
5625         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
5626
5627 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5628
5629         * threadpool.c: (start_thread_or_queue) use the root domain when
5630         creating the thread instead of the async object one.
5631
5632 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
5633
5634         * class.c, object.c, class-internals.h, reflection.c:
5635         for arrays, store element_size inside MonoClass (speedup
5636         for array object creation).
5637
5638 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
5639
5640         * icall.c: fixed CodeBase to use the file name and not the module
5641         name (bug #79365).
5642
5643 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5644
5645         * mono-debug.c, mono-debug.h: export find_method as
5646         mono_debug_find_method ().
5647
5648 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5649
5650         * debug-helpers.c, class-internals.h: added a few functions useful
5651         when debugging under gdb.
5652
5653 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5654
5655         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
5656         characters that need special handling.
5657
5658 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
5659
5660         * mono-config.c: make the os/cpu specification more flexible,
5661         allowing lists and negation.
5662
5663 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
5664
5665         * marshal.c: COM Interop fixes. Handle case where method->klass.
5666         is interface. Handle BSTR/MonoString when null. Use CDECL as 
5667         calling convention on non-windows platforms. This is for
5668         compatibility with XPCOM and MainWin COM.
5669         
5670         Code is contributed under MIT/X11 license.
5671         
5672
5673 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
5674
5675         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
5676         correctly. Fixes #79217.
5677
5678         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
5679
5680 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
5681
5682         * mono-config.c: allow both an os and cpu attribute for dllmap
5683         and dllentry elemnets to enable a single config file to be used
5684         for multiple architectures.
5685
5686 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
5687
5688         * loader.c: MonoLoaderError was cleared too soon on load failure.
5689         Fixes bug #79424.
5690
5691 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
5692
5693         * icall.c: use the defining class vtable when accessing a
5694         static field, not a pobblibly derived class.
5695
5696 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
5697
5698         * icall.c string-icalls.c: Remove references to unicode.h.
5699
5700         * unicode.h unicode.c Makefile.am: Remove these unused source files.
5701
5702         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
5703
5704         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
5705         indicating the image where custom marshaller types should be looked up.
5706         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
5707         custom marshallers, instead of corlib. Fixes #79425.
5708
5709 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
5710
5711         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
5712
5713 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
5714
5715         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
5716         Implement Environment.ProcessorCount.
5717         
5718         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
5719         Implement Environment.ProcessorCount.
5720         
5721         * icall.c: 
5722         Add Environment.ProcessorCount icall.
5723         
5724         Patch by Jason McFall.
5725
5726 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5727
5728         * assembly.c: don't append .exe/.dll when the filename already contains
5729         one of those extensions.
5730
5731 2006-09-12  Martin Baulig  <martin@ximian.com>
5732
5733         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
5734         to array interfaces.
5735
5736 2006-09-11  Martin Baulig  <martin@ximian.com>
5737
5738         * reflection.c (mono_image_build_metadata): Create the
5739         MethodImpl's after emitting all types and methods, so we don't
5740         need another fixup pass for them.
5741
5742 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
5743
5744         * class.c (mono_class_from_name_case): Fix regression introduced by the last
5745         change.
5746
5747 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
5748
5749         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
5750         unload.
5751
5752 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
5753
5754         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
5755         args is not set. Fixes #78926.
5756
5757 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
5758
5759         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
5760
5761         * image.c (load_class_names): Move this to class.c, and rename it to 
5762         'mono_image_init_name_cache'.
5763         (load_modules): Fix a warning.
5764
5765         * class.c icall.c image.c: Initialize image->name_cache lazily.
5766
5767         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
5768         on its name using information in the AOT file.
5769
5770         * class.c (mono_class_from_name): Use the new hook function.
5771
5772 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
5773
5774         * reflection.c (mono_param_get_objects): Handle enum default parameter values
5775         correctly.
5776
5777         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
5778         Fixes #79289.
5779         
5780 2006-09-06  Martin Baulig  <martin@ximian.com>
5781
5782         * icall.c (mono_lookup_internal_call): Small fix.
5783
5784 2006-09-05  Raja R Harinath  <rharinath@novell.com>
5785
5786         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
5787         double g_free.
5788
5789 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
5790
5791         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
5792         when --debug is specified.
5793
5794 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
5795
5796         * class.c (setup_generic_array_ifaces): Fix a warning.
5797
5798 2006-09-04  Miguel de Icaza  <miguel@novell.com>
5799
5800         * Temporarily remove the patch to assemly.c that checks the
5801         assembly versions as it breaks our gacutil.
5802
5803 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
5804
5805         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
5806
5807         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
5808         a net 1.0 runtime.
5809
5810         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
5811         created using the default ctor. Fixes #79152.
5812         (mono_string_builder_to_utf16): Ditto.
5813
5814 2006-09-01  Martin Baulig  <martin@ximian.com>
5815
5816         Fix handling of the generic array interfaces.
5817
5818         * class-internals.h
5819         (MonoDefaults): Removed `generic_array_class' and added
5820         `generic_ilist' class.
5821
5822         * class.c
5823         (mono_bounded_array_class_get): Add the new generic array interfaces.
5824         (setup_generic_array_ifaces): New static method; create vtable
5825         entries for each method in the generic array interfaces.
5826
5827         * metadata.c
5828         (select_container): Allow "parent-less" generic methods.
5829
5830         * marshal.c
5831         (mono_marshal_get_generic_array_helper): New public method.
5832
5833         * icall.c
5834         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
5835         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
5836         moved the interncall into System.Array.
5837
5838 2006-09-01  Raja R Harinath  <rharinath@novell.com>
5839
5840         A few more cases of avoiding work on types with ->byref set.
5841         Has the real fix for #79238
5842         * icall.c (is_generic_parameter): New helper.
5843         (ves_icall_Type_GetGenericParameterPosition): Use it.
5844         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
5845         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
5846         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5847         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
5848         reference types.
5849         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
5850         reference types.
5851         (ves_icall_Type_get_IsGenericInstance): Likewise.
5852         (ves_icall_Type_get_IsGenericType): Likewise.
5853
5854 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
5855
5856         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
5857         class if possible.
5858
5859         * mempool.h (mono_mempool_get_allocated): New helper function.
5860
5861         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
5862         change.
5863
5864         * mempool.c: Fix warnings and the calculation of stats.
5865
5866         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
5867
5868         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
5869
5870         * loader.c (mono_get_method_from_token): Update method_count stat.
5871
5872         * class-internals.h (MonoStats): Add some stats.
5873
5874 2006-08-31 Robert Jordan  <robertj@gmx.net>
5875
5876         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
5877         with managed variants.
5878         All code is contributed under the MIT/X11 license.
5879         
5880 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
5881
5882         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
5883         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
5884
5885         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
5886
5887         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
5888         with cycles in classes.
5889
5890         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
5891
5892         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
5893         missing a [MarshalAs] directive. Fixes #79203.
5894
5895         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
5896         klass->marshal_info. Fixes #79217.
5897
5898 2006-08-30  Martin Baulig  <martin@ximian.com>
5899
5900         Committing a patch from Joachim Ante <joe@otee.dk>:
5901         Add support for binary data symbol stores.
5902
5903         * debug-mono-symfile.c
5904         (mono_debug_open_mono_symbol_file): Renamed into
5905         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
5906         arguments.
5907
5908         * mono-debug.c
5909         (mono_debug_open_image): Added `raw_contents' and `size' args.
5910         (mono_debug_init_2_memory): New public function.
5911
5912 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
5913
5914         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
5915
5916 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5917
5918         * appdomain.c: implement support for ShadowCopyFiles.
5919
5920 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
5921
5922         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
5923         when value is NULL (and should remove CID #51).
5924
5925 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5926
5927         * image.c: moved 2 functions to ../utils.
5928
5929 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
5930
5931         * gc.c: cope with the target object of a GC handle being NULL
5932         (bug #78877).
5933
5934 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
5935
5936         * class.c: recursively check parent's explicit implementations
5937         of interface methods (fixes bug #79125).
5938
5939 2006-08-19  Miguel de Icaza  <miguel@novell.com>
5940
5941         * filewatcher.c: Avoid warnings when building, do not redefine
5942         constants that are defined.
5943
5944         Remove warnings.
5945
5946 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5947
5948         * image.c: don't fail when the link points to an absolute path.
5949
5950 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
5951
5952         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
5953         Fix CID #3.
5954
5955 2006-08-17  Miguel de Icaza  <miguel@novell.com>
5956
5957         * image.c (full_path): A new method used to obtain the actual path
5958         of an assembly even in the presence of symbolic links.  
5959
5960         This is necessary for the case where we are running a binary that
5961         has been GACed, but we are using the "published" path name
5962         ($prefix/mono/1.0/blah.exe) which happens to point to the real
5963         file in the GAC.
5964
5965         This was the source of the failure for the `xsp' command with the
5966         recent AppDomain changes, as far as the runtime was concerned,
5967         there were two different assemblies: $prefix/mono/1.0/blah.exe and
5968         $prefix/mono/gac/blah/version/blah.exe.
5969
5970         (do_mono_image_open): use full path
5971
5972 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5973
5974         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
5975
5976 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
5977
5978         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
5979         domain_id is supplied. Fix CID #241 and corlib's unit tests.
5980
5981 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5982
5983         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
5984         small structures. Fixes #78990.
5985
5986 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5987
5988         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
5989
5990         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
5991
5992 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5993
5994         * appdomain.c:
5995         * marshal.c: don't load all the assemblies from a domain into newly
5996         created ones. The new domains might have different rules and load
5997         assemblies from different locations. Fixes bug #76757.
5998
5999         Patch by Lluis. Conflicts resolved by Brian Crowell.
6000
6001 2006-08-16  Alp Toker  <alp@atoker.com>
6002
6003         * socket-io.c: First half of the fix for #79084.
6004         Set sa_size to the length of the content, not that of the struct.
6005         Don't add NULL suffix to the content, this should be done in
6006         managed code if needed.
6007
6008 2006-08-14  Raja R Harinath  <rharinath@novell.com>
6009
6010         Fix part of #79012
6011         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
6012         mono_metadata_parse_type returns NULL.
6013
6014 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
6015
6016         * normalization-tables.h : new file for string normalization data.
6017         * locales.c, locales.h, icall.c :
6018           added load_normalization_resource() for string normalization,
6019           and icall as well.
6020         * Makefile.am : added normalization-tables.h to the sources.
6021
6022 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
6023
6024         * marshal.c: Add more helper functions to reduce code duplication and use them
6025         everywhere.
6026
6027 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
6028
6029         * marshal.c: Fix non-x86 stdcall warnings.
6030         
6031         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
6032         them everywhere.
6033
6034 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
6035
6036         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
6037         type check on multi-dimensional arrays. Fixes #79000.
6038
6039 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
6040
6041         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
6042         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
6043         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
6044         * class-internals.h: add is_com_object to class structure.
6045         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
6046         null checks to COM object marshalling. Fix .ctor call on RCW.
6047         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
6048         
6049         All code is contributed under the MIT/X11 license.
6050
6051 2006-08-09  Dick Porter  <dick@ximian.com>
6052
6053         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
6054         racing mono_monitor_allocator_lock() somewhere, so don't delete
6055         the critical section for now.  Found by running and exiting
6056         monodevelop.
6057
6058 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
6059
6060         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
6061         (ves_icall_System_ComObject_FindInterface): Ditto.
6062         (ves_icall_System_ComObject_CacheInterface): Ditto.
6063
6064         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
6065         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
6066
6067 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6068
6069         * threadpool.c: treat pipes from process asynchronous reads as sockets
6070         when reading from them, so we get select/poll or epoll to wait for
6071         data.
6072
6073 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
6074
6075         * loader.c: Fix a typo (CID #233) in the null check.
6076
6077 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
6078
6079         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
6080         Hopefully fixes #78949.
6081         
6082         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
6083         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
6084         bytes. Fixes #78972.
6085
6086 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6087
6088         * filewatcher.c: we need to set errno here.
6089
6090 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6091
6092         * filewatcher.c: let Win32Exception get the error value.
6093
6094 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6095
6096         * filewatcher.c: translate errno into win32 errors for Win32Exception
6097         to know what happened.
6098
6099 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
6100
6101         * threadpool.c: Fix more warnings.
6102
6103         * assembly.c (search_loaded): Fix warnings.
6104
6105         * threadpool.c (mono_thread_pool_finish): Fix warnings.
6106         (mono_async_invoke): Ditto.
6107
6108 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
6109
6110         * object.c (mono_remote_class_vtable): Need to create proxy vtable
6111         entries for __ComObject type in addition to ComImport types.
6112         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
6113         about hash table.
6114         
6115         All code is contributed under the MIT/X11 license.
6116
6117 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
6118
6119         * image.c: avoid tentative loading of modulerefs that contain
6120         no metadata (P/Invoke library names).
6121
6122 2006-07-28  Dick Porter  <dick@ximian.com>
6123
6124         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
6125         mono_loader_lock() somewhere, so don't delete the critical section
6126         for now.  Found by running and exiting monodevelop.
6127
6128 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6129
6130         * filewatcher.c: define the inotify syscalls when we're building on
6131         linux and have sys/syscall.h. The build system might not have support
6132         for inotify but the target system might have it.
6133
6134 2006-07-26  Miguel de Icaza  <miguel@novell.com>
6135
6136         * domain.c: Documentation updates.
6137
6138         * loader.c (mono_free_method): Do not release the method
6139         information if we are being profiled, as profilers will use this
6140         information at shut down to present some data to the user.
6141
6142         This is needed so that the profiler does not crash, as the
6143         profiler tends to keep MonoMethods around, and they might become
6144         invalid if we free these.
6145
6146         (mono_get_method_constrained): Return the original CIL stream
6147         method as well, so verification can be performed against it.
6148
6149 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6150
6151         * filewatcher.[ch]: support for inotify file system watcher.
6152         * icall.c: add new internal calls for the inotify file system watcher.
6153
6154 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6155
6156         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
6157         #78888.
6158
6159 2006-07-20  Dick Porter  <dick@ximian.com>
6160
6161         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
6162         warning.
6163
6164 2006-07-20  Dick Porter  <dick@ximian.com>
6165
6166         * threads.c (start_wrapper): Do the thread cleanup while we still
6167         hold a reference to its object.  Fixes bug 78123.
6168
6169 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
6170
6171         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
6172         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
6173           "managed-to-managed".
6174         * icall.c: Redirect string constructors that take sbyte* to
6175           ves_icall_System_String_ctor_RedirectToCreateString.
6176         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
6177           to CreateString () methods with matching signature.
6178         * reflection.c: Use original security informations for
6179           MONO_WRAPPER_MANAGED_TO_MANAGED.
6180         * security-manager.c: Use original security informations for
6181           MONO_WRAPPER_MANAGED_TO_MANAGED.
6182         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
6183           that is a placeholder and only its address should be used.
6184         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
6185           that is a placeholder and only its address should be used.
6186
6187 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
6188
6189         Begin implementing COM Interop.
6190         * appdomain.c: Increment corlib version.
6191         * class.c: Set ComImport classes' parent to __ComObject.
6192         * loader.c: Mark cominterop methods as such.
6193         * domain.c: Add __ComObject class to MonoDefaults structure.
6194         * image.c: Add 2 hashtables to the image for COM Interop related methods
6195         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
6196         using the mempool allocator
6197         
6198         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
6199         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
6200         declaration for mono_metadata_type_dup_mp.
6201         
6202         * debug-helpers.c: Added strings for two additional wrapper types
6203         * object.c: Create proxy objects for ComImport classes
6204         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
6205         and added __ComObject class to MonoDefaults structure.
6206         
6207         * object-internals.h: Finish MonoRealProxy definition, and add definition of
6208         MonoComInteropProxy and MonoComObject.
6209         
6210         * marshal.c: Added support for COM Interop
6211         (signature_cominterop): Converts managed signature to corresponding
6212         unmanaged COM signature.
6213         (cominterop_get_function_pointer): gets unmanaged function pointer via
6214         COM object vtable
6215         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
6216         (cominterop_get_method_interface): returns interface type that method is defined on
6217         (mono_mb_emit_cominterop_call): emits native call to function pointer
6218         gotten from vtable
6219         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
6220         that matches signature of unmanaged function.
6221         (cominterop_get_native_wrapper): wrapper around adjusted method call.
6222         (cominterop_get_invoke): forwards call from proxy to __ComObject
6223         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
6224         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
6225         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
6226         
6227         * marshal.h: Added Marshal icall declarations.
6228         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
6229         so we can access them in finalizer
6230         
6231 2006-07-14  Dick Porter  <dick@ximian.com>
6232
6233         * object.c (mono_type_initialization_cleanup): Fix a race
6234         condition by temporarily commenting out the critical section
6235         deletion.
6236
6237 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
6238
6239         * reflection.c (create_custom_attr): Fix some warnings.
6240         (create_custom_attr_data): Ditto.
6241         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
6242         types. Fixes #78855.
6243
6244 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
6245
6246         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
6247
6248         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
6249
6250 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
6251
6252         * reflection.c (resolve_object): Add support for DynamicMethod.
6253
6254         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
6255         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
6256
6257 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
6258
6259         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
6260         don't leak GPtrArray's pdata has we have no use (nor free) for it.
6261
6262 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
6263
6264         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
6265         Fixes #77888.
6266
6267 2006-06-30  Raja R Harinath  <rharinath@novell.com>
6268
6269         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
6270         slightly: remove a shadow local variable.
6271
6272 2006-06-29  Raja R Harinath  <rharinath@novell.com>
6273
6274         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
6275         definition that introduces the virtual function slot.
6276         Also fix Coverity #105.
6277
6278 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
6279
6280         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
6281         for dynamic assemblies. Fixes #78724.
6282
6283 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
6284
6285         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
6286         Fixes #78722.
6287
6288 2006-06-21  Martin Baulig  <martin@ximian.com>
6289
6290         * reflection.c
6291         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
6292         fixes #76484.
6293
6294 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
6295
6296         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
6297
6298 2006-06-20  Raja R Harinath  <rharinath@novell.com>
6299
6300         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
6301         nor TYPEREFs.
6302         * class.c (mono_class_create_from_typespec): Add 'context' argument.
6303         Inflate result if necessary.
6304         (mono_class_get_full): Remove old version.  Rename from
6305         'mono_class_get' and add 'context' argument.  Pass it to
6306         ..._create_from_typespec.
6307         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
6308         (mono_ldtoken): Revert change below.
6309
6310 2006-06-20  Martin Baulig  <martin@ximian.com>
6311
6312         * class.c (mono_ldtoken): Don't pass the generic context to
6313         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
6314
6315 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
6316
6317         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
6318         and later freeing it. Fixes #78638.
6319
6320 2006-06-15  Miguel de Icaza  <miguel@novell.com>
6321
6322         * icall.c (mono_class_get_throw): Revert over-zealous error
6323         throwing, the caller for mono_class_get_throw will cope with
6324         errors when classes are not properly initialized already.
6325
6326         The code still copes with loader exceptions though.
6327
6328         Fixes the regression in reftype1 and reftype3 from the CAS tests.
6329         
6330 2006-06-14  Miguel de Icaza  <miguel@novell.com>
6331
6332         Fixes the `make run1' version of RuntimeAbort (to be commited,
6333         source is in Bugzilla).
6334         
6335         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
6336         FALSE on class loading failure instead of returning true.
6337
6338         * class.c (mono_class_create_from_typedef): It is possible for
6339         mono_metadata_interfaces_from_typedef_full to fail if a class is
6340         not found, cope with this.
6341         
6342
6343 2006-06-14  Dick Porter  <dick@ximian.com>
6344
6345         * socket-io.c: 
6346         * process.c: Fix a bunch of signed/unsigned warnings from gcc
6347         4.1.1
6348
6349 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
6350
6351         * culture-info-table.h : oops, forgot to make it nsync with r61548.
6352
6353 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6354
6355         * icall.c: Another fix for building mono in Visual Studio.
6356
6357 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6358
6359         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
6360         
6361 2006-06-09  Martin Baulig  <martin@ximian.com>
6362
6363         * debug-mono-symfile.c: Put this back and really fix it this
6364         time. Sorry for all the trouble.
6365
6366 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
6367
6368         * icall.c (mono_class_get_throw): Fix a warning.
6369         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
6370         ReflectionTypeLoadException if needed. Fixes #78606.
6371
6372         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
6373         (mono_class_init): Ditto.
6374
6375         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
6376         ref_only exceptions.
6377         (mono_loader_clear_error): Make this work even if there is no error.
6378
6379 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
6380
6381         * object-internals.h marshal.c marshal.h icall.c: Implement method 
6382         Marshal.GetComSlotForMethodInfo using internal call.
6383
6384 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
6385
6386         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
6387         a function for signalling it.
6388
6389         * class.c (mono_class_from_typeref): Use the new kind of loader error when
6390         a referenced assembly is not found.
6391
6392         * loader.c (mono_loader_error_prepare_exception): Add support for 
6393         LOADER_ERROR_ASSEMBLY. Fix formatting.
6394
6395 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
6396
6397         * domain.c appdomain.c class-internals.h marshal.c: Add support 
6398         for VARIANT marshalling on windows and increment corlib version
6399         since Variant struct was added.
6400
6401 2006-06-03  Miguel de Icaza  <miguel@novell.com>
6402
6403         * debug-mono-symfile.c: Revert Martin's previous patch which broke
6404         stack trace line information:
6405
6406         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
6407         (Martin) when looking up B which is between A and C, return A not C.
6408
6409         Bug is #78573.
6410
6411         Thanks to Alexander Olk for tracking this down.
6412
6413 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
6414
6415         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
6416         
6417         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
6418         avoid clobbering its value.
6419         (mono_string_to_lpstr): Fix a warning on windows.
6420
6421 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
6422
6423         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
6424
6425         * reflection.c loader.c: Removed references to 'dummy' flag.
6426
6427         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
6428
6429         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
6430         it gets GC tracking.
6431
6432         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
6433         GC tracking.
6434         
6435         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
6436
6437         * marshal.c threadpool.c: Update callers of mono_async_result_new.
6438
6439         * appdomain.c: Bump corlib version.
6440
6441 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
6442
6443         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6444         CEE_STIND_REF when working with object references.
6445
6446 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
6447
6448         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
6449         Fixes #78539.
6450
6451 2006-05-30  Miguel de Icaza  <miguel@novell.com>
6452
6453         * loader.c (method_from_memberref): Fix argument value for
6454         mono_loader_set_error_method_load (I was passing the MonoClass
6455         instead of the class name char *).
6456
6457 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
6458
6459         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6460         CEE_STIND_REF when working with object references.
6461
6462 2006-05-30  Martin Baulig  <martin@ximian.com>
6463
6464         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
6465         mono_method_full_name() change and replace the ':' with a '.'
6466         here.
6467
6468 2006-05-30  Martin Baulig  <martin@ximian.com>
6469
6470         * debug-mono-symfile.c
6471         (mono_debug_symfile_lookup_location): Fix the algorithm:
6472         when looking up B which is between A and C, return A not C.
6473
6474 2006-05-29  Martin Baulig  <martin@ximian.com>
6475
6476         * mono-debug.h
6477         (MonoDebugMethodInfo): Make the typedef public.
6478         (MonoDebugSourceLocation): New public struct.
6479
6480         * mono-debug.c
6481         (mono_debug_source_location_from_address): Removed.
6482         (mono_debug_source_location_from_il_offset): Removed.
6483         (mono_debug_il_offset_from_address): Removed.
6484         (mono_debug_address_from_il_offset): Removed.
6485         (mono_debug_lookup_method): New public function.
6486         (mono_debug_lookup_source_location): New public function; replaces
6487         the old mono_debug_source_location_from_*() functions; see the
6488         inline documentation.
6489         (mono_debug_free_source_location): New public function.
6490         (mono_debug_print_stack_frame): New public function; see the
6491         inline documentation.
6492
6493         * debug-mono-symfile.c
6494         (mono_debug_find_source_location): Renamed into
6495         mono_debug_symfile_lookup_location(); only take a
6496         `MonoDebugMethodInfo *' and an `offset' argument; added inline
6497         documentation.
6498         (mono_debug_find_method): Renamed into
6499         mono_debug_symfile_lookup_method().
6500
6501 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
6502
6503         * assembly.c (mono_assembly_open_full): Dont overwrite the status
6504         returned by mono_image_open_full ().
6505
6506         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
6507         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
6508         #78517.
6509
6510         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
6511         #78518.
6512
6513 2006-05-27  Miguel de Icaza  <miguel@novell.com>
6514
6515         * class.c (mono_class_from_typeref): handle missing images
6516         earlier, deals with bug #78418.   Refactor code; 
6517
6518         Fix a warning introduced in my previous commit (some stale code
6519         from before I revisited my patch).
6520
6521         * class.c (mono_class_create_from_typedef): On failure, remove the
6522         class from the MonoImage->class_cache as the class is not
6523         initialized;   Fixes the leak pointed out by Paolo.
6524
6525 2006-05-25  Dick Porter  <dick@ximian.com>
6526
6527         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
6528         DeleteCriticalSections until I figure out which one may still be
6529         sometimes locked when mono_thread_cleanup is called.
6530
6531 2006-05-24  Dick Porter  <dick@ximian.com>
6532
6533         * threads.c (mono_thread_cleanup): Move the threading cleanup out
6534         of mono_thread_manage and back into its own function, so it can be
6535         called after the finalizer thread has finished.
6536
6537         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
6538
6539 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
6540
6541         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
6542         Fixes #78495.
6543
6544         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
6545         with non-blittable elements.
6546         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
6547
6548 2006-05-24  Martin Baulig  <martin@ximian.com>
6549
6550         * mono-debug-debugger.h (MonoDebuggerEvent): Added
6551         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
6552
6553         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
6554         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
6555         `mono_debugger_event_handler' to NULL.
6556
6557 2006-05-24  Martin Baulig  <martin@ximian.com>
6558
6559         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
6560
6561 2006-05-24  Martin Baulig  <martin@ximian.com>
6562
6563         * mono-debug-debugger.h
6564         (mono_debugger_create_notification_function): Added
6565         `MonoCodeManager *' argument.
6566
6567 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
6568
6569         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
6570
6571 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
6572
6573         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
6574         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
6575         implementation.
6576
6577 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
6578
6579         * icall.c: precise GC support: objects can't be stored in unmanaged
6580         memory anymore, even if they are kept alive by other references: since
6581         they can move the GC needs to be able to always find them.
6582
6583 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
6584
6585         * object.c: precise GC support for static fields. Support
6586         for moving GCs: write barriers and pinned allocation for interned
6587         strings.
6588
6589 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
6590
6591         * domain.c, domain-internals.h: precise GC support for the MonoDomain
6592         structure.
6593
6594 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
6595
6596         * class.c, gc.c: sgen and precise GC updates.
6597
6598 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
6599
6600         * marshal.h, marshal.c: added write barrier wrapper and precise type
6601         fixes.
6602
6603 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
6604
6605         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
6606         support.
6607
6608 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
6609
6610         * reflection.c: precise and sgen GC updates.
6611
6612 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
6613
6614         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
6615
6616 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
6617
6618         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
6619
6620 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
6621
6622         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
6623         MONO_TYPE_OBJECT. Fixes #78462.
6624
6625 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
6626
6627         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
6628         and blittable types.
6629
6630 2006-05-17  Miguel de Icaza  <miguel@novell.com>
6631
6632         * class.c (mono_class_get_exception_for_failure): Implement parts
6633         of a TODO: if the loader error is set (instead of the class
6634         error), we return a Loader exception that can be properly thrown
6635         elsewhere.
6636
6637         This was exposed by some Winforms 2.0 code that I tried to run
6638         (Atsushi pointed me to it).
6639
6640 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
6641
6642         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
6643         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
6644         
6645         * marshal.c (emit_marshal_vtype): Add limited support for 
6646         UnmanagedType.LPStruct. Fixes #78427.
6647
6648         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
6649         Applied a patch from kangaroo to fix #77523.
6650
6651 2006-05-17  Martin Baulig  <martin@ximian.com>
6652
6653         * threads.c
6654         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
6655         (debugger_thread_created): Removed.
6656         (debugger_thread_exited): Removed.
6657
6658 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
6659
6660         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6661
6662         * object-internals.h (MonoReflectionResource): Sync with managed version.
6663
6664 2006-05-12  Wade Berrier <wberrier@novell.com>
6665
6666         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
6667
6668 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
6669
6670         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
6671         functions try to allocate from the image mempool.
6672
6673 2006-05-12  Dick Porter  <dick@ximian.com>
6674
6675         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
6676
6677 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
6678
6679         * object.c: The FieldGetter and FieldSetter methods require the full
6680         name of the class, not only the name. Fixes bug #78277.
6681
6682 2006-05-11  Miguel de Icaza  <miguel@novell.com>
6683
6684         * loader.c (method_from_memberref): Do not pass the NULL klass to
6685         mono_loader_set_error_() methods.  Pass the non-NULL value
6686         (class). 
6687
6688 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
6689
6690         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
6691         (mono_assembly_close): Null out assembly->image->references after freeing it.
6692
6693         * image.c (mono_image_close): Free image->references.
6694         
6695         * reflection.c (mono_image_basic_init): Fix a small memory leak.
6696
6697 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
6698
6699         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
6700         before checking if it's NULL (g_assert).
6701
6702 2006-05-10  Martin Baulig  <martin@ximian.com>
6703
6704         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
6705         I thought I already killed that two months ago, but now it somehow reappeared.
6706
6707 2006-05-10  Martin Baulig  <martin@ximian.com>
6708
6709         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
6710
6711 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
6712
6713         * reflection.c: Allocate memory for dynamically created methods in the image
6714         mempools.
6715
6716 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
6717
6718         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
6719         don't use the ad pointer before checking if it's NULL (g_assert).
6720
6721 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
6722
6723         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
6724         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
6725
6726         * marshal.c: Allocate all signatures from mempools.
6727
6728         * marshal.c: Allocate some more signatures from mempools.
6729
6730 2006-05-09  Miguel de Icaza  <miguel@novell.com>
6731
6732         * object.c (mono_load_remote_field): The code used to provide a
6733         temporary variable for returning results if the user did not
6734         provide a result pointer.  But our temporary variable was allocted
6735         on the satck.
6736
6737         Fix calling code to always pass a result area.   Coverity ID 103.
6738
6739 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
6740
6741         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
6742         value, not the old. Fixes #78312.
6743         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
6744
6745         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
6746         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
6747         per-image cache.
6748
6749         * assembly.c (mono_assembly_close): Free image->references.
6750
6751         * assembly.c (mono_assembly_names_equal): Fix a warning.
6752         (mono_assemblies_cleanup): Cleanup more global data.
6753
6754         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
6755
6756         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
6757         ptr_cache and image->modules.
6758
6759         * image.c (mono_image_init): Allocate array_cache lazily.
6760         
6761 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6762
6763         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
6764         behavior was changed recently and has bad side effects.
6765
6766 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
6767
6768         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
6769         
6770         * assembly.c (mono_assembly_close): Remove a debug printf.
6771
6772         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
6773
6774         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
6775         to also allow for temporary references between mono_image_open ()/close ().
6776
6777         * domain.c (get_runtimes_from_exe): Add a FIXME.        
6778
6779 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
6780
6781         * marshal.c: Fix support for dynamic methods.
6782
6783         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
6784
6785         * marshal.c (mono_marshal_cleanup): New cleanup function.
6786
6787         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
6788         image mempools.
6789
6790         * class.c (mono_class_init): Fix leaking class->nested_classes.
6791
6792         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
6793
6794         * image.c (mono_image_init): Initialize the new cashes.
6795
6796         * image.c (mono_image_close): Destroy the new cashes.
6797
6798         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
6799
6800         * mempool.c (mono_mempool_strdup): New helper function.
6801
6802         * class-internals.h: Add prototype for mono_loader_unlock ().
6803
6804         * domain.c (mono_jit_info_table_find): Fix a warning.
6805         (mono_debugger_check_runtime_version): Ditto.
6806
6807         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
6808         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
6809         functions to these modules.
6810
6811         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
6812         metadata modules.
6813         
6814         * marshal.c (mono_free_bstr): Fix a warning.
6815
6816         * assembly.c (mono_assembly_open_full): Fix another small leak.
6817
6818         * object.c: Fix some unload leaks in the remoting code.
6819
6820         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
6821         function.
6822
6823         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
6824
6825         * reflection.c: Fix some unload leaks in dynamic assemblies.
6826
6827 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
6828
6829         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
6830         * marshal.h: Add BSTR support on Win32
6831         * icall.c: Add BSTR icalls
6832         * metadata.h: Add BSTR enums
6833
6834 2006-04-28  Miguel de Icaza  <miguel@novell.com>
6835
6836         Work to catch the crash from #76795 and turn it into an
6837         exception.   As I stubbed out pieces of the VisualBasic support,
6838         I found a number of places where the code was failing and I added
6839         checks to those places. 
6840         
6841         * metadata.c (do_mono_metadata_parse_generic_class): Make this
6842         function return a status code.  If we fail to parse the signature
6843         from mono_metadata_parse_generic_inst, return FALSE.
6844
6845         * loader.c (mono_get_method_from_token): If we fail to load the
6846         method (mono_class_get) return NULL.   
6847
6848         * (method_from_memberref): Return NULL if we are unable to parse
6849         the method signature
6850
6851         (mono_loader_error_prepare_exception): Since we now use the
6852         loader_error flag internally to stop processing, and obtaining
6853         exceptions that might be thrown will walk this code path the
6854         proper way of going from a MonoLoaderError into a
6855         MonoException was convoluted.   This new routine encapsulates the
6856         process of turning the error into an exception and *clearing* the
6857         error afterwards.
6858         
6859 2006-04-27  Miguel de Icaza  <miguel@novell.com>
6860
6861         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
6862         with missing assemblies), and to cope with:
6863
6864                 * Missing fieldref from a non-existing assembly.
6865                 * Missing methodref from a non-existing assembly.
6866
6867         The first batch of work to address *some* of the issues from 76661.
6868         
6869         * object.c (mono_class_create_runtime_vtable): If we fail to
6870         initialize the class raise the exception here. 
6871
6872         * metadata.c (mono_class_get_overrides_full): If any methods fail
6873         to load return the failure to the caller.
6874
6875         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
6876         flagging assemblies that failed to load.   
6877
6878         Do not crash if we are unable to load the assembly.
6879
6880         (mono_assembly_close): Do nothing with REFERENCE_MISSING
6881         assemblies. 
6882
6883         * loader.c (mono_loader_set_error_type_load): Change the
6884         convention to always pass unallocated strings, so we make our own
6885         copies (I know our own code had duplicated strings before, but
6886         this keeps the normal conventions).
6887         (method_from_memberref): Call mono_loader_set_error_method_load
6888         for all possible failures of loading the class. 
6889         Remove assert, turn into a loader error.
6890
6891         (mono_loader_error_to_exception): Move this routine from mini
6892         (mini_loader_error_to_exception) there was no need to have that in
6893         mini. 
6894
6895         * class.c (mono_class_from_typeref): If we were not able to load
6896         the assembly with mono_assembly_load_reference, call the
6897         mono_loader_set_error_type_load to register the problem.
6898
6899         (mono_class_setup_fields): If we fail to load the type from
6900         mono_metadata_parse_type_full, call mono_class_set_failure and
6901         break from the loop.
6902
6903         If class->exception_type is set, we do not layout the fields as
6904         that might crash the runtime, and instead return (from breaking
6905         from the previous loop).
6906
6907         (mono_class_setup_vtable): This now returns a boolean indicating
6908         whether the table was properly setup.   The decision is driven by
6909         mono_class_get_overrides_full which might run into non-existing
6910         methods. 
6911         
6912         (mono_class_init): Returns TRUE on success or FALSE if there was a
6913         problem in loading the type (incorrect assemblies, missing
6914         assemblies, methods, etc).
6915
6916         When we call mono_class_setup_fields we also check for a potential
6917         error inside this call (either a class exception or a general
6918         loader exception).
6919
6920         (mono_class_create_from_typedef): If the parent fails to load
6921         (calling mono_class_get_full) return NULL.
6922         
6923         ** Important **
6924
6925         calls to mono_metadata_parse_type_full should be checked
6926         everywhere and set the mono_class_set_failure
6927         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
6928
6929         The current patch checks the places where my manually constructed
6930         tests show the errors are showing up, but we should do it
6931         everywhere. 
6932
6933         ** Important2 **
6934
6935         mono_class_init return values should be tested everywhere, like
6936         the previous case this is something that we should audit
6937         everywhere and not only on the cases exposed by the tests I
6938         created. 
6939
6940 2006-04-26  Miguel de Icaza  <miguel@novell.com>
6941
6942         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
6943         boolean parameter and instead pass the information on `options'
6944         parameter (FileOptions).
6945
6946         * icall.c: Register the new signature for MonoIO.Open.
6947
6948         * debug-helpers.c (dis_one): Trying to understand how coverity
6949         works.  Fix Run 5, item 78.
6950
6951 2006-04-26  Dick Porter  <dick@ximian.com>
6952
6953         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
6954         dereference.
6955
6956 2006-04-25  Martin Baulig  <martin@ximian.com>
6957
6958         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
6959
6960         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
6961         debugger_thread_created().
6962         (debugger_gc_push_all_stacks): Don't handle the main thread in any
6963         special way.
6964         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
6965         (mono_debugger_finalize_threads): New function; undo the effects
6966         of mono_debugger_init_threads().
6967         (mono_debugger_create_all_threads): Removed.
6968
6969 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
6970
6971         * image.c (mono_image_close): Tidy up trace messages.
6972
6973         * assembly.c (mono_assembly_close): Ditto.
6974
6975         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
6976         no longer references an already freed assembly. Fixes #78168.
6977
6978 2006-04-21  Dick Porter  <dick@ximian.com>
6979
6980         * threads.c (mono_thread_detach): Fix reference counting when
6981         detaching threads.
6982
6983 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
6984
6985         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
6986         #78155.
6987
6988 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
6989
6990         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
6991         (mono_type_to_stind): Ditto.
6992
6993         * marshal.c: Use the new helper functions to simplify code.
6994
6995         * image.c (mono_image_close): Add some code for help debug assembly unloading
6996         problems.
6997
6998         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
6999         image mempool.
7000
7001         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
7002         assembly was already loaded in another appdomain. Fixes #78083.
7003
7004 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
7005
7006         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
7007         referenced assemblies.
7008         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
7009
7010         * domain.c (mono_domain_free): Add a trace message.
7011
7012         * appdomain.c (add_assemblies_to_domain): Ditto.        
7013
7014         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
7015         field.  
7016
7017 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
7018
7019         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
7020
7021 2006-04-12  Martin Baulig  <martin@ximian.com>
7022
7023         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
7024         `USE_INCLUDED_LIBGC'.   
7025
7026 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
7027
7028         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
7029         the patch contains ../ and a small directory name later. Hopefully fixes
7030         #78035.
7031
7032 2006-04-10  Martin Baulig  <martin@ximian.com>
7033
7034         Clean up the debugger's thread-handling code.
7035
7036         The debugger's thread-handling code has been moved from
7037         ../mini/debug-debugger.c to threads.c.  We now iterate directly
7038         over the `threads' hash, keep track of exiting threads and also
7039         use proper locking.
7040
7041         We can now debug XSP and XSP based applications with the debugger.
7042
7043         * object-internals.h (MonoThread): Added `gpointer end_stack'.
7044
7045         * threads.h
7046         (MonoThreadCallbacks): Removed; this was only used by the debugger.
7047         (mono_install_thread_callbacks): Likewise.      
7048
7049         * threads.c (mono_thread_callbacks): Removed.
7050         (debugger_thread_created, debugger_thread_exited): New static functions.
7051         (start_wrapper): Call debugger_thread_created().
7052         (thread_cleanup): Call debugger_thread_exited().
7053         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
7054         (mono_debugger_init_threads): New public function.
7055         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
7056         iterate directly over the `threads' hash and also use proper locking.
7057
7058         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
7059
7060         * mono-debug-debugger.h
7061         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
7062
7063 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
7064
7065         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
7066         argument type=array. Fixes #78057.
7067
7068 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
7069
7070         * culture-info-table.h : regenerated. Fixed bug #69652.
7071
7072 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
7073
7074         * loader.c metadata.c: Reapply a variant r59116.
7075         
7076         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
7077
7078         * class.c (mono_class_setup_interface_offsets): New internal function.
7079
7080         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
7081         interfaces too. Fixes #77398.
7082
7083         * reflection.c (encode_cattr_value): Add support for 
7084         parameter type=object, argument type=array.
7085         (load_cattr_value): Ditto. Fixes #77916.
7086
7087         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
7088         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
7089
7090         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
7091         a byval char array and CharSet is Ansi.
7092
7093         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
7094
7095 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
7096
7097         * metadata.c: Add some locking comments.
7098         
7099         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
7100         mempool.
7101         (mono_metadata_free_method_signature): Don't free the signature itself.
7102
7103         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
7104
7105         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
7106         reference the same MonoImage.
7107         (mono_assembly_load_from_full): Add an assert.
7108
7109 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
7110
7111         * image.c (mono_image_close): Don't put the image we are about to free into the
7112         loaded_images_guid_hash.
7113
7114         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
7115         to reduce code duplication.
7116
7117         * marshal.c: Register the native functions called by this module as icalls, to
7118         somewhat centralize the creation of MonoMethodSignature's.
7119
7120         * loader.c (mono_method_signature): Add a cache for method signatures.
7121
7122         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
7123         the parameter attributes of a method.
7124         (mono_metadata_parse_method_signature_full): Refactored the computation of
7125         parameter attributes into a separate function. Also avoid one allocation in
7126         most cases.
7127
7128         * assembly.c (mono_assembly_close): Ditto.
7129
7130         * image.c (mono_image_close): Log trace messages with INFO level.
7131
7132         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
7133
7134         * image.c reflection.c: Correct reference counting of image modules.
7135         
7136         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
7137         of this function from the image mempool.
7138         
7139         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
7140         to allow more cached types to be used.
7141
7142         * mono-debug.c (mono_debug_add_method): Appled patch from
7143         David S. Miller  <davem@sunset.davemloft.net>: Access 
7144         minfo->lexical_blocks[] entry elements using read32().
7145
7146 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
7147
7148         * loader.c (mono_free_method): No longer free the method header for non-dynamic
7149         methods as it is allocated from the mempool.
7150
7151         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
7152         image mempool.
7153
7154         * metadata-internals.h: Add comments describing the reference counting scheme
7155         used for MonoImage and MonoAssembly.
7156
7157         * image.c assembly.c reflection.c: Rework reference counting of images and 
7158         assemblies so they are freed when the runtime is shut down. Free some 
7159         additional memory structures when an image is unloaded.
7160         
7161 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
7162
7163         * class.c loader.c reflection.c: Allocate more data structures in
7164         the image mempool.
7165
7166 2006-03-31  Miguel de Icaza  <miguel@novell.com>
7167
7168         * icall.c
7169         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
7170         build on pre glib 2.4 systems.
7171
7172 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
7173
7174         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
7175
7176         * icall.c: Fix some warnings.
7177
7178 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
7179
7180         * culture-info-table.h : regenerated.
7181
7182 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
7183
7184         * threads.c, object-internals.h, verify.c: changed the culture caching
7185         code to use a normal MonoArray for storage so the GC can keep track of
7186         them easily. Fixed bits of the cache logic, too and simplified the
7187         code.
7188
7189 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
7190
7191         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
7192         thread for non-Boehm GCs.
7193
7194 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
7195
7196         * domain.c, object.c, domain-internals.h: reduce the amount of memory
7197         needed to keep track of the data for static fields.
7198
7199 2006-03-29  Raja R Harinath  <rharinath@novell.com>
7200
7201         Fix #75172
7202         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
7203         for interface classes.  Use 'num_methods' instead.
7204         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
7205         before using '->vtable_size' field.
7206
7207 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
7208
7209         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
7210         doesn't contain managed pointers, so use a normal hashtable.
7211
7212 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
7213
7214         * reflection.c, class-internals.h, domain.c: fixed handling of types
7215         used as values for objects in custom attributes (bug #77915):
7216
7217 2006-03-24  Martin Baulig  <martin@ximian.com>
7218
7219         * class.c (mono_class_setup_fields): Added support for generic
7220         instances; fixes #77580.
7221
7222 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7223
7224         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
7225
7226 2006-03-24  Dick Porter  <dick@ximian.com>
7227
7228         * file-io.c (get_file_attributes): More stat macro breakage.
7229         Fixes bug 77759.
7230
7231 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
7232
7233         * profiler.c: added the file=filename option in the default profiler
7234         to output the profile data to filename.
7235
7236 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7237
7238         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
7239         bug #77877.
7240
7241 2006-03-22  Martin Baulig  <martin@ximian.com>
7242
7243         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
7244         allocated `MonoClassField *' in `fb->handle'.
7245
7246 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7247
7248         * class.c, image.c, metadata-internals.h: implemented new mechanism to
7249         allocate interface ID to save memory and allow better ID reuse on
7250         appdomain unload. setup_generic_vtable () removal from Martin.
7251
7252 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7253
7254         * object.h, appdomain.c, domain.c, exception.c, icall.c,
7255         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
7256         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
7257         write barriers for reference stores with managed objects accessed with
7258         C structures in the runtime and in embedding programs.
7259
7260 2006-03-20  Raja R Harinath  <rharinath@novell.com>
7261
7262         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
7263         'interface_id' and 'max_interface_id' fields of MonoClasses
7264         representing open generic types.
7265
7266 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
7267
7268         * object.h, object.c, icall.c: added functions to deal with
7269         storing valuetypes that contain references in managed objects.
7270         * reflection.c, string-icalls.c, threads.c, marshal.c: small
7271         fixes and comments around uses of mono_array_addr ().
7272
7273 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
7274
7275         * object.h, icall.c, monitor.c: object.GetHashCode ()
7276         implementation that supports the moving garbage collector.
7277
7278 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
7279
7280         * icall.c, threads-types.h, threads.c: implemented finalizer for
7281         LocalDataStoreSlot.
7282
7283 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
7284
7285         * metadata.c (mono_type_size): Add a fixme.
7286         (mono_type_stack_size): Ditto.
7287
7288         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
7289         'type_forwarders' field.
7290
7291         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
7292         attribute from net 2.0.
7293
7294         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
7295         from class.c.
7296
7297         * class.c (mono_class_setup_fields): Fix a warning.
7298         
7299         * class.c (mono_class_from_name): Add support for assemblyref entries
7300         in the EXPORTEDTYPE table.
7301
7302         * reflection.c: Add support for handling type forwarders under net 2.0.
7303
7304         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
7305         
7306 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
7307
7308         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
7309         overwriting entries in ModuleBuild->types, also clean up the code
7310         a little. Fixes #77774.
7311
7312 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
7313
7314         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
7315         load friend assembly info when present.
7316
7317 2006-03-14  Raja R Harinath  <rharinath@novell.com>
7318
7319         Fix crasher on gtest-158.cs.
7320         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
7321         the return value if the MonoClass we want is yet in an
7322         inconsistent state.
7323         * class.c (mono_class_create_from_typedef): Add an comment
7324         explaining an order dependency between mono_class_setup_parent and
7325         mono_class_setup_mono_type.
7326
7327 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
7328
7329         * class.c: documentation updates and events bug fix.
7330
7331 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
7332
7333         * class.c: some cleanup, locking fixes.
7334
7335 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
7336
7337         * class.c: fix the generics code to setup nested
7338         type info to the instantiated type (bug #77770).
7339
7340 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
7341
7342         * marshal.c: fixed a few type correctness issues.
7343
7344 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7345
7346         * loader.c: the Set/Get/Addrtess array methods should be public.
7347
7348 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
7349
7350         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
7351         
7352         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
7353         info->wrapper.
7354
7355 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
7356
7357         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
7358
7359         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
7360
7361         * mempool.c (mono_mempool_alloc): Speed this up a bit.
7362         (mono_mempool_alloc0): Ditto.
7363
7364 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7365
7366         * socket-io.c:
7367         (create_object_from_sockaddr): it was allocating 4 extra bytes
7368         for the AF_UNIX data. Fixes bug #77747.
7369
7370 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
7371
7372         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
7373
7374 2006-03-09  Dick Porter  <dick@ximian.com>
7375
7376         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
7377         Fixes bug 76966 again.
7378
7379 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
7380
7381         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
7382         names from r57532
7383         * appdomain.c: Bumped corlib version to 48 (due to r57532)
7384
7385 2006-03-07  Martin Baulig  <martin@ximian.com>
7386
7387         * object.c
7388         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
7389
7390 2006-03-07  Martin Baulig  <martin@ximian.com>
7391
7392         * class.c
7393         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
7394         regression introduced in r56970; see gtest-252.cs.
7395
7396         * loader.c (mono_get_method_constrained): Correctly handle generic
7397         methods; see gtest-253.cs.
7398
7399 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
7400
7401         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
7402
7403 2006-03-04  Martin Baulig  <martin@ximian.com>
7404
7405         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
7406         compute the parent type at runtime, just like we're already doing
7407         it for interfaces.
7408
7409         * reflection.c
7410         (mono_reflection_bind_generic_parameters): Don't compute the
7411         parent type anymore.
7412
7413         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
7414
7415 2006-03-04  Martin Baulig  <martin@ximian.com>
7416
7417         * mono-debug-debugger.h
7418         (mono_debugger_create_notification_function): Allocate memory at
7419         runtime and return a pointer to it.
7420
7421 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
7422
7423         * assembly.c: Fix windows build.
7424         
7425         * assembly.c: Fix build.
7426
7427         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
7428
7429         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
7430         
7431 2006-03-03  Dick Porter  <dick@ximian.com>
7432
7433         * process.c
7434         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7435         Check parameters before dereferencing them.  Fixes Aaron's part of
7436         bug 77393.
7437
7438 2006-03-03  Raja R Harinath  <rharinath@novell.com>
7439
7440         Fix performance regression.
7441         * loader.c (find_method_in_class): Add 'from_class' argument.
7442         Rename 'klass' argument to 'in_class'.  The signature is compared
7443         against the method in 'in_class', and the corresponding method is
7444         returned from 'from_class'.
7445         (find_method): Walk both 'in_class' and 'from_class' in parallel.
7446         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
7447         type definition and generic instantiation in parallel.
7448         (mono_get_method_constrained): Update to changes.
7449
7450 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
7451
7452         * threads.c: make sure the domain is correct, too when doing
7453         mono_thread_attach ().
7454
7455 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
7456
7457         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
7458         windows. Fixes #77683.
7459
7460 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
7461
7462         * object.h, *: introduced specific way to set elements of an array
7463         of references to be used as write barrier. Still need to audit the
7464         uses of mono_array_addr.
7465
7466 2006-03-01  Miguel de Icaza  <miguel@novell.com>
7467
7468         * object-internals.h: New field to cache the assmebly name, patch
7469         from Tambet Ingo (tambet@ximian.com)
7470
7471 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7472
7473         * decimal.h, class-internals.h, metadata-internals.h,
7474         file-io.h: mark a few function declarations as internal, to
7475         reduce the number of PLT entries.
7476
7477 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7478
7479         * file-io.c: fix typo in warning message.
7480
7481 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
7482
7483         * loader.c: on unix, lookup the "*A" version of a function
7484         if charset is auto as a second option before failing.
7485
7486 2006-02-28  Raja R Harinath  <rharinath@novell.com>
7487
7488         * class.h (mono_class_inflate_generic_method): Revert to two
7489         argument version.
7490         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
7491         (mono_class_inflate_generic_method_full): Add.
7492         * class.c (mono_class_inflate_generic_method_full): Rename from
7493         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
7494         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
7495         * loader.c, reflection.c: Update to changes.
7496
7497 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
7498
7499         * icall.c: const fixes and small improvements.
7500
7501 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7502
7503         * threadpool.c: for asynchronous connect(), enable the same workaround
7504         for BSD 6 as for the Mac. Fixes bug #77637.
7505
7506 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
7507
7508         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
7509         formatted classes. Fixes #77524.
7510
7511 2006-02-24  Raja R Harinath  <rharinath@novell.com>
7512
7513         * class.c (inflate_generic_type): Add a couple more
7514         micro-optimizations.
7515         (inflate_generic_context): Don't use the 'gmethod' from
7516         'inflate_with'.
7517         (mono_class_inflate_generic_method): If the method has generic
7518         parameters, but the passed-in context doesn't have a 'gmethod',
7519         create one.  Use the possibly simplified generic instantiation
7520         from the declaring class instead of the one passed in.
7521
7522 2006-02-24  Raja R Harinath  <harinath@gmail.com>
7523
7524         Make generic method signature and method header handling lazy.
7525         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
7526         (inflate_generic_header): Likewise.
7527         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
7528         parameter to avoid inflating types.
7529         (mono_get_inflated_method): Empty out.
7530         * class.h (mono_class_inflate_generic_method): Update to changes.
7531         * loader.c (mono_get_method_from_token): Don't parse signature for
7532         generic methods, nor methods of generic classes.
7533         (mono_method_signature): Rename from 'mono_method_signature'.
7534         Inflate signature on demand.
7535         (mono_method_get_header): Inflate method header on demand.
7536         * reflection.c: Update to changes.
7537
7538 2006-02-23  Raja R Harinath  <rharinath@novell.com>
7539
7540         * metadata.c (mono_metadata_inflate_generic_inst): If the
7541         instantiation is closed, don't bother expanding it in the new
7542         context.
7543         * class.c (inflate_generic_class): If the generic instantiation
7544         doesn't change after inflation, return the argument itself.
7545         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
7546         Add bounds checks.
7547         (inflate_generic_context): If neither the generic class nor the
7548         generic method instantiations change, return the original context.
7549         * reflection.c (mono_method_get_object): Do
7550         'mono_get_inflated_method' before accessing the ->klass field.
7551         (inflate_mono_method): Don't create a MonoGenericMethod unless
7552         necessary.
7553         (inflate_method): Don't pass a constructed type as the declaring
7554         type of a methodbuilder.
7555
7556 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
7557
7558         * object.c: fix memory overwrite.
7559
7560 2006-02-22  Dick Porter  <dick@ximian.com>
7561
7562         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
7563         it doesn't work any more.
7564         (mono_threads_request_thread_dump): Fix unused variable warnings.
7565
7566 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7567
7568         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
7569         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
7570         the public header file.
7571
7572 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
7573
7574         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
7575
7576 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
7577
7578         * class-internals.h, object.c: reduce the size of MonoVTable
7579         and store the interface_offsets array at negative offsets.
7580
7581 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
7582
7583         * metadata.c: tweak table descriptors data structures to reduce
7584         size and runtime relocations.
7585
7586 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7587
7588         * marshal.c: fix some types and opcodes to be type-safe
7589         in marshaling wrappers.
7590
7591 2006-02-21  Ankit Jain  <jankit@novell.com>
7592
7593         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
7594
7595 2006-02-21  Raja R Harinath  <rharinath@novell.com>
7596
7597         * metadata.c (get_constraints): Relax debugging checks for monodis.
7598
7599 2006-02-21  Ankit Jain  <jankit@novell.com>
7600
7601         * metadata.c (mono_metadata_load_generic_params): Move the code
7602         checking for ambiguous generic params from here to mono/dis/get.c
7603         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
7604
7605 2006-02-21  Raja R Harinath  <harinath@gmail.com>
7606
7607         Fix assertion triggered when compiling nemerle.
7608         * class.c (mono_get_shared_generic_inst): Rename from
7609         get_shared_inst and make non-static.
7610         * loader.c (mono_get_shared_generic_method): New.  Used to create
7611         the MonoGenericContext-equivalent of a MonoGenericContainer.
7612         (mono_get_method_from_token): Initialize the 'context' field of
7613         the created MonoGenericContainer.
7614         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
7615         * metadata.c (get_constraints): Add sanity check.
7616         * class-internals.h: Add new internal methods.
7617
7618         * reflection.c (verify_safe_for_managed_space): New sanity check.
7619         Currently checks that owner-less generic parameters aren't allowed
7620         in managed space.
7621         (mono_type_get_object): Use it.
7622         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
7623         that are now in mono_type_get_object.
7624         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
7625
7626 2006-02-19  Raja R Harinath  <harinath@gmail.com>
7627
7628         * metadata.c (mono_type_create_from_typespec): Rename from
7629         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
7630         argument and caching of types in the generic container.
7631         (unwrap_arrays, find_generic_param): Remove.
7632         * metadata-internals.h: Update.
7633         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
7634
7635 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
7636
7637         * class.c (mono_class_get_exception_for_failure): Fix a warning.
7638
7639         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
7640         return values. Fixes #77581.
7641
7642         * class.c (mono_fnptr_class_get): Switch name and name_space.
7643
7644         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
7645         classes and add support for [In, Out] attributes.
7646         (mono_marshal_free_asany): Ditto. Fixes #77524.
7647
7648 2006-02-18  Raja R Harinath  <harinath@gmail.com>
7649
7650         * class.c (mono_class_from_generic_parameter): Make more robust to
7651         incomplete MonoGenericContainers from monodis.
7652
7653 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7654
7655         * class-internals.h: added some more exception types.
7656         * class.c, metadata.c: added a few checks to handle missing
7657         types.
7658
7659 2006-02-17  Raja R Harinath  <rharinath@novell.com>
7660
7661         Use owner-less generic-params some more.
7662         * class.c (my_mono_class_from_generic_parameter): Remove.
7663         (mono_class_from_generic_parameter): Handle null image,
7664         param->name and param->owner.
7665         (mono_class_from_mono_type): Update.
7666         (mono_class_create_from_typespec): Remove 'container' parameter.
7667         If that parameter is non-null, the result is always inflated by
7668         'mono_class_get_full' anyway.
7669         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
7670         parameter.
7671         (mono_class_get_full): Update.
7672
7673         * class.c (inflate_generic_type) [GENERICINST]: If the generic
7674         instance is not open, don't bother inflating.
7675         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
7676         parse metadata for inflated classes.
7677         (_mono_class_get): Change GenericContext* parameter to
7678         GenericContainer*.
7679         (mono_class_create_from_typespec): Likewise.  Simplify, and
7680         implement trivially.  All the cases are handled in
7681         mono_class_from_mono_type.  Don't inflate returned class.
7682         (mono_class_get_full): Delegate GENERICINST optimization to
7683         inflate_generic_type.
7684         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
7685
7686 2006-02-16  Dick Porter  <dick@ximian.com>
7687
7688         * socket-io.c (create_object_from_sockaddr): Fix typo.
7689         (create_sockaddr_from_object): Check array lengths before
7690         potentially accessing items off the end.
7691         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
7692         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
7693         (ves_icall_System_Net_Sockets_Socket_Send_internal)
7694         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
7695         length checks to avoid wraparound overflows.
7696         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
7697         contents of the array of sockets
7698         (hostent_to_IPHostEntry2)
7699         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
7700         Check return value of inet_ntop ().
7701         (addrinfo_to_IPHostEntry): Fix typo
7702
7703 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7704
7705         Type metadata parsing doesn't use generic-instantiation information.
7706         * metadata.c (mono_metadata_parse_array_full): Change
7707         MonoGenericContext* parameter to MonoGenericContainer*.
7708         (mono_metadata_parse_type_full): Likewise.
7709         (mono_type_create_from_typespec_full): Likewise.
7710         (mono_metadata_parse_mh_full): Likewise.
7711         (mono_metadata_parse_generic_inst): Likewise.
7712         (do_mono_metadata_parse_generic_class): Likewise.
7713         (do_mono_metadata_parse_type): Likewise.
7714         * metadata-internals.h: Update to changes.
7715         * class.c (mono_class_find_enum_basetype): Likewise.
7716         (mono_class_setup_fields): Likewise.
7717         (mono_class_create_from_typespec): Likewise.
7718         * loader.c (method_from_methodspec): Likewise.
7719         (mono_get_method_from_token): Likewise.
7720         (mono_method_get_header): Likewise.
7721
7722 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7723
7724         * marshal.c: handle additional GENERICINST case (patch from
7725         Thong Nguyen <tum@veridicus.com>).
7726         Fix a few cases where LDIND_I/STIND_I was used for references.
7727
7728 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7729
7730         * reflection.c (mono_reflection_get_token): Remove unused variable.
7731
7732 2006-02-16  Martin Baulig  <martin@ximian.com>
7733
7734         * reflection.c (mono_reflection_get_token): Add support for fields
7735         in instantiated generic types.
7736
7737         * icall.c
7738         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
7739
7740 2006-02-15  Martin Baulig  <martin@ximian.com>
7741
7742         * icall.c
7743         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
7744         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
7745         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
7746         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
7747
7748 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
7749
7750         * class.c, metadata.c, metadata.h, object.c, icall.c,
7751         marshal.c: changed mono_type_get_underlying_type () to do
7752         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
7753         Fixed handling of instantiated generic valuetypes (bug #75479).
7754
7755 2006-02-15  Raja R Harinath  <rharinath@novell.com>
7756
7757         * metadata.c (mono_metadata_decode_signed_value): Simplify.
7758         Delegate to mono_metadata_decode_value, and work on the returned value.
7759
7760         * icall.c (ves_icall_MonoType_GetGenericArguments):
7761         Add consistency check here too.
7762         
7763 2006-02-15  Ankit Jain  <jankit@novell.com>
7764
7765         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
7766         char/short etc.
7767
7768 2006-02-15  Ankit Jain  <jankit@novell.com>
7769
7770         * metadata.c (mono_metadata_decode_signed_value): New function to decode
7771         signed values, used only for representing lower bounds of arrays.
7772         (mono_metadata_parse_array_full): Use new
7773         mono_metadata_decode_signed_value to decode lower bounds.
7774
7775 2006-02-14  Martin Baulig  <martin@ximian.com>
7776
7777         * reflection.c
7778         (mono_reflection_get_token): Support "MonoGenericMethod" and
7779         "MonoGenericCMethod" and allow generic instances / methods.
7780
7781 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
7782
7783         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
7784         to obtain the terminal size using an ioctl.
7785
7786         * object.c (mono_nullable_init): Revert this as nullable reference
7787         types are not valid.
7788         (mono_nullable_box): Ditto.
7789
7790 2006-02-09  Dick Porter  <dick@ximian.com>
7791
7792         * threads.c (mono_thread_detach): Drop a reference to the thread
7793         we're detaching.
7794
7795 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
7796
7797         * object.c (mono_nullable_init): Handle nullable reference types.
7798         (mono_nullable_box): Ditto. Fixes #77446.
7799
7800 2006-02-07  Martin Baulig  <martin@ximian.com>
7801
7802         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
7803
7804 2006-02-07  Ankit Jain  <jankit@novell.com>
7805
7806         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
7807         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
7808         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
7809         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
7810         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
7811         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
7812
7813 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
7814
7815         * class.c (mono_class_create_generic): Set type_token as well.
7816
7817         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
7818         compatible with MS.
7819
7820 2006-02-02  Martin Baulig  <martin@ximian.com>
7821
7822         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
7823         has never been used so far.
7824
7825 2006-02-02  Martin Baulig  <martin@ximian.com>
7826
7827         * mono-debug-debugger.h: Changed comment at the top of this file;
7828         the header is not installed, but it's safe to #include it from
7829         within the JIT.
7830
7831         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
7832         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
7833
7834 2006-02-02  Martin Baulig  <martin@ximian.com>
7835
7836         * mono-debug.h
7837         (MonoSymbolTable): Removed the `metadata_info' field.
7838
7839         * mono-debug.c
7840         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
7841
7842         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7843         (mono_debugger_add_builtin_types): Removed.
7844         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
7845         (mono_debugger_create_notification_function): We now operate on a
7846         pre-allocated area; take a `gpointer' and return `void'.
7847
7848         * mono-debug-debugger.c
7849         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
7850         (mono_debugger_add_builtin_types): Removed.
7851
7852 2006-02-02  Martin Baulig  <martin@ximian.com>
7853
7854         * threads.c (mono_debugger_create_all_threads): New public method.
7855
7856 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7857
7858         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
7859         breaks on several platforms.
7860
7861 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
7862
7863         * assembly.c: the VS.NET build doesn't supply default values for
7864         MONO_ASSEMBLIES and MONO_CFG_DIR.
7865
7866 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
7867
7868         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
7869         helper function.
7870
7871         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
7872
7873         * loader.c (method_from_memberref): Fix a warning.
7874
7875         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
7876
7877         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
7878         with explicit layout. Fixes #77433.
7879
7880 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
7881
7882         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
7883         max_interface_id is initialized before using it. Fixes #77398.
7884         (ves_icall_Type_GetInterfaces): Ditto.
7885
7886 2006-01-30  Raja R Harinath  <rharinath@novell.com>
7887
7888         * metadata.c (mono_metadata_parse_method_signature_full): Don't
7889         allocate memory for parameter attributes when parsing memberref
7890         signatures.
7891         * loader.c (mono_loader_set_error_method_load): Don't warn.
7892         (method_from_memberref): Ensure MissingMethodException gets thrown
7893         if method is not found.  Make warning more informative.
7894
7895 2006-01-29  Raja R Harinath  <harinath@gmail.com>
7896
7897         Fix #77397
7898         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
7899         return true if is byref.
7900         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
7901         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
7902         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
7903
7904 2006-01-27  Raja R Harinath  <rharinath@novell.com>
7905
7906         Fix tests/find-method.2.il
7907         * loader.c (find_method, find_method_in_class): Remove is_inflated
7908         argument.  Revert 2006-01-18 change.
7909         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
7910         is generic, search for method in its generic definition.
7911         * class.c (mono_class_setup_vtable_general): Print generic
7912         arguments of generic types in debugging printf.
7913
7914 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
7915
7916         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
7917
7918         * threads.c (mono_threads_request_thread_dump): New helper function.
7919
7920 2006-01-25  Raja R Harinath  <rharinath@novell.com>
7921
7922         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
7923
7924 2006-01-25  Ankit Jain  <jankit@novell.com>
7925
7926         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
7927         move definition to ..
7928         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
7929         
7930 2006-01-25  Ankit Jain  <jankit@novell.com>
7931             Raja R Harinath  <rharinath@novell.com>
7932
7933         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
7934         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
7935         as necessary.
7936
7937 2006-01-25  Martin Baulig  <martin@ximian.com>
7938
7939         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
7940         `MonoDebuggerThread' into debug-debugger.c.
7941
7942 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
7943
7944         * profiler.c: fix printing of data.
7945
7946 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
7947
7948         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
7949           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
7950
7951 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
7952
7953         * object.c: fix deadlock related to string interning.
7954
7955 2006-01-23  Martin Baulig  <martin@ximian.com>
7956
7957         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7958
7959         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
7960
7961 2006-01-23  Martin Baulig  <martin@ximian.com>
7962
7963         * mono-debug.h: Moved the prototypes of some functions which are
7964         used by the JIT here from mono-debug-debugger.h.
7965
7966 2006-01-21  Martin Baulig  <martin@ximian.com>
7967
7968         * Makefile.am: Don't install mono-debug-debugger.h.
7969
7970 2006-01-21  Martin Baulig  <martin@ximian.com>
7971
7972         * mono-debug-debugger.h: Enforce the private status of this header
7973         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
7974         Moved some stuff from mono-debugger-jit-wrapper.h here.
7975
7976 2006-01-20  Raja R Harinath  <rharinath@novell.com>
7977
7978         * class.c (mono_class_from_typeref): Add a sanity test to help
7979         catch lack of assembly load/search hooks.
7980
7981 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
7982
7983         * marshal.c (emit_struct_conv): Relax the fields with same offset
7984         check even more. Fixes #77230.
7985
7986 2006-01-18  Martin Baulig  <martin@ximian.com>
7987
7988         * loader.c (find_method_in_class): Added `gboolean is_inflated'
7989         argument; if false, we compare the uninstantiated signatures.
7990         (method_from_memberref): Compare the uninstantiated signatures;
7991         fixes #76417.
7992
7993 2006-01-18  Robert Jordan  <robertj@gmx.net>
7994
7995         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
7996         Clear the weak link. Fixes bug #77170.
7997
7998         * gc.c (mono_gchandle_free):
7999         Reflect *-gc.c changes (tiny optimization).
8000
8001 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
8002
8003         * metadata.c (mono_metadata_signature_dup): Applied patch from
8004         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
8005         Fixes #77288.
8006
8007 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
8008
8009         * marshal.c (emit_struct_conv): Allow fields with the same offset when
8010         marshalling from native to managed code. Fixes #77230.
8011
8012 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8013
8014         * threadpool.c: fix problem (Mac only) when more than one asynchronous
8015         connect. Fixes bug #77020.
8016
8017 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
8018
8019         * class.c: fixed id assignement for nested interfaces (bug #77275).
8020         Added also better info for --print-vtable debugging.
8021
8022 2006-01-12  Martin Baulig  <martin@ximian.com>
8023
8024         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
8025         interfaces on-the-fly; fixes #76625.
8026
8027         * class-internals.h
8028         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
8029         don't need that anymore.
8030
8031 2006-01-12  Miguel de Icaza  <miguel@novell.com>
8032
8033         * socket-io.c
8034         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8035         To avoid initing the nested_classes when not needed I turned the
8036         PeerCredData as a toplevel internal class, as it has to be shared
8037         anyways. 
8038
8039         Fixes the CASA issue.
8040
8041 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
8042
8043         * domain.c: Accessors for MonoJitInfo
8044
8045         * profiler-private.h: Add jitinfo to the end jit hook
8046
8047         * profiler.[ch]: Define new hooks, called after jitting which give
8048         the MonoJitInfo that was compiled
8049
8050 2006-01-10  Martin Baulig  <martin@ximian.com>
8051
8052         * class.c (mono_class_setup_events): Add support for generic
8053         classes; fixes #76440.
8054
8055 2006-01-06  Raja R Harinath  <rharinath@novell.com>
8056
8057         Fix #77160.
8058         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
8059         on passed-in method.
8060
8061 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
8062
8063         * object.c (mono_runtime_invoke_array): Add Nullable support.
8064
8065         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
8066
8067 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
8068
8069         * file-io.c: Don't consider sockets as directory and avoid an endless
8070         loop. Fix bug #76966.
8071
8072 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
8073
8074         * object.c (mono_nullable_init): New helper function.
8075         (mono_nullable_box): Ditto.
8076
8077         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
8078
8079         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
8080
8081         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
8082         
8083 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
8084
8085         * class.c (mono_class_is_assignable_from): Make T assignable to 
8086         Nullable<T>.
8087
8088 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
8089
8090         * appdomain.c: Bump corlib version to 46.
8091         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
8092         serialization purpose) and changed ves_icall_System_Reflection_
8093         Assembly_get_code_base signature to accept a boolean (to escape, or 
8094         not, the assembly code base).
8095
8096 2005-12-23  Dick Porter  <dick@ximian.com>
8097
8098         * icall.c: 
8099         * threads-types.h: 
8100         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
8101         CreateEvent icall now returns "created" boolean parameter.
8102
8103 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
8104
8105         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
8106         #76967.
8107
8108         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
8109         when attr_klass is an interface. Fixes #77045.
8110
8111 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
8112
8113         * marshal.c (emit_struct_conv): Fix previous patch.
8114         
8115         * marshal.c (emit_struct_conv): Add a check for fields with the same
8116         offset.
8117
8118 2005-12-20  Raja R Harinath  <rharinath@novell.com>
8119
8120         Fix regression in Mono.C5.
8121         * class.c (mono_class_create_generic): If 'klass' is an interface
8122         set up the interface offsets.
8123         (mono_class_is_assignable_from): Don't throw away generic arguments.
8124
8125 2005-12-19  Raja R Harinath  <rharinath@novell.com>
8126
8127         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
8128         type parameters.
8129
8130 2005-12-15  Raja R Harinath  <rharinath@novell.com>
8131
8132         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
8133         dead store.
8134         (do_mono_metadata_parse_generic_class): Don't pass the current
8135         generic context when parsing the type being instantiated: it
8136         cannot use it, anyway.
8137
8138         * loader.c (method_from_memberref): Don't inflate a signature if
8139         it doesn't contain any type parameters.
8140
8141 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
8142
8143         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
8144
8145 2005-12-14  Martin Baulig  <martin@ximian.com>
8146
8147         * class.c
8148         (mono_type_get_name_recurse): Don't return null for type
8149         parameters and open generic classes.
8150         (mono_class_setup_methods): Don't exclude generic instances.
8151         (mono_get_unique_iid): Use different IDs for different
8152         instantiations of the same generic type.
8153         (mono_class_setup_vtable): Only use setup_generic_vtable() for
8154         open generic instances; create a normal vtable for closed generic
8155         instances.
8156         (mono_class_setup_vtable_general): We're now also called for
8157         closed generic instances.
8158
8159         * reflection.c
8160         (mono_reflection_bind_generic_parameters): Correctly use
8161         mono_metadata_lookup_generic_inst() everywhere.
8162
8163 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
8164
8165         * object.c (mono_class_create_runtime_vtable): Call 
8166         mono_class_setup_vtable ().
8167
8168         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
8169         function.
8170         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
8171         #76959.
8172
8173         * loader.c (mono_loader_set_error_type_load): Print the type load
8174         warnings to the console so they are more visible to the user.
8175         (mono_loader_set_error_method_load): Ditto.
8176
8177         * reflection.c (ensure_runtime_vtable): Revert the last change as it
8178         is still broken.
8179         
8180         * reflection.c (ensure_runtime_vtable): Fix build.
8181
8182         * reflection.c (ensure_runtime_vtable): Disable an optimization which
8183         doesn't work in all cases.
8184
8185 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
8186
8187         * object.c (mono_array_new_full): Treat a single dimensional array
8188         with 0 lower bounds as an szarray. Fixes #76973.
8189
8190         * reflection.c (custom_attr_visible): Really fix this.
8191
8192 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
8193
8194         * reflection.c (custom_attr_visible): Allow nested public attributes
8195         as well.
8196
8197         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
8198         interface check.
8199
8200 2005-12-12  Raja R Harinath  <harinath@gmail.com>
8201
8202         * class.c (set_generic_param_owner): Delete.
8203         (mono_class_create_from_typedef): Don't set ->owner field of
8204         generic parameters to "param containers" of enclosing classes.
8205         * reflection.c (mono_reflection_initialize_generic_parameter):
8206         Likewise.
8207
8208 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
8209
8210         * reflection.c (custom_attr_visible): Fix build.
8211
8212 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
8213
8214         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
8215         private attributes.
8216         
8217         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
8218         handling of null parameter defaults.
8219
8220 2005-12-09  Raja R Harinath  <rharinath@novell.com>
8221
8222         * class.c (mono_class_from_generic_parameter): Don't set
8223         klass->generic_container.
8224         (my_mono_class_from_generic_parameter): Likewise.
8225
8226 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
8227
8228         * reflection.c (load_public_key): Fix a warning.
8229         (method_encode_code): Fix unaligned accesses.
8230
8231 2005-12-07  Martin Baulig  <martin@ximian.com>
8232
8233         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
8234
8235         * reflection.c
8236         (write_generic_param_entry): Encode our custom attrs.
8237
8238         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
8239
8240 2005-12-07  Martin Baulig  <martin@ximian.com>
8241
8242         * reflection.c (encode_new_constraint): Removed; we don't use the
8243         `NewConstraintAttribute' anymore.
8244
8245 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
8246
8247         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
8248         not fire a TypeResolve event when Assembly.GetType () is called.
8249
8250 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
8251
8252         Beginning of support for nullable types in the runtime. Parts of
8253         this patch are from Martin.
8254
8255         * appdomain.c (MONO_CORLIB_VERSION): Bump
8256
8257         * domain.c (mono_init_internal): get the nullable type
8258
8259         * class.c (mono_class_is_nullable): New method
8260         (mono_class_get_nullable_param): New mehod
8261         (mono_class_create_generic): In types T? set cast_class to T
8262
8263         * class-internals.h (MonoDefaults): new nullable default class
8264         (mono_class_get_nullable_param, mono_class_get_nullable_param):
8265         new methods.
8266
8267 2005-12-05  Raja R Harinath  <rharinath@novell.com>
8268
8269         * metadata.c (select_container): New.  Refactor code to select the
8270         appropriate GenericContainer given the type of generic parameter
8271         we are looking for.
8272         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
8273         not a MonoGenericContext.  Use select_container.  Update parameters.
8274         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
8275         and MONO_TYPE_MVAR.
8276         (unwrap_arrays): Remove duplicate tests.
8277         (find_generic_param): Rename from 'has_same_context'.  Now walks a
8278         generic instantiated class to find any arguments that are generic
8279         parameters.
8280         (mono_type_create_from_typespec_full): Use find_generic_param to
8281         avoid evicting some generic instantiations from the typespec
8282         cache.
8283
8284 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
8285
8286         * reflection.c: fixed writing of doubles on ARM FPA.
8287
8288 2005-12-02  Robert Jordan  <robertj@gmx.net>
8289
8290         * icall.c: Fixed EventInfo.ReflectedType (#76829).
8291
8292 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8293
8294         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
8295         least on SUSE 10 they are not the same (on debian, they are just the
8296         same thing).
8297
8298 2005-12-01  Raja R Harinath  <rharinath@novell.com>
8299
8300         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
8301         DeclaringType for VARs and MVARs.
8302         * class.c (set_generic_param_owner): Fix initialization of owner
8303         fields.
8304
8305 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8306
8307         * icall.c: fixed Enum.ToObject() to correctly convert the values.
8308
8309 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8310
8311         * threadpool.c: workaround for a bug that shows up on the Mac:
8312         select()+connect() on a blocking socket is not like it should
8313         be, so we proceed to connect() in that case, wasting the I/O
8314         threadpool thread until connect succeedes. Fixes bug #75436.
8315
8316 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8317
8318         * threadpool.c: fix typo when setting file descriptor states.
8319
8320 2005-11-28  Raja R Harinath  <rharinath@novell.com>
8321
8322         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
8323         * metadata.c (mono_metadata_parse_method_signature_full): Don't
8324         create a temporary signature container.
8325         (mono_metadata_parse_generic_param): Update to changes.
8326         (mono_type_create_from_typespec_full): Update to changes.
8327         * loader.c (method_from_memberref): Don't use a
8328         MonoGenericContainer while parsing a memberref signature.
8329         (method_from_methodspec): Remove dead-store of the 'container'
8330         variable.  It's overwritten before use.
8331
8332         * metadata.c (mono_type_create_from_typespec_full): Make debugging
8333         checks tighter.
8334         (mono_metadata_parse_generic_param): Likewise.
8335         * loader.c (find_method_in_class): Does not need a
8336         MonoGenericContainer.  Use 'mono_method_signature' rather than
8337         'mono_method_signature_full'.
8338         (find_method, mono_get_method_constrained, method_from_memberref):
8339         Update to changes.
8340
8341         * metadata.c (mono_type_create_from_typespec_full): Ensure that
8342         owner-less generic-parameters are never evicted from the typespec
8343         cache.
8344
8345         * loader.c (method_from_memberref): Don't use the current context
8346         when parsing signatures.
8347         (method_from_methodspec, mono_get_method_from_token): Update to changes.
8348
8349         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
8350         side-effects in g_assert.
8351         * loader.c (mono_get_method_from_token): Resolve klass earlier so
8352         that we don't potentially lose information.
8353
8354 2005-11-26  Dick Porter  <dick@ximian.com>
8355
8356         * icall.c:
8357         * threads.c: icalls to implement basic (ie, not named)
8358         System.Threading.Semaphore.
8359
8360 2005-11-24  Dick Porter  <dick@ximian.com>
8361
8362         * process.c
8363         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
8364         Use GetProcessId() if it's available.
8365
8366 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
8367
8368         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
8369
8370 2005-11-23  Raja R Harinath  <rharinath@novell.com>
8371             Ankit Jain  <jankit@novell.com>
8372
8373         * loader.c (mono_get_method_from_token): Initialize 'method' field
8374         of all generic parameters before parsing the signature.  Remove
8375         code that "fixed"-up MVAR references.
8376
8377 2005-11-23  Ankit Jain  <jankit@novell.com>
8378
8379         * metadata.c (mono_metadata_has_generic_params):
8380         (mono_metadata_load_generic_param_constraints):
8381         (mono_metadata_load_generic_params): Move duplicate code ...
8382         (mono_metadata_get_generic_param_row): ... here. Returns the
8383         first row-id in GenericParam table for a given owner (token).
8384         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
8385         prototype.
8386
8387 2005-11-23  Raja R Harinath  <rharinath@novell.com>
8388             Ankit Jain  <jankit@novell.com>
8389
8390         * metadata.c (mono_metadata_class_equal): Pass signature_only when
8391         comparing VARs too.
8392         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
8393         type->data.generic_param only if the type is an MVAR.
8394         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
8395         leak owner-less VARs and MVARs into managed space.
8396
8397 2005-11-21  Martin Baulig  <martin@ximian.com>
8398
8399         * class-internals.h
8400         (MonoMethod): Moved the `generic_container' here from
8401         `MonoMethodNormal' since we now also need it for
8402         `MonoMethodPInvoke';
8403         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
8404         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
8405         an union containing both `MonoMethodNormal' and
8406         `MonoMethodPInvoke'.
8407
8408         * loader.c
8409         (mono_get_method_from_token): Allow implementing generic methods
8410         as interncalls.
8411
8412         * threads.c
8413         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
8414         icall.
8415
8416 2005-11-17  Dick Porter  <dick@ximian.com>
8417
8418         * icall.c: 
8419         * process.h: 
8420         * process.c: Split the Process Start_internal icall into
8421         ShellExecuteEx_internal and CreateProcess_internal, which are
8422         called depending on whether UseShellExecute is true.  Fixes bug
8423         76670.
8424
8425         * appdomain.c (MONO_CORLIB_VERSION): Incremented
8426
8427 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
8428
8429         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
8430         'msize' parameters, use the information in 'mspec' instead.
8431         (emit_object_to_ptr_conv): Ditto.
8432
8433         * marshal.c (emit_struct_conv): Handle explicit layout structs with
8434         fields out of order. Fixes #76733.
8435
8436 2005-11-17  Ankit Jain  <jankit@novell.com>
8437
8438         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
8439
8440 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
8441
8442         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
8443           bug #76575.
8444
8445 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
8446
8447         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
8448         for types with non-auto layout. Fixes #76717.
8449
8450 2005-11-16  Ankit Jain  <jankit@novell.com>
8451
8452         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
8453         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
8454         if generic_context is null.
8455           (mono_metadata_generic_param_equal): param->owner can be null.
8456           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
8457         null.
8458
8459 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
8460
8461         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
8462         the correct value.
8463
8464 2005-11-15  Martin Baulig  <martin@ximian.com>
8465
8466         * object.c (set_value): Use mono_class_from_mono_type() instead of
8467         the hack for generic instances; fixes #76136.
8468
8469 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
8470
8471         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
8472         fields.
8473
8474         * image.c (load_metadata_ptrs): Initialize the new fields.
8475
8476         * reflection.c (create_dynamic_mono_image): Ditto.
8477
8478         * reflection.c (build_compressed_metadata): Use the new fields.
8479
8480         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
8481         icall.
8482
8483         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
8484         icall.
8485         
8486 2005-11-15  Ankit Jain  <jankit@novell.com>
8487             Raja R Harinath  <harinath@gmail.com>
8488
8489         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
8490         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
8491         new per-generic_container cache if the cached MonoType's context matches
8492         the current context.
8493           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
8494         to the expected context.
8495           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
8496
8497 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8498
8499         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
8500         we changed the signature of an icall.
8501         * icall.c: Modify to mono_double_ParseImpl return true/false 
8502         depending on the success, instead of throwing the exception. This will
8503         help us in Double.TryParse methods.
8504         
8505 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
8506
8507         * marshal.c (emit_marshal_object): Throw an exception when
8508         marshalling 'object' instead of crashing. Fixes #76696.
8509
8510 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
8511
8512         * class-internals.h: Add prototype for mono_type_get_full_name ().
8513
8514 2005-11-11  Dick Porter  <dick@ximian.com>
8515
8516         * threads.c (mono_thread_manage): Make sure the main thread has
8517         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
8518
8519 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
8520
8521         * loader.c (mono_loader_set_error_type_load): Log a warning to the
8522         console about the missing type.
8523         (mono_loader_set_error_method_load): Ditto.
8524
8525 2005-11-09  Miguel de Icaza  <miguel@novell.com>
8526
8527         * mono-config.c (mono_get_config_dir): Set the system defaults if
8528         none is specified.
8529
8530         * assembly.c (mono_set_dirs): New API entry point to set the
8531         assembly and the config directory in one call
8532
8533 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
8534
8535         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
8536         the ftnptr was created from a delegate in a domain other than the
8537         current domain. Fixes #75377.
8538
8539         * exception.h exception.c: Add mono_get_exception_not_supported ().
8540
8541 2005-11-08  Martin Baulig  <martin@ximian.com>
8542
8543         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
8544
8545 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
8546
8547         * security-manager.h: Added definitions to deal with strongname key 
8548         pairs bigger (and smaller) than 1024 bits.
8549         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
8550         adjust wrt the public key length being used.
8551
8552 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
8553
8554         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
8555           Windows build (r51396-51397).
8556
8557 2005-11-03  Martin Baulig  <martin@ximian.com>
8558
8559         * class.c (mono_class_setup_vtable_general): Also add generic
8560         methods to the vtable; fixes #76581.
8561
8562 2005-11-01  Miguel de Icaza  <miguel@novell.com>
8563
8564         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
8565         sure that we lookup GetString method from the System.Text.Encoding
8566         class, not the derived class or we get an empty method.
8567
8568         Fixed class #76612.
8569
8570 2005-10-25  Miguel de Icaza  <miguel@novell.com>
8571
8572         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
8573         if it has been previously set (embedders). 
8574
8575         Make mono_set_rootdir available also on Unix.
8576
8577 005-10-24  Robert Jordan  <robertj@gmx.net>
8578
8579         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
8580
8581 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
8582
8583         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
8584         only calls which are made to native code use this flag.
8585
8586         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
8587
8588 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
8589
8590         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
8591         Add support for FieldBuilders.
8592
8593 2005-10-29  Martin Baulig  <martin@ximian.com>
8594
8595         * mono-debug.c
8596         (mono_debug_using_mono_debugger): New public method; returns
8597         whether we're running inside the debugger.
8598
8599 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
8600
8601         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
8602         for Method/Constructor/FieldBuilders.
8603
8604 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
8605
8606         * reflection.c (module_add_cattrs): Save custom attributes for global methods
8607         and fields as well.
8608
8609 2005-10-26  Martin Baulig  <martin@ximian.com>
8610
8611         * mono-debug-debugger.c
8612         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
8613
8614 2005-10-24  Raja R Harinath  <harinath@gmail.com>
8615
8616         * icall.c (base64_to_byte_array): Don't pass an out-of-range
8617         integer to isspace.
8618
8619 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
8620
8621         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
8622         when passing valuetypes byref. Fixes #76502.
8623
8624 2005-10-19  Jackson Harper  <jackson@ximian.com>
8625
8626         * profiler.c: Don't put a . in front of types that are not in a
8627         namespace.
8628
8629 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
8630
8631         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
8632
8633 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
8634
8635         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
8636         #76436.
8637         (mono_marshal_get_ldflda_wrapper): Fix a warning.
8638
8639 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8640
8641         * assembly.c metadata-internals.h icall.c: Define an additional
8642         parameter for mono_assembly_name_parse_full, so we can avoid creating
8643         S.R.AssemblyName.Version when no version info wasn't passed.
8644         
8645 2005-10-09  Miguel de Icaza  <miguel@novell.com>
8646
8647         * class.c (mono_type_get_full_name): Reimplement method that was
8648         removed. 
8649
8650         * image.c: Some docs
8651
8652 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
8653
8654         * profiler.c (output_newobj_profile): Fix printing of Total memory
8655         on x86.
8656
8657 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
8658
8659         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
8660
8661 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
8662
8663         * threads.c: remove debug output.
8664
8665 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
8666
8667         * threads.c (mono_thread_manage): Fix crashes if more than 64
8668         threads need to be aborted. Hopefully fixes #75899.
8669
8670         * assembly.c (mono_stringify_assembly_name): New helper function.
8671
8672         * class.c: Use mono_stringify_assembly_name instead of the similar
8673         static function.
8674
8675         * assembly.h assembly.c: Add support for calling a postload search 
8676         hook if an assembly cannot be loaded.
8677
8678         * appdomain.c: Register new search hooks which call the AssemblyResolve
8679         events in AppDomain. Fixes #75231
8680
8681 2005-10-07  Martin Baulig  <martin@ximian.com>
8682
8683         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
8684         methods without debug info.
8685
8686 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
8687
8688         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
8689         wrappers.
8690
8691 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8692
8693         * file-io.c: now that we return symlinks, use lstat and, when the file
8694         is a symbolic link, stat, to get the file attributes. Also avoid the
8695         conversion to/from utf16/external.
8696
8697 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
8698
8699         * class.c (mono_class_layout_fields): Compute klass->has_references
8700         correctly if an embedded valuetype is not yet initialized. Fixes
8701         #76331.
8702
8703 2005-10-04  Martin Baulig  <martin@ximian.com>
8704
8705         * metadata.c
8706         (mono_metadata_load_generic_param_constraints): New public
8707         function; splitted the constraints loading out from
8708         mono_metadata_load_generic_params().
8709
8710         * class.c (mono_class_create_from_typedef): Call
8711         mono_metadata_load_generic_param_constraints() after setting up
8712         the type and creating our parent; fixes #75329.
8713
8714 2005-10-04  Martin Baulig  <martin@ximian.com>
8715
8716         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
8717         non-dynamic parent classes.
8718
8719 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
8720
8721         * file-io.c : win32 build fix (ETXTBSY seems not found).
8722
8723 2005-10-04  Martin Baulig  <martin@ximian.com>
8724
8725         * reflection.c
8726         (mono_image_get_methodspec_token): Make the cache actually work;
8727         fixes #75974.
8728
8729 2005-10-04  Martin Baulig  <martin@ximian.com>
8730
8731         * class.c (mono_class_name_from_token): Removed the unneccessary
8732         `MonoGenericContext *' argument.
8733
8734 2005-10-04  Martin Baulig  <martin@ximian.com>
8735
8736         * loader.c
8737         (method_from_methodspec): Make the caching work again; fixes the
8738         performance regression from #76262.
8739
8740 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8741
8742         * file-io.c:
8743         * file-io.h:
8744         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
8745         GetFileSystemEntries that performs the same work but without going
8746         into io-layer, locking, etc.
8747
8748 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
8749
8750         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
8751         ThreadState_Stopped as well. Fixes #76047.
8752
8753 2005-09-29  Martin Baulig  <martin@ximian.com>
8754
8755         * class.c
8756         (inflate_generic_context): If the new context has a `gmethod', set
8757         its `container' that that gmethod's `container'.
8758
8759         * metadata.c
8760         (mono_metadata_parse_generic_param): Simplify things;
8761         `generic_container = generic_context->container;' is just fine.
8762
8763         * loader.c (method_from_methodspec): Code cleanups.
8764
8765 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
8766
8767         * decimal.c: fix warning (and let gcc generate correct
8768         code on ARM with optimizations).
8769
8770 2005-09-28  Martin Baulig  <martin@ximian.com>
8771
8772         * loader.c
8773         (method_from_memberref): Added `MonoGenericContext *class_context'
8774         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
8775         (method_from_methodspec): If we're a memberref, use the enclosing
8776         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
8777
8778 2005-09-28  Martin Baulig  <martin@ximian.com>
8779
8780         * object.c (mono_runtime_invoke_array): Added support for
8781         MONO_TYPE_GENERICINST; fixes #75917.
8782
8783 2005-09-27  Martin Baulig  <martin@ximian.com>
8784
8785         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
8786         `k->byval_arg.type' to determine the actual type.
8787
8788         * loader.c (method_from_methodspec): Removed some hacks.
8789
8790 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
8791
8792         * class-internals.h (mono_field_is_deleted): Do the test for
8793         rtspecialname before we check the actual name of the field. This
8794         prevents us from dereferencing a pointer into the string table,
8795         saving us from accessing a few pages
8796
8797         * *.c: Replace the use of {Enter,Leave}CriticalSection with
8798         macros. This will allow a deadlock debugger to easily be plugged
8799         in.
8800
8801 2005-09-27  Martin Baulig  <martin@ximian.com>
8802
8803         * loader.c (method_from_methodspec): Create a "signature"
8804         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
8805
8806 2005-09-27  Martin Baulig  <martin@ximian.com>
8807
8808         * class.c
8809         (inflate_generic_class): Correctly set the new context's
8810         container.
8811
8812         * loader.c
8813         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
8814         instead of a `MonoGenericContext *'.
8815         (mono_method_signature_full): Take a `MonoGenericContainer *'
8816         instead of a `MonoGenericContext *'.
8817
8818         * metadata.c
8819         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
8820         instead of a `MonoGenericContext *'.
8821         (mono_metadata_parse_method_signature_full): Likewise.
8822
8823 2005-09-26  Martin Baulig  <martin@ximian.com>
8824
8825         * class.c
8826         (mono_class_from_generic_parameter): Set `klass->generic_container'
8827         (mono_class_from_generic_parameter): Likewise.
8828         (mono_bounded_array_class_get): We inherit the generic container
8829         from the element class.
8830
8831         * loader.c
8832         (find_method, find_method_in_class): Take a `MonoGenericContext *'
8833         argument rather than computing it here.
8834         (method_from_memberref): Correctly set the generic context before
8835         parsing the signature.  Fixes #75681.
8836
8837 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
8838
8839         * object.c (mono_class_has_special_static_fields): Fix warnings.
8840
8841 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8842
8843         * assembly.c: Add parse_public_key function, to
8844         par the public keys. Also added mono_assembly_name_parse_full,
8845         to define it the parsed key should be freed or not.
8846         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
8847         to parse a long format assembly name.
8848         * metadata-internals.h: Keep mono_assembly_name_parse_full as
8849         private, since calling it to preserve the key requires
8850         freeing it manually.
8851         
8852 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
8853
8854         * locales.c : removed HAVE_ICU part.
8855
8856 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
8857
8858         * object.c (mono_class_create_runtime_vtable): Avoid calling 
8859         field_is_special_static if the klass has no special static fields.
8860
8861         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
8862         (MonoCachedClassInfo): Likewise.
8863
8864         * object.c (mono_class_has_special_static_fields): New helper function.
8865
8866 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8867
8868         * class.c (mono_class_create_from_typedef): Don't call 
8869         interfaces_from_typedef_full for enums.
8870         (mono_class_create_from_typedef): Compute the base types of enums directly
8871         without calling mono_class_setup_fields ().
8872         (mono_class_find_enum_basetype): New helper function.
8873
8874         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
8875         one place inside the string heap.
8876         
8877 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
8878
8879         * class.c: locking fixes, code cleanups, some docs added.
8880         Allocate some data structures in the image mempool.
8881
8882 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8883
8884         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8885         the example code.
8886         
8887 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
8888
8889         * class-internals.h, class.c, reflection.c: reduce memory taken by
8890         MonoClass.
8891
8892 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
8893
8894         * metadata.c, metadata.h, loader.h: documentation updates, code and
8895         API cleanups.
8896
8897 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8898
8899         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8900         the example code.
8901
8902         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
8903         page faults caused by the runtime while reading metadata.
8904
8905 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8906
8907         * socket-io.c: the field names were changed 3 months ago and no one
8908         realized until bug #76077 got filed!
8909
8910 2005-09-20  Martin Baulig  <martin@ximian.com>
8911
8912         * icall.c (assembly_icalls): Removed some unused debugger icalls.
8913
8914 2005-09-20  Martin Baulig  <martin@ximian.com>
8915
8916         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
8917         write the rank into the class entry.
8918
8919 2005-09-20  Martin Baulig  <martin@ximian.com>
8920
8921         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
8922
8923 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
8924
8925         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8926
8927         * icall.c (custom_attrs_defined_internal): New icall.
8928
8929         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
8930         function.
8931         (mono_custom_attrs_construct_by_type): New helper function.
8932
8933 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
8934
8935         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
8936         terminate the resulting string. Fixes #76123.
8937
8938 2005-09-16  Martin Baulig  <martin@ximian.com>
8939
8940         * mono-debug.c
8941         (mono_debug_add_method): Ignore inflated methods for the moment.
8942
8943 2005-09-14  Martin Baulig  <martin@ximian.com>
8944
8945         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
8946
8947 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
8948
8949         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
8950         return a success/failure indication.
8951         (mono_metadata_interfaces_from_typedef_full): Ditto.
8952         (get_constraints): Ditto.
8953
8954 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
8955
8956         * marshal.c (emit_marshal_array): Fix handling of null arrays.
8957         
8958         * marshal.c (emit_marshal_array): Add support for returning string
8959         arrays from delegates. Fixes #76063.
8960
8961         * marshal.c: Use the emit_ldloc/stloc macros where possible.
8962
8963 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
8964
8965         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
8966         icall.
8967
8968 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
8969
8970         * reflection.c icall.c: Fix after mono_get_exception_type_load
8971         signature change.
8972
8973         * assembly.c (mono_assembly_get_assemblyref): New helper function.
8974         (mono_assembly_load_reference): Use the new helper.
8975
8976         * class-internals.h (MonoLoaderError): New structure containing 
8977         information about type loading errors.
8978
8979         * class-internals.h loader.c: Add APIs to store per-thread loader
8980         error information.
8981
8982         * loader.c class.c: Set the loader error if needed.
8983
8984         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
8985
8986 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
8987
8988         * decimal.c: fixed to handle the broken ARM fp format.
8989
8990 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
8991
8992         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
8993         broken.
8994
8995 2005-09-06  Martin Baulig  <martin@ximian.com>
8996
8997         * domain.c (supported_runtimes): Added v2.0.50727.
8998
8999 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
9000
9001         * culture-info.h: reduce the size of some structures.
9002
9003 2005-09-05  Martin Baulig  <martin@ximian.com>
9004
9005         Reflect latest API changes in the August CTP.
9006
9007         * icall.c
9008         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
9009         ("MonoType.HasGenericArguments"): Removed.
9010         ("MonoMethod.BindGenericParameters"): Renamed to
9011         "MakeGenericMethod".
9012         ("MethodBuilder.BindGenericParameters"): Renamed to
9013         "MakeGenericMethod".    
9014
9015 2005-09-05  Martin Baulig  <martin@ximian.com>
9016
9017         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
9018
9019 2005-09-05  Martin Baulig  <martin@ximian.com>
9020
9021         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9022
9023         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
9024         generic_container is non-NULL.
9025
9026 2005-09-05  Martin Baulig  <martin@ximian.com>
9027
9028         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9029
9030         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
9031
9032 2005-08-29  Michal Moskal  <malekith@nemerle.org>
9033
9034         * reflection.c (encode_locals,
9035         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
9036         for large generic types.
9037
9038 2005-09-05  Martin Baulig  <martin@ximian.com>
9039
9040         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9041
9042         * class.c (mono_dup_array_type): New public method.
9043         (mono_metadata_signature_deep_dup): New public method.
9044         (dup_type): Correctly duplicate array and function types.
9045
9046 2005-09-05  Martin Baulig  <martin@ximian.com>
9047
9048         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9049
9050         * reflection.c (get_default_param_value_blobs): Handle generic types
9051         and generic methods.
9052
9053 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
9054
9055         * class.c: Fixed error reporting (method/class were inversed) for 
9056         inheritance demands.
9057         * security-manager.c|h: Added the AppDomain when calling the managed
9058         System.Security.SecurityManager.InheritanceDemand method.
9059
9060 2005-09-01  Raja R Harinath  <rharinath@novell.com>
9061
9062         * reflection.c (encode_marshal_blob): 'marshaltype' and
9063         'marshaltyperef' are alternate sources for the custom marshaler
9064         name.
9065
9066 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
9067
9068         * class.c: fix creation of array classes with rank == 1
9069         (patch by Ankit Jain <jankit@novell.com>).
9070
9071 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
9072
9073         * object.c: fix check for creating the bound data for arrays vs
9074         szarrays.
9075
9076 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9077
9078         * object.c: configuration file name is now based on the executable name,
9079         not the image name. Fixes bug #75931.
9080
9081 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
9082
9083         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
9084         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
9085
9086 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
9087
9088         * rand.c: Use wincrypt.h instead of WinCrypt.h.
9089
9090 2005-08-24  Ankit Jain  <jankit@novell.com>
9091             Raja R Harinath  <rharinath@novell.com>
9092
9093         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
9094           called by it recursively.
9095           (mono_class_init): Remove special case in pending_init handling, since it's
9096           superseded by the fix to mono_class_from_typeref.
9097
9098 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
9099
9100         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
9101         BROKEN_THREAD_START stuff.
9102
9103 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
9104
9105         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
9106         trampoline.
9107
9108         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
9109         
9110         * object.c (mono_delegate_ctor): Replace the original function address with
9111         a delegate trampoline.
9112
9113 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
9114
9115         * icall.c: add boolean argument to base64_to_byte_array and 
9116         InternalFromBase64String to control whether a whitespace-only string
9117         is allowed (or should casue a FormatException to be thrown). We need
9118         this as the behavior has changed between MS.NET 1.x and 2.0, and we
9119         to match the MS behaviour in both profiles.
9120         * appdomain.c: Bump corlib version.
9121
9122 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9123
9124         This patch implements a big portion of publisher policy
9125         support, used to bind assembly versions and redirect
9126         one assembly from version A to version B.
9127
9128         * assembly.c:
9129         New GSList loaded_assembly_bindings, for storing the cached
9130         assembly bindings.
9131         (assembly_binding_maps_name): New static function for checking if a 
9132         assembly binding information maps an assembly name.
9133         (mono_assembly_binding_info_free): New function for freeing
9134         assembly binding information resources.
9135         (get_publisher_policy_info): New static function for retrieving 
9136         assembly binding information from a MonoImage.
9137         (compare_versions): New static function for comparing an assembly
9138         binding information data and the version of an assembly name.
9139         (check_policy_versions): New static function for checking if an
9140         assembly binding info mapping an assembly name is valid for it.
9141         (mono_assembly_load_publisher_policy): New static function for
9142         loading the 'policy.major.minor.MyAssembly' image for an assembly
9143         with an assembly name 'aname'.
9144         (mono_assembly_bind_version): New static function for updating
9145         assembly redirection.
9146         (mono_assembly_apply_binding): New static function for applying
9147         assembly binding.
9148         (search_binding_loaded): New static function for searching 
9149         loaded assembly binding infos in the cache domain.
9150         (mono_assembly_load_full): Don't apply assembly binding for
9151         reflection only assemblies.
9152
9153         * metadata-internals.h: Add MonoAssemblyBindingInfo,
9154         which contains information about assembly binding. Also
9155         declare signature for mono_config_parse_publisher_policy ()
9156         function, used to retrieve pub policy info.
9157         
9158         * mono-config.c:
9159         (publisher_policy_start): New static function used to parse publisher 
9160         policy config files.
9161         (publisher_policy_parser): New static MonoParseHandler containing 
9162         the functions used when parsing config files.
9163         (mono_config_parse_publisher_policy): New function for parsing
9164         publisher policy files.
9165         
9166 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
9167
9168         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
9169
9170         * marshal.c (mono_delegate_free_ftnptr): Ditto.
9171
9172         * object.c (mono_get_addr_from_ftnptr): New helper function.
9173
9174         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
9175
9176         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9177
9178 2005-08-19  Dick Porter  <dick@ximian.com>
9179
9180         * threads.c, threads.h, appdomain.c, appdomain.h,
9181         profiler-private.h, monitor.c, object.c, object-internals.h,
9182         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
9183         store the thread ID, so it can hold a 64 bit value if needed.
9184
9185 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
9186
9187         * reflection.c (mono_reflection_create_dynamic_method): Store the
9188         handle class into the method references as well so ldtoken works in
9189         dynamic methods.
9190
9191         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
9192         types.
9193
9194 2005-08-19  Ankit Jain <jankit@novell.com>
9195
9196         Fix #75847.
9197         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
9198           here rather than using the method signature of a arbitrary function
9199           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
9200           two arguments.
9201           Hack done with Harinath.
9202
9203 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9204
9205         * threadpool.c: disable printing stack traces when we get a exception
9206         in a threadpool thread. I need to do more testing to figure out which
9207         cases actually print this. Fixes bug #75828.
9208
9209 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9210
9211         * icall.c: there might be ignored whitespace after the last '='. This
9212         fixes length computation and bug #75840.
9213
9214 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
9215
9216         * assembly.c (mono_assembly_load_full): Consider .exe extension as
9217         well. Fixes #75809.
9218
9219         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
9220         #75784.
9221         
9222         * reflection.c (create_custom_attr_data): Ditto.
9223
9224 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
9225
9226         * locales.c, culture-info.h : removed RegionLCIDMap.
9227         * culture-info-tables.h : regenerated.
9228
9229 2005-08-16  Martin Baulig  <martin@ximian.com>
9230
9231         * class.c (mono_type_get_name_recurse): Small fix.
9232
9233 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
9234
9235         * locales.c : indentation fixie.
9236
9237 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
9238
9239         * object-internals.h,
9240           locales.h,
9241           locales.c,
9242           culture-info.h,
9243           icall.c : added RegionInfo table support.
9244         * culture-info-table.h : regenerated for region support.
9245
9246 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
9247
9248         * reflection.c (resolve_object): handle all kinds of MonoMethod
9249         including generic ones
9250
9251 2005-08-12  Ankit Jain <jankit@novell.com>
9252
9253         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
9254           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
9255
9256 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
9257
9258         * process.c: Don't close a thread handle when it's NULL. This is a
9259         workaround for bug #75733.
9260
9261 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
9262
9263         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
9264
9265 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
9266
9267         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
9268
9269 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9270
9271         * threadpool.c: if a work item in the thread pool has a callback that
9272         catches a exception, don't propagate it after invoking the callback.
9273         Fixes bug #75336.
9274
9275 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
9276
9277         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
9278
9279         * class-internals.h (MonoCachedClassInfo): Add some new fields.
9280
9281         * class.c (mono_class_init): Load field info lazily in the AOT case.    
9282
9283         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
9284
9285 2005-08-03  Ankit Jain  <jankit@novell.com>
9286
9287         Fix #75683.
9288         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
9289           PInvoke calling convention is 0.
9290
9291 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
9292
9293         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
9294         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
9295
9296 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
9297
9298         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
9299         to handle threads not started by the GC (patch by Michael Meeks
9300         <michael.meeks@novell.com>).
9301
9302 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
9303
9304         * reflection.c: Make buffer used in emitting types larger for some
9305         big generic types (patch by Michal Moskal).
9306
9307 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
9308
9309         * mono-debug.c: Fix some (not all) alignment problems.
9310
9311 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9312
9313         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
9314         Invoke mono_image_load_from_data_full passing the refonly
9315         parameter.
9316
9317         * assembly.c
9318         (mono_assembly_open_from_bundle): Add the refonly argument, 
9319         in order to pass it to other methods it calls to.
9320         (do_mono_assembly_open): Add the refonly argument, in order 
9321         to pass it to other methods it calls to.
9322         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
9323         the refonly parameter to it.
9324
9325         * image.c: Add loaded_images_refonly_hash and
9326         loaded_images_refonly_guid_hash to cache the reflection
9327         only loaded images.
9328         (mono_images_init): Initialize the hash tables used for
9329         caching the reflection only images.
9330         (load_modules): Invoke mono_image_open_full passing the refonly
9331         parameter to load the modules the correct way.
9332         (build_guid_table): Add the refonly argument, to re-build the 
9333         correct hash table.
9334         (do_mono_image_open): Added the refonly argument, in order to
9335         define it for the loaded image.
9336         (mono_image_loaded_full): New function, which receives an
9337         additional parameter to look for the image in the refonly or
9338         non-refonly section.
9339         (mono_image_loaded): Updated, using mono_image_loaded_full.
9340         (mono_image_loaded_by_guid_full): The same case that happens
9341         with mono_image_loaded_full.
9342         (mono_image_loaded_by_guid): Likewise.
9343         (register_image): Use the ref_only variable inside MonoImage
9344         to decide in which hash table store the current image.
9345         (mono_image_open_from_data_full): Rename
9346         mono_image_open_from_data to mono_image_open_from_data_full,
9347         adding the refonly argument, to define the ref_only variable 
9348         inside MonoImage.
9349         (mono_image_open_from_data): Return 
9350         mono_image_open_from_data_full.
9351         (mono_image_open_full): Rename mono_image_open to
9352         mono_image_open_full, receiving the new refonly argument,
9353         to pass it to inner methods.
9354         (mono_pe_file_open): Update this function, to open
9355         a MonoImage as a non-refonly image.
9356         (mono_image_close): Use the refonly variable inside
9357         MonoImage to remove the image from the correct caches.
9358
9359         * image.h: Add the signatures of mono_image_open_full,
9360         mono_image_open_from_data_full, mono_image_loaded_full,
9361         mono_image_loaded_by_guid_full.
9362
9363         * metadata-internals.h: Add the ref_only field to 
9364         MonoImage.
9365         
9366 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9367
9368         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
9369         Fix the last behavior, which used to load the assemblies and
9370         extract MonoReflectionAssemblyName information, instead of
9371         extract it from the metadata tables. Needed for Reflection
9372         Only assemblies.
9373         
9374 2005-07-29  Martin Baulig  <martin@ximian.com>
9375
9376         * mono-debug-debugger.c
9377         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
9378         not initialized.
9379
9380         * mono-debug.c
9381         (mono_debug_address_from_il_offset): Check whether we have
9382         debugging support before attempting to take the lock.
9383         (mono_debug_source_location_from_address): Likewise.
9384         (mono_debug_source_location_from_il_offset): Likewise.
9385         (mono_debug_il_offset_from_address): Likewise.
9386         (mono_debug_address_from_il_offset): Likewise.
9387
9388 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
9389
9390         * class.c (mono_class_from_name_case): Add support for dynamic images.
9391         Fixes #75650.
9392
9393         * object.c (mono_class_compute_gc_descriptor): Add a workaround
9394         for #75479.
9395
9396 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
9397         
9398         * reflection.c (mono_method_get_object): Fix warning.
9399
9400 2005-07-28  Martin Baulig  <martin@ximian.com>
9401
9402         * mono-debug.c
9403         (mono_debug_add_wrapper): Also write the wrapper type.
9404
9405 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
9406
9407         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
9408         
9409         * class.c (mono_class_init): Avoid reading nested classes if the AOT
9410         data indicates the class has none.
9411
9412 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
9413
9414         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
9415         loader lock with the debugger lock. Prevents deadlocks for beagle.
9416
9417         Beagle can now run on an smp box for a weekend without any
9418         issues. Woohoo!
9419
9420 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
9421
9422         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
9423         in a module. Fixes #75629.
9424
9425 2005-07-26  Martin Baulig  <martin@ximian.com>
9426
9427         * mono-debug.c (mono_debug_add_wrapper): New static method.
9428         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
9429         interncall or a wrapper.
9430
9431         * mono-debug.h (MonoDebugWrapperData): New public typedef.
9432         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
9433         (MONO_DEBUGGER_VERSION): Bump to 51.
9434
9435         * mono-debug-debugger.c
9436         (mono_debugger_add_type): Removed this empty function.
9437         (mono_debugger_add_method): Likewise.
9438
9439 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
9440
9441         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
9442         before accessing method->slot.
9443
9444 2005-07-21  Jb Evain  <jbevain@gmail.com>
9445
9446         * reflection.c (method_encode_clauses/class): Handle filters clauses.
9447         Fixes #75010.
9448
9449 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
9450
9451         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
9452         #75587.
9453
9454 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
9455
9456         * image.h image.c: Add mono_image_get_guid () API function.
9457
9458 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
9459
9460         There were issues when multiple threads tried to load
9461         assemblies. A deadlock was created between assemblies_mutex and
9462         mono_domain_assemblies_lock. This fixes the issue by making the
9463         assembly ref counting be lock free. See bug 75586.
9464         
9465         * image.c (mono_image_close): The add ref function here was using
9466         Interlocked operations while the unref was using a mutex and a
9467         --. I don't think this was ever a bug that would be exposed in a
9468         non-pendantic way (ie, by an embedder doing a ref on one thread
9469         and an unref on another), but for the sake of correctness, this is
9470         now Interlocked.
9471
9472         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
9473         (mono_assembly_load_reference): Call mono_assembly_addref rather
9474         than touching the refcount ourselves.
9475         (mono_assembly_close): Use InterlockedDecrement to unref the
9476         assembly. Don't acquire the lock unless it is actually needed.
9477
9478 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
9479
9480         * class.c (mono_class_layout_fields): Fix calculation of has_references
9481         for generic types.
9482
9483 2005-07-12  Martin Baulig  <martin@ximian.com>
9484
9485         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9486
9487         * metadata.c
9488         (mono_type_hash): Provide better hashing for generic instances.
9489         (mono_generic_inst_hash): Improve hashing.
9490         (mono_generic_class_hash): Likewise.
9491
9492         * reflection.c (mymono_metadata_type_hash): Improve hashing for
9493         generic instances.
9494
9495 2005-07-12  Martin Baulig  <martin@ximian.com>
9496
9497         * reflection.c (mono_reflection_create_runtime_class): Remove the
9498         hack for generic type definitions and non-`Run' assemblies.
9499         (mono_reflection_bind_generic_parameters): Also use
9500         `klass->wastypebuilder' to check for TypeBuilders.
9501
9502 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
9503
9504         * class.c (mono_class_layout_fields): Fix calculation of has_references
9505         for generic types.
9506
9507         * class.c (inflate_generic_class): Fix a leak.
9508         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
9509         for generic types.
9510
9511 2005-07-11  Martin Baulig  <martin@ximian.com>
9512
9513         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
9514         on error.
9515
9516 2005-07-11  Martin Baulig  <martin@ximian.com>
9517
9518         * loader.c (find_method): Also lookup in
9519         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
9520
9521 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9522
9523         * appdomain.c (mono_domain_unload): Don't free the error message
9524         before passing it to mono_get_exception_...
9525
9526         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
9527         
9528 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
9529
9530         * threads.c: try to better guess an available RT signal (bug #75387).
9531
9532 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9533
9534         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
9535         and CACHE_OBJECT.
9536
9537 2005-07-07  Martin Baulig  <martin@ximian.com>
9538
9539         * class.c (mono_type_get_name_full): Return NULL for
9540         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
9541         fixes #75408.
9542
9543 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9544
9545         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
9546         exit the appdomain as well being aborted.
9547
9548         * threadpool.c: Create all threadpool threads inside the root appdomain, and
9549         change back to the root domain after calling managed code. This enables
9550         appdomains using threadpools to be unloaded.
9551
9552 2005-07-07  Martin Baulig  <martin@ximian.com>
9553
9554         * class-internals.h
9555         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
9556         into `MonoDynamicGenericClass' since we only need it for dynamic
9557         types.
9558
9559         * reflection.c (mono_class_bind_generic_parameters): We don't need
9560         to compute the `parent' here.
9561
9562 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
9563
9564         * culture-info-table.h : regenerated.
9565
9566 2005-07-06  Martin Baulig  <martin@ximian.com>
9567
9568         * icall.c
9569         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
9570
9571         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
9572
9573 2005-07-06  Martin Baulig  <martin@ximian.com>
9574
9575         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
9576         we're doing a signature-only comparision; fixes #74945.
9577
9578 2005-07-06  Martin Baulig  <martin@ximian.com>
9579
9580         * class-internals.h (MonoGenericClass): Moved some things out into
9581         a new `MonoInflatedGenericClass' type.  
9582         (MonoInflatedGenericClass): New type; the `klass' of a
9583         `MonoGenericClass' is now computed lazyly in
9584         mono_get_inflated_generic_class().      
9585
9586         * class.c (mono_get_inflated_generic_class): New public function.
9587         (mono_class_inflate_generic_method): Removed the unused
9588         `MonoClass *' argument.
9589         (setup_generic_vtable): Don't call mono_get_inflated_method() on
9590         all the methods.
9591         (mono_class_create_generic): Make this static and merge it with
9592         mono_class_create_generic_2(); we're now called automatically from
9593         mono_get_inflated_generic_class().
9594
9595         * loader.c (mono_method_signature): Call
9596         mono_get_inflated_method() here.
9597
9598 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
9599
9600         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
9601         type of fields with RVA.
9602
9603         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
9604         for this pseudo class.
9605         (my_mono_class_from_generic_parameter): Likewise.
9606         (mono_class_init): Allow interfaces to have cctors.
9607
9608 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
9609
9610         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
9611         lazily for AOT methods.
9612
9613 2005-07-05  Martin Baulig  <martin@ximian.com>
9614
9615         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
9616         returns FALSE for a successful match, not TRUE.
9617
9618 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
9619
9620         * loader.c (mono_method_get_index): Optimize this a bit.
9621
9622 2005-07-04  Martin Baulig  <martin@ximian.com>
9623
9624         * class.c
9625         (class_compute_field_layout): Move the check for generic type
9626         definitions into mono_class_layout_fields().  Fixes #74684.
9627         (mono_class_from_generic_parameter): Correctly compute
9628         `klass->parent'; fixes #75457.
9629
9630         * reflection.c (register_assembly, register_module): Make sure
9631         `domain->rejobject_hash' is already created.
9632
9633 2005-07-02  Martin Baulig  <martin@ximian.com>
9634
9635         * class-internals.h
9636         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
9637         `MonoDynamicGenericClass'.      
9638
9639 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
9640
9641         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
9642         returned by a field getter is null, since null is a valid value.
9643
9644 2005-07-01  Martin Baulig  <martin@ximian.com>
9645
9646         * reflection.c (mono_reflection_generic_class_initialize): Update
9647         the `dgclass->fields [i].parent' to the correct class.
9648         (mono_image_get_fieldref_token): Use the declaring type, not the
9649         reflected type.
9650
9651 2005-07-01  Martin Baulig  <martin@ximian.com>
9652
9653         * loader.c (find_method): Also look in the interfaces; fixes #75429.
9654
9655 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
9656
9657         * threads.c (thread_cleanup): assert that thread != NULL
9658         (wait_for_tids_or_state_change): We were using the wrong variable
9659         when accessing wait->threads. `i' was always out of the bounds of
9660         the array.
9661
9662 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9663
9664         * loader.c: map user32 and kernel32 to libMonoSupportW
9665
9666 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
9667
9668         * appdomain.c (unload_thread_main): Mark this as WINAPI.
9669
9670 2005-06-28  Martin Baulig  <martin@ximian.com>
9671
9672         * loader.c (method_from_methodspec): Fix #75334.
9673
9674 2005-06-28  Martin Baulig  <martin@ximian.com>
9675
9676         Fix #74953 - Arrays now implement the generic IList<T> interface
9677         on the 2.0 platform.
9678
9679         * class-internals.h (MonoDefaults): Added `generic_array_class'.
9680
9681         * reflection.c (mono_class_bind_generic_parameters): New public
9682         function; similar to mono_reflection_bind_generic_parameters(),
9683         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
9684
9685         * domain.c (mono_init_internal): Try to initialize.
9686         `mono_defaults.generic_array_class' here; this'll only succeed if
9687         we're using the 2.0 corlib.
9688
9689         * icall.c
9690         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
9691         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
9692         (mono_lookup_internal_call): Added support for nested classes.
9693
9694         * loader.c
9695         (mono_get_method_from_token): Set `result->signature->pinvoke' if
9696         we're an interncall and have generic arguments.
9697
9698         * class.c
9699         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
9700         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
9701         instance of System.Array.InternalArray<T> for arrays, so they
9702         implement the generic IList<T> interface.
9703
9704 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
9705
9706         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
9707         (chastamar@yahoo.com). Fixes #75374.    
9708
9709 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
9710
9711         * culture-info-table.h: regenerated.
9712
9713 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9714
9715         * icall.c: handle spaces correctly for base64 strings.
9716
9717 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
9718
9719         * *.c: Kill some warnings.
9720
9721 2005-06-23  Duncan Mak  <duncan@novell.com>
9722
9723         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
9724         that this builds on Solaris 10 (x86).
9725
9726 2005-06-23  Martin Baulig  <martin@ximian.com>
9727
9728         * class.c
9729         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
9730         generic type definitions.
9731
9732 2005-06-23  Martin Baulig  <martin@ximian.com>
9733
9734         Fix #75331.
9735
9736         * metadata.c (mono_class_get_overrides): Renamed to
9737         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
9738         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
9739         pass it to mono_get_method_full().
9740
9741 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
9742
9743         * reflection.c (mono_reflection_create_runtime_class): take the
9744         mono_domain_lock in this method. Prevents deadlocks
9745
9746 2005-06-22  Martin Baulig  <martin@ximian.com>
9747
9748         * loader.c (method_from_methodspec): Fix #75330.
9749
9750 2005-06-22  Martin Baulig  <martin@ximian.com>
9751
9752         * reflection.c (type_get_qualified_name): Use
9753         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
9754         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
9755         argument; use it if we don't have an assembly name.
9756
9757 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
9758
9759         * object.c: In mono_message_init, set "copy out" flag for in
9760         parameters with the [Out] flag.
9761
9762 2005-06-21  Martin Baulig  <martin@ximian.com>
9763
9764         * class.c
9765         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
9766         and MONO_TYPE_PTR.
9767
9768 2005-06-21  Martin Baulig  <martin@ximian.com>
9769
9770         * class.c (mono_class_init): Don't initialize `class->fields' for
9771         generic instances since they're initialized again in
9772         compute_field_layout(). 
9773         (compute_field_layout): Set the field's `generic_info' here; fix
9774         #75320. 
9775
9776 2005-06-21  Martin Baulig  <martin@ximian.com>
9777
9778         * class-internals.h
9779         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
9780
9781         * metadata.c (mono_metadata_generic_method_equal): Also
9782         distinguish the `generic_class'; fixes #75334.
9783
9784 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9785
9786         * domain.c:
9787         * appdomain.c:
9788         * domain-internals.h:
9789         * reflection.c: 'domain_assemblies' field is now protected by its own
9790         lock. Don't call into managed code to run the AssemblyLoad event if we
9791         now there are no registered delegates for it.
9792
9793 2005-06-20  Martin Baulig  <martin@ximian.com>
9794
9795         * class.c (mono_class_is_assignable_from): Use a custom version of
9796         mono_class_has_parent() to make things work for generic instances;
9797         fix #75300.
9798
9799 2005-06-20  Martin Baulig  <martin@ximian.com>
9800
9801         * loader.c (method_from_methodspec): Apply a patch from
9802         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
9803
9804 2005-06-20  Martin Baulig  <martin@ximian.com>
9805
9806         * class.c (mono_class_init): Reverted Zoltan's last change; it
9807         breaks generics.
9808
9809 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
9810
9811         * threads.c (wait_for_tids_or_state_change): Add missing locking.
9812
9813 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9814
9815         * socket-io.c: fix the index in the socket array for writable/error
9816         sockets. Fixes bug #75306.
9817
9818 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
9819
9820         * class.c (mono_class_init): Allow interfaces to have static ctors.
9821
9822 2005-06-17  Martin Baulig  <martin@ximian.com>
9823
9824         * loader.c (method_from_methodspec): Use `context->container' when
9825         parsing the `gmethod->inst'.
9826
9827 2005-06-17  Martin Baulig  <martin@ximian.com>
9828
9829         * class.c (mono_type_get_name_recurse): Don't add the assembly
9830         name for type arguments.
9831
9832 2005-06-15  Martin Baulig  <martin@ximian.com>
9833
9834         * reflection.c (mono_image_get_inflated_method_token): Encode
9835         correct klass; fixes #75260.
9836
9837 2005-06-13 Michal Moskal <malekith@nemerle.org>
9838
9839         * icall.c: Make GetCorrespondingMethod/Constructor take
9840         MonoReflectionMethod method not MonoMethod. Removed
9841         MonoType.GetCorrespondingField, and make
9842         MonoGenericType.GetCorrespondingField take name not
9843         MonoClassField.
9844
9845 2005-06-13  Michal Moskal <malekith@nemerle.org>
9846
9847         * reflection.c (field_encode_signature, encode_locals):
9848          Make sizes of buffers for types larger (for big generic types).
9849          (create_generic_typespec,
9850          mono_reflection_sighelper_get_signature_local,
9851          mono_reflection_sighelper_get_signature_field):
9852          Add asserts for too small buffers.
9853
9854 2005-06-15  Martin Baulig  <martin@ximian.com>
9855
9856         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
9857         if our parent is not a dynamic type.
9858
9859 2005-06-15  Martin Baulig  <martin@ximian.com>
9860
9861         * class-internals.h (MonoTypeNameFormat): New enum.
9862
9863         * class.c
9864         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
9865         (mono_type_get_full_name): Removed.
9866         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
9867         argument instead of the boolean's.
9868
9869         * icall.c (ves_icall_System_MonoType_getFullName):
9870         Added `gboolean assembly_qualified'.    
9871
9872         * reflection.h
9873         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
9874
9875         * reflection.c (mono_reflection_parse_type): Parse the new type
9876         name format.
9877
9878 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9879
9880         * icall.c: no need to convert from utf16 to utf8 and then back again
9881         after the call to GetLogicalDrives.
9882
9883 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9884
9885         * icall.c: frombase64. Fix problems exposed by new tests.
9886
9887 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9888
9889         * icall.c: added internal calls for converting char [] and strings in
9890         base64 into byte [].
9891
9892 2005-06-10  Martin Baulig  <martin@ximian.com>
9893
9894         * class.c (mono_class_create_generic_2): Read the nested classes
9895         from the metadata rather than from `gklass->nested_classes' since
9896         `gklass' might not be initialized yet.
9897
9898 2005-06-09  Duncan Mak  <duncan@novell.com>
9899
9900         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
9901         all public headers. Fixes #74919.
9902
9903 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
9904
9905         * domain.c: The key for proxy_vtable_hash is now a pointer
9906         array. Added new GHashFunc and GCompareFunc functions for this.
9907
9908         * class.h: The list of interfaces in MonoRemoteClass is known in
9909         advance and can't grow (we create a new MonoRemoteClass if needed),
9910         so now the interface array can be allocated together with
9911         MonoRemoteClass.
9912         
9913         * object.c: Added a new method create_remote_class_key.
9914         Fixed mono_remote_class so it does not depend on
9915         mono_upgrade_remote_class.
9916         Removed extend_interface_array.
9917         Added new method clone_remote_class(), which makes a copy of a remote
9918         class and adds a new interface or class to it.
9919         mono_upgrade_remote_class() now creates a new remote class (or gets
9920         it from the cache) if an vtable upgrade is needed. In this way
9921         we make sure that other objects sharing the same remote class
9922         don't get the new vtable with unwanted interfaces.
9923         
9924         * object-internals.h:
9925         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
9926         
9927         * marshal.c: Track changes in mono_upgrade_remote_class().
9928
9929 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
9930         * icall.c: Add runtime methods for obtaining members of inflated
9931         class, which were created from supplied non-inflated members. It
9932         is used in internal Get{Method,Constructor,Field} methods in
9933         System.Type
9934
9935 2005-06-09  Martin Baulig  <martin@ximian.com>
9936
9937         * reflection.c
9938         (mono_reflection_bind_generic_method_parameters): Fix #75169.
9939
9940 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9941         * reflection.c (mono_image_basic_init): Define
9942         Version in MonoDynamicAssembly. 
9943         
9944 2005-06-08  Martin Baulig  <martin@ximian.com>
9945
9946         Fix #75136.
9947
9948         * loader.c
9949         (mono_method_signature_full): New public method; takes a
9950         `MonoGenericContext *'.
9951         (find_method): Use mono_method_signature_full() and pass the
9952         klass'es context to it.
9953
9954         * class.c (mono_class_is_inflated_method): Use
9955         mono_method_signature_full() and pass the context to it.
9956
9957 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
9958
9959         * object.c: add proper locking in mono_remote_class_vtable(),
9960         fixes possible memory corruption.
9961
9962 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
9963
9964         * marshal.c (mono_remoting_marshal_init): set
9965         initialized after initialization.
9966
9967 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9968
9969         * locales.c : hush.
9970
9971 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
9972
9973         * object.c (extend_interface_array): fix really silly
9974         memory corrupting / comparison bug.
9975
9976 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9977
9978         * reflection.c: Functions added to support the creation
9979         of CustomAttributeData, which includes Attribute data
9980         used by ReflectionOnly methods.
9981
9982         * reflection.h:  mono_reflection_get_custom_attrs_data and
9983          mono_custom_attrs_data_construct added (functions exposed).
9984
9985          * icall.c: Added mono_reflection_get_custom_attrs_data
9986          as icall.
9987         
9988 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
9989
9990         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
9991         lupus's request.
9992
9993 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
9994
9995         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
9996
9997         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
9998         dynamic DllImportAttribute.
9999
10000         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
10001         dynamic DllImportAttribute.
10002
10003         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
10004         Fixes #75162.
10005
10006 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10007
10008         * threads.c: avoid segfault when an unstarted thread is aborted.
10009
10010 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
10011
10012         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
10013         Returns the name and version of the runtime for reporting.
10014
10015 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10016
10017         * appdomain.c: bump corlib version.
10018         * object-internals.h: new field in MonoReflectionAssembly.
10019
10020 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10021
10022         * object-internals.h: Carlos forgot to add this field.
10023
10024 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10025
10026         * icall.c: Added create_version to create instances
10027         of Version of MonoReflectionAssemblyName. This change helps
10028         the AssemblyName tests to keep running fine.
10029         
10030 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
10031   
10032         * object.c (mono_method_return_message_restore): A somehow less
10033         intrusive fix for #75138.
10034
10035 2005-06-03  Raja R Harinath  <rharinath@novell.com>
10036
10037         * object.c (mono_method_return_message_restore): Fix computation
10038         of expected number of out args.
10039
10040 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
10041
10042         * reflection.c (mono_image_get_method_info): Fix the case when the
10043         charset is empty.
10044
10045 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
10046
10047         * object.c: Added missing null check in
10048           mono_method_return_message_restore.
10049
10050 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
10051
10052         * reflection.c (mono_image_get_method_info): Handle the case when
10053         dllentry is empty.
10054
10055 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
10056
10057         * object.c: When creating the vtable for a proxy, take into account
10058         all inherited interfaces, not only the ones registered in
10059         iclass->interfaces. This fixs bug #74996.
10060         Also, in mono_method_return_message_restore, verify that the array
10061         of out args has the expected lengh.
10062
10063 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10064
10065         * socket-io.c: update the timeout in Poll when the call is interrupte.
10066
10067 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10068
10069         * socket-io.c: support abort/suspend in Select_internal after last
10070         change.
10071
10072 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10073
10074         * threadpool.c: remove warning.
10075
10076 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10077
10078         * icall.c:
10079         * socket-io.[ch]: Select_internal uses poll() now when available, thus
10080         removing the 1024 limit from select(). Runtime part of the fix for
10081         bug #71203.
10082
10083 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10084
10085         * socket-io.c: when resolving the addresses for the same
10086         host returned by gethostname(), get the local IPs from the interface
10087         list. Loopback addresses are discarded if the are interfaces up with
10088         non-loopback ones. Fixes bug #63265.
10089
10090 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
10091
10092         * appdomain.c, verify.c, object-internals.h, reflection.c:
10093         bumped corlib number to 36, and added new extra_flags field
10094         to ReflectionMethodBuilder and friends.  Fixes #75060.
10095
10096 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
10097
10098         * gc.c: register a new weak link only if the object is non-null
10099         (fixes bug#75047).
10100
10101 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10102
10103         * culture-info.h : short time pattern too.
10104
10105 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10106
10107         * culture-info.h : expand long time pattern string length.
10108
10109 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10110
10111         * culture-info-table.h : update (more French date format; #72788).
10112
10113 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
10114
10115         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
10116         the method is static. Fixes #75029.
10117
10118 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
10119
10120         * reflection.c: Update the table_idx field of method builders after
10121         saving the module, since it can change. This is a workaround for
10122         bug #74914. 
10123
10124 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10125
10126         * culture-info-table.h : update (additional French date format).
10127
10128 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
10129
10130         * icall.c (ves_icall_type_Equals): Revert last change.
10131         
10132         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
10133
10134         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
10135
10136 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
10137
10138         * class-internals.h: Added executioncontext_class field to 
10139         MonoDefaults structure.
10140         * domain.c: Cache System.Threading.ExecutionContext class in 
10141         mono_defaults.
10142         * object.c: Capture the ExecutionContext for asynchroneous calls in
10143          mono_async_result_new.
10144         * object-internals.h: Added execution_context and original_context 
10145         fields to MonoAsyncResult. Added execution_context to MonoThread.
10146         * security-manager.c|.h: Added mono_get_context_capture_method to 
10147         return the capture method (if required by the security manager or by
10148         the framework version used).
10149         * threadpool.c: Apply capture (if present) ExecutionContext in 
10150         mono_async_invoke and revert to original context after it completes.
10151
10152 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
10153
10154         * culture-info-table.h : updated (real hacky solution for zh-CHT).
10155
10156 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
10157
10158         * culture-info-table.h : zh-CHT related workaround.
10159
10160 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
10161
10162         * marshal.c (emit_marshal_custom): Add some error checking and call the
10163         methods in the ICustomMarshaler interface. Fixes #74875.
10164         
10165         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
10166         native->managed wrappers.
10167
10168 2005-05-12  Martin Baulig  <martin@ximian.com>
10169
10170         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
10171         here and use the loader lock.
10172
10173         * mono-debug.c: Properly lock when the debugger is not attached.
10174         (mono_debug_init): Release the initial lock if we're not running
10175         in the debugger.
10176
10177 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
10178
10179         * marshal.c (emit_marshal_custom): Pass through NULL values without
10180         calling the custom marshalling routines.
10181
10182         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
10183         conversion in structures. Fixes #74882.
10184
10185 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
10186
10187         * culture-info-table.h : zh-* cultures were missing.
10188
10189 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
10190
10191         * threads.c: Added a new event background_change_event which is signaled
10192         when a thread changes its background mode.
10193         Moved here several checks previously done in managed code. The checks
10194         require the thread lock, and using the thread lock in managed code
10195         can result in deadlocks.
10196         Merged Start_internal and Thread_internal into a single method. Now 
10197         Thread_internal does all work of creating and starting a thread.
10198         Added icalls for setting and getting the state of the object. Moved from
10199         managed code to avoid locking there.
10200         Added wait_for_tids_or_state_change() which is called instad of
10201         wait_for_tids when waiting for non-backround threads to end. This method
10202         will return if one of the threads ends or the background_change_event
10203         is signaled.
10204         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
10205         the background mode. This method signals the background_change_event
10206         event.
10207         * icall.c:
10208         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
10209         removed Start_internal.
10210         
10211 2005-05-11  Martin Baulig  <martin@ximian.com>
10212
10213         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
10214         to order of some fields to get proper alignment on 64-bit machines.
10215
10216 2005-05-11  Martin Baulig  <martin@ximian.com>
10217
10218         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
10219         changes as they're broken and completely fuck up the debugger.
10220
10221         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
10222
10223 2005-05-10  Martin Baulig  <martin@ximian.com>
10224
10225         * reflection.c (mono_reflection_generic_class_initialize): Don't
10226         call mono_class_setup_parent() here.
10227
10228 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10229
10230         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
10231         send/receive timeout use an integer in milliseconds. We were using a
10232         struct timeval.
10233
10234 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10235
10236         * locales.c:
10237         (internal_get_cultures): reserve the first slot of the array for the
10238         InvariantCulture, which will be filled in managed code.
10239
10240 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
10241
10242         * reflection.c (mono_image_fill_module_table): Initialize the
10243         GENERATION field as well.
10244
10245 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10246
10247         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
10248         Monitor.Enter on the object.
10249
10250 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
10251
10252         * threads.c: Enable the wait for running threads when exiting.
10253         * icall.c: Suspend all threads before exiting.
10254
10255 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
10256
10257         * assembly.c (mono_assembly_load_reference): Fix warning.
10258
10259 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10260
10261         * threadpool.c: changed the default number of threads per cpu. From now
10262         on, the default will be 20 + (5 * number of cpus) instead of 50.
10263
10264 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
10265
10266         * loader.c (mono_method_get_signature_full): Add locking here.
10267
10268 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
10269
10270         * appdomain.c: Moved methods for parsing and freeing assembly
10271         names to assembly.c.
10272         * assembly.c, domain-internals.h: Created public methods for parsing
10273         assembly names. Fixed mono_assembly_load_with_partial_name:
10274         it now finds the best match, taking into account the version,
10275         token and culture specified in the partial name. Also return
10276         the latest version if no version information is specified.
10277
10278 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
10279
10280         * threadpool.c: replace check for SocketAsyncCall class.
10281
10282 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10283
10284         * threadpool-internals.h:
10285         * Makefile.am: added threadpool-internals.h
10286
10287         * threadpool.c: call mono_unhandled_exception on exceptions not handled
10288         that happen in threadpool threads (tested on MS).
10289         (mono_thread_pool_remove_socket): new function that dispatch any pending
10290         AIO call on a socket that is closing. By now only epoll really needs it,
10291         as select/poll wake up when the socket closes.
10292
10293
10294         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
10295
10296 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
10297
10298         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
10299
10300 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
10301
10302         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
10303
10304 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
10305
10306         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
10307         has an abort request, convert it into a suspend request.
10308
10309 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
10310
10311         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
10312         warning for the usage of `UnmanagedFunctionPointerAttribute' which
10313         is not supported yet.
10314
10315 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10316
10317         * image.c: register assemblies loaded from data (bundles) in the loaded
10318         assemblies hash. Fixes bug #74772.
10319
10320 2005-04-29  Martin Baulig  <martin@ximian.com>
10321
10322         * class.c (mono_type_get_name_recurse): Update to the new naming
10323         schema from the latest .NET 2.x beta2.
10324         (mono_class_setup_vtable_general): If we're a generic instance,
10325         copy the vtable from our generic type definition and inflate all
10326         the methods in it.
10327
10328         * loader.c (find_method): Update to the new naming schema from the
10329         latest .NET 2.x beta2.
10330
10331 2005-04-29  Raja R Harinath  <harinath@gmail.com>
10332
10333         * class.c (mono_class_init): Add a mono_loader_unlock to the
10334         #74734 fix.
10335
10336 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
10337
10338         * icall.c (ves_icall_System_Environment_Exit): Remove the 
10339         suspend_all_other_threads () call for the time being, since it can hang.
10340
10341         * threads.c (mono_thread_manage): Similarly, disable the waiting for
10342         the background threads to exit, since it can also hang.
10343
10344         * class.c (mono_class_init): Applied patch from Ankit Jain 
10345         (radical@gmail.com). Avoid pending init errors when a field refers
10346         to a nested class using a typeref. Fixes #74734.
10347
10348         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
10349         this for dynamic modules.
10350
10351 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10352
10353         * threads.c: don't wait for threads that are in the process of aborting
10354         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
10355         and waiting for background threads to finish. This makes xsp and
10356         mod-mono-server exit without random length delays and/or hangs.
10357
10358 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10359
10360         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
10361
10362 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
10363
10364         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
10365         dynamic types to prevent infinite loops. Fixes #74727.
10366
10367         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
10368         ..._is_assignable_to.
10369
10370 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
10371
10372         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
10373
10374 2005-04-25  Martin Baulig  <martin@ximian.com>
10375
10376         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
10377
10378         * domain.c
10379         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
10380
10381         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
10382
10383         * reflection.c (build_compressed_metadata): Set metadata header
10384         version to 2.0.
10385
10386 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
10387
10388         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
10389         number into an integral and a decimal part. Fixes #70473.
10390
10391         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
10392
10393 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
10394
10395         * culture-info-table.h : reflected the latest locale-builder output.
10396
10397 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10398
10399         * threadpool.c: check for SuspendRequested too when deciding if
10400         mono_thread_interruption_checkpoint should be called.
10401
10402 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10403
10404         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
10405         * threads.c: remove interruption_mutex and use Interlocked instead. When
10406         suspending all the threads, wait for all the suspended events at once.
10407         If we're shutting down and get an APC that is going to be queued,
10408         call mono_thread_execute_interruption immediately, as the thread might
10409         be sleeping on a pthread condition or mutex.
10410
10411         * icall.c: call mono_runtime_set_shutting_down before suspending the
10412         threads.
10413
10414         Fixes bug #74693. And now xsp is happier when exiting.
10415
10416 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
10417
10418         * loader.c (mono_stack_walk): Fix #74690.
10419
10420 2005-04-22  Martin Baulig  <martin@ximian.com>
10421
10422         * mono-debug.h (MonoDebugMethodJitInfo): Added
10423         `MonoDebugMethodJitInfo *jit'.
10424
10425         * mono-debug.c (mono_debug_read_method): Cache the
10426         MonoDebugMethodJitInfo in `address->jit'.
10427         (mono_debug_free_method_jit_info): New public method.
10428
10429 2005-04-22  Martin Baulig  <martin@ximian.com>
10430
10431         * class.c (mono_class_is_assignable_from): Disallow
10432         type parameter -> interface.
10433
10434 2005-04-21  Dick Porter  <dick@ximian.com>
10435
10436         * threads.c (mono_thread_create): Turn an assertion into an error.
10437
10438 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
10439
10440         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
10441         
10442         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
10443         Fix some gcc 4.0 warnings.
10444
10445 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
10446
10447         * file-io.c: fix alt dir separator char on unix systems
10448         and cleanup (fixes bug #71214).
10449
10450 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
10451
10452         * marshal.c: Use CALLVIRT instead of CALL when dispatching
10453         a call to a remote domain, since the method may be an
10454         interface method in the client domain. This fixes bug #74192.
10455
10456 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10457
10458         * threadpool.c: recv/send are now performed before going back to managed
10459         code to save one transition.
10460
10461 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10462
10463         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
10464
10465         * metadata/threadpool.c: removed hack to workaround the bug above.
10466
10467         Fixes bug #74618.
10468
10469 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
10470
10471         * reflection.c reflection.h: Fix handling of parameter defaults in
10472         dynamic methods. Also fixes handling of parameter attributes.
10473         Fixes #74609.
10474
10475         * mono-debug.c (mono_debug_close_image): Fix warning.
10476
10477 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10478
10479         * socket-io.h: replaced old unused field with new 'blocking'.
10480         * threadpool.c: restore socket blocking state on windows(tm).
10481
10482 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
10483
10484         * icall.c: don't return the codebase in the AssemblyName[] returned by
10485         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
10486         * object-internals.h: Removed FIXME (fields were presents) and fixed
10487         versioncompat declaration.
10488
10489 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10490
10491         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
10492         not closed, so don't cleanup when it happens.
10493
10494 2005-04-13  Chris Toshok  <toshok@ximian.com>
10495
10496         * mono-debug-debugger.h: change prototype for
10497         mono_debugger_lookup_type.
10498
10499         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
10500         this function, although it should probably be named
10501         mono_debugger_init_type.
10502
10503 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10504
10505         * threadpool.c: fix non-AIO case.
10506
10507 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
10508
10509         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
10510         the built-in profiler to measure just JIT compilation times.
10511
10512 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10513
10514         * threadpool.c: the epollfd might be closed by another thread at
10515         any time, so ignore EBADF at treat it as a "we're closing" sign.
10516
10517 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10518
10519         * threadpool.c: release the semaphores with a count equals to the number
10520         of working threads in both IO and regular pools. Fixed typo that messed
10521         up the count of IO pool threads. Don't initialize the pipe handles if
10522         we're using epoll.
10523
10524 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10525
10526         * threadpool.c: some systems don't like a NULL when deleting the socket
10527         from epoll.
10528
10529 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10530
10531         * threadpool.c: fix semaphore allocation.
10532
10533 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10534
10535         * threadpool.c: added epoll() based implementation for asynchronous IO
10536         that is used instead of the default poll() when available.
10537         It can be disabled by setting MONO_DISABLE_AIO.
10538
10539 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10540
10541         * threadpool.c: windows needs 'closesocket' and instead of returning
10542         0 when the stream is closed while in select, it returns -1. Fixes bug
10543         #74573.
10544
10545 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
10546
10547         * class.c (class_compute_field_layout): Fix the regression caused by
10548         the previous try.
10549
10550 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10551
10552         * threadpool.c: separate pool for socket async. IO.
10553         * threadpool.h: mono_max_worker_threads is not a global any more.
10554
10555 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
10556
10557         * class.c (class_compute_field_layout): Fix #74549.
10558
10559 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10560
10561         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
10562         use 2 connected sockets instead.
10563
10564 2005-04-08  Miguel de Icaza  <miguel@novell.com>
10565
10566         * mono-config.c: Add new entry point for mkbundle
10567         mono_config_parse_memory. 
10568
10569 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10570
10571         * threadpool.c: removed another unused function.
10572
10573 2005-04-08  Ankit Jain  <radical@corewars.org>
10574
10575         * reflection.c (get_default_param_value_blobs): Add 'types'
10576         parameter to get the types encoded in the constant table.
10577         (mono_param_get_objects): Use the type from the constant table,
10578         not the type of the parameter, when creating default values.
10579         Handle null default values correctly.
10580
10581 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10582
10583         * file-io.c:
10584         * file-io.h:
10585         * threadpool.c:
10586         * threadpool.h:
10587         * icall.c:
10588         * socket-io.c: removed dead code for async IO.
10589
10590 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10591
10592         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
10593
10594         * threadpool.c: intercept socket async. calls and pass them to a thread
10595         that is polling and dispatching the job items to the threadpool as
10596         socket become ready. Fixes bugs #71217, #71933.
10597
10598         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
10599         between char and short/ushort arrays.
10600
10601         * socket-io.c: remove dead code.
10602
10603 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
10604
10605         * locales.c,
10606           icall.c : removed InternalToUpper_Comp() and
10607           InternalToLower_Comp().
10608
10609 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
10610
10611         * char-conversions.h : The tables were incorrectly generated. Should
10612           be generated against invariant culture.
10613
10614 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
10615
10616         * object.c (mono_runtime_invoke_array): Fix return value when 
10617         passing pre-created valuetype objects to ctors.
10618
10619         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
10620         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
10621         Fixes #74338.
10622
10623 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
10624
10625         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
10626         only used with --security and hides the wrong corlib version error.
10627
10628 2005-03-30  Joshua Tauberer  <tauberer@for.net>
10629
10630         * class.c: Changed mono_class_name_from_token so that types
10631         outside of a namespace don't have an initial period.  Improved
10632         the g_warning message used in _mono_class_get when loading
10633         fails.
10634         * assembly.c: In mono_assembly_load_reference, when an assembly
10635         can't be found, "No such file or directory" is misleading and
10636         unhelpful because a few paths were checked for the presence of
10637         the assembly.  When that happens (ENOENT), display a nicer
10638         message indicating the directories that were searched.  In all
10639         cases, the warning is made easier to read for non-hackers.
10640
10641 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
10642
10643         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
10644         project/solution.
10645         * appdomain.h|domain.c: Removed inline from functions.
10646         * appdomain.c: Reduced warnings when compiling on windows.
10647         * icall.c: Fixed output_debug declaration to gunichar2*.
10648         * mono-config.c: Reduced warnings when compiling on windows.
10649         * rand.c: Added missing "windows.h". Added missing return value.
10650         * rawbuffer.c: Added missing winsock2.h for windows.
10651         * sysmath.h: Added mono-compiler.h header to allow/ease 
10652         compilation with non-GCC compilers.
10653         * threads.c: Fixed declarations to compile with VS.NET C compiler.
10654         Removed cast warnings.
10655
10656         Adapted from the work of J Lothian (for VC6).
10657
10658 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
10659
10660         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
10661         from default_path.
10662
10663 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
10664
10665         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
10666         the 2.0 profile.
10667
10668 2005-03-27  Raja R Harinath  <harinath@gmail.com>
10669
10670         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
10671         has to be in $(exec_prefix).  $(prefix) is for arch-independent
10672         stuff, and it would probably use $(prefix)/share rather than
10673         $(prefix)/lib.
10674
10675 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10676
10677         * console-io.c: added 2 includes that might be missing.
10678
10679 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
10680
10681         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
10682         profile.
10683
10684         * reflection.c (create_custom_attr): Allocate the params array using
10685         alloca so it gets GC tracking.
10686
10687 2005-03-23  Chris Toshok  <toshok@ximian.com>
10688
10689         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
10690         out some spew.
10691
10692 2005-03-24  Raja R Harinath  <rharinath@novell.com>
10693
10694         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
10695         changes to pick up any changes in prefix, etc.
10696
10697 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
10698
10699         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
10700         
10701         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
10702         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
10703
10704 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
10705
10706         * class-internals.h object-internals.h class.c reflection.c: Extend the
10707         mono_lookup_dynamic_token () function to return the class of the
10708         token as well. 
10709
10710         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
10711         well. Fixes #73848.
10712
10713 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
10714
10715         * security-manager.c: Skip inheritance checks for intra-corlib
10716         class inheritance and method overrides. This skips a lot of checks
10717         and (anyway) permissions cannot work until corlib is loaded.
10718
10719 2005-03-23  Martin Baulig  <martin@ximian.com>
10720
10721         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
10722         MONO_TYPE_GENERICINST.  
10723
10724 2005-03-23  Martin Baulig  <martin@ximian.com>
10725
10726         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
10727
10728 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10729
10730         * class.c: added locking comments to some functions.
10731         Cache the interface offsets arrays (saves about 20 KB
10732         of runtime memory in a typical app).
10733         Reduce the time overhead in mono_class_setup_supertypes ().
10734
10735 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
10736
10737         * icall.c: speedup and fix leaks in GetMethodsByName and
10738         GetPropertiesByName.
10739
10740 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10741
10742         * reflection.c: some locking fixes.
10743
10744 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10745
10746         * metadata.c: added missing break in case statement.
10747
10748 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
10749
10750         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10751         typedbyref return values. Fixes #73941.
10752
10753 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
10754
10755         * security-manager.c|h: Added demandunmanaged method and 
10756         suppressunmanagedcodesecurity class to MonoSecurityManager.
10757         Renamed aptc class to allowpartiallytrustedcallers.
10758
10759 2005-03-17  Martin Baulig  <martin@ximian.com>
10760
10761         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
10762
10763 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10764
10765         * file-io.c: disabled file async. IO using aio_*. It uses the
10766         threadpool now. Workaround for bug #73718.
10767
10768 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10769
10770         * assembly.h, mono-config.c: added code to deal with bundled configs
10771         for bundled assemblies.
10772
10773 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
10774
10775         * *.c, private.h: cleanup, removing old private.h header file.
10776
10777 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
10778
10779         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
10780         and throw_on_unmappable_char attributes.
10781
10782 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
10783
10784         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
10785         _ProcessName_internal.
10786
10787 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
10788
10789         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
10790         #73631.
10791
10792         * icall.c threads.c threads-types.h: Remove slothash icalls as they
10793         are no longer used.
10794
10795 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
10796
10797         * object.c (compute_class_bitmap): Add support for generics. Fixes
10798         #73527.
10799
10800 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
10801
10802         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
10803
10804 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10805
10806         * filewatcher.c: commented out the code for windows watcher, as we don't
10807         use it (we use the managed implementation instead).
10808
10809 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
10810
10811         * object-internals.h (MonoThread): Remove 'unused1' field.
10812
10813         * appdomain.c: Bump corlib version.
10814
10815         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
10816
10817         * reflection.c (mono_reflection_create_runtime_class): Remove the
10818         AssemblyBuilder.Save optimization since it causes too many problems.
10819
10820 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
10821
10822         * exception.c|h: Added mono_get_exception_reflection_type_load to
10823         create a ReflectionTypeLoadException object.
10824         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
10825         to return NULL is a InheritanceDemand fails during reflection. Updated
10826         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
10827         ReflectionTypeLoadException if an InheritanceDemand fails during 
10828         reflection. Added icall mapping for GetLinkDemandSecurity.
10829         * security-manager.c|h: Added ves_icall_System_Security_
10830         SecurityManager_GetLinkDemandSecurity internal call to return the
10831         class and methods permissions set for a LinkDemand. Removed unused
10832         fields in MonoSecurityManager.
10833
10834 2005-03-10  Martin Baulig  <martin@ximian.com>
10835
10836         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
10837         it's a generic instance.
10838
10839 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
10840
10841         * reflection.c (mono_get_object_from_blob): Applied patch from
10842         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
10843
10844         * class.c (mono_class_is_assignable_from): Another try at fixing 
10845         #73469 without breaking anything.
10846
10847 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
10848
10849         * class.c: (mono_class_is_assignable_from): Revert the last changes
10850         since they don't work with generics.
10851         
10852         * class.c (mono_class_is_assignable_from): Fix build bustage.
10853
10854         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
10855         the managed IsAssignableFrom method. Fixes #73469.
10856
10857         * reflection.c (mono_reflection_call_is_assignable_from): New helper
10858         function.
10859
10860 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
10861
10862         * object.c (mono_load_remote_field_new): Fix returning uninitialized
10863         memory when the remoting callback does not sets the out arguments.
10864         Fixes #73007.
10865
10866         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
10867         by mistake.
10868
10869         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
10870
10871         * object-internals.h (MonoStackFrame): Sync with managed object layout.
10872
10873         * appdomain.c: Bump corlib version.
10874
10875 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
10876
10877         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
10878         function.
10879
10880         * threads.c (mono_thread_attach): Detect threads which are not started
10881         by the GC pthread wrappers.
10882
10883 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
10884
10885         * icall.c: Added new icall for RNG.
10886         * rand.c|h: Added new icall to open the RNG. This allows to share a 
10887         single handle on Linux to access /dev/urandom and fix #73183.
10888
10889 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
10890
10891         * object.c: setting the new vtable in a transparent proxy object must
10892         not change the GC descriptor.
10893
10894 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10895
10896         * object.c: fixed compilation without GCJ support.
10897         * reflection.c: for runtime-created types ensure klass->has_references
10898         is correct (bug #73215).
10899
10900 2005-03-02  Martin Baulig  <martin@ximian.com>
10901
10902         * class.c (mono_class_is_assignable_from): Make this work if
10903         `oklass' is a generic instance; fixes #72831.
10904
10905 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
10906
10907         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
10908         with hasthis set.
10909         
10910         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
10911
10912         * marshal.c: Reorganize native->managed marshalling code to also use
10913         the emit_marshal_... functions.
10914
10915 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10916
10917         * object.c: typed allocs have issues with bitmap sizes > 30,
10918         so check for max_set >= 30.
10919
10920 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
10921
10922         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
10923         managed code. Fixes #73012.
10924
10925         * metadata.h (MonoMarshalSpec): Add elem_mult field.
10926
10927         * metadata.c reflection.c: Load/Emit elem_mult as well.
10928         
10929         * metadata.h (MonoMarshalSpec): Add comment.
10930
10931         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
10932
10933         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
10934         num_elem to -1 if not given.
10935
10936         * object-internals.h (MonoReflectionMarshal): Add has_size field.
10937
10938         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
10939         given values.
10940
10941 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
10942
10943         * null-gc.c (mono_gc_free_fixed): Was not compilable.
10944
10945 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
10946
10947         * reflection.c (encode_marshal_blob): Encode param_num field as well.
10948
10949         * object-internals.h (MonoReflectionMarshal): Add param_num field.
10950
10951 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10952
10953         * object.c: generalized the reference bitmap creation
10954         and added hooks for the new GC.
10955         * class-internals.c: removed the gc_bitmap field from MonoClass.
10956
10957 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10958
10959         * domain.c: help the compiler to produce better code
10960         in mono_jit_info_table_find ().
10961
10962 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10963
10964         * object.c: make all allocations look typed.
10965
10966 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10967
10968         * socket-io.c: load Mono.Posix if it's not loaded already
10969         (fixes bug#73033).
10970
10971 2005-02-24  Martin Baulig  <martin@ximian.com>
10972
10973         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
10974         * reflection.c (dup_type): Likewise.
10975
10976 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
10977
10978         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
10979         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
10980
10981 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10982
10983         * domain.c, threads.c, object-internals.h: make the critical thread
10984         local vars use the fast access mode (even when we're compiled in
10985         a lib). Provide accessors to be used by the jit during codegen.
10986
10987 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10988
10989         * appdomain.c: Changed hook functios behavior to include
10990         support for the reflection only assemblies. Some icalls were changed
10991         to support the mentioned assemblies too. Signatures of static methods
10992         try_assembly_resolve and real_load now have an additional parameter:
10993         refonly.
10994
10995         * assembly.c: General changes to mono_assembly_ methods to support
10996         reflection only api. Functions mono_assembly_open, mono_assembly_load,
10997         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
10998         suffix, to support an additional gbool parameter to specify whether
10999         the assembli is reflection only or not. Created some new hook functions 
11000         to add support for reflection only assemblies. Signatures of static 
11001         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
11002         have now an additional parameter: refonly.
11003
11004         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
11005         indicating whether the assembly is reflection only or not.
11006
11007         * exception.c: Add mono_get_exception_invalid_operation.
11008
11009         * icall.c: Throw an InvalidOperationException when trying to invoke
11010         a property/method/event, or trying to set/get the value of a field.
11011         Also add an icall to retrieve the ref_only flag to the
11012         MonoReflectionAssembly.
11013
11014 2005-02-23  Chris Toshok  <toshok@ximian.com>
11015
11016         Part of fix for #72827.
11017         * mono-debug.c (mono_debug_add_method): add lexical block data to
11018         the info we write.  Kind of a hack at the moment - we copy the
11019         lexical block info from the MonoDebugMethodInfo to the
11020         MonoDebugMethodJitInfo here, before writing it.
11021         (mono_debug_read_method): read the lexical block info.
11022
11023         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
11024
11025         * debug-mono-symfile.h: add lexical block support.
11026
11027         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
11028         support.
11029
11030 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
11031
11032         * loader.c (mono_lookup_pinvoke_call): Fix warning.
11033
11034         * object.c (mono_runtime_free_method): Call mono_free_method () and
11035         put the TODOs there.
11036
11037         * loader.c (mono_free_method): Free up most memory allocated for 
11038         dynamic methods.
11039
11040 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
11041
11042         * reflection.c: properly flag a Type argument to a
11043         named custom attr value (bug #72248).
11044
11045 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11046
11047         * reflection.c: reduce code duplication in named custom
11048         attribute encoding.
11049
11050 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
11051
11052         * reflection.c: properly encode custom attrs of type object
11053         (bug #72649).
11054
11055 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
11056
11057         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
11058
11059 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
11060
11061         * socket-io.c: load System.dll if it's not loaded already
11062         (bug #72850 and #70477).
11063
11064 2005-02-21  Martin Baulig  <martin@ximian.com>
11065
11066         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
11067         generic instances.
11068
11069 2005-02-21  Martin Baulig  <martin@ximian.com>
11070
11071         * reflection.c (mono_image_build_metadata): We also need to
11072         "fixup" the MethodImpl table after we computed the final method
11073         indices.  Call fixup_methodimpl() to do that.
11074         (fixup_methodimpl): New private method.
11075
11076 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
11077
11078         * assembly.c: special case mscorlib.dll (bug#72536),
11079         patch from Carlos Alberto Cortez.
11080
11081 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
11082
11083         * threads-types.h threads.c: Fix build bustage.
11084
11085         * threads.c: Use a union for long<->double conversions.
11086
11087         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
11088         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
11089
11090         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
11091         containing the checkpoint call with NOT_TAKEN.
11092         
11093         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
11094         checkpoint before pushing the arguments, so they won't have to be
11095         spilled to stack.
11096
11097 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11098
11099         * domain.c, assembly.c, domain-internals.h: make some data
11100         const and relocation-free.
11101
11102 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
11103
11104         * object.c, appdomain.c, class-internals.h: introduce the
11105         MonoClassRuntimeInfo structure to hold the info needed to
11106         use a class at runtime. Made mono_class_vtable() lock-free
11107         for all the appdomains.
11108
11109 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
11110
11111         * metadata-internals.h, image.c: introduce a per-image mempool to
11112         be used for memory that has the same lifetime as the image.
11113
11114 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
11115
11116         * domain.c: In mono_init_internal(), instead of selecting the first
11117         runtime version supported by an executable, get a list of all
11118         supported versions and select the one for which an mscorlib exists
11119         (since even if the runtime supports a given version, it doesn't mean
11120         that the framework for that version is installed).
11121         Modified get_runtimes_from_exe to support this behavior.
11122         In supported_runtimes, added information about additional system
11123         assembly versions.
11124         
11125         * assembly.c: Added support for more than one system assembly version
11126         per runtime version. Updated the assembly list.
11127         In mono_assembly_remap_version, removed the initial version check,
11128         since we don't know to which version we need to compare until we
11129         get the version set on which the assembly is based.
11130         Moved the code for loading corlib into the new method
11131         mono_assembly_load_corlib(), so it can be used by the initialization
11132         code.
11133         
11134         * domain-internals.h: Updated data structures and added declaration
11135         for mono_assembly_load_corlib.
11136
11137 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
11138
11139         * reflection.c (resolve_object): Fix the creation of the signature in 
11140         the SignatureHelper case.
11141
11142         * assembly.c (mono_assembly_remap_version): Fix binary search.
11143         
11144 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
11145  
11146         * class.c: Added inheritance check when a method is overloaded (from a
11147         virtual method or when implementing an interface) and when a class is
11148         inherited. Added functions to set a failure for a class and to 
11149         retreive the exception from a failure.
11150         * class-internals.h: Added fields to MonoClass to keep the exception
11151         information status for inheritance (or other exceptions) to be thrown
11152         later (i.e. not at load time).
11153         * object.c: Throw the inheritance SecurityException when a type is to 
11154         be created with either class or method inheritance violations.
11155         * reflection.c|h: Fix when getting declsec from a class. Removed 
11156         unrequired code for class. Improved sanity in parameter naming.
11157         * security-manager.c|h: Added functions to check for class and method
11158         inheritance.
11159
11160 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
11161
11162         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
11163         and has_finalize in dynamic types as well.
11164
11165 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
11166
11167         * culture-info-table.h : fixed currency format for en-GB (and so on).
11168
11169 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
11170
11171         * gc.c: ensure the GC handles never have 0 as a value.
11172
11173 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
11174
11175         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
11176         a pointer to a struct to unmanaged code. Fixes #72625.
11177
11178 2005-02-16  Martin Baulig  <martin@ximian.com>
11179
11180         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
11181
11182 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
11183
11184         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
11185
11186 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
11187
11188         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
11189
11190         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
11191         UnmanagedFunctionPointerAttribute, use it for determining calling convention
11192         etc. Fixes #71471.
11193
11194         * reflection.c (mono_custom_attrs_get_attr): New helper function.
11195
11196         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
11197
11198 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
11199
11200         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
11201         changes to make the current context a field in MonoThread.
11202
11203 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
11204
11205         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
11206         the last change.
11207         
11208         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
11209         extracted from mono_marshal_get_native_wrapper.
11210
11211         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
11212         to create wrappers around native functions.
11213
11214         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
11215         delegates for arbitrary function pointers. Fixes #71472.
11216
11217 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11218
11219         * threads.c: cleaned up the code a little.
11220
11221 2005-02-15  Martin Baulig  <martin@ximian.com>
11222
11223         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
11224         the data table.
11225
11226         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
11227         allocate larger chunks if needed.
11228
11229 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
11230
11231         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
11232         in by mistake.
11233
11234 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
11235
11236         * domain.c: keep the domains in an array and ensure the domain ids
11237         are kept small, so they can be used as indexes to domain-specific data
11238         with a small memory overhead.
11239
11240 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
11241
11242         * icall.c: Handle byref types in Type icalls. Fixes #72544.
11243
11244 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
11245
11246         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
11247
11248 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
11249
11250         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
11251
11252         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
11253         values.
11254
11255         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
11256         
11257 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
11258
11259         * domain-internals.h: add the hashtable here.
11260
11261         * class-internals.h: Remove `info' from MonoMethod
11262
11263         * domain.c: Add a new hashtable, jit_trampoline_hash
11264
11265 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11266
11267         * object.c: don't set the value of static fields
11268         (fixes bug#72494).
11269
11270 2005-02-11  Martin Baulig  <martin@ximian.com>
11271
11272         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
11273         (mono_debug_add_method): Silently ignore the method if it's too big.
11274         (mono_debug_add_type): Likewise.
11275
11276 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
11277
11278         * threads.c, appdomain.c: remove #ifdefs from the code.
11279
11280 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
11281
11282         * metadata-internals.h: Added flags to MonoAssembly to cache the most
11283         common security informations. This allows us to stay in unmanaged code
11284         when doing LinkDemand and it's special cases (except for the first 
11285         time for initialization). The flags a very much used with --security.
11286         * reflection.c|h: Added code to get declarative security attributes 
11287         for LinkDemand and InheritanceDemand. This required to refactor the
11288         existing code for Demand.
11289         * security-manager.c|h: Added new method fields for the special cases
11290         of LinkDemand.
11291
11292 2005-02-10  Martin Baulig  <martin@ximian.com>
11293
11294         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
11295         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
11296
11297 2005-02-10  Martin Baulig  <martin@ximian.com>
11298
11299         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
11300         debugging code; this is almost a complete rewrite.
11301
11302         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
11303
11304 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11305
11306         * domain.c, object.h: expose mono_string_equal () and 
11307         mono_string_hash ().
11308         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
11309         it's implemented in managed code.
11310
11311 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11312
11313         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
11314         lo leak objects between appdomains.
11315
11316 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11317
11318         * assembly.c: old compilers compilation fix from 
11319         robertj@gmx.net (Robert Jordan).
11320
11321 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
11322
11323         * class-internals.h: Little reminder for the future.
11324
11325         * debug-helpers.c: Fix up wrapper_type_names
11326
11327 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11328
11329         * image.c, metadata-internals.h: when loading an image from a file,
11330         mmap all of it and use the same codepaths as when using a
11331         in-memory image: the code is simpler and we use less memory
11332         (both writable and readonly).
11333
11334 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11335
11336         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
11337         API to alloc runtime data structures that need to be tracked by the
11338         GC and contain pointers.
11339         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
11340         make the code more readable and eventually use a different GC.
11341
11342 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
11343
11344         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
11345         for out arguments.
11346         
11347 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
11348
11349         * object.c: In release_type_locks(), don't release the cctor lock
11350         if it has already been released. This fixes a crash in the
11351         thread5 test.
11352
11353 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11354
11355         * gc.c, marshal.c, icall.c: register a delegate for finalization
11356         only when the native function pointer has been allocated for it.
11357
11358 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11359
11360         * object.c: cleaned up some code, allocate objects that are
11361         pointer free with the atomic malloc variant. Allocate memory
11362         for static data from the mempool if it's pointer-free.
11363         Allocate the bounds array at the end of the array data, when needed.
11364         * object-internals.h, object.h: move a private function in a private
11365         header.
11366         * class.c: handle missing case in tracking references in fields.
11367
11368 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11369
11370         * class.c, class-internals.h: keep track if a type has
11371         reference fields in either the instance or static fields.
11372
11373 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
11374
11375         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
11376         and renamed to MonoRuntimeInfo. Added fields to store the expected
11377         framework assembly version. Changed mono_get_framework_version and
11378         mono_get_runtime_version for a single mono_get_runtime_info method.
11379         
11380         * assembly.c: Added method to remap system assembly versions to the
11381         current executing runtime version. Removed old mapping code.
11382         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
11383         
11384         * icall.c, reflection.c: Track api changes.
11385
11386 2005-02-06  Miguel de Icaza  <miguel@novell.com>
11387
11388         * loader.c (method_from_memberref): Improve error reporting,
11389         produce the class name instead of the typeref/typedef index. 
11390
11391 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
11392
11393         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
11394
11395 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11396
11397         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
11398         stdcall and charset name mangling.  Reorganize the code and add
11399         some tracing stuff.
11400
11401 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
11402
11403         * monodiet.c: More iters!
11404
11405         * marshal.c: Iter usage.
11406
11407         * icall.c: Iter usage.
11408
11409         * object.c: Use iters.
11410
11411         * debug-helpers.c: More iters
11412
11413 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11414
11415         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
11416         under win32.
11417
11418 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
11419
11420         * mono-debug-debugger.c: use iters
11421
11422         * class.c, class-internals.h: mono_class_setup_events is static
11423         now
11424
11425         * All callers: use iters
11426
11427 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11428
11429         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
11430         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
11431
11432 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
11433
11434         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
11435
11436         * marshal.h: Add prototypes for ldfld/stfld_remote.
11437
11438         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
11439         this is called during startup.
11440         
11441 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
11442
11443         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
11444         MonoThreadsSync struct private in monitor.c. Changed the way
11445         MonoThreadsSync is allocated so it's faster and there is no
11446         need to keep track of it with a finalizer and it uses less memory.
11447         This also finally allows us to allocate mono objects as ptrfree when
11448         there are no reference fields.
11449
11450 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
11451
11452         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
11453         disappearing link to the GC interface and use them to simplify
11454         the gchandles code.
11455
11456 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
11457
11458         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
11459         stfld_remote which call mono_load/store_field_new. This allows methods
11460         calling ldfld/stfld wrappers to be AOTed.
11461
11462         * console-io.c: Include sys/filio.h under solaris.
11463         
11464         * console-io.c: Include curses.h if needed correctly.
11465
11466 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
11467         
11468         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
11469         method->klass as well.
11470
11471         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
11472
11473         * class.c (mono_class_init): Switch on lazy initialization of 
11474         methods.
11475
11476         * class.c (mono_class_get_finalizer): Handle the case when the 
11477         finalizer is inherited.
11478
11479 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11480
11481         * console-io.c: <curses.h> is needed by term.h on solaris.
11482
11483 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
11484
11485         * icall.c, class-internals.h, monodiet.c, class.c: Remove
11486         mono_class_setup_properties where possible. Remove this ftn from
11487         the header file, and make it static.
11488
11489 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
11490
11491         * loader.c: Add missing setup_... call.
11492
11493         * class.c: Add missing setup_... calls.
11494
11495         * class.c (mono_class_init): Switch on lazy initialization of 
11496         the generic vtable.
11497         
11498         * class.c (mono_class_init): Fix generics broken by the recent changes.
11499
11500         * monodiet.c (handle_type): Add missing setup_... calls.
11501
11502         * class.c: Back out garbage in previous patch.
11503         
11504         * class.c: Add missing setup_... calls.
11505
11506         * class.c (mono_class_get_method_from_name_flags): Avoid calling
11507         mono_class_setup_methods () if possible.
11508
11509         * class-internals.h (MonoClass): Add 'has_cctor' flag.
11510
11511         * class-internals.h (MonoCachedClassInfo): New structure.
11512
11513         * class.c: Initialize properties and events fields of MonoClass lazily.
11514
11515         * class.c: Add infrastructure for lazily initializing the methods and
11516         vtable fields of MonoClass. Not yet used.
11517
11518         * class.c (mono_class_get_finalizer): New helper function.
11519
11520         * class.c: Add infrastructure for loading some class related data from
11521         an AOT file.
11522
11523         * object.c: Add infrastructure for initializing the vtable from data
11524         in the AOT file.
11525
11526         * gc.c (run_finalize): Use mono_class_get_finalizer ().
11527
11528         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
11529         appropriate initialization function before accessing parts of the
11530         MonoClass structure.
11531
11532         * marshal.c: Fix warnings.
11533         
11534         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
11535
11536         * mono-debug-debugger.c (get_exception_message): Use 
11537         mono_class_get_method_from_name_flags ().
11538
11539 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
11540
11541         * reflection.c, appdomain.c: Replace a few manual searches that
11542         Zoltan missed. (Paolo approved this part of my initial patch).
11543
11544 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
11545
11546         * profiler.c: disable recording statistical events at report time.
11547
11548 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11549
11550         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
11551         to byteswap arrays of enum values, too (bug #72080).
11552
11553 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
11554
11555         * appdomain.c (set_domain_search_path): Allow this to be called if
11556         domain->setup is not yet set.
11557
11558         * loader.c (mono_method_get_index): New helper function.
11559
11560         * loader.c reflection.c: Use mono_method_get_index ().
11561
11562         * class.c (mono_class_get_method_from_name_flags): New helper method.
11563
11564         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
11565         this.
11566
11567         * class.c (mono_class_get_cctor): New helper method.
11568
11569         * string-icalls.c object.c class.c marshal.c reflection.c: Use
11570         mono_class_get_method () to look up methods.
11571
11572 2005-02-01  Miguel de Icaza  <miguel@novell.com>
11573
11574         * console-io.c: Fix the build, this should work on Windows.
11575
11576 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
11577
11578         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
11579         be set to null to keep things valid
11580
11581 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11582
11583         * icall.c: added Console 2.0 icalls.
11584         * Makefile.am: added console-io.[ch]
11585         * console-io.[ch]: internal calls for Console 2.0 API.
11586
11587 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11588
11589         * class.c: make sure we consider all the interfaces
11590         when calculating max_interface_id (bug found by
11591         Jeroen Frijters running ikvm).
11592
11593 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
11594
11595         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
11596         valuetype fields to null.
11597
11598         * object.c (set_value): Ditto. Fixes #71669.    
11599
11600 2005-01-31  Martin Baulig  <martin@ximian.com>
11601
11602         * metadata.c (mono_metadata_has_generic_params): New public
11603         function; checks whether something is a generic method.
11604
11605 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
11606
11607         * appdomain.c: fix infinite recursion when adding assemblies.
11608
11609 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
11610
11611         * object.c: Fix small typo to return all items for Environment.
11612         GetCommandLineArgs.
11613
11614 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11615
11616         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
11617         reflection.c: more domain and assembly-unload related fixes
11618         and memory leaks plugs.
11619
11620 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
11621
11622         * 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.
11623
11624 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
11625
11626         * loader.c (mono_method_signature): Make this method lazy
11627         (mono_get_method_from_token): Don't computate the signature here.
11628
11629         Doing this saves quite a bit of memory. I got 90 kb on starting up
11630         monodoc. It should also save some disk reads on startup.
11631
11632         * *: MonoMethod->signature might be NULL now. You *MUST* use
11633         mono_method_signature.
11634
11635 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
11636
11637         * object.c (mono_runtime_get_main_args): Return an array from the
11638         current domain here. Fixes #71938.
11639
11640 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
11641
11642         * monitor.c: formatting changes to comply with the
11643         mono coding style and remove #ifdefs from the code.
11644
11645 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11646
11647         * metadata.c, private.h: remove some unneeded data
11648         and use a more compact representation for table schemas.
11649
11650 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
11651
11652         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
11653         to get a better distribution in hash tables.
11654         * *.c: use mono_aligned_addr_hash() where appropriate.
11655         * assembly.c: make var static.
11656
11657 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
11658
11659         * domain-internals.h: Put MonoJitInfo on a diet.
11660
11661         * domain.c: Fix a warning.
11662
11663 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11664
11665         * gc.c: rework the gc handles code to reuse handles
11666         when freed.
11667
11668 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11669
11670         * domain.c: fixed long standing bug in mono_string_equal() which
11671         was brought to light with the ldstr changes.
11672
11673 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
11674
11675         * reflection.c: Remove warning by adding missing include for marshal.h
11676
11677 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11678
11679         * domain.c, object.c: change the ldstr_table to hold
11680         MonoString* as keys: makes the runtime isinterned lookup
11681         faster and simplifies memory management.
11682
11683 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
11684  
11685         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
11686         possible to add imperative security checks before calling the icall.
11687         * reflection.c: Return security attributes on the original MonoMethod
11688         (and not the wrapped one). This fix permissions on icalls.
11689
11690 2005-01-25  Dick Porter  <dick@ximian.com>
11691
11692         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
11693         the check for mktime() support actually test the mktime() return
11694         value.  "Fixes" bug 71682, though the output is still different to
11695         MS.
11696
11697 2005-01-25  Martin Baulig  <martin@ximian.com>
11698
11699         * class.c (mono_class_is_assignable_from): Make this work for
11700         generic instances.
11701
11702 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
11703
11704         * marshal.c (mono_string_utf8_to_builder)
11705         (mono_string_builder_to_utf16): We might not have ownership of the
11706         string. In thise case, we need to create a new buffer.
11707
11708         * object-internals.h (mono_stringbuilder_capacity): sb->str might
11709         be null, in which case, use the default capacity.
11710
11711 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11712
11713         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
11714         GC events to the profiler.
11715
11716 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11717
11718         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
11719         if you don't want the GC to run.
11720
11721 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
11722
11723         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
11724         start providing a GC API and keeping different implementations in
11725         their own file.
11726         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
11727
11728 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
11729
11730         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
11731         mmap rather than allocating a huge buffer.
11732         (mono_debug_close_mono_symbol_file): Free the buffer allocated
11733         above.
11734
11735 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
11736
11737         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
11738         and CheckExecutionRights.
11739         * reflection.c|h: Keep the index of the declarative security to be 
11740         used, instead of the pointer, when AOT compiler is used. Also add 
11741         class initialization when requesting demands.
11742         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
11743         CheckExecutionRights. Both properties are now FALSE by default, and
11744         unmodifiable, unless the --security option is used.
11745
11746 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11747
11748         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
11749         reflection.c: properly refcount images and assemblies, many leaks fixed.
11750
11751 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11752
11753         * threadpool.c: increase the timeout for threads in the thread pool to
11754         10s.  Fixes bug #67159.
11755
11756 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
11757
11758         * class-internals.h: Sun's compiler insists on explicit
11759         signed on bit fields to handle then correctly.
11760
11761 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
11762
11763         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
11764         Make the size of the array fit only the number of invalid path
11765         chars that we have.
11766
11767         * class.c (_mono_class_get): Improve the error reporting when a
11768         class referenced is not found, to assist debugging. 
11769
11770 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
11771
11772         * threads.c: fix off-by-one error.
11773         * domain.c: free data allocated in the domain.
11774
11775 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
11776
11777         * reflection.c (mono_method_body_get_object): Fill out exception info
11778         as well.
11779
11780         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
11781         structure.
11782         
11783 2005-01-19  Martin Baulig  <martin@ximian.com>
11784
11785         * loader.c (mono_get_method_constrained): Make this work again.
11786
11787 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
11788
11789         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
11790         guint16 to match the managed side.
11791
11792         * reflection.c (mono_reflection_body_get_object): Fill out local
11793         variables array.
11794
11795         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
11796         as well.
11797
11798         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
11799         'local_var_sig_token'.
11800
11801 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
11802
11803         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
11804         System.Drawing.
11805
11806         * reflection.c (mono_method_body_get_object): Handle abstract and
11807         runtime methods.
11808
11809 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
11810
11811         * marshal.c, loader.c, class-internals.h, reflection.c:
11812         store the emthod data for a wrapper in an array instead of a list.
11813
11814 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
11815
11816         * marshal.c: change the code to allocate memory more
11817         conservatively for method wrappers.
11818
11819 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
11820
11821         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
11822         fields from MonoClass to the marshal info structure where they belong.
11823
11824 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11825
11826         * class.c, object.c, class-internals.h, marshal.c: rearrange
11827         some fields and tweak some types to lower memory usage.
11828
11829 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
11830
11831         * threads.c (signal_thread_state_change): Handle the case when the
11832         target thread is the current thread.
11833
11834         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
11835
11836         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
11837         emit_ptr_to_object_conv. 
11838
11839         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
11840         marshalling. Fixes #71352.
11841
11842 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11843
11844         * metadata.h, blob.h: move table enum to blob.h so it can be included
11845         in any header.
11846         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
11847         cut the size of MonoImage/MonoDynamicImage.
11848
11849 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
11850
11851         * profiler.c (mono_profiler_install_simple): Fix default arguments.
11852
11853 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11854
11855         * reflection.c, reflection.h, icall.c: add a function to check
11856         if an attribute type is defined for a metadata object.
11857
11858 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
11859
11860         * object-internals.h: Added some needed fields from StringBuilder class.
11861         * marshal.c: Set the maxCapacity when creating a StringBuilder.
11862
11863 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
11864
11865         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
11866         threads before shutting down the runtime.
11867
11868         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
11869
11870 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11871
11872         * object-internal.h, threads.c: implement stacksize and 
11873         parameterized thread start functionality (requires
11874         matching corlib). Marked broken code for later removal.
11875
11876 2005-01-12  Martin Baulig  <martin@ximian.com>
11877
11878         * class-internals.h (MonoGenericClass): Moved the `initialized'
11879         flag to MonoDynamicGenericClass, removed `init_pending'.
11880         (MonoGenericInst): Added `is_reference' flag.
11881
11882 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
11883
11884         * reflection.c (mono_image_create_pefile): Only set the pe_offset
11885         inside the MSDOS header. Fixes #71201.
11886
11887         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
11888         gc thread.
11889         (mono_domain_finalize): Ditto.
11890
11891 2005-01-12  Martin Baulig  <martin@ximian.com>
11892
11893         * class.c (mono_get_shared_generic_class): Use the cache for
11894         non-dynamic generic classes.
11895
11896         * class-internals.h (mono_class_create_generic_2): Removed
11897         function prototype, this function is now static inside class.c.
11898
11899         * class.c (mono_class_create_generic_2): Made this static, only
11900         call it from mono_class_init() and mono_class_setup_parent().
11901         (collect_implemented_interfaces_aux): Call mono_class_init() on
11902         the interfaces we collect.
11903         (mono_class_setup_vtable): Call mono_class_init (class->parent).
11904
11905 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
11906
11907         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
11908         it a real thread handle.
11909
11910         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
11911         MonoJitExceptionInfo, since each catch clause needs its own variable.
11912         
11913 2005-01-11  Dick Porter  <dick@ximian.com>
11914
11915         * image.c (mono_pe_file_open): New variant on mono_image_open()
11916         that does not set up the CLI metadata; used for FileVersionInfo so
11917         it can get the data for windows binaries too.
11918         
11919         * process.c (process_read_string_block): Don't read off the end of
11920         the StringTable block.
11921
11922         These both fix bug 70766.
11923
11924 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
11925
11926         * gc.c: set some fields to NULL at GC cleanup time.
11927         * threads.c: if we quit the main thread, call exit ().
11928
11929 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
11930
11931         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
11932
11933 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
11934
11935         * threads.h, threads.c, object.c: added accessor and settor for
11936         main_thread. Handle it specially when exiting from it: wait
11937         for other foreground threads to exit.
11938
11939 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
11940
11941         * process.c, verify.c: remove some bloat.
11942
11943 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
11944
11945         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
11946         the calling convention to cdecl under win32.
11947
11948 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
11949
11950         * object.c (mono_object_get_size): New function to get the size of
11951         an object instance.
11952
11953         * profiler.c (simple_allocation): Use above.
11954
11955 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
11956
11957         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
11958         ves_icall_System_AppDomain_getRootDomain (as it's not required to
11959         get an appdomain by it's id and we can't assume the root's id is 0).
11960         * domain-internals.h: Change the function prototype to match.
11961         * icall.c: Change the icall table for AppDomain.
11962
11963 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
11964
11965         * locales.c (string_invariant_compare_char): Only compute
11966         GUnicodeTypes in the case where we need them.  Test for ordinality
11967         first and return if so.
11968
11969         From the commit:
11970
11971                 /*
11972                  * FIXME: here we must use the information from c1type and c2type
11973                  * to find out the proper collation, even on the InvariantCulture, the
11974                  * sorting is not done by computing the unicode values, but their
11975                  * actual sort order.
11976                  */
11977
11978 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
11979
11980         * loader.c: for P/Invoke methods, allow the "Internal" shared
11981         library name to refer to the calling process symbol namespace.
11982
11983 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
11984
11985         * Makefile.am: Add the security manager to the build.
11986         * security-manager.c|h: New. Initialization of the security manager.
11987
11988 2005-01-07  Dick Porter  <dick@ximian.com>
11989
11990         * threads.c: 
11991         * monitor.c: Update thread state during Monitor and WaitHandle
11992         waits.  Fixes bug 71031.
11993
11994 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
11995
11996         * reflection.c (property_encode_signature): Correctly handle when the
11997         property has no methods.
11998
11999 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
12000
12001         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
12002         
12003         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
12004         fields from mb, not rmb. Fixes #71017.
12005
12006         * marshal.c (emit_ptr_to_str_conv): Add support for 
12007         ByValTStr -> string conversion. Fixes #71015.
12008
12009         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
12010
12011         * mempool.c (mono_mempool_contains_addr): New helper function.
12012
12013 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
12014
12015         * metadata.c (mono_metadata_compute_size): Fix size calculation of
12016         HasSematics encoded fields.
12017         
12018         * metadata.c (mono_type_to_unmanaged): Improve error message for 
12019         invalid string marshalling.
12020
12021         * metadata.c: Fix warnings.
12022         
12023 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
12024
12025         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
12026         profiler support.
12027
12028 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
12029
12030         * domain.c object.c domain-internals.h: Revert part of r38077 since the
12031         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
12032         tests.
12033
12034 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
12035
12036         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
12037         so methods containing these can be AOTed.
12038
12039 2005-01-03  Martin Baulig  <martin@ximian.com>
12040
12041         * loader.c (find_method): Removed the hack for generic instances.
12042         (method_from_memberref): If our parent is a generic instance, pass
12043         its generic type definition to find_method() and then inflate the
12044         method.
12045         (mono_get_method_constrained): Pass the generic type definition to
12046         find_method() and inflate the method later.
12047
12048         * class-internals.h (MonoStats): Added `generic_class_count'.
12049
12050         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
12051         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
12052
12053         * reflection.c (mono_custom_attrs_from_params): Don't ignore
12054         generic type definitions.
12055
12056 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
12057
12058         * loader.c icall.c: Fix warnings.
12059
12060 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
12061
12062         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
12063         blittable types. Fixes #70864.
12064
12065 2004-12-29  Martin Baulig  <martin@ximian.com>
12066
12067         * icall.c
12068         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
12069
12070         * reflection.c (mono_method_get_object): Create a
12071         "System.Reflection.MonoGenericMethod" for inflated methods; don't
12072         call mono_get_inflated_method().
12073
12074         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
12075
12076 2004-12-27  Martin Baulig  <martin@ximian.com>
12077
12078         * class-internals.h (MonoMethod): Added `is_inflated' flag.
12079         (MonoMethodInflated): Added `inflated' field.
12080
12081         * class.c (mono_class_inflate_generic_method): Don't really
12082         inflate the method here; just set the `is_inflated' flag in the
12083         MonoMethod.
12084         (mono_class_get_inflated_method): Actually inflate the method here
12085         if it's not already inflated; we use the MonoMethodInflated's new
12086         `inflated' field as a cache.
12087
12088 2004-12-26  Martin Baulig  <martin@ximian.com>
12089
12090         * class.c
12091         (inflate_generic_class): Moved some code out of inflate_generic_type().
12092         (mono_class_inflate_generic_method): If we're already inflated,
12093         inflate the context and use the declaring method; ie. make sure
12094         the declaring method of an inflated method is always the generic
12095         method definition.
12096         (mono_class_create_from_typedef): Create
12097         `class->generic_container->context->gclass'.
12098
12099 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
12100
12101         * metadata-internals.h, marshal.c, reflection.c: More
12102         MonoGHashTable->GHashTable.
12103
12104         * domain-internals.h, class.c: Change MonoGHashTable's into
12105         GHashTables for some cases where no gc stuff is used
12106
12107         All users: update apis
12108
12109 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
12110
12111         * metadata.c (builtin_types): Make this `const'. Makes this get
12112         put into the shareable section.
12113         (mono_metadata_init): Casts to make gcc happy.
12114
12115 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
12116
12117         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
12118
12119 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
12120
12121         * icall.c: Added an internal call to retrieve the position and length
12122         of assembly-level declarative security attributes (RequestMinimum, 
12123         RequestOptional and RequestRefuse). This is used by the Assembly class
12124         to re-create the corresponding permission sets.
12125
12126 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
12127
12128         * marshal.c: fix the stelemref wrapper to be type correct
12129         (and faster).
12130
12131 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
12132
12133         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
12134         to do key & 0x7fffffff. Hashtable already does this. It just
12135         results in longer code.
12136
12137 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
12138
12139         * appdomain.c: Bump corlib version.
12140         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
12141         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
12142         * reflection.c|h: Add functions to get declarative security infos
12143         (blob position and length) for assemblies, classes and methods.
12144
12145 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
12146
12147         * reflection.c: sort the constant table (bug #70693).
12148
12149 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
12150
12151         * object-internals.h, threads.c, domain.c: add accessors for
12152         the MonoThread and MonoDomain tls keys.
12153
12154 2004-12-18  Martin Baulig  <martin@ximian.com>
12155
12156         * class.c (inflate_generic_type): If we're inflating a generic
12157         instance, set `ngclass->context->container = context->container';
12158         ie. the container we inflated into.
12159
12160         * metadata.c (mono_metadata_parse_generic_param): Reflect above
12161         inflate_generic_type() changes.
12162
12163 2004-12-17  Martin Baulig  <martin@ximian.com>
12164
12165         * class-internals.h
12166         (MonoGenericClass): Replaced `MonoType *generic_type' with
12167         `MonoClass *generic_class'.  Removed `dynamic_info'; if
12168         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
12169         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
12170
12171 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
12172
12173         * exception.c (mono_exception_from_token): New helper function.
12174
12175 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
12176
12177         * assembly.c (mono_assembly_load_with_partial_name): Call 
12178         mono_assembly_loaded before invoking the preload hooks. Fixes
12179         #70564.
12180
12181         * object-internals.h (MonoThread): Change culture_info and 
12182         ui_culture_info into an array.
12183
12184         * threads.c: Cache culture info objects from more than one appdomain.
12185
12186         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
12187         current UI culture.
12188
12189 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
12190
12191         * threads.h threads.c appdomain.c: Clear the culture_info field of
12192         all threads during unloading if they point to an object in the dying
12193         appdomain.
12194
12195 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
12196
12197         * culture-info.h (TextInfoEntry): New struct
12198         * object-internals.h: sync with managed
12199         * locales.c: fill the `text_info_data' field
12200         * culture-info-tables.h: update
12201
12202 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
12203
12204         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
12205         collector.
12206
12207 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
12208
12209         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
12210         (ves_icall_ModuleBuilder_getMethodToken): Ditto
12211
12212 2004-12-12  Martin Baulig  <martin@ximian.com>
12213
12214         * mono-debug-debugger.c (write_type): If we're an enum and the
12215         builtin types have already been initialized, call mono_class_init().
12216
12217 2004-12-11  Martin Baulig  <martin@ximian.com>
12218
12219         * metadata.c (mono_metadata_load_generic_params): Added
12220         `MonoGenericContainer *parent_container' argument; automatically
12221         compute `container->is_method'; pass the correct owner to
12222         get_constraints().      
12223
12224         * reflection.c (compare_genericparam): Sort the GenericParam table
12225         according to increasing owners. 
12226
12227 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
12228
12229         * profiler.c: allow disabling the default profiler.
12230
12231 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
12232
12233         * decimal.c, icall.c: allow disabling System.Decimal support.
12234
12235 2004-12-09  Marek Safar <marek.safar@seznam.cz>
12236
12237         * reflection.c: Add support for null attribute arguments.
12238
12239 2004-12-09  Martin Baulig  <martin@ximian.com>
12240
12241         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
12242         names to get rid of compiler warnings.
12243
12244 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
12245
12246         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
12247         mono_marshal_load_type_info (). Fixes #69625.
12248         (mono_marshal_get_ptr_to_struct): Likewise.
12249
12250 2004-12-08  Martin Baulig  <martin@ximian.com>
12251
12252         * mono-debug.h: Bumped version number to 47.
12253
12254         * mono-debug-debugger.c
12255         (mono_debugger_event_handler, mono_debugger_event): Take two
12256         guint64 arguments insteed of a gpointer and a guint32.  
12257
12258 2004-12-08  Martin Baulig  <martin@ximian.com>
12259
12260         * debug-mono-symfile.h
12261         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
12262         `address' to `native_offset'.
12263
12264 2004-12-08  Martin Baulig  <martin@ximian.com>
12265
12266         * class.c (mono_class_create_from_typespec): Only inflate if we
12267         either have `context->gclass' or `context->gmethod'.
12268
12269 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
12270
12271         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
12272
12273         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
12274
12275         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
12276
12277         * reflection.c (mono_assembly_get_object): Remove the workaround put
12278         in for the release.
12279         
12280         * appdomain.c: Use the corlib_internal field from MonoAssembly.
12281
12282         * appdomain.c: Bump corlib version.
12283
12284         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
12285         be visible in other appdomains.
12286
12287 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
12288
12289         * threads.c: Interlocked inc and dec for longs were messed up,
12290         use a KISS based impl for this. Fixes 70234
12291
12292 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
12293
12294         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
12295
12296 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12297
12298         * icall.c: fix to follow policy not to allow struct
12299         arguments in icalls.
12300
12301 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12302
12303         * process.c: make the patch that handles spaces in file paths work
12304         on mono/windows too.
12305
12306 2004-12-06  Martin Baulig  <martin@ximian.com>
12307
12308         * class.c (mono_class_create_generic): Call
12309         mono_class_setup_supertypes() if we're dynamic.
12310         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
12311
12312 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
12313
12314         * object-internals.h: Add new fields to MonoThread.
12315
12316         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12317
12318         * icall.c threads-types.h threads.c: Add new icalls.
12319
12320         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
12321
12322         * object-internals.h (MonoReflectionAssembly): Sync object layout with
12323         managed side.
12324
12325         * appdomain.c: Bump corlib version.
12326
12327         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
12328         internal assemblies. Fixes #69181.
12329
12330 2004-12-05  Martin Baulig  <martin@ximian.com>
12331
12332         * class.c (mono_class_inflate_generic_signature): Make this a
12333         no-op if `context' is NULL or we don't have any type parameters;
12334         also copy `sentinelpos'.        
12335
12336 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
12337
12338         * image.c: Add unbox_wrapper_cache.
12339
12340         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
12341
12342         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
12343         function generator.
12344         
12345         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
12346         Fixes #70173.
12347
12348         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
12349         
12350 2004-12-04  Martin Baulig  <martin@ximian.com>
12351
12352         * loader.c (mono_method_get_signature_full): New public function;
12353         like mono_method_get_signature(), but with an additional
12354         `MonoGenericContext *' argument.
12355
12356         * class.c (mono_class_inflate_generic_signature): Formerly known
12357         as inflate_generic_signature(); make this public.
12358
12359 2004-12-04  Martin Baulig  <martin@ximian.com>
12360
12361         * metadata.c
12362         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
12363         instead of a `MonoGenericContainer *'.  
12364         (mono_metadata_parse_array_full): Likewise.
12365         (mono_metadata_parse_signature_full): Likewise.
12366         (mono_metadata_parse_method_signature_full): Likewise.
12367         (mono_metadata_parse_generic_inst): Likewise.
12368         (mono_metadata_parse_generic_param): Likewise.
12369         (mono_metadata_parse_mh_full): Likewise.
12370         (mono_type_create_from_typespec_full): Likewise.
12371
12372 2004-12-03  Martin Baulig  <martin@ximian.com>
12373
12374         * class-internals.h (MonoGenericContainer): Replaced the
12375         `MonoGenericContext * pointer with a `MonoGenericContext'
12376         structure and made it the first element.
12377
12378 2004-12-03  Martin Baulig  <martin@ximian.com>
12379
12380         * class.c
12381         (inflate_generic_type): Set the `context->container' when creating
12382         a new MonoGenericContext.
12383         (mono_class_inflate_generic_method): Likewise.
12384         (mono_class_create_from_typespec): Just use `context->container'
12385         to get the container.
12386
12387         * loader.c (method_from_methodspec): Set `context->parent' from
12388         `context->container' - and if that's a method container, use its
12389         parent.  Also set the `context->container' when creating a new
12390         MonoGenericContext.
12391         (mono_get_method_from_token): Use just `context->container' to get
12392         the container.
12393
12394         * metadata.c (do_mono_metadata_parse_generic_class): Also set
12395         `gclass->context->container'.
12396
12397         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
12398         the `context->container' when creating a new MonoGenericContext.
12399
12400 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
12401
12402         * reflection.c (compare_genericparam): Sort params with identical
12403         owner by their number. Fixes gen-111 on sparc.
12404
12405 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
12406
12407         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
12408         around the domain changes.
12409
12410         * appdomain.c (mono_domain_unload): Handle the case when the thread
12411         calling Unload is itself being aborted during unloading. Fixes #70022.
12412
12413         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
12414
12415         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
12416         checkpoint_func as an icall so it gets a wrapper.
12417         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
12418         in the cross-appdomain wrappers too.
12419
12420         * threads.c (mono_thread_has_appdomain_ref): Make this public.
12421
12422         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
12423
12424         * reflection.c: Fix some memory leaks.
12425         
12426 2004-12-02  Martin Baulig  <martin@ximian.com>
12427
12428         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
12429
12430         * metadata.c (generic_class_cache): New static hashtable.
12431         (mono_metadata_lookup_generic_class): New public method.
12432
12433 2004-12-02  Martin Baulig  <martin@ximian.com>
12434
12435         * class.c (mono_class_create_from_typedef): Call
12436         mono_class_setup_parent() and mono_class_create_mono_type() before
12437         parsing the interfaces.
12438
12439 2004-12-02  Martin Baulig  <martin@ximian.com>
12440
12441         * metadata.c (generic_inst_cache): New static hashtable.
12442         (mono_metadata_lookup_generic_inst): New public function.
12443         (mono_metadata_inflate_generic_inst): New public function.
12444         (mono_metadata_parse_generic_inst): New public function.
12445         (do_mono_metadata_parse_generic_class): Use the new
12446         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
12447         since this'll also use the cache.
12448
12449         * reflection.c (mono_reflection_bind_generic_method_parameters):
12450         Use mono_metadata_lookup_generic_inst() to use the new cache.
12451
12452         * class.c (inflate_mono_type): Use
12453         mono_metadata_inflate_generic_inst() to inflate a generic
12454         instance; this'll also use the new cache.
12455
12456         * loader.c (method_from_methodspec): Use
12457         mono_metadata_parse_generic_inst() and
12458         mono_metadata_inflate_generic_inst() rather than parsing it
12459         manually, so we can use the new cache.
12460
12461 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
12462
12463         * threads.c (wait_for_tids): Do not incorrectly free threads when 
12464         the wait times out.
12465
12466 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
12467
12468         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
12469         iter->args based on whether parameters are passed in registers (i.e.
12470         MONO_ARCH_REGPARMS is defined)
12471
12472 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
12473
12474         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
12475         the exception message. Fixes #70070.
12476         (method_from_methodspec): Fix warnings.
12477
12478 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12479
12480         * process.c: (complete_path) return the path quoted
12481
12482 2004-12-01  Martin Baulig  <martin@ximian.com>
12483
12484         * class-internals.h (MonoGenericInst): New structure.
12485         (MonoGenericClass): Replaced `type_argc', `type_argv' and
12486         `is_open' with `MonoGenericInst *inst'.
12487         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
12488         `is_open' with `MonoGenericInst *inst'.
12489
12490 2004-11-30  Martin Baulig  <martin@ximian.com>
12491
12492         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
12493
12494         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
12495         to `generic_class_cache'.
12496
12497         * metadata.c
12498         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
12499         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
12500         (mono_generic_inst_is_valuetype): Renamed to
12501         mono_generic_class_is_valuetype().
12502
12503         * class-internals.h
12504         (MonoGenericInst): Renamed to MonoGenericClass.
12505         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
12506         (MonoClass): Renamed `generic_inst' to `generic_class'.
12507         (MonoGenericContext): Renamed `ginst' to `gclass'.
12508
12509         * object-internals.h
12510         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
12511
12512         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
12513         mono_reflection_generic_class_initialize().
12514
12515         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
12516         now known as "System.Reflection.MonoGenericClass".
12517         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
12518
12519 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
12520
12521         * class-internals.h: Added a flag field to MonoClass to cache the
12522         declarative security attributes actions associated with the class.
12523         * domain-internals.h: Added booleans to MonoJitInfo to cache the
12524         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
12525         applicable to the JITted method.
12526         * reflection.c|h: Added functions to extract (as flags) which security
12527         actions are available (declaratively) for a method, class or assembly.
12528         * metadata.c|h: Added functions to search the declarative security
12529         table in the metadata.
12530         
12531 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
12532
12533         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
12534         EXPORTEDTYPES are already in the class name cache, so there is no
12535         need to add extra code here to look at them. Just removes a bit of
12536         cruft.
12537
12538         (ves_icall_System_Environment_get_TickCount): No need for #if
12539         WINDOWS. We already have the code in io-layer.
12540
12541 2004-11-28  Martin Baulig  <martin@ximian.com>
12542
12543         * loader.c
12544         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
12545         Fixes gen-112.cs.
12546
12547 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
12548
12549         * assembly.c (do_mono_assembly_open): Instead of having a
12550         conditional WITH_BUNDLE, incorporate support for bundles here, by
12551         having a global `bundles' variable holding a pointer to the actual
12552         bundles. 
12553
12554         (mono_register_bundled_assemblies): New API call used by the
12555         bundle code. 
12556
12557         See mkbundle.1 for details.
12558         
12559 2004-11-27  Martin Baulig  <martin@ximian.com>
12560
12561         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
12562         the vtable for generic methods.
12563
12564 2004-11-26  Martin Baulig  <martin@ximian.com>
12565
12566         * metadata.c
12567         (mono_metadata_generic_method_hash): New public function.
12568         (mono_metadata_generic_method_equal): Likewise.
12569
12570         * class-internals.h
12571         (MonoGenericContainer): Added `GHashTable *method_hash'.
12572
12573         * reflection.c (ReflectionMethodBuilder): Added
12574         `MonoGenericContainer *generic_container'.
12575         (reflection_methodbuilder_to_mono_method): Don't create a new
12576         MonoGenericContainer each time we're called.
12577         (mono_reflection_bind_generic_method_parameters): Use
12578         `container->method_hash' to cache the results so we don't create a
12579         different method if we're called several times with the same
12580         arguments.
12581
12582         * loader.c (method_from_methodspec): Use the new
12583         `container->method_hash' here, too.
12584
12585 2004-11-26  Martin Baulig  <martin@ximian.com>
12586
12587         * class.c (inflate_generic_signature): Correctly compute
12588         `res->has_type_parameters'.
12589         (mono_class_vtable): Use the `has_type_parameters' flag to
12590         determine whether we're a generic method.
12591
12592         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
12593
12594 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
12595
12596         * object.c (mono_runtime_run_main): Fix a small memory leak.
12597
12598 2004-11-25  Martin Baulig  <martin@ximian.com>
12599
12600         * class.c (set_generic_param_owner): Fixed the loop.
12601
12602 2004-11-25  Martin Baulig  <martin@ximian.com>
12603
12604         * object.c (mono_class_vtable): Don't create any JIT wrappers for
12605         generic methods.
12606
12607 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
12608
12609         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
12610         names. Fixes #69787.
12611
12612 2004-11-24  Martin Baulig  <martin@ximian.com>
12613
12614         * class.c (mono_class_create_generic_2): If we don't have a
12615         `ginst->parent', inflate `gklass->parent' to get our parent.
12616
12617 2004-11-24  Martin Baulig  <martin@ximian.com>
12618
12619         * reflection.c (compare_genericparam): Correctly sort the
12620         GenericParam table; fixes #69779.
12621
12622 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
12623
12624         * reflection.c: When writing a PE file, don't create a huge
12625         buffer in memory. Just write the arrays we have to the file.
12626         This reduces memory usage.
12627
12628         * metadata-internals.h: MonoDynamicStream pefile is no longer used
12629         globally.
12630
12631 2004-11-17  Martin Baulig  <martin@ximian.com>
12632
12633         * class.c (mono_class_init): Don't setup `class->parent' for
12634         dynamic instances; moved this to mono_class_generic_2().
12635         (mono_class_create_generic): Also set `klass->inited' for dynamic
12636         generic instances.
12637         (mono_class_create_generic_2): Don't do anything for dynamic
12638         generic instances.  Set `klass->parent' here and also call
12639         mono_class_setup_parent() here. 
12640
12641         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
12642         `MonoType *parent' argument; set `ginst->parent' before calling
12643         mono_class_create_generic_2(), so we set the correct parent.
12644
12645 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
12646
12647         * reflection.c: allow getting attributes from ModuleBuilder
12648         (used by ikvm).
12649
12650 2004-11-17  Martin Baulig  <martin@ximian.com>
12651
12652         * class.c (mono_class_create_from_typedef): If a type parameter is
12653         inherited from an outer class, set its owner to that class.
12654
12655 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
12656
12657         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
12658           for (int*) written size. This fixes bug #69592.
12659
12660 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
12661
12662         * icall.c: Added IsAuthenticodePresnet internal call.
12663         * image.c|h: New function that check a MonoImage for an Authenticode
12664         signature in the certificate PE data directory.
12665         * security.c|h: New internal call to ask the runtime if an 
12666         Authenticode signature seems referenced in the PE header.
12667
12668 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
12669
12670         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
12671
12672         * reflection.c (mono_image_create_pefile): Free the assembly streams
12673         after writing out the assembly file.
12674
12675         * object.c (mono_runtime_run_main): Fix small memory leak.
12676
12677         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
12678         property access modifiers. Fixes #69389.
12679
12680 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
12681
12682         * domain.c, object.c, object-internals.h, domain-internals.h,
12683         object.h, marshal.c: keep dynamic code info per domain.
12684
12685 2004-11-15  Martin Baulig  <martin@ximian.com>
12686
12687         * class.c (mono_type_get_name_recurse): Put type arguments in
12688         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
12689         see bug #68387.
12690
12691 2004-11-15  Martin Baulig  <martin@ximian.com>
12692
12693         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
12694         (mono_class_setup_vtable): When computing `the_cname' for a
12695         generic instance, don't include the namespace since we'd otherwise
12696         add it twice.
12697
12698 2004-11-15  Martin Baulig  <martin@ximian.com>
12699
12700         * class.c (mono_class_create_generic): Changed return type to void.
12701         (mono_class_create_generic_2): New public function; setup
12702         `class->method', `class->field' and `class->interfaces' here
12703         instead of in mono_class_init().
12704
12705         * class.h (mono_class_create_generic): Moved to class-internals.h.
12706
12707 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
12708
12709         * reflection.c (mono_image_create_pefile): take a file HANDLE.
12710         rather than writing to memory, write to this file. Right now,
12711         we are just writting into a buffer, and copying that. However
12712         we can avoid the buffer later.
12713
12714         (mono_dynamic_stream_reset): new function
12715
12716         * icall.c, object-internals.h: update for the above.
12717
12718 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
12719
12720         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
12721         have been using gc'd memory. First it is slower, unlikely
12722         the comment in the source code said, secondly, it increases
12723         our footprint to do it in the gc.
12724
12725         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
12726         the method so that it does not have to copy to managed code.
12727
12728 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
12729
12730         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
12731
12732 2004-11-12  Martin Baulig  <martin@localhost>
12733
12734         * reflection.c (mono_image_create_token): Allow generic method
12735         definitions here, since they may appear in an `.override'; see
12736         gen-98/gen-99 for an example.
12737
12738 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
12739
12740         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
12741         #69365.
12742
12743         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
12744         descriptive.
12745
12746 2004-11-11  Martin Baulig  <martin@ximian.com>
12747
12748         * class.c (mono_class_setup_vtable): In an explicit interface
12749         implementation, the method name now includes the arity.
12750
12751 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
12752
12753         * object.c (mono_array_full_copy): Fix warning.
12754
12755 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
12756
12757         * appdomain.c: Removed look_for_method_by_name(). Use the new method
12758         mono_class_get_method_from_name() instead.
12759         
12760         * class-internals.h: Added two new types of wrappers. 
12761         Added MonoRemotingTarget enum. Added new trampoline function type, which
12762         takes an additional MonoRemotingTarget value as parameter, so it is
12763         possible to request a trampoline for a specific target.
12764         
12765         * class.c: Added new mono_class_get_method_from_name() method.
12766         
12767         * class.h: In MonoRemoteClass, we can have now to vtables, one for
12768         general remoting sinks and one specific for cross domain calls.
12769         
12770         * debug-helpers.c: Added new wrapper names.
12771         
12772         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
12773         of a remote class.
12774         
12775         * image.c: Porperly delete value objects form the remoting invoke hashtable.
12776         
12777         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
12778         with several other methods (mono_marshal_get_xappdomain_dispatch,
12779         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
12780         and others) can generate a fast remoting wrapper for cross domain calls.
12781         More information can be found in docs/remoting.
12782         Other changes: Removed mono_find_method_by_name, and used
12783         mono_class_get_method_from_name instead.
12784         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
12785         is stored in the remoting invoke hashtable.
12786         
12787         * marshal.h: published the new method for getting the xdomain wrapper,
12788         and also added a method for getting the adequate wrapper for a given
12789         method and target.
12790         
12791         * object-internals.h, object.c: Added a couple of methods for capying and
12792         cloning arrays.
12793         Modified mono_install_remoting_trampoline, which takes the new remoting
12794         trampoline that has a remoting target as parameter.
12795         mono_class_proxy_vtable now also takes a remoting target as parameter, and
12796         will return the most suitable vtable for the target.
12797         Added mono_remote_class_vtable, which returns the vtable of a remote class
12798         (which can be the normal remoting vtable or the xdomain vtable).
12799         
12800         * threads.c: the xdomain invoke and dispatch wrappers must also be
12801         protected against interruptions.
12802
12803 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12804
12805         * icall.c: use memmove in BlockCopyInternal when the source and
12806         destination arrays are the same.
12807
12808 2004-11-09  Martin Baulig  <martin@ximian.com>
12809
12810         * class-internals.h (MonoGenericContainer): Removed `method' and
12811         `signature', replaced them with `is_method' and `is_signature'
12812         flags.  Added `context'.
12813
12814         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
12815         instead of a `MonoGenericContainer *'.
12816
12817         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
12818         for dynamic type parameters.
12819         (mono_metadata_load_generic_params): Setup `container->context'.
12820
12821         * reflection.c (mono_reflection_setup_generic_class): Setup
12822         `tb->generic_container->context'.
12823         (do_mono_reflection_bind_generic_parameters): Use
12824         mono_class_inflate_generic_type() to correctly inflate types,
12825         rather than using our own hack just for MONO_TYPE_VAR.
12826
12827 2004-11-09  Martin Baulig  <martin@ximian.com>
12828
12829         * class.c (mono_class_inflate_generic_method): Small fix; don't
12830         crash here.
12831
12832         * icall.c
12833         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
12834         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
12835         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
12836         (ves_icall_Type_BindGenericParameters): Likewise.
12837         (ves_icall_Type_get_IsGenericInstance): Likewise.
12838         (ves_icall_Type_GetGenericParameterPosition): Likewise.
12839         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
12840         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
12841         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
12842
12843 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
12844
12845         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
12846         assembly versions and public key tokens. Fixes #69113.
12847
12848 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
12849
12850         * metadata.c: fix bug introduced with the type cache changes
12851         on 2004-11-06.
12852
12853 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
12854
12855         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
12856         the MonoClass pointer instead of the token in exception clauses.
12857         * reflection.c: updates for the above and make the code not depend
12858         on the structure of MonoExceptionClause.
12859
12860 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
12861
12862         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12863         Add support for dynamic assemblies. Fixes #69114.
12864
12865         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
12866
12867 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
12868
12869         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
12870         since most only those methods use it. the code member of
12871         MonoMethodPInvoke was dead, so that can be removed too. Also,
12872         remove inline_count (again, not used), and move slot so that it
12873         can share bits with some other flags. This saves 8 bytes in the
12874         structure and gives us about 50 kb back for mcs helloworld.cs
12875
12876         * *.[ch]: Do naming changes for the above.
12877
12878         * loader.c (mono_method_get_header): Lazily init the header
12879         on first access.
12880         (mono_get_method_from_token): don't init the header here
12881         (mono_free_method): the header may never be allocated
12882
12883         Overall, this saves 150 kb of unmanaged allocations
12884         for mcs helloworld.cs. That accounts for 10% of the unmanaged
12885         memory at runtime.
12886         
12887         * loader.c, loader.h (mono_method_get_header): new accessor.
12888
12889         * *.[ch]: use the above method. Prepares us to lazily load
12890         the header.
12891
12892         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
12893         three warnings, which are actual bugs (see 69206).
12894
12895         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
12896         unused. Saves a cool 4 bytes / method.
12897
12898 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
12899
12900         * metadata.c (builtin_types): Add types for System.Object here.
12901         (mono_metadata_parse_type_full): Cache MonoType*'s that are
12902         for a class or valuetype from klass->this_arg or klass->byval_arg.
12903
12904         On mcs for a hello world, this gets us down from 21836 MonoType's
12905         to 14560.
12906
12907         (mono_metadata_free_type): Account for the above change.
12908
12909 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
12910
12911         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
12912         exception instead of asserting if name is null.
12913         (ves_icall_System_AppDomain_GetData): Ditto.
12914
12915 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
12916
12917         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
12918         EnumBuilder.
12919
12920         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
12921         Return NULL when the domain does not have entry_assembly set.
12922
12923         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
12924         Add a 'resource_modules' argument.
12925         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
12926
12927         * reflection.c (mono_reflection_create_runtime_class): Move setting
12928         of wastypebuilder here, so mono_get_type_object () returns a MonoType
12929         for enums too.
12930
12931         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
12932         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
12933         Throw an ArgumentNullException if 'ptr' is null.
12934
12935         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
12936         assemblies here. Fixes #69020.
12937
12938 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
12939
12940         * reflection.c (build_compressed_metadata): Fix the previous patch for
12941         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
12942         the stack.
12943
12944 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
12945
12946         * assembly.c (mono_assembly_names_equal): Allow a match if one of
12947         the cultures is false. Fixes #69090.
12948
12949         * reflection.c (build_compressed_metadata): Fix invalid memory read 
12950         detected by valgrind.
12951         
12952         * reflection.c (mono_reflection_get_type): Avoid triggering a 
12953         TypeResolve multiple times for the same type. Fixes #65577.
12954
12955 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
12956
12957         * marshal.c: Avoid using ldftn to call managed functions. It is
12958         much slower than just a call.
12959
12960         * reflection.c (mono_module_get_object): free the basename we
12961         allocate here from glib.
12962         
12963         * reflection.c (ensure_runtime_vtable): make sure to free
12964         overrides.  Also, we were allocating an array of MonoMethod not an
12965         array of MonoMethod*.
12966
12967         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
12968
12969         * image.c (mono_image_close): free image->guid here.
12970
12971 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
12972
12973         * reflection.c: Fix some spec conformance issues with the PE file
12974         structures so mcs compiled apps run on the Net 2.0 beta.
12975
12976 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
12977
12978         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
12979         Implement this. Fixes #67264.
12980
12981         * debug-helpers.h debug-helpers.c marshal.c: Move 
12982         mono_find_method_by_name to debug-helpers.c.
12983
12984 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
12985
12986         * object.c (mono_release_type_locks): type_initialization_hash is
12987         a GHashTable.
12988
12989         * reflection.c object.c object-internals.h: Fix warnings.
12990
12991         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
12992         without accessors. Fixes #61561.
12993
12994         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
12995         application base from the root domain if not set. Fixes #65641.
12996         (mono_runtime_init): Fix warning.
12997
12998 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12999
13000         * appdomain.c: call mono_thread_pool_init.
13001         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
13002         of worker threads based on the number of CPUs and the environment
13003         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
13004         for non-windows (windows) systems.
13005
13006 2004-10-27  Chris Toshok  <toshok@ximian.com>
13007
13008         * mono-debug-debugger.c (write_class): don't call mono_class_init
13009         here, as even with the check for (!klass->init_pending), we get
13010         into a situation where we're hitting cycles in class
13011         initialization.  Fixes #68816.
13012
13013 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
13014
13015         * image.c: Avoid overwriting values in the loaded_images_hash when an
13016         assembly is loaded multiple times. Fixes #61152.
13017
13018         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
13019         so multiple satellite assemblies for the same name can be loaded.
13020         Fixes #68259.
13021
13022         * mono_domain_assembly_preload: Actually return the loaded assembly, 
13023         not NULL.
13024
13025         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
13026         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
13027
13028         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
13029         pending finalizers are not invoked after the appdomain has been 
13030         unloaded. Fixes #67862.
13031
13032 2004-10-22  Martin Baulig  <martin@ximian.com>
13033
13034         * mono-debug-debugger.c
13035         (mono_debugger_runtime_invoke): Don't box valuetypes.
13036
13037 2004-10-22  Chris Toshok  <toshok@ximian.com>
13038
13039         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
13040         don't hide private methods.
13041
13042 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
13043
13044         * icall.c: Allows the runtime to "share" (when known) the public key
13045         token of an assembly. This avoid the need to recalculate the token 
13046         (from the public key) in managed code.
13047
13048 2004-10-21  Chris Toshok  <toshok@ximian.com>
13049
13050         * debug-helpers.c (append_class_name): argh, revert last patch.
13051         
13052 2004-10-21  Chris Toshok  <toshok@ximian.com>
13053
13054         * debug-helpers.c (append_class_name): use '+' as the delimiter,
13055         not '/', so that it matches what the debugger uses to look up
13056         methods.
13057
13058 2004-10-21  Martin Baulig  <martin@ximian.com>
13059
13060         * mono-debug-debugger.c (mono_debugger_throw_exception): New
13061         public method; this is called each time an exception is thrown and
13062         allows the debugger to use exception catch points.
13063
13064 2004-10-21  Martin Baulig  <martin@ximian.com>
13065
13066         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
13067         the stack pointer and the exception object in some struct and pass
13068         that to the debugger.
13069
13070 2004-10-21  Chris Toshok  <toshok@ximian.com>
13071
13072         * mono-debug-debugger.c (do_write_class): add instance/static
13073         event support.  We don't expose "raise" or "other" yet.
13074         (event_is_static): new method.
13075
13076 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
13077
13078         * mono-debug-debugger.c
13079         (mono_debugger_handle_exception): Remove
13080         bogus return value for fussy compilers.
13081
13082 2004-10-20  Martin Baulig  <martin@ximian.com>
13083
13084         * mono-debug-debugger.c
13085         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
13086         (mono_debugger_handled_exception): Likewise.
13087
13088 2004-10-20  Martin Baulig  <martin@ximian.com>
13089
13090         * mono-debug-debugger.h (MonoDebuggerEvent): Added
13091         MONO_DEBUGGER_EVENT_EXCEPTION.
13092
13093         * mono-debug-debugger.c (mono_debugger_handle_exception): New
13094         public function to send the debugger a notification for an
13095         exception and inform it about a catch/finally clause.
13096
13097 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
13098
13099         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
13100         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
13101         fix 2.95 build. 
13102
13103         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
13104
13105 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
13106
13107         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
13108         marshalled as [In,Out]. Fixes #58325.
13109
13110 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
13111
13112         * reflection.c (mono_method_body_get_object): Implement some fields.
13113
13114 2004-10-12  Martin Baulig  <martin@ximian.com>
13115
13116         * reflection.c (mono_reflection_bind_generic_parameters): Small
13117         fix, correctly retrieve our parent from a generic instance.
13118
13119 2004-10-12  Martin Baulig  <martin@ximian.com>
13120
13121         * metadata.c (mono_metadata_generic_param_equal): We always have
13122         an owner.
13123
13124         * class.c
13125         (mono_class_from_generic_parameter): We need to have an owner.
13126         (my_mono_class_from_generic_parameter): Likewise.
13127
13128         * reflection.c (mono_reflection_setup_generic_class): Renamed to
13129         mono_reflection_create_generic_class() and added a new
13130         mono_reflection_setup_generic_class().  
13131         (mono_reflection_initialize_generic_param): If we're a nested
13132         generic type and inherited from the containing class, set our
13133         owner to the outer class.
13134
13135 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
13136
13137         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
13138
13139         * reflection.c (mono_method_body_get_object): New function to create
13140         a MethodBody object.
13141
13142         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
13143
13144 2004-10-11  Martin Baulig  <martin@ximian.com>
13145
13146         * metadata.c (_mono_metadata_type_equal): Renamed to
13147         do_mono_metadata_type_equal() and made static.
13148
13149 2004-10-11  Martin Baulig  <martin@ximian.com>
13150
13151         * appdomain.c: Bump corlib version number to 28.
13152
13153 2004-10-10  Martin Baulig  <martin@ximian.com>
13154
13155         * class-internals.h
13156         (MonoGenericInst): Added `MonoGenericContainer *container'.
13157         (MonoGenericMethod): Likewise.
13158         (MonoGenericContext): Likewise.
13159         (MonoGenericParam): Added `MonoGenericContainer *owner'.
13160
13161         * metadata.c
13162         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
13163         (do_mono_metadata_parse_generic_inst): Likewise.
13164         (mono_metadata_parse_type_full): New public method.  This is the actual
13165         mono_metadata_parse_type() implementation - with an additional
13166         `MonoGenericContainer *' argument.
13167         (mono_metadata_parse_array_full): Likewise.
13168         (mono_metadata_parse_signature_full): Likewise.
13169         (mono_metadata_parse_method_signature_full): Likewise.
13170         (mono_metadata_parse_mh_full): Likewise.
13171         (mono_type_create_from_typespec): Likewise.
13172         (mono_metadata_interfaces_from_typedef_full): New public method;
13173         this is similar to the other _full() methods, but we take a
13174         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
13175         (mono_metadata_parse_generic_param): Take an additional
13176         `MonoGenericContainer *' argument and lookup the MonoGenericParam
13177         from that container.
13178         (mono_metadata_generic_param_equal): New static method to compare
13179         two type parameters.
13180         (_mono_metadata_type_equal): New static method; takes an
13181         additional `gboolean signature_only' argument - if true, we don't
13182         compare the owners of generic parameters.
13183         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
13184         with a TRUE argument - do a signature-only comparision.
13185
13186         * loader.c: Use the new _full() methods and pass the
13187         MonoGenericContainer to them.
13188
13189         * object-internals.h (MonoReflectionTypeBuilder): Added
13190         `MonoGenericContainer *generic_container' field.
13191         (MonoReflectionMethodBuilder): Likewise.
13192
13193 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
13194
13195         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
13196         case initial images of dynamic assemblies.
13197
13198         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
13199
13200         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
13201
13202         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
13203         length of event->other array.
13204         (typebuilder_setup_events): Ditto.
13205
13206         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
13207         'assembly_by_name' and add an 'assemblies' list.
13208
13209         * assembly.h assembly.c: Add a new search hook for determining whenever
13210         an assembly is already loaded. Use this instead of searching in the
13211         loaded_assemblies list.
13212
13213         * domain.c appdomain.c: Implement the new search hook so loaded 
13214         assemblies are now scoped by appdomain. Fixes #67727.
13215
13216 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
13217
13218         * threads.c (mono_thread_attach): Initialize synch_lock field so
13219         mono_thread_detach works again.
13220
13221         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
13222         'lib' too. Fixes #63130.
13223
13224 2004-10-06  Jackson Harper  <jackson@ximian.com>
13225
13226         * culture-info-tables.h: regenerated.
13227
13228 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
13229
13230         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
13231         implemented by other interfaces in the result. Fixes #65764.
13232         
13233         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13234         Handle unloadable modules without crashing.
13235
13236         * image.c (load_modules): Revert the previous patch since modules must
13237         have a fixed index inside the array.
13238         
13239         * image.c (load_modules): Don't include native modules in the modules
13240         array.
13241
13242 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
13243
13244         * reflection.h: Add param_defaults field.
13245
13246         * reflection.c: Add support for parameter defaults in dynamic methods.
13247         Fixes #64595.
13248
13249         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
13250         an empty string when a type has no namespace. Fixes #64230.
13251
13252 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
13253
13254         * tabledefs.h: Added "internal" security actions to support non-CAS
13255         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
13256         Note: they do not seems to be used anymore in 2.0 (new metadata format)
13257
13258 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
13259
13260         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
13261         constructor of abstract class. Fixes #61689.
13262
13263 2004-10-04  Martin Baulig  <martin@ximian.com>
13264
13265         * class-internals.h (MonoGenericContainer): New type.
13266         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
13267         `MonoGenericContainer *generic_container'.
13268         (MonoClass): Replaced `gen_params' and `num_gen_params' with
13269         `MonoGenericContainer *generic_container'.
13270
13271         * metadata.c (mono_metadata_load_generic_params): Return a
13272         `MonoGenericContainer *' instead of a `MonoGenericParam *';
13273         removed the `num' argument.
13274
13275 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
13276
13277         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
13278         for dynamic images.
13279
13280         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
13281         machine fields.
13282
13283         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
13284
13285         * reflection.c: Save pe_kind and machine values into the generated
13286         image file.
13287
13288         * appdomain.c: Bump corlib version number.
13289
13290         * object-internals.h: Reorganize layout of LocalBuilder.
13291
13292         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
13293         New helper function.
13294
13295         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
13296         created MonoType for dynamic types. Fixes #66180.
13297
13298 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
13299
13300         * threadpool.c: the ares hashtable needs a critical section around it.
13301         this prevents some nasty segfaults
13302
13303 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
13304
13305         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
13306         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
13307         bug 67324).
13308         
13309 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
13310
13311         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
13312         
13313 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
13314
13315         * image.c: Always canonicalize image file names, to avoid loading
13316         the same assembly twice when referenced using a relative path.
13317
13318 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
13319
13320         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
13321
13322         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
13323
13324         * marshal.c: Fix warnings.
13325
13326 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
13327
13328         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
13329         attempting to marshal the delegate_trampoline as the method_addr.
13330         This patch has a static hashtable of marshalled delegates so that 
13331         we can map delegate_trampoline addresses back to delegates.  This
13332         allows a delegate passed to managed code to be passed back into native
13333         code.  Fixes #67039
13334
13335 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
13336
13337         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
13338
13339         * reflection.c (method_encode_code): Align method headers properly.
13340         Fixes #66025.
13341
13342 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
13343
13344         * marshal.c: In the runtime invoke wrapper, reset the abort
13345         exception if it is cached. This avoids the automatic rethrowal of 
13346         the exception after the catch of the wrapper. Also check for pending
13347         interruptions before calling the managed method. This is done using
13348         the new method emit_thread_force_interrupt_checkpoint, since the
13349         normal checkpoint method is ignored when running the invoke wrapper.
13350         * object.c: If the abort exception is rethrown, set the abort_exc
13351         field of the thread, so it will be rethrown aftere every catch.
13352         * threadpool.c: Only run an interruption checkpoint if what has been
13353         requested is a stop of the thread (aborts will be ignored).
13354         * threads.c: By default, a thread will now never be interrumped while
13355         running the runtime invoke wrapper (this ensures that runtime_invoke
13356         will always return to the caller if an exception pointer is provided).
13357         There is a new special method mono_thread_force_interruption_checkpoint()
13358         to force an interruption checkpoint even if running a protected
13359         wrapper, which is used by the same runtime invoke wrapper to do a check
13360         at a safe point.
13361
13362 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
13363
13364         * object.c, object-internals.h: Implemented mono_release_type_locks,
13365         which releases the cctor locks held by a thread.
13366         * threads.c, threads.h: In thread_cleanup, release cctor locks held
13367         by a thread. Added mono_thread_exit() method to be used to safely stop
13368         a thread.
13369
13370 2004-09-28  Raja R Harinath  <rharinath@novell.com>
13371
13372         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13373         Move null check before dereference.  Avoid indexing beyond the end
13374         of the 'modules' array.
13375
13376 2004-09-28  Raja R Harinath  <rharinath@novell.com>
13377
13378         * metadata-internals.h (MonoImage): Add module_count field.
13379         * image.c (load_modules): Set image->module_count.
13380         (mono_image_load_file_for_image): Use image->module_count.
13381         * reflection.c (mono_image_load_module): Append to image->modules array 
13382         of dynamic assembly.
13383         (mono_module_get_object): Fix loop to actually increment index.
13384         Use image->module_count.
13385         * assembly.c (mono_assembly_load_references): Use image->module_count.
13386         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13387         Likewise.
13388
13389 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
13390
13391         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
13392         Avoid assert on generic types.
13393
13394 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
13395
13396         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
13397
13398         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
13399
13400         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
13401         function to convert a MarshalSpec structure to its managed counterpart.
13402
13403         * reflection.c: Fix warnings.
13404         
13405         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
13406         field.
13407
13408         * icall.c (mono_create_icall_signature): Fix build.
13409
13410 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
13411
13412         * icall.c: Add MakePointType icall.
13413
13414         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
13415         warnings.
13416
13417 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13418
13419         * threadpool.c: reuse allocated slots in the queue.
13420
13421 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
13422
13423         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
13424
13425         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
13426
13427         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
13428         previous change.
13429
13430         * tabledefs.h: Add constants for pinvoke attributes BestFit and
13431         ThrowOnUnmappableChar.
13432
13433         * icall.c (ves_icall_Type_GetPacking): New icall.
13434
13435 2004-09-24  Martin Baulig  <martin@ximian.com>
13436
13437         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
13438
13439 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13440
13441         * appdomain.c:
13442         (mono_domain_set): allow setting a domain that is being unloaded.
13443         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
13444         being unloaded.
13445
13446 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
13447
13448         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
13449         the GetCustomAttributes icall.
13450
13451 2004-09-23  Martin Baulig  <martin@ximian.com>
13452
13453         * object-internals.h (MonoReflectionGenericParam): Replaced
13454         'has_ctor_constraint', `has_reference_type' and `has_value_type'
13455         with `guint32 attrs'.
13456
13457 2004-09-23  Martin Baulig  <martin@ximian.com>
13458
13459         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
13460
13461 2004-09-23  Martin Baulig  <martin@ximian.com>
13462
13463         * object-internals.h (GenericParameterAttributes): New enum.
13464
13465 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
13466
13467         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
13468         
13469         * class.c (init_events): Fill out event->other field.
13470
13471         * class.c: Fix warnings.
13472
13473         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
13474
13475 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
13476
13477         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
13478         walk which doesn't supply the IL offset.
13479
13480 2004-09-22  Martin Baulig  <martin@ximian.com>
13481
13482         * reflection.c (mono_reflection_setup_internal_class): If we're
13483         System.ValueType, System.Object or System.Enum, set
13484         `klass->instance_size' and create the vtable.
13485         (mono_reflection_create_internal_class): If we're an enum type,
13486         get the base class from our current corlib.
13487
13488 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
13489
13490         * reflection.h (MonoResolveTokenError): New type.
13491
13492         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
13493         icall.
13494
13495         * icall.c: Add an 'error' argument to the ResolveToken icalls.
13496
13497 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
13498
13499         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
13500         Support also calling constructors, but only for already allocated objects.
13501
13502 2004-09-17  Geoff Norton <gnorton@customerdna.com>
13503
13504         * reflection.c (type_get_qualified_name): If the klass is null
13505         return the typename to avoid a NullRefEx.
13506         (encode_cattr_value): Get the qualified name of the boxed type,
13507         not the underlying enumtype.  Fixes #62984.
13508
13509 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
13510
13511         * marshal.c: Fix problems with previous checkin.
13512
13513 2004-09-21    <vargaz@freemail.hu>
13514
13515         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
13516         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
13517
13518         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
13519
13520 2004-09-21  Geoff Norton <gnorton@customerdna.com>
13521
13522         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
13523         should only return a type for pointers, arrays, and passbyref types.
13524         Fixes bug #63841.
13525
13526 2004-09-21  Martin Baulig  <martin@ximian.com>
13527
13528         * domain.c (mono_debugger_check_runtime_version): New public
13529         function.
13530
13531         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
13532
13533 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
13534
13535         * reflection.c: Added missing sort to the declarative security 
13536         attributes table. MS implementation stops seeing the attributes if the
13537         token number regress in the table (as shown by ildasm and permview).
13538
13539 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
13540
13541         * object-internals.h (MonoReflectionModule): Add 'token' field.
13542         
13543         * reflection.c (mono_reflection_get_token): Add support for Module
13544         and Assembly.
13545         (mono_module_get_object): Set 'token' field.
13546         (mono_module_file_get_object): Set 'token' field.
13547
13548         * icall.c: Add new Assembly and Module icalls.
13549
13550         * appdomain.c: Bump corlib version.
13551
13552 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
13553
13554         * loader.h loader.c class.h class.c: Add helper functions for obtaining
13555         tokens of metadata objects.
13556
13557         * reflection.h reflection.c (mono_reflection_get_token): New function
13558         to obtain the token of a metadata object.
13559
13560         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
13561
13562 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
13563
13564         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
13565         
13566         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
13567
13568 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
13569
13570         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
13571         * object-internals.h: Added 3 MonoArray* members to MonoReflection
13572         AssemblyBuilder to access the permissions set in the class lib.
13573         * reflection.c: Added security attributes encoding step in 
13574         mono_image_build_metadata.
13575         * tabledefs.h: Added new security actions defined in 2.0:
13576         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
13577
13578 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
13579
13580         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
13581         macro parameter.
13582
13583 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
13584  
13585         * locales.c: nullify the ICU_collator member of CompareInfo when it is
13586           finalized. There where random SIGSEVs at program termination, when
13587           an object being finalized was trying to do a string comparison and
13588           the current culture was already finalized.
13589  
13590 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13591
13592         * threads.c: call thread_cleanup before finishing the thread if we get
13593         there.
13594
13595 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
13596
13597         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
13598         assemblies from the parent. Fixes #65665.
13599
13600 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
13601
13602         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
13603         modifiers.
13604
13605 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
13606
13607         * reflection.h: add prototype for mono_get_dbnull_object
13608         * reflection.c: add prototypes for get_default_param_value_blobs 
13609         and mono_get_object_from_blob for fussier compilers
13610
13611 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
13612  
13613         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
13614         false deadlock checks in class initialization.
13615  
13616 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
13617
13618         * image.c (mono_image_addref): Fix comment.
13619
13620         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
13621         possible.
13622
13623 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
13624
13625         * reflection.c (mono_param_get_objects): Modified to return
13626         ParameterInfo.DefaultValue object.
13627
13628         (get_default_param_value_blobs):
13629         (mono_get_object_from_blob):
13630         (mono_get_dbnull_object): New helper routines. 
13631
13632         * object.c (mono_get_constant_value_from_blob): New helper routine
13633         carved out from get_default_field_value ()
13634
13635         * object-internals.h (mono_get_constant_value_from_blob): Added
13636         function declaration.
13637
13638 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
13639
13640         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
13641         referenced assemblies. Fixes #62135.
13642
13643         * exception.h exception.c (mono_get_exception_file_not_found2): New
13644         helper function.
13645
13646 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
13647
13648         * class.h class.c: Add mono_type_get_underlying_type ().
13649
13650 2004-09-09  Geoff Norton <gnorton@customerndna.com>
13651
13652         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
13653         Fix GetTypes() to support dynamically created assemblies.
13654
13655 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
13656
13657         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
13658         
13659         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
13660         previous patch.
13661
13662         * reflection.h reflection.c loader.c: Allow dynamic construction of
13663         pinvoke methods. Fixes #65571.
13664         
13665         * reflection.c (mono_reflection_get_type): Revert previous change since
13666         it causes regressions.
13667
13668 2004-09-08  Martin Baulig  <martin@ximian.com>
13669
13670         * class.c (class_compute_field_layout): Don't call
13671         mono_class_layout_fields() for open generic instances.
13672
13673 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
13674         * threads.c appdomain.c: fix typo in GC macro
13675
13676 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13677
13678         * threads.c: don't call mono_thread_detach() in start_wrapper(),
13679         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
13680
13681 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
13682
13683         * image.c (mono_image_close): Applied patch from 
13684         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
13685         assembly is loaded multiple times from data.
13686         
13687         * image.c (mono_image_open): Fix warning.
13688
13689 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13690
13691         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
13692         once. Fixes #58334.
13693         
13694         * reflection.c (mono_reflection_create_runtime_class): Initialize
13695         klass->nested_classes. Fixes #61224.
13696
13697 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
13698
13699         * threads.c: sched_yield() on exit, to allow threads to quit.
13700
13701 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13702
13703         * object.c (mono_unhandled_exception): Remove leftover debug code.
13704
13705 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
13706
13707         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
13708
13709 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13710
13711         * marshal.c (emit_marshal_array): Really null terminate string arrays.
13712         
13713         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
13714
13715 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13716
13717         * marshal.c (emit_marshal_array): Null terminate string arrays.
13718         
13719         * marshal.c (raise_auto_layout_exception): Fix warning.
13720
13721         * reflection.c (mono_param_get_objects): Initialize the default value
13722         with DBNull.Value, not null. Fixes #62123.
13723
13724 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
13725
13726         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
13727         throw an exception with a cute explanation.
13728
13729 2004-09-06  Dick Porter  <dick@ximian.com>
13730
13731         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
13732         Close the new process's thread handle, as we don't use it.  The
13733         handle stays around forever otherwise.
13734
13735 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13736
13737         * object.c (arith_overflow): Fix warning.
13738
13739         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
13740         calling conventions in method refs. Fixes #65352.
13741
13742         * reflection.c: Fix warnings.
13743
13744 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13745
13746         * icall.c: Add a new icall for Array.Clear
13747
13748 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13749
13750         * object.c: When allocating an array, we have to throw
13751         an overflow exception if any of the lengths are < 0.
13752
13753 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13754
13755         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
13756         properly. Also move implementation of string array marshalling to 
13757         managed code. Fixes #42316.
13758
13759 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13760
13761         * assembly.c: provide more information when loading an assembly fails.
13762
13763 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13764
13765         * filewatcher.c: don't expect the development fam package to be
13766         installed.
13767
13768 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
13769
13770         * marshal.c: Make a copy of the signature cookie since it will be
13771         freed by the caller.
13772         
13773         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
13774
13775         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
13776
13777         * metadata.c (mono_metadata_free_marshal_spec): New function to free
13778         marshal specs.
13779
13780         * marshal.c: More refactoring.
13781         
13782         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
13783         smaller functions.
13784
13785 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
13786
13787         * object.c: In mono_message_invoke, fill the output parameter array after
13788           calling the managed method (it was done before the call). This fixes
13789           bug #59299.
13790
13791 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
13792
13793         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
13794         as well.
13795
13796 2004-09-02  Martin Baulig  <martin@ximian.com>
13797
13798         * class.c (mono_class_instance_size): Don't allow generic type
13799         definitions or open generic instances.
13800         (mono_class_array_element_size): If we're a value type, call
13801         mono_class_instance_size() on the original class.
13802
13803         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
13804         handle generic instances.
13805
13806         * mono-debug-debugger.c (write_type): Handle generic instances
13807         like classes.
13808
13809 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
13810
13811         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
13812         the allocation request fails. Fixes #65089.
13813
13814         * object.c (mono_runtime_free_method): Do not call mono_free_method.
13815         
13816         * object.c (mono_runtime_free_method): New function to free a dynamic
13817         method.
13818
13819         * marshal.c (mono_delegate_free_ftnptr): New function to free the
13820         delegate trampoline.
13821
13822         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
13823         with hasthis as dynamic,
13824
13825         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
13826
13827         * domain.c (mono_jit_info_table_remove): New function to remove an
13828         entry from the jit info table.
13829
13830         * class-internals.h (MonoMethod): Add 'dynamic' field.
13831
13832         * loader.c: Fix warnings.
13833
13834 2004-09-01  Martin Baulig  <martin@ximian.com>
13835
13836         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
13837         instead of mono_debugger_lock() because the latter one is a no-op
13838         unless running in the debugger.
13839
13840 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
13841
13842         * class.c (class_compute_field_layout): Classes with auto-layout or
13843         reference fields are not blittable.
13844         
13845 2004-09-01  Dick Porter  <dick@ximian.com>
13846
13847         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
13848         mono_image_get_filename() to get the assembly location.
13849
13850         * icall.c:
13851         * metadata.h: Fix compile warnings
13852
13853 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
13854
13855         * class.c (class_compute_field_layout): System.Object is blittable.
13856
13857         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
13858         as in/out. Fixes #59909.
13859
13860 2004-09-01  Martin Baulig  <martin@ximian.com>
13861
13862         * metadata.h (MONO_TYPE_ISREFERENCE): Call
13863         mono_metadata_generic_inst_is_valuetype() if we're a generic
13864         instance to check whether our underlying type is a reference type.
13865
13866 2004-09-01  Martin Baulig  <martin@ximian.com>
13867
13868         * metadata.c (mono_type_size): If we're a generic instance, call
13869         mono_class_value_size() for value types.
13870
13871 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
13872
13873         * marshal.c: Implement more custom marshalling functionality. Fixes
13874         #64915.
13875
13876 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
13877
13878         * mono-debug.c, debug-mono-symfile.c: add some locking love.
13879
13880 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
13881
13882         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
13883
13884         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
13885
13886         * icall.c: Fix some warnings.
13887
13888         * threads.c (abort_appdomain_thread): Fix unref errors.
13889         (mono_thread_current): Fix THREAD_DEBUG define.
13890
13891 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
13892
13893         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
13894
13895         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
13896
13897 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
13898
13899         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
13900         string arrays.
13901
13902 2004-08-28  Martin Baulig  <martin@ximian.com>
13903
13904         * metadata.c
13905         (mono_metadata_generic_inst_is_valuetype): New public function.
13906
13907         * metadata.h (MONO_TYPE_ISSTRUCT): Call
13908         mono_metadata_generic_inst_is_valuetype() if we're a generic
13909         instance to check whether our underlying type is a valuetype.
13910
13911 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
13912
13913         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
13914         #63768.
13915
13916 2004-08-25  Martin Baulig  <martin@ximian.com>
13917
13918         * loader.c (mono_get_method_from_token): Abstract methods can also
13919         be generic and thus have type parameters.
13920
13921         * metadata-internals.h
13922         (MonoDynamicImage): Added `GPtrArray *gen_params'.
13923
13924         * reflection.c (mono_image_get_generic_param_info): Don't create a
13925         metadata row, just add an entry to the `gen_params' array.
13926         (build_compressed_metadata): Sort the `gen_params' array and then
13927         actually create the metadata.
13928
13929 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13930
13931         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
13932
13933 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
13934
13935         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
13936
13937 2004-08-24  Martin Baulig  <martin@ximian.com>
13938
13939         * class.cs (mono_class_is_subclass_of): Like an interface, a
13940         generic instance also derives from System.Object.
13941
13942 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
13943
13944         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
13945         custom modifiers to be in any order. Fixes #61990.
13946
13947 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
13948
13949         * object.c: Register mono_object_new_fast icall.
13950         
13951         * object.c (mono_class_get_allocation_ftn): Return to calling
13952         mono_object_new_fast, since it seems faster to compute the object 
13953         size in unmanaged code than passing it as a parameter.
13954
13955         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
13956
13957         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
13958         this function with Boehm as the oom handler, so we don't have to check
13959         the result of GC_malloc.
13960
13961         * object.c: Remove checks for oom.
13962
13963         * object.h object.c (mono_class_get_allocation_ftn): New function to
13964         return the icall which can be used to allocate an instance of a given
13965         class. 
13966
13967         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
13968
13969         * class-internals.h: Add 'enabled' field.
13970
13971 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
13972
13973         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
13974
13975 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
13976         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
13977         value 0x0010.
13978
13979 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
13980
13981         * appdomain.c: use the Tls function for appdomain too,
13982         at Zoltan's request. Actually return in mono_context_get
13983
13984         * appdomain.c, profiler.c, threads.c: use __thread
13985
13986 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
13987
13988         * appdomain.c threads.c: Call GC_CreateThread on windows.
13989
13990         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
13991         multiple libraries since this don't work on windows.
13992
13993 2004-08-18  Martin Baulig  <martin@ximian.com>
13994
13995         * class-internals.h
13996         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
13997         MonoMethodHeader.
13998
13999         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
14000         MonoMethodNormal since we also need it for abstract and interface
14001         methods.
14002
14003         * reflection.c
14004         (build_compressed_metadata): Sort the GenericParam table.
14005         (mono_image_create_token): Added `gboolean create_methodspec'
14006         argument; this is false when generating a MethodImpl token.
14007         (reflection_methodbuilder_to_mono_method): Abstract and interface
14008         methods may also have generic parameters.
14009
14010 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
14011
14012         * appdomain.c: thread local alloc
14013
14014 2004-08-17  Martin Baulig  <martin@ximian.com>
14015
14016         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
14017
14018         * icall.c
14019         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
14020         argument.
14021
14022         * class.c (mono_type_get_full_name): New public function.
14023         (mono_type_get_name): Don't include the type arguments.
14024
14025 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
14026
14027         * Makefile.am: Build static versions of libmetadata and libmonoruntime
14028         for inclusion into the mono executable.
14029
14030 2004-08-16  Martin Baulig  <martin@ximian.com>
14031
14032         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
14033         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
14034
14035 2004-08-14  Martin Baulig  <martin@ximian.com>
14036
14037         * class.c (dup_type): Also copy the `byref' field.
14038
14039 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
14040
14041         * reflection.c (create_dynamic_mono_image): Revert the last change 
14042         since it breaks bootstrap.
14043
14044 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
14045
14046         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
14047
14048         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
14049         not free them with g_free.
14050
14051 2004-08-11  Martin Baulig  <martin@ximian.com>
14052
14053         * reflection.c (mono_reflection_setup_internal_class): Also call
14054         mono_class_setup_mono_type() if we already have a `tb->type.type'.
14055
14056 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
14057
14058         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
14059         called during default (first) AppDomain creation. Keep track of
14060         Evidence when loading assemblies.
14061
14062 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
14063
14064         * opcodes.c, opcodes.h: reduce runtime relocations.
14065
14066 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
14067
14068         * culture-info.h, locales.c: fixes and chages to sue the new
14069         optimized format of the locale data.
14070         * culture-info-tables.h: regenerated.
14071
14072 2004-08-06  Geoff Norton <gnorton@customerdna.com>
14073         
14074         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
14075
14076 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
14077
14078         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
14079         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
14080         * domain-internals.h: icall declaration.
14081         * icall.c: icall registration.
14082         * object-internals.h: New fields in MonoAssembly for CAS.
14083
14084 2004-08-05  Duncan Mak  <duncan@ximian.com>
14085
14086         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
14087         CEE_LDELEM_ANY.
14088
14089 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
14090
14091         * reflection.c: fix to deal with object[] arrays in custom ctors
14092         (bug #62550).
14093
14094 2004-08-05  Martin Baulig  <martin@ximian.com>
14095
14096         * class.c (mono_class_array_element_size): Added support for
14097         generic instances and correctly handle "recursive" types.
14098
14099 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
14100
14101         * assembly.c: Fix warnings.
14102
14103 2004-08-04  Martin Baulig  <martin@ximian.com>
14104
14105         * class.c
14106         (mono_type_get_name_recurse): Added `gboolean include_arity'
14107         argument specifying whether or not we should include the generic
14108         arity in the type name.
14109         (_mono_type_get_name): New static function.
14110         (mono_class_setup_vtable): If we're a generic instance, don't
14111         include the generic arity in the names of explicit method
14112         implementations.        
14113
14114 2004-08-03  Martin Baulig  <martin@ximian.com>
14115
14116         * class.c (mono_type_get_name_recurse): Enclose the generic type
14117         arguments in `<', '>'.
14118
14119 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14120
14121         * gc.c: make GC warning messages use the trace API, they are just
14122         noise to most of the users.
14123
14124 2004-08-03  Martin Baulig  <martin@ximian.com>
14125
14126         * debug-mono-symfile.c (read_string): Correctly read the string.
14127
14128 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
14129
14130         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
14131         
14132         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
14133         icalls.
14134         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
14135
14136 2004-07-30  Martin Baulig  <martin@ximian.com>
14137
14138         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
14139         Reflect latest symbol writer changes.   
14140
14141 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
14142
14143         * object.c: always create an object if null is passed
14144         to Invoke() where a valuetype is expected.
14145
14146 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
14147
14148         * marshal.c (mono_marshal_init): make managed
14149         signatures match native ones better for 64bits.
14150
14151 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14152
14153         * appdomain.c: hack to build correctly the private bin path on windows.
14154         Fixes bug #61991.
14155
14156 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
14157
14158         * assembly.c: Load mscorlib from the correct framework directory
14159           (mono/<version>/mscorlib.dll).
14160         * appdomain.h: Added prototypes for new functions.
14161         * internals.h: Added some prototypes.
14162         * domain.c: When initializing the runtime, get from the executable and
14163           the configuration files the runtime version that the app supports.
14164           Added support methods for reading app.exe.config. Added list of versions
14165           supported by the JIT. Added two new methods: mono_init_from_assembly,
14166           which initializes the runtime and determines the required version from
14167           the provided exe file, and mono_init_version, which initializes
14168           the runtime using the provided version.
14169         * icall.c: Get machine.config from version-specific directory.
14170         * reflection.c: When generating an image, embed the version number
14171           of the current runtime.
14172
14173 2004-07-28  Dick Porter  <dick@ximian.com>
14174
14175         * socket-io.c
14176         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
14177         returned sockaddr size before creating the remote address object.
14178         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
14179         61608.
14180
14181 2004-07-28  Dick Porter  <dick@ximian.com>
14182
14183         * locales.c (string_invariant_compare_char): Fix invariant char
14184         compares between upper and lower cases.  Fixes bug 61458.
14185
14186 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
14187         
14188         * marshal.c: actually cache stelem.ref wrappers.
14189         
14190 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
14191
14192         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
14193         sections and remove the mono_cli_rva_map () function.
14194
14195 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14196
14197         * debug-mono-symfile.c: fix one more endianess issue, from a patch
14198         by Geoff Norton (<gnorton@customerdna.com>).
14199
14200 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14201
14202         * class.c: fix class loads for pointer types (typeof(int) !=
14203         typeof(int*)).
14204
14205 2004-07-27  Martin Baulig  <martin@ximian.com>
14206
14207         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
14208         reading the debugging information from an external ".mdb" file.
14209
14210 2004-07-24  Martin Baulig  <martin@ximian.com>
14211
14212         * reflection.c (mono_image_get_type_info): Only write a class
14213         layout entry if we actually have a size or a packing size.
14214
14215 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
14216
14217         * reflection.c (type_get_fully_qualified_name): 
14218         insert cast to get type checking of ?: with non-gcc compilers
14219
14220 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
14221
14222         * rand.c: use g_getenv for both lookups of
14223         MONO_EGD_SOCKET
14224
14225 2004-07-17  Martin Baulig  <martin@ximian.com>
14226
14227         * reflection.c (mono_reflection_bind_generic_method_parameters):
14228         Set `gmethod->reflection_info'.
14229
14230 2004-07-17  Martin Baulig  <martin@ximian.com>
14231
14232         * class.c (mono_class_create_from_typedef): Insert the newly
14233         created class into the hash table before computing the interfaces
14234         since we could be called recursively.
14235
14236 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
14237
14238         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
14239         function to implement stelem.ref in managed code
14240         * class-internals.h, debug-helpers.c: a new wrapper type
14241         for the above.
14242
14243 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
14244
14245         * gc.c: allow GC handles to work even when no GC is compiled in.
14246         Fix part of bug #61134 (GetAddrOfPinnedObject).
14247
14248 2004-07-13  Peter Williams  <peter@newton.cx>
14249  
14250         * process.c (complete_path): Make sure we don't attempt to execute
14251         directories.
14252  
14253 2004-07-12  Geoff Norton <gnorton@customerdna.com>
14254
14255         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
14256           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
14257           and will add/subtract the hour if needed
14258
14259 2004-07-12  Martin Baulig  <martin@ximian.com>
14260
14261         * reflection.c (mono_field_get_object): If we have
14262         `field->generic_info', take the attributes from
14263         `field->generic_info->generic_type'.    
14264
14265 2004-07-12  Martin Baulig  <martin@ximian.com>
14266
14267         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
14268         This function must be called before initializing the runtime.
14269         (mono_debug_init_1): New function; call this after initializing
14270         the runtime, but before loading the assembly.  It tells the
14271         debugger to load corlib and the builtin types.
14272
14273         * mono-debug-debugger.c: Did some larger changes in the debugging
14274         code; support recursive class declarations, make sure we actually
14275         add all classes.
14276
14277 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14278
14279         * debug-helpers.c: undo my previous patch and fixed the real issue in
14280         ../mini/exceptions-x86.c
14281
14282 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14283
14284         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
14285         when no HOME env. variable was set and a NullRef was thrown in a .cctor
14286         called from other .cctors.
14287
14288 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
14289
14290         * loader.c: Removed the mono_loader_wine_init hack now that we are
14291         doing a managed version of Windows.Forms.
14292
14293 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
14294
14295         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
14296         threadpool.c, threads.c: remove static data from rootset.
14297
14298 2004-07-09  Dick Porter  <dick@ximian.com>
14299
14300         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
14301         Don't do any more processing if the matched length was 0.  It was
14302         increasing the size of the string before.  Fixes bug 61167.
14303
14304 2004-07-09  Dick Porter  <dick@ximian.com>
14305
14306         * socket-io.h:
14307         * socket-io.c
14308         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
14309         Add support for SO_PEERCRED if its available.
14310
14311 2004-07-09  Peter Bartok <pbartok@novell.com>
14312         * loader.c: winelib.exe.so error message is now only displayed if
14313         MONO_DEBUG is set. To help us avoid questions when people are trying
14314         out the new Managed.Windows.Forms.
14315
14316 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
14317
14318         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
14319         for isinst and castclass wrappers.
14320
14321         * class-internals.h icall.c: Move registration and lookup of JIT icalls
14322         to libmetadata from the JIT, so they could be used by the marshalling
14323         code and the interpreter.
14324
14325         * marshal.c: Register marshalling related JIT icalls here instead of
14326         in mini.c. Use CEE_MONO_ICALL instead of the family of 
14327         CEE_MONO_PROC<x> opcodes to call marshalling functions.
14328
14329         * metadata.h: Remove unneeded marshalling conversions.
14330
14331         * opcodes.c: Update for new opcodes.
14332         
14333 2004-07-08  Martin Baulig  <martin@ximian.com>
14334
14335         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
14336         (mono_debug_get_domain_data): Make this function static.
14337
14338 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14339
14340         * gc.c, object.h: add nice GC handle API for embedders.
14341
14342 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
14343
14344         * reflection.c: more changes for the new api
14345
14346         * object.c: When we reflect on a field w/ a constant value, it
14347         will not have a memory location, so we must access metadata. Also,
14348         allow easier reading of strings so that we can read them from
14349         the constant data.
14350
14351         * class.c (mono_class_layout_fields): no need for literal fields here.
14352
14353         * class-internals.h: api changes for const fields
14354
14355         * icall.c (ves_icall_get_enum_info): use new apis for const fields
14356
14357 2004-07-06  Martin Baulig  <martin@ximian.com>
14358
14359         * mono-debug.h: Increment version number to 44.
14360
14361         * mono-debug.c (mono_debug_add_wrapper): The second argument is
14362         now a gpointer, rewrote this whole method.
14363
14364         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
14365         function.  Add information about the wrapper in a new "misc table".
14366
14367         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
14368         for the new misc table.
14369
14370 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
14371
14372         * metadata-internals.h image.c: Add a cache for helper signatures.
14373
14374         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
14375
14376 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
14377
14378         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
14379         delegates from a delegate. Fixes #61033.
14380         
14381         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
14382         marshalling of stringbuilder arrays. Fixes #59900.
14383
14384 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
14385
14386         * icall.c: Add EnumBuilder:setup_enum_type icall.
14387
14388 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
14389
14390         * icall.c: Added a new icall for the property version of
14391         OffsetOfStringData.
14392
14393 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
14394
14395         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
14396         it has a constant size across platforms.
14397
14398         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
14399         stack trace.
14400
14401 2004-06-29  Martin Baulig  <martin@ximian.com>
14402
14403         * mono-debug.c (mono_debug_add_method): Protect the whole function
14404         in mono_debugger_lock(), not just parts of it.
14405
14406 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
14407
14408         * reflection.c: make sure padding bytes in heaps are zeroed.
14409
14410 2004-06-24  David Waite  <mass@akuma.org>
14411
14412         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
14413         image.c, loader.c, locales.c, marshal.c, metadata.c,
14414         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
14415         string-icalls.c, threads.c: change to C90-style comments from C99 /
14416         C++ -style
14417
14418 2004-06-24  Dick Porter  <dick@ximian.com>
14419
14420         * threads.c
14421         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
14422         return createdNew.  Fixes bug 60412.
14423
14424         * threads-types.h: 
14425         * icall.c: Add createdNew parameter to CreateMutex icall
14426
14427 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14428
14429         * reflection.c, object-internals.h: save default value in params.
14430
14431 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14432
14433         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
14434         no need to build a new path combining that with the application base.
14435         Fixes bug #60442.
14436
14437 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
14438
14439         * reflection.c: fixed minor standard compliance issues.
14440
14441 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14442
14443         * reflection.c: fixed issue with encoding some custom attributes
14444         (arrays in properties and fields, bug #60411).
14445
14446 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14447
14448         * reflection.c: fix start address when copying the public key token.
14449
14450 2004-06-23  Martin Baulig  <martin@ximian.com>
14451
14452         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
14453         the `exc' object in a static object to put it into the GC's root set.
14454
14455 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
14456
14457         * reflection.c: make mono_reflection_setup_internal_class ()
14458         callable a second time to setup a new parent class.
14459
14460 2004-06-23  Dick Porter  <dick@ximian.com>
14461
14462         * threads.c: Check for WAIT_IO_COMPLETION return values.
14463
14464 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
14465
14466         * appdomain.c: Removed the g_free on the public key token. Now copy 
14467         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
14468         * assembly.c: Added public key token string value when loading 
14469         assemblies. Fix bug #60439.
14470         * icall.c: Added missing informations (like public key) in 
14471         GetReferencedAssemblies. Fix #60519.
14472         * image.h: Changed definition for public key token from const char*
14473         public_tok_value to guchar public_key_token [17];
14474         * reflection.c: Updated for changes to public key token.
14475
14476 2004-06-22  Lluis Sanchez Gual
14477
14478         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
14479         for the field in base classes.
14480
14481 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14482
14483         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
14484         mark headers as not supported, they are installed only for use by the
14485         debugger.
14486
14487 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
14488
14489         * *.c, *.h: avoid namespace pollution in public headers.
14490
14491 2004-06-21  Martin Baulig  <martin@ximian.com>
14492
14493         * exception.c (mono_get_exception_security): It's in
14494         "System.Security", not in "System".
14495
14496         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
14497         the exception classes.
14498
14499 2004-06-21  Martin Baulig  <martin@ximian.com>
14500
14501         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
14502         Protect the exception object from being finalized.
14503
14504 2004-06-21  Martin Baulig  <martin@ximian.com>
14505
14506         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
14507         public function.
14508
14509 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
14510
14511         * reflection.c: Load the assembly in mono_reflection_type_from_name,
14512         if it was not loaded before. Fix parts of #60439.
14513
14514 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
14515
14516         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
14517         code that was broken since Ben's change: wrappers are now
14518         dependent on the method signature only again.
14519
14520 2004-06-21  Martin Baulig  <martin@ximian.com>
14521
14522         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
14523         added interface support.
14524
14525 2004-06-21  Martin Baulig  <martin@ximian.com>
14526
14527         * class.c (mono_vtable_get_static_field_data): New public method.
14528
14529 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
14530
14531         * filewatcher.c : Windows build fix to be compliant with API changes.
14532
14533 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14534
14535         * class.h, class.c: more accessors.
14536         * metadata.h, metadata.c: prepare for hiding MonoType and
14537         MonoMethodSignature: people should use the accessors from now on
14538         outside of the tree.
14539
14540 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14541
14542         * *.c, *.h: more API cleanups.
14543
14544 2004-06-18  Jackson Harper  <jackson@ximian.com>
14545
14546         * assembly.c: Trace loading assemblies.
14547         * loader.c: Trace loading native libraries.
14548         * mono-config.c: Trace loading config files.
14549         
14550 2004-06-18  Dick Porter  <dick@ximian.com>
14551
14552         * locales.c: Tell ICU the lengths of strings, it can cope with
14553         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
14554
14555 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
14556
14557         * image.c: swapped name/filename;
14558
14559 2004-06-18  Martin Baulig  <martin@ximian.com>
14560
14561         * mono-debug-debugger.c (write_class): Write the parent class at
14562         the end of the header.
14563
14564 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
14565
14566         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
14567
14568 2004-06-17  Raja R Harinath  <rharinath@novell.com>
14569
14570         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
14571         (bundle_obj): New conditional define.
14572         (BUILT_SOURCES): Remove.
14573         ($(bundle_srcs)): Make parallel-make safe.
14574         (libmonoruntime_la_LIBADD): Make unconditional.
14575         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
14576         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
14577
14578 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
14579
14580         * culture-info-tables.h: It was inconsistent with the latest
14581           supp info files.
14582
14583 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
14584
14585         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
14586         be loaded.
14587
14588         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
14589         with gcc 2.95.
14590
14591 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
14592
14593         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
14594         cleaned up public header threads.h.
14595
14596 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14597
14598         * Makefile.am, *.c, *.h: more API cleanups.
14599
14600 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
14601
14602         * Makefile.am: removed monosn from compilation.
14603         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
14604         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
14605         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
14606         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
14607         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
14608         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
14609
14610 2004-06-15  Jackson Harper  <jackson@ximian.com>
14611
14612         * assembly.c: Make locales lower case when searching the GAC for
14613         assemblies. gacutil will always make locales lowercase when
14614         installing so this effectively makes them case insensitive.
14615         
14616 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
14617
14618         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
14619         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
14620           parameter which allows to choose whether the wait can be interrupted or 
14621           not. Also added the method mono_monitor_enter(), which locks the monitor
14622           using an infinite wait and without allowing interruption.
14623           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
14624           interrupted.
14625         * object.h: Added new fields in MonoThread. suspend_event holds the event
14626           used to susped/resume the thread. synch_lock is the lock object to use for
14627           modifying the thread state.
14628         * threads.c: Use the new synch_lock object for locking, instead of "this",
14629           which can generate deadlocks.
14630           Moved thread state change in Thread.Sleep and Thread.Join from managed
14631           to unmanaged code. This avoids a deadlock when the thread was suspended
14632           just after acquiring the thread lock.
14633           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
14634           Implemented Thread.Suspend using an event instead of ThreadSuspend,
14635           which is not fully implemented in the io-layer.
14636         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
14637
14638 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
14639
14640         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
14641         threads-types.h: more API cleanups.
14642
14643 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14644
14645         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
14646         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
14647         threadpool.c, threads.c: first pass at the exported API cleanup.
14648
14649 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
14650
14651         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
14652
14653 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14654
14655         * icall.c: added internalGetHome.
14656
14657 2004-06-14  Dick Porter  <dick@ximian.com>
14658
14659         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
14660         possible to return successfully when '.' or '..' were the only
14661         entries in a directory, but were skipped.  The MonoIOStat was not
14662         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
14663         Fixes bug 59574.
14664
14665 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
14666
14667         * reflection.c: make binaries run on .Net 1.1 by default.
14668
14669 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
14670
14671         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
14672
14673 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
14674
14675         * marshal.c: keep track of struct size with explicit layout
14676         (bug #59979).
14677
14678 2004-06-12  Martin Baulig  <martin@ximian.com>
14679
14680         * mono-debug-debugger.c: Comment out a debugging g_message().
14681
14682 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14683
14684         * reflection.c, reflection.h: do not free custom attrs that are cached.
14685         * icall.c: use braces to make code clearer.
14686
14687 2004-06-11  Martin Baulig  <martin@ximian.com>
14688
14689         * class.h (MonoInflatedField): New type.
14690         (MonoClassField): Replaced `MonoType *generic_type' with
14691         `MonoInflatedField *generic_info'.
14692
14693         * icall.c
14694         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
14695
14696 2004-06-11  Martin Baulig  <martin@ximian.com>
14697
14698         * reflection.c (mono_image_create_method_token): Correctly encode
14699         varargs methods.
14700
14701 2004-06-11  Martin Baulig  <martin@ximian.com>
14702
14703         * metadata.c (mono_metadata_parse_method_signature): When parsing
14704         a MethodDef which has VarArgs, also set sentinelpos if we don't
14705         have any parameters.
14706
14707 2004-06-11  Martin Baulig  <martin@ximian.com>
14708
14709         * verify.c (mono_method_verify): In CEE_CALL, use
14710         mono_method_get_signature() to get the method's signature, unless
14711         we're a PInvoke method.
14712
14713 2004-06-10  Jackson Harper  <jackson@ximian.com>
14714
14715         * assembly.c: Use <path>/lib/mono/gac for the extra paths
14716         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
14717         logical name as the supplied path is just a prefix to the gac not
14718         the direct path to it.
14719         
14720 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
14721
14722         * reflection.c: make the token for a created method match
14723         the token of the MethodBuilder it was created from
14724         (IKVM requires this behaviour now).
14725
14726 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
14727
14728         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
14729         reflection.c, socket-io.c: leak fixes.
14730
14731 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
14732
14733         * icall.c: handle sentinel pos in vararg methods in position different
14734         from 0.
14735
14736 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14737
14738         * culture-info-tables.h: freshly generated.
14739
14740 2004-06-09  Martin Baulig  <martin@ximian.com>
14741
14742         * loader.c (mono_get_method_constrained): Call `mono_class_init
14743         (constrained_class)'.   
14744
14745 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
14746
14747         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
14748         any methods. Fixes #59629.
14749
14750 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14751
14752         * culture-info-tables.h: reflecting locale-builder updates.
14753
14754 2004-06-08  Dick Porter  <dick@ximian.com>
14755
14756         * object.h:
14757         * locales.c: Fixed compile warnings, including a real bug in
14758         CompareInfo_internal_compare.
14759         
14760 2004-06-08  Dick Porter  <dick@ximian.com>
14761
14762         * locales.c
14763         (ves_icall_System_Globalization_CompareInfo_internal_index):
14764         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14765         Double-check the resuls of usearches, because ICU currently
14766         ignores most of the collator settings here.  Fixes bug 59720.
14767         
14768 2004-06-08  Dick Porter  <dick@ximian.com>
14769
14770         * locales.c
14771         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14772         Fix memory leak and segfault-causing typo.  No idea how this one
14773         lasted so long without being noticed.
14774
14775 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
14776
14777         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
14778         any methods. Fixes #59629.
14779
14780 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14781
14782         * assembly.c:
14783         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
14784         own the critical section before). Removed dead code (that's done
14785         in the preload hook).
14786
14787         (mono_assembly_load_with_partial_name): call the preload hook.
14788
14789 2004-06-08  Martin Baulig  <martin@ximian.com>
14790
14791         * metadata.c (mono_metadata_signature_alloc): Default
14792         `sentinelpos' to -1.
14793
14794         * reflection.c (mono_image_get_array_token): Likewise.
14795
14796 2004-06-08  Martin Baulig  <martin@ximian.com>
14797
14798         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
14799
14800         * metadata.c (mono_metadata_parse_method_signature): When parsing
14801         a MethodDef which has VarArgs, set sentinelpos.
14802
14803         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
14804         `gint16' since we're using -1 for non-varargs methods.
14805
14806         * reflection.c
14807         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
14808         (method_encode_signature): Added varargs support.
14809         (method_builder_encode_signature): Likewise.
14810         (mono_image_get_varargs_method_token): New static method.
14811         (mono_image_create_method_token): New public method; this is
14812         called via an icall instead of mono_image_create_token() when
14813         calling a varargs method.       
14814
14815 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
14816
14817         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
14818
14819 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14820
14821         * culture-info-tables.h : Reflecting the latest locale-builder that
14822           fixed empty array representation ({} to {0}).
14823
14824 2004-06-07  Jackson Harper  <jackson@ximian.com>
14825
14826         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
14827         looking up extra gac paths. This allows MONO_GAC_PATH to act
14828         exactly like a prefix.
14829         
14830 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
14831
14832         * reflection.c (mono_reflection_type_from_name): Make a copy of the
14833         type name before modifying it. Fixes #59405.
14834
14835 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14836
14837         * culture-info.h: added fields for "all datetime patterns".
14838         * locales.c: (  ves_icall_System_Globalization_CultureInfo
14839           _construct_datetime_format ()): fill xxx_patterns fields.
14840         * object.h: added fields for "all datetime patterns" to
14841           MonoDateTimeFormatInfo.
14842         * culture-info-tables.h: reflecting locale-builder updates.
14843
14844 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
14845
14846         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
14847         the event has no add and remove methods. Fixes #59629.
14848
14849 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
14850
14851         * object.c: Fixed possible integer overflow when allocating large
14852         strings.
14853
14854 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
14855
14856         * culture-info-tables.h: reflecting locale-builder updates.
14857
14858 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
14859
14860         * culture-info-tables.h: reflecting locale-builder updates.
14861
14862 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
14863
14864         * culture-info-tables.h: reflecting locale-builder updates.
14865
14866 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
14867
14868         * threads.c: Made Thread.Sleep abortable.
14869
14870 2004-06-02  Martin Baulig  <martin@ximian.com>
14871
14872         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
14873
14874         * debug-mono-symfile.h: Bumped symbol file version number to 37.
14875
14876 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
14877
14878         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
14879
14880 2004-05-30  Jackson Harper  <jackson@ximian.com>
14881
14882         * reflection.c: Do not hardcode assembly versions or public key
14883         tokens anymore. All of this except the corlib section was dead
14884         code anyways.
14885         
14886 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
14887
14888         * object.c (mono_runtime_invoke_array): Automatically create boxed
14889         objects for byref valuetypes if needed. Fixes #59300.
14890         
14891         * object.c (mono_method_return_message_restore): Handle 
14892         MONO_TYPE_OBJECT as well.
14893
14894 2004-05-28  Jackson Harper  <jackson@ximian.com>
14895
14896         * reflection.c: The modified type encoding was causing build
14897         problems. Reverted for now.
14898         
14899 2004-05-28  Jackson Harper  <jackson@ximian.com>
14900
14901         * reflection.c/h: Take an assembly ref so that we dont create
14902         fully qualified names when encoding types in the same assembly as
14903         the custom attribute being emitted.
14904         * appdomain.c: Increment version number.
14905         
14906 2004-05-26  Duncan Mak  <duncan@ximian.com>
14907
14908         * icall.c
14909         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14910         Set the full version number (major, minor, build, revision).
14911
14912 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
14913
14914         * marshal.c (emit_struct_conv): increment src/dst after blit
14915         (mono_marshal_get_managed_wrapper,
14916         mono_marshal_get_native_wrapper): make sure we have marshalling
14917         info before marshalling params (info computation affects
14918         blittable)
14919
14920         * class.c (class_compute_field_layout): correctly deal with
14921         blittable
14922         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
14923         value types (as per what windows dows by default)
14924         (mono_class_setup_mono_type): System.ValueType is blittable
14925         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
14926         blittable
14927
14928         * marshal.c (mono_marshal_load_type_info): flag types  as
14929         non-blittable if the native layout doesn't match the managed
14930         layout
14931
14932 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14933
14934         * appdomain.c: don't add stuff in the private search path that is
14935         above the application base. If application base is not set, there's
14936         no private search path.
14937
14938 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
14939
14940         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
14941         byref struct arguments in native->managed marshalling.
14942
14943 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
14944
14945         * marshal.c (mono_marshal_get_runtime_invoke): correctly
14946         cache methods using signature (special case for methods
14947         that are value type or string class)
14948         
14949         * image.c (mono_image_close): clean up allocated GSList's
14950         in runtime_invoke_cache.
14951
14952 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14953
14954         * mono-config.c: set the correct path for mono_cfg_dir on windows when
14955         there's no MONO_CFG_DIR environment variable defined.
14956
14957 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14958
14959         * threads.c: windows version must be >= 0x0500 to include OpenThread.
14960
14961 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
14962
14963         * threadpool.c: Really wait for 500ms after the async call, even if the wait
14964           is interrumped.
14965         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
14966           before waiting for it, and call CloseHandle after the wait to unref it.
14967           This will make sure that handles are not disposed too early.
14968
14969 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14970
14971         * appdomain.c:
14972         * appdomain.h:
14973         * icall.c: removed
14974         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
14975         needed now.
14976
14977         * object.c: se the application_base only for the domain that runs
14978         Main. Fixes bug #59216,
14979
14980 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14981
14982         * appdomain.c:
14983         * object.c: only the domain in which Main is run have
14984         SetupInformation.ConfigurationFile set, so moved a few lines from
14985         appdomain.c to object.c.
14986
14987 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14988
14989         * appdomain.c: we tried to load [name].(dll|exe), but according
14990         to bug #57710, we must also try [culture]/[name].(dll|exe) and
14991         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
14992         There's a test case attached to bug #58922.
14993
14994 2004-05-27  Dick Porter  <dick@ximian.com>
14995
14996         * icall.c:
14997         * file-io.c: Implemented icalls for locking and unlocking regions
14998         in a file.
14999         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
15000         FALSE on error (fixes both compiler warning and real bug.)
15001
15002 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
15003
15004         * culture-info-tables.h: reflecting locale-builder updates.
15005
15006           (Added missing ChangeLog entry for 05/26)
15007
15008 2004-05-27  Jackson Harper  <jackson@ximian.com>
15009
15010         * locales.c: Fix some cut and paste errors.
15011         
15012 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15013
15014         * mono-config.c: set the correct path for config. directory on windows.
15015
15016 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
15017
15018         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
15019           on win32.
15020
15021 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
15022
15023         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
15024         from pinvoke functions.
15025         
15026         * marshal.c (mono_ftnptr_to_delegate): Implement this.
15027
15028 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
15029
15030         * culture-info-tables.h: reflecting locale-builder updates.
15031
15032 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
15033
15034         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
15035         #59086.
15036
15037 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
15038
15039         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
15040         * icall.c: Modified icalls for RNG.
15041         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
15042         Windows (CryptoAPI).
15043
15044 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
15045
15046         * locales.c: Fix build.
15047
15048 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
15049
15050         * culture-info-tables.h: reflecting locale-builder updates.
15051
15052 2004-05-25  Jackson Harper  <jackson@ximian.com>
15053
15054         * locales.c: When creating the current culture use the $LANGs
15055         specific culture. So DateTimeFormat and NumberFormat entries are created.
15056         
15057 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
15058
15059         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
15060         a char array as parameter.
15061
15062 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
15063
15064         * image.c: In mono_image_open(), always use an absolute path name to
15065           look for already loaded images.
15066
15067 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
15068
15069         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
15070         missing in the windows build (like older cygwin include files).
15071
15072 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
15073
15074         * icall.c: Fixed check for possible integer overflow in Buffer_
15075         BlockCopy icall. Replaced comments style // by /* */.
15076
15077 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
15078
15079         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
15080         
15081         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
15082         check after MONO_VTADDR. Fixes pinvoke2.exe.
15083
15084         * marshal.h marshal.c metadata.h: Add beginnings of support for
15085         ftnptr -> delegate marshalling.
15086
15087 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
15088
15089         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
15090         * threads.c: Fix warnings.
15091
15092 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
15093
15094         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
15095         * icall.c: Registered icalls for Suspend and Resume.
15096         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
15097           Thread.Abort.
15098         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
15099         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
15100         * process.c: Use WaitForSingleObjectEx.
15101         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
15102           checkpoints.
15103         * threads.c, threads.h: Make use of new Ex wait methods. Improved
15104           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
15105           for Suspend and Resume. Added new mono_thread_stop, used for stoping
15106           background threads. Added basic support for Abort in Windows.
15107           Start new threads using a managed delegate invoke wrapper. This wrapper
15108           has an interruption checkpoint that is needed since an interruption
15109           can be requested before the thread leaves the unmanaged code that starts 
15110           the thread.
15111         * marshal.c: Added interruption checkpoint after every native call, and
15112           also before managed calls for wrappers called from unmanaged code to
15113           go into managed code.
15114         * object.h: Added new field in MonoThread to keep track of interruption
15115           requests.
15116
15117 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
15118
15119         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
15120         calls.
15121
15122 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15123
15124         * appdomain.c:
15125         * assembly.c:
15126         * gc.c:
15127         * locales.c:
15128         * mono-config.c:
15129         * rand.c: getenv -> g_getenv (windows!)
15130
15131         * process.c: complete_path is also used on non-windows platforms.
15132
15133 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15134
15135         * icall.c: new signature for Process_Start.
15136
15137         * process.[ch]: new signature for Process_Start. If we're on windows
15138         and UseShellExecute is false, we have to search for the program by
15139         ourselves if we don't get a full path.
15140
15141 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
15142
15143         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
15144         marshalling and call CleanUpNativeData if needed. Fixes #58646.
15145
15146 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15147
15148         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
15149         Fixes bug #58373.
15150
15151 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15152
15153         * process.c: use double quotes to quote program name and arguments on
15154         windows. Fixes bug #58575.
15155
15156 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15157
15158         * file-io.c: don't return "." and ".." when using windows Find*File.
15159
15160 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
15161
15162         * marshal.c: Don't pass wrappers to message init because method 
15163         addressed used to lookup metadata. part of remoting[2|3] fix.
15164
15165 2004-05-15  Jackson Harper  <jackson@ximian.com>
15166
15167         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
15168         path is essentially the same as MONO_PATH except that it points to
15169         GACs instead of lib directories.
15170         * loader.h: The user gac is gone so we dont need function to
15171         enable/disable it.
15172         * mono-config.c: user gac option is now gone.
15173         
15174 2004-05-15  Jackson Harper  <jackson@ximian.com>
15175
15176         * culture-info.h: Make defines more consistent, add calendar data
15177         to the culture info table.
15178         * culture-info-tables.h: Add basic calendar data. Basically
15179         everyone gets default gregorian until all the data is
15180         updated.
15181         * locales.c: Use the new consistent defines. Set calendar data for
15182         culture info objects.
15183         * object.h: add a field for calendar data to CultureInfo
15184         
15185 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
15186
15187         * image.c: image->runtime_invoke_cache is keyed on signatures now.
15188         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
15189         a signature.
15190         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
15191         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
15192         an extra param that is the pointer of the method to invoke. The IL for
15193         the invoke method is no longer specific to the method, but to the
15194         signature of the method. Thus, we can share the same code for multiple
15195         methods. This reduces the number of methods that have to be compiled.
15196
15197 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
15198
15199         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
15200
15201         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15202
15203         * icall.c: Optimize Buffer.BlockCopy.
15204
15205 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15206
15207         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
15208         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
15209         quote). Changed them to "MMMM yyyy".
15210
15211 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
15212
15213         * rand.c
15214         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
15215
15216 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
15217
15218         * reflection.h: Updated after changes to managed structures.
15219
15220         * appdomain.c: Bump corlib version.
15221
15222 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15223
15224         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
15225         windows.
15226
15227 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15228
15229         * Makefile.am: link to ../os/libmonoos.la on windows.
15230
15231         * assembly.c:
15232                 -If MONO_DEBUG, warn about non-existing directories in
15233                 MONO_PATH.
15234                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
15235                 compile time variable.
15236                 -Removed init_default_path and call mono_set_rootdir from
15237                 libmonoos.a instead (windows only).
15238
15239         * assembly.h: declare mono_assembly_getrootdir().
15240
15241         * domain.c:
15242         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
15243
15244         * loader.c: s/getenv/g_getenv/
15245
15246 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
15247
15248         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
15249
15250         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
15251
15252         * metadata.h: Add new marshalling conversions.
15253
15254         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
15255         function.
15256
15257         * reflection.c (mono_reflection_get_type): Lookup the type in all
15258         modules of a multi-module assembly. Fixes #58291.
15259
15260 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
15261
15262         * threads.c: Before aborting a background, set the StopRequested
15263         state.  This avoids throwing the Abort exception.
15264         In mono_thread_manage, don't continue with the shutdown until all
15265         aborted threads have actually stopped.
15266
15267 2004-05-10  Jackson Harper  <jackson@ximian.com>
15268
15269         * locales.c: Remove the modifier from culture names.
15270         
15271 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15272
15273         * Makefile.am: monosn is not installed any more. It has been deprecated
15274         in favor of sn.
15275
15276 2004-05-07  Jackson Harper  <jackson@ximian.com>
15277
15278         * locales.c
15279         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
15280         Fix array construction, add bailout if the length is 0.
15281
15282 2004-05-07  Dick Porter  <dick@ximian.com>
15283
15284         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
15285         machine doesn't have a DNS entry.  Patch by Urs Muff
15286         (umuff@quark.com), fixes bug 57928.
15287
15288 2004-05-06  Jackson Harper  <jackson@ximian.com>
15289
15290         * reflection.c: Handle null PublicTokens properly. alloc mem for
15291         assembly names culture so we dont crash when freeing it.
15292         
15293 2004-05-06  Jackson Harper  <jackson@ximian.com>
15294
15295         * assembly.c: Check the usergac when loading with partial names.
15296         
15297 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
15298
15299         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
15300         does nothing for now (not required for Linux/Windows) but the class
15301         library can call it (and a newer or modified runtime could need it).
15302         * icall.c: Registred icall.
15303
15304 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15305
15306         * loader.c: prints a message on module loading error we set MONO_DEBUG
15307         environment variable.
15308
15309 2004-05-05  Jackson Harper  <jackson@ximian.com>
15310
15311         * appdomain.c: Handle PublicKeyToken=null properly.
15312         
15313 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
15314
15315         * environment.c|h: Added icall ves_icall_System_Environment_
15316         GetOSVersionString to get the current OS version as a string.
15317         * icall.c: Registred icall.
15318
15319 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
15320
15321         * object.c: in mono_object_get_virtual_method(), take into account that
15322         non-virtual methods don't have a slot in the vtable. Check needed when
15323         the object is a proxy.
15324
15325 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
15326
15327         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
15328         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
15329
15330         * object.c (mono_class_compute_gc_descriptor): Fix warning.
15331
15332         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
15333         passed when a valuetype is expected.
15334
15335         * object.c (mono_unhandled_exception): Only set the exit code if the
15336         exception happens in the main thread. Fixes thread5.exe.
15337
15338         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
15339         invalid names. Fixes #58047.
15340
15341 2004-05-03  Jackson Harper  <jackson@ximian.com>
15342
15343         * assembly.c: This line was committed accidently and is unneeded.
15344         
15345 2004-05-03  Jackson Harper  <jackson@ximian.com>
15346
15347         * icall.c: Add new icall for Assembly::LoadWithPartialName
15348         * assembly.c/.h: new function that probes the GAC to load partial
15349         assembly names by Paolo Molaro.
15350         
15351 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15352
15353         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
15354         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
15355         (type_get_fully_qualified_name): Added PublicKeyToken when building a
15356         full type name.
15357
15358 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15359
15360         * appdomain.c: fixed check for 'neutral' culture and removed warning.
15361         * reflection.c: fix bug when parsing a full type name and Version is not
15362         the last thing in the string.
15363
15364 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
15365
15366         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
15367         crashes when it is freed.
15368
15369 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15370
15371         * assembly.c: print the compat warning to stderr.
15372
15373 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
15374
15375         * assembly.c (mono_assembly_load_references): Add a compatibility
15376         hack to run old applications that might be still referencing the
15377         3300-based assemblies, only do this for System.xxx.
15378
15379 2004-05-01  Jackson Harper  <jackson@ximian.com>
15380
15381         * appdomain.c: If the culture is neutral we set it to "".
15382         
15383 2004-04-29  Jackson Harper  <jackson@ximian.com>
15384
15385         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
15386
15387 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
15388  
15389         * string-icalls.c: added low overhead function for copying chars
15390         * icall.c: added needed icall for the above function
15391  
15392 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15393
15394         * icall.c: fix return value of get_global_assembly_cache.  Implemented
15395         Environment.GetLogicalDrives.
15396
15397 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
15398
15399         * rand.c: try and talk to egd or prngd
15400         for random bytes if opening devices fail.
15401
15402 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
15403
15404         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
15405         alignment for the type using the native alignment of its members 
15406         instead of using klass->min_align.
15407
15408         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
15409
15410 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15411
15412         * file-io.c:
15413         * socket-io.c: added check for sys/aio.h.
15414
15415 2004-04-28  Dick Porter  <dick@ximian.com>
15416
15417         * threads.c: Don't abort a thread thats already aborting, when
15418         terminating everything.
15419
15420 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15421
15422         * icall.c: added 2 new async calls for Socket.
15423
15424         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
15425         IO on *nix systems.
15426
15427         * threadpool.c: removed unused variable.
15428
15429 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
15430
15431         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
15432
15433 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15434
15435         * locales.c: put back string_invariant_tolower () and
15436         string_invariant_toupper ().
15437
15438 2004-04-26 David Waite <mass@akuma.org>
15439
15440         * file-io.h:
15441         * socket-io.h:
15442         * threads.h:
15443         * unicode.h: remove comma from end of enumeration declarations
15444
15445 2004-04-26 David Waite <mass@akuma.org>
15446
15447         * debug-mono-symfile.h:
15448         * decimal.c:
15449         * mono_debug.h:
15450         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
15451
15452
15453 2004-04-26  Jackson Harper  <jackson@ximian.com>
15454
15455         * appdomain.c: Increment version number.
15456         
15457 2004-04-26  Jackson Harper  <jackson@ximian.com>
15458
15459         * appdomain.c: Set assembly references public token value when
15460         PublicKeyToken is specified, not the hash_value. Free public token
15461         values when free assembly name data. Previously the public key
15462         token was hex decoded, however we are using hex encoded public key
15463         tokens, so this is not neccasary.
15464         * assembly.c: Lookup assemblies in the gac if their public token
15465         value is set. Add function to allow enabling user gac
15466         lookups. Specify whether or not the assembly was loaded from the
15467         GAC. Compare full assembly names when checking the cache for
15468         assemblies (Temporarily disabled see comment in code). Remove
15469         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
15470         specifies trace-loader they get extra info to stdout on the
15471         loading of assemblies.
15472         * image.h: Add a field for an assembly references public token
15473         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
15474         whether an assembly has been loaded from the GAC.
15475         * image.c: Remove a corlib -> mscorlib name mapping.
15476         * loader.h: Add function to enable/disable the user gac.
15477         * mono-config.c: Check if the usergac is enabled in the config
15478         file.
15479         * icall.c: New icall to determine whether or not an assembly has
15480         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
15481         * tabldefs.h: Add constant for assemblyref flag that specifies a
15482         full public key is used instead of a public token.
15483         * reflection.c: Remove mscorlib -> corlib mappings. Set
15484         PublicTokenValue instead of hash value. This value is a hex
15485         string so it does not need to be expanded.
15486
15487 2004-04-26  Martin Baulig  <martin@ximian.com>
15488
15489         * mono-debug-debugger.c (mono_debugger_initialize): Set
15490         `mono_debugger_initialized' before calling mono_debug_lock().
15491
15492 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
15493
15494         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
15495           InternalToUpper/InternalToLower.
15496         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
15497           removed invariant culture shortcut.  This is now done in managed code.
15498         * locales.c: (string_invariant_toupper/tolower) removed.
15499
15500 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15501
15502         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
15503         Added Poll internal call.
15504
15505         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
15506         call for Poll. Select was too heavy for polling a single socket.
15507
15508         * threadpool.[ch]: added mono_threadpool_cleanup.
15509         * threads.c: use it. Don't use Thread_Abort on windows.
15510
15511 2004-04-23  Martin Baulig  <martin@ximian.com>
15512
15513         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
15514
15515 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
15516
15517         * icall.c: Registred new icalls for key pair protection and added an
15518         icall for Environment.GetFolderPath on Windows.
15519         * security.c|h: Added new icalls for key pair protection.
15520
15521 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15522
15523         * socket-io.c: don't display the non-supported family warning for known
15524         families. Now this is not displayed on windows when checking support
15525         for IPv4/IPv6.
15526
15527 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15528
15529         * class.c: don't display the layout warning for static fields.
15530
15531 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
15532
15533         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
15534         * locales.c, locales.h: Added new icalls for culture-specific
15535         Char.ToLower and Char.ToUpper.
15536
15537 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15538
15539         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
15540         by David Waite.
15541
15542 2004-04-20  Martin Baulig  <martin@ximian.com>
15543
15544         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
15545         of the type name before passing it to mono_reflection_type_from_name().
15546
15547 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
15548
15549         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
15550         encodings here. Fixes #56965.
15551
15552 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
15553
15554         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15555         fix test on strstr result not that I can see anything that
15556         relies on the result.
15557
15558 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
15559
15560         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
15561         Fixes #57081.
15562
15563         * marshal.c (mono_marshal_get_string_encoding): New helper function.
15564
15565         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
15566         function to determine which marshalling to use for strings. Fixes
15567         #56965.
15568
15569         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
15570
15571         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
15572
15573 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
15574
15575         * icall.c: #include mono-config.h
15576
15577 2004-04-15  Jackson Harper  <jackson@ximian.com>
15578
15579         * culture-info-tables.h: Fix date formats for en-US culture.
15580         
15581 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
15582
15583         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
15584         ThreadPool.SetMinThreads.
15585         * threadpool.c: Implemented ThreadPool.GetMinThreads and
15586         ThreadPool.SetMinThreads.
15587
15588 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
15589
15590         * mono-config.c: also load the .config file in the directory
15591         where the assembly was found.
15592
15593 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
15594
15595         * assembly.c: load per-assembly config files.
15596         * icall.c: decrapified code to get the config dir and moved to
15597         mono-config.c.
15598         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
15599         per-assembly config files. When doing a dll map lookup give precedence
15600         to the per-assembly data.
15601
15602 2004-04-14  Martin Baulig  <martin@ximian.com>
15603
15604         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
15605         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
15606         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
15607
15608         * mono-debugger-debugger.c: While the debugger is locked, remember
15609         whether the symbol tables have changes and send one single
15610         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
15611
15612 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
15613
15614         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
15615
15616         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
15617         function.
15618
15619         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
15620         account when marshalling string arrays. Fixes #56965.
15621
15622 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
15623
15624         * icall.c: Add new icalls mapping for security.
15625         * security.c|h: Add internal calls for WindowsIdentity,
15626         WindowsImpersonationContext and WindowsPrincipal.
15627
15628 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
15629
15630         * class.c: Added comment to ensure the System.MonoDummy class
15631         is removed when no longer necessary
15632
15633 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
15634
15635         * appdomain.c: Pass arguments to the bootstraping exceptions to
15636         minimize JITed methods at boot
15637
15638         * metadata.c (mono_exception_from_name_two_strings): Allow for the
15639         second string to be null.
15640
15641         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15642         Change the protocol to minimize the JIT methods at startup.  Now
15643         it Returns the internal codepage, if the value of "int_code_page"
15644         is 1 at entry, and we can not compute a suitable code page
15645         number, returns the code page as a string.
15646
15647 2004-04-13  Jackson Harper  <jackson@ximian.com>
15648
15649         * culture-info-tables.h: Fix number of decimal digits for all
15650         english locales.
15651
15652 2004-04-13  Jackson Harper  <jackson@ximian.com>
15653
15654         * icall.c: Clairfy out of sync error message. It is not always
15655         your corlib that is out of sync.
15656
15657 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
15658
15659         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
15660         properties when only the set accessor is overriden. Fixes #55874.
15661
15662 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
15663
15664         * assembly.c (mono_assembly_load_references): Make this thread safe.
15665         Fixes #56327.
15666
15667 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
15668
15669         * monosn.c: Add missing initialization calls.
15670
15671 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
15672
15673         * locales.c:
15674         ves_icall_System_Globalization_CultureInfo_construct_number_format
15675         Fix g_assert so it compiles on fussier compilers re int/ptr
15676         mismatch
15677
15678 2004-04-08  Dick Porter  <dick@ximian.com>
15679
15680         * socket-io.h:
15681         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
15682         53992.  Also rearrange the code so that the internal calls return
15683         an error value and exceptions are thrown from managed code.
15684
15685         * icall.c: Add type info to the socket icalls.
15686
15687 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15688
15689         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
15690         owes me a beer.
15691
15692 2004-04-07  Martin Baulig  <martin@ximian.com>
15693
15694         * class.c (mono_class_from_generic_parameter): Don't default
15695         `klass->parent' to `mono_defaults.object_type'.
15696
15697 2004-04-07  Martin Baulig  <martin@ximian.com>
15698
15699         * reflection.c (mono_reflection_initialize_generic_parameter): Set
15700         `param->pklass->reflection_info'.       
15701
15702 2004-04-07  Jackson Harper  <jackson@ximian.com>
15703
15704         * culture-info-tables.h: Fix date separator symbol.
15705         
15706 2004-04-07  Martin Baulig  <martin@ximian.com>
15707
15708         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
15709         from System.Type to System.MonoType.
15710
15711 2004-04-07  Martin Baulig  <martin@ximian.com>
15712
15713         * reflection.h
15714         (MonoReflectionGenericParam): Added `has_reference_type' and
15715         `has_value_type' fields.
15716
15717         * reflection.c (mono_image_get_generic_param_info): Encode the
15718         correct flags if we have the `class' or `struct' constraint.
15719
15720 2004-04-07  Martin Baulig  <martin@ximian.com>
15721
15722         * reflection.h
15723         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
15724
15725 2004-04-07  Jackson Harper  <jackson@ximian.com>
15726
15727         * appdomain.c: Revert extra patches, just wanted to bump the
15728         version number.
15729         
15730 2004-04-07  Jackson Harper  <jackson@ximian.com>
15731
15732         * Makefile.am: Add culture-info private headers.
15733         * icall.c: Add new icalls for contructing locales.
15734         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
15735         * locales.h: Declare new culture info construction methods.
15736         * object.h: Add new fields used to avoid the CultureMap to
15737         MonoCultureInfo.
15738         * culture-info.h: Definition of structs used in the culture info
15739         tables.
15740         * culture-info-tables.h: Autogenerated tables that contain culture
15741         info data. This file was generated with the locale-builder tool.
15742         * appdomain.c: Incement corlib version number.
15743         
15744 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
15745
15746         * appdomain.c: (mono_runtime_init) move mono_thread_init
15747         to before mono_object_new calls so critical sections
15748         are initialized before use.
15749
15750 2004-04-07  Martin Baulig  <martin@ximian.com>
15751
15752         * icall.c
15753         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
15754         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
15755         (ves_icall_MonoGenericParam_initialize): Removed.
15756         (monogenericparam_icalls): Removed.
15757         (generictypeparambuilder_icalls): Added new table for
15758         System.Reflection.Emit.GenericTypeParameterBuilder.
15759
15760         * reflection.c
15761         (mono_reflection_define_generic_parameter): Removed.
15762         (mono_reflection_initialize_generic_parameter): This is now called
15763         from GenericTypeParameterBuilder's .ctor.
15764
15765 2004-04-06  Martin Baulig  <martin@ximian.com>
15766
15767         * class.c (mono_class_init): Don't inflate nested classes in a
15768         generic instance.
15769         (mono_type_get_name_recurse): Include the generic arguments for
15770         generic instances and generic type declarations.
15771         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
15772         (_mono_class_get_instantiation_name): Removed.
15773         (mono_class_create_generic): Always use `gklass->name' as our name.
15774
15775         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
15776
15777         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
15778         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
15779         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
15780         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
15781         closed generic methods here.
15782
15783         * reflection.c
15784         (mono_reflection_generic_inst_get_nested_types): Removed.
15785         (inflate_mono_method): Copy the generic parameters from the
15786         MonoMethodHeader into out MonoGenericMethod.
15787
15788 2004-04-06  Martin Baulig  <martin@ximian.com>
15789
15790         * row-indexes.h
15791         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
15792
15793         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
15794
15795         * reflection.c (build_compressed_metadata): If we have any entries
15796         in the GenericParam, MethodSpec or GenericParamConstraint tables,
15797         set the header version to 1.1.
15798
15799 2004-04-06  Martin Baulig  <martin@ximian.com>
15800
15801         * class.c (mono_class_init): If we're a generic instance,
15802         initialize our nested classes, too.
15803         (_mono_class_get_instantiation_name): Deal with the new `!%d'
15804         suffix. 
15805
15806 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15807
15808         * process.c: quote the argument passed to the shell on windows.
15809
15810 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
15811
15812         * threads.c (mono_alloc_special_static_data): Allow this to be
15813         called during startup.
15814
15815 2004-04-02  Martin Baulig  <martin@ximian.com>
15816
15817         * icall.c
15818         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
15819
15820 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
15821
15822         * icall.c: Fix build.
15823
15824 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
15825
15826         * Makefile.am: Added security.c|h.
15827         * icall.c: Added icall for get_UserName;
15828         * security.c: New file for security related icalls. Added function
15829         get_UserName for System.Environment (fix #56144).
15830         * security.h: New. Header file for security.c
15831
15832 2004-04-02  Dick Porter  <dick@ximian.com>
15833
15834         * icall.c: Deleted the icalls that were obsoleted some time ago
15835         by the ICU string code, and which were mixed into the icall
15836         rearranging.  Fixes bug 55969.
15837
15838         * string-icalls.h: 
15839         * string-icalls.c: Deleted the code that those icalls reference.
15840
15841 2004-04-01  Martin Baulig  <martin@ximian.com>
15842
15843         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
15844
15845         * class.c (mono_class_from_generic_parameter): Don't set 
15846         TYPE_ATTRIBUTE_INTERFACE.
15847         (my_mono_class_from_generic_parameter): Likewise.
15848
15849 2004-04-01  Martin Baulig  <martin@ximian.com>
15850
15851         * loader.c (find_method): Added an optional `MonoClass *ic'
15852         argument to search in a specific interface.
15853         (mono_get_method_constrained): New public function.
15854
15855 2004-04-01  Martin Baulig  <martin@ximian.com>
15856
15857         * reflection.c (mono_image_get_generic_field_token): Use the
15858         `handleref' cache here.
15859
15860 2004-04-01  Martin Baulig  <martin@ximian.com>
15861
15862         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
15863
15864         * reflection.c (create_generic_typespec): Use the `typespec' hash
15865         here, not the `typeref' one.    
15866
15867 2004-04-01  Martin Baulig  <martin@ximian.com>
15868
15869         * class.c (mono_class_inflate_generic_type): Moved the
15870         functionality into a new static inflate_generic_type() which
15871         returns NULL if it didn't do anything.  Only increment the
15872         `mono_stats.inflated_type_count' if we actually inflated
15873         something.
15874         (mono_class_get_full): Check the classes type to see whether we
15875         need to inflate it; also inflate MONO_TYPE_(M)VAR.
15876
15877 2004-04-01  Jackson Harper  <jackson@ximian.com>
15878
15879         * reflection.c: Set culture for assembly references.
15880         
15881 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
15882
15883         * reflection.[ch], icall.[ch], Fix support for pinning variables.
15884
15885 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15886
15887         * assembly.c:
15888         (do_mono_assembly_open): the critical section also covers
15889         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
15890
15891 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15892
15893         * threads.c:
15894         (mono_manage_threads): abort the background threads when finishing.
15895         Fixes bug #47232.
15896
15897 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15898
15899         * gc.c: only close the done_event handle if there was no timeout.
15900         C-ified comments.
15901
15902 2004-03-30  Martin Baulig  <martin@ximian.com>
15903
15904         * icall.c (icall_entries): It's called "System.Activator", not
15905         "System.Activation".    
15906
15907 2004-03-30  Martin Baulig  <martin@ximian.com>
15908
15909         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
15910         (mono_class_create_from_typespec): Likewise.
15911
15912 2004-03-30  Martin Baulig  <martin@ximian.com>
15913
15914         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
15915         `has_ctor_constraint' and `initialized'.
15916
15917 2004-03-30  Martin Baulig  <martin@ximian.com>
15918
15919         * reflection.c (encode_new_constraint): New static function to add
15920         the constructor constraint attribute to a type parameter.
15921         (encode_constraints): Call encode_new_constraint() if necessary.
15922
15923         * reflection.h
15924         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
15925
15926         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
15927         
15928 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
15929
15930         * reflection.c, icall.c: add support for pinning variables. 
15931
15932 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
15933
15934         * marshal.c (mono_marshal_get_managed_wrapper):
15935         init bool local with zero rather than null.
15936
15937 2004-03-29  Martin Baulig  <martin@ximian.com>
15938
15939         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
15940         the "official" behavior here.
15941         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
15942
15943 2004-03-29  Martin Baulig  <martin@ximian.com>
15944
15945         * icall.c: Reflect latest API changes.
15946
15947 2004-03-29  Martin Baulig  <martin@ximian.com>
15948
15949         * loader.c (mono_get_method_from_token): Also call
15950         mono_metadata_load_generic_params () for abstract and interface
15951         methods; replace the type arguments in the method signature with
15952         the ones which are loaded from the metadata.
15953
15954 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
15955
15956         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
15957         of the lock is not the current thread. MS.NET don't do it, in spite of
15958         what the documentation says. See bug #56157.
15959
15960 2004-03-28  Martin Baulig  <martin@ximian.com>
15961
15962         * class.c (mono_class_init): Don't call init_properties() and
15963         init_events() for generic instances; set `prop->parent' when
15964         inflating properties.
15965
15966         * reflection.c (mono_generic_inst_get_object): Call
15967         `mono_class_init (ginst->klass)'.
15968         (mono_type_get_object): Only create a MonoGenericInst if your
15969         generic type is a TypeBuilder.
15970         (do_mono_reflection_bind_generic_parameters): Only set
15971         `ginst->is_dynamic' if our generic type is a TypeBuilder.
15972
15973 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
15974
15975         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
15976         Fixes #56091.
15977
15978 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15979
15980         * icall.c: added Kill_internal icall.
15981         * process.[ch]: added Kill_internal icall.
15982
15983 2004-03-25  Martin Baulig  <martin@ximian.com>
15984
15985         * class.h (MonoStats): Added `generic_instance_count',
15986         `inflated_method_count', `inflated_type_count' and
15987         `generics_metadata_size'.       
15988
15989 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15990
15991         * reflection.c: no warnings now.
15992
15993 2004-03-25  Martin Baulig  <martin@ximian.com>
15994
15995         * class.c (mono_class_get_full): New public function; does a
15996         mono_class_get(), but also takes a `MonoGenericContext *'.
15997
15998         * loader.c (mono_field_from_memberref): Renamed to
15999         `field_from_memberref', made static and added `MonoGenericContext *'
16000         argument.
16001         (mono_field_from_token): Added `MonoGenericInst *' argument.
16002         (method_from_memberef): Likewise.
16003         (mono_get_method_from_token): Likewise.
16004         (mono_get_method_full): New public function; does a
16005         mono_get_method(), but also takes a `MonoGenericContext *'.
16006
16007         * verify.c (mono_method_verify): Get the method's generic context
16008         and pass it to mono_field_from_token(), mono_get_method_full() and
16009         mono_class_get_full().
16010
16011 2004-03-25  Martin Baulig  <martin@ximian.com>
16012
16013         * class.c (mono_class_inflate_generic_type): Take a
16014         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
16015         `MonoGenericMethod *'.
16016
16017 2004-03-25  Martin Baulig  <martin@ximian.com>
16018
16019         * loader.h (MonoMethodInflated): Store the MonoGenericContext
16020         instead of the MonoGenericMethod here.
16021
16022 2004-03-25  Martin Baulig  <martin@ximian.com>
16023
16024         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
16025         each time we create a new MonoGenericInst, we also create a new
16026         context which points back to us.
16027
16028         * class.c (inflate_method): Use `ginst->context' instead of
16029         creating a new context.
16030
16031         * loader.c (method_from_memberref): Use
16032         `klass->generic_inst->context' instead of creating a new context.
16033
16034 2004-03-25  Martin Baulig  <martin@ximian.com>
16035
16036         * class.h (MonoGenericContext): New struct.
16037         (MonoGenericMethod): Removed `generic_inst'.
16038
16039         * class.c (mono_class_inflate_generic_method): Take a
16040         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
16041
16042 2004-03-25  Martin Baulig  <martin@ximian.com>
16043
16044         * loader.h (MonoMethodInflated): New typedef.
16045
16046         * metadata.h (MonoMethodSignature): Removed `gen_method', make
16047         `generic_param_count' consume just 30 bits, added `is_inflated'
16048         and `has_type_parameters' flags (one bit each).
16049
16050         * class.c (mono_class_inflate_generic_method): Create a
16051         MonoMethodInflated instead of a MonoMethodNormal and set
16052         `is_inflated' in the method signature.
16053
16054         * class.h (MonoGenericMethod): Removed `generic_method'.
16055
16056 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
16057
16058         * image.c: Make sure the name of a MonoImage is always an absolute path.
16059           This fixes bug #54415.
16060
16061 2004-03-24  Martin Baulig  <martin@ximian.com>
16062
16063         * class.c (mono_class_setup_vtable): If we're a generic instance,
16064         use our generic type's vtable size.
16065
16066 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
16067
16068         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
16069         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
16070         problems.
16071
16072 2004-03-23  Martin Baulig  <martin@ximian.com>
16073
16074         * class.h (MonoDynamicGenericInst): Added `int count_events' and
16075         `MonoEvent *events'.
16076
16077         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
16078         (typebuilder_icalls): Added "get_event_info"; calls
16079         mono_reflection_event_builder_get_event_info(). 
16080
16081         * reflection.c (mono_reflection_generic_inst_initialize): Added
16082         `MonoArray *events'.
16083         (mono_reflection_event_builder_get_event_info): New function.
16084
16085 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
16086
16087         * object.h: add mono_type_initialization_init
16088
16089         * object.c (mono_runtime_class_init): 
16090         implement class constructor synchronization rules
16091         to cope with threading issues.  
16092         add mono_type_initialization_init
16093
16094         * appdomain.c (mono_runtime_init): call 
16095         mono_type_initialization_init
16096
16097         * class.h: removing initializing field from MonoVTable
16098
16099 2004-03-23  Martin Baulig  <martin@ximian.com>
16100
16101         * class.c (my_mono_class_from_generic_parameter): Use
16102         `param->name' if it's not NULL. 
16103
16104 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
16105
16106         * class.c: do not insert non-virtual methods in the vtable.
16107         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
16108         that means the method is non-virtual. This never would have
16109         happened before.
16110
16111 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
16112
16113         * profiler.c: Added lock for accessing coverage_hash.
16114
16115 2004-03-22  Martin Baulig  <martin@ximian.com>
16116
16117         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
16118         `method->method->signature->generic_param_count != 0' to make it
16119         work for interface methods.
16120
16121 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16122
16123         * process.c: quote the string passed to the shell using g_shell_quote.
16124
16125 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16126
16127         * threads.c:
16128         (mono_threads_manage): don't remove the finalizer thread and self
16129         from the threads hash table so that mono_thread_manage can be called
16130         more than once.
16131
16132 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16133
16134         * process.c: quote the arguments when UseShellExecute is true. Fixes
16135         bug #55790.
16136
16137 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16138
16139         * threads.c: set mono_thread_detach as a cleanup routine for every
16140         thread. This way it's always executed upon thread termination, either
16141         aborted or finished normally. No more xsp hangs!
16142
16143 2004-03-17  Martin Baulig  <martin@ximian.com>
16144
16145         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
16146         `int count_nested' and a `MonoType **nested'.
16147
16148         * reflection.c (mono_reflection_bind_generic_parameters): Moved
16149         most of the functionality into a new static
16150         do_mono_reflection_bind_generic_parameters() and don't take a
16151         `MonoType *nested_in' argument any more.  Don't compute nested
16152         types here.
16153         (mono_reflection_generic_inst_get_nested_types): New public method
16154         to get nested types.
16155
16156         * class.c (mono_class_create_generic): Set `klass->nested_in' if
16157         we're a nested class.
16158
16159         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
16160         mono_reflection_generic_inst_get_nested_types() to compute the
16161         nested types.
16162
16163 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
16164
16165         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
16166         descriptive error message under windows.
16167         
16168 2004-03-17  Martin Baulig  <martin@ximian.com>
16169
16170         * class.c (dup_type): Added `const MonoType *original' argument;
16171         copy the attrs from the original type.
16172
16173 2004-03-17  Martin Baulig  <martin@ximian.com>
16174
16175         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
16176         `m->generic_inst_cache' here.
16177
16178 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
16179
16180         * exception.h exception.c: Add stack_overflow_exception.
16181
16182 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16183
16184         * threadpool.c:
16185         (overlapped_callback): call SetEvent *after* invoking the callback.
16186         No need to call CloseHandle.
16187
16188 2004-03-16  Martin Baulig  <martin@ximian.com>
16189
16190         * reflection.c (mono_image_get_fieldref_token): Take a
16191         `MonoReflectionField *' instead of a `MonoClassField *' and a
16192         `MonoClass *'; store the `MonoReflectionField *' in the hash.
16193
16194 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16195
16196         * appdomain.c: don't add the culture to the filename we're looking for
16197         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
16198
16199 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16200
16201         * locales.c: don't ignore symbols when doing case insensitive compares.
16202         Thanks Dick! Fixes bug #54046.
16203
16204         * threads.c: surround 'threads' usage with enter/leave in
16205         mono_thread_manage.
16206
16207 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
16208
16209         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
16210         implicitly marshalled as [Out]. Fixes #55450.
16211
16212         (mono_marshal_get_runtime_invoke): Zero out the result if there is
16213         an exception.
16214
16215 2004-03-16  Martin Baulig  <martin@ximian.com>
16216
16217         * class.c (mono_class_from_generic_parameter): Use the actual
16218         parameter name. 
16219
16220 2004-03-16  Martin Baulig  <martin@ximian.com>
16221
16222         * reflection.c (type_get_signature_size): New static function.
16223         Compues the size of the type in a method signature.
16224         (method_get_signature_size): New static function; calls
16225         type_get_signature_size() to compute the actual size of the
16226         method's signature.
16227         (method_encode_signature): Use method_get_signature_size() to get
16228         the signature's size rather than using `nparams * 10'.
16229
16230 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16231
16232         * file-io.h: define here WapiOverlapped on windows. I don't want the
16233         regular OVERLAPPED one.
16234
16235         * file-io.c:
16236         * threadpool.c: somehow, BindIoCompletionCallback is not found.
16237         Disabling AIO on windows.
16238
16239 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16240
16241         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
16242         bug #55385.
16243
16244 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16245
16246         * appdomain.c: upgraded corlib version.
16247
16248         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
16249         and BeginWrite. Allow opening files for asynchrnous operations.
16250
16251         * file-io.h: new struct that maps FileStreamAsyncResult.
16252         * icall.c: added new icalls.
16253         * process.[ch]: support setting child process environment variables
16254         and use the SHELL or COMSPEC when UseShellExecute is true.
16255
16256         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
16257         callback for async. IO is here and also BindHandle.
16258
16259         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
16260         from here.
16261
16262 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
16263
16264         * reflection.c (create_custom_attr): Allow len == 0.
16265
16266         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
16267         computation on big-endian machines.
16268
16269 2004-03-13  Martin Baulig  <martin@ximian.com>
16270
16271         * class.h (MonoGenericInst): Added `int count_ifaces'.
16272
16273         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
16274         `ginst->count_ifaces' instead `klass->interface_count' since we
16275         may get called before the vtable is created.
16276
16277         * loader.c (mono_method_get_param_names): If we're a generic
16278         instance, return and don't initialize the class.
16279
16280         * reflection.c (mono_reflection_setup_generic_class): Don't call
16281         ensure_runtime_vtable().
16282         (mono_reflection_bind_generic_parameters): Set
16283         `ginst->count_ifaces'.
16284
16285 2004-03-11  Jackson Harper <jackson@ximian.com>
16286
16287         * icall.c:
16288         * unicode.c:
16289         * unicode.h: Remove unused System.Char icalls.
16290         
16291 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
16292
16293         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
16294         code when we P/Invoke the first library in Windows.Forms, instead
16295         of when we first open the assembly.
16296
16297         * assembly.c: Drop the lookup from here.
16298
16299 2004-03-10  Martin Baulig  <martin@ximian.com>
16300
16301         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
16302         class for properties, fields and events.  Finally fixes #54945.
16303
16304 2004-03-10  Martin Baulig  <martin@ximian.com>
16305
16306         * metadata.c (mono_metadata_class_equal): New static function;
16307         checks whether two generic instances or two generic parameters are
16308         equal.
16309         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
16310         compare classes.        
16311
16312 2004-03-10  Martin Baulig  <martin@ximian.com>
16313
16314         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
16315
16316         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
16317         argument and write it into the `reflection_info' field.
16318
16319         * icall.c
16320         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
16321         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
16322
16323 2004-03-09  Jackson Harper  <jackson@ximian.com>
16324
16325         * char-conversions.h: use 8 bits for numeric data its all we need
16326         * icall.c: numeric data is only 8 bits now.
16327
16328 2004-03-09  Martin Baulig  <martin@ximian.com>
16329
16330         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
16331
16332         * class.c (init_properties, init_events): Initialize the new
16333         `parent' field.
16334
16335         * reflection.c (typebuilder_setup_properties): Likewise.
16336         (typebuilder_setup_events): Likewise.
16337
16338         * reflection.h (MonoEventInfo): Replaced `parent with
16339         `declaring_type' and `reflected_type'.
16340
16341         * icall.c (ves_icall_get_property_info): Distinguish between
16342         declaring and reflected type.
16343         (ves_icall_get_event_info): Likewise.
16344
16345 2004-03-09  Martin Baulig  <martin@ximian.com>
16346
16347         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
16348         (ves_icall_Type_GetField): Correctly set field->klass.
16349
16350 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
16351
16352         * loader.h: Fix warning.
16353
16354 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
16355
16356         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
16357         library routine if present.  Notice that it will still continue
16358         executing even if its missing, for those working on the Gtk#
16359         edition of Windows.Forms.
16360
16361         * assembly.c (do_mono_assembly_open): If loading the
16362         System.Windows.Forms call mono_loader_wini_init.
16363
16364 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
16365
16366         * class.h: Added MonoRemoteClass struct.
16367         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
16368         function for MonoStrings.
16369         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
16370         Added internal call for getting the proxy type.
16371         * marshal.c: Get the type of transparent proxies from its remote_class.
16372         Added methods that generate the IL for type checks and casts:
16373         mono_marshal_get_isinst, mono_marshal_get_castclass, 
16374         mono_marshal_get_proxy_cancast.
16375         * marshal.h: Declaration of the previous new methods.
16376         * object.c: Added new moethods for creating and updating MonoRemoteClass
16377         instances: mono_remote_class, mono_upgrade_remote_class, 
16378         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
16379         * verify.c: FIx transparent_proxy_fields layout.
16380         * appdomain.c: Bump corlib version.
16381
16382 2004-03-04  Jackson Harper  <jackson@ximian.com>
16383
16384         * icall.c: Add icall to access char conversion tables.
16385         * char-conversions.h: Character conversion tables.
16386         * Makefile.am: Add char-conversions.h private header file.
16387         
16388 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
16389
16390         * appdomain.c (unload_thread_main): Increase unloading timeout to
16391         10 sec as a temporary workaround for Nant problems.
16392
16393 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
16394
16395         * gc.c: Add checks for GC_enable and GC_disable.
16396
16397         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
16398         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
16399         (bug #54988).
16400         
16401 2004-02-27  Martin Baulig  <martin@ximian.com>
16402
16403         * reflection.c (mono_reflection_bind_generic_parameters): Take a
16404         `MonoReflectionType *' instead of a `MonoType *'.
16405
16406 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
16407
16408         * gc.c (run_finalize): Avoid finalizing the object representing the
16409         finalizer thread.
16410         (finalizer_thread): Fix warning.
16411
16412 2004-02-25  Martin Baulig  <martin@ximian.com>
16413
16414         * class.c (_mono_class_get_instantiation_name): Added `int offset'
16415         argument for nested types.
16416         (mono_class_create_generic): Added support for nested generictypes.
16417
16418         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
16419         `GList *nested'.
16420
16421         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
16422
16423         * reflection.c (method_encode_signature): Increase the minimum
16424         value of `size' from 10 to 11.
16425         (mono_reflection_bind_generic_parameters): Take `int type_argc'
16426         and `MonoType **types' arguments instead of the `MonoArray
16427         *types'; added `MonoType *nested_in'.  Recursively instantiate
16428         nested classes. 
16429
16430 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
16431
16432         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
16433         stack_overflow_ex members which are used by exception handling.
16434
16435         * appdomain.c (mono_runtime_init): Initialize the new members.
16436
16437         * gc.c (mono_gc_enable): New helper function.
16438         * gc.c (mono_gc_disable): New helper function.
16439
16440 2004-02-23  Martin Baulig  <martin@ximian.com>
16441
16442         * icall.c: I must have been really stupid - make it actually work
16443         this time ;-)
16444
16445 2004-02-23  Martin Baulig  <martin@ximian.com>
16446
16447         * loader.c (method_from_memberref): Only inflate the method if
16448         it's in another klass.
16449
16450 2004-02-23  Martin Baulig  <martin@ximian.com>
16451
16452         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
16453         (mono_class_init): If we're a generic instance and an interface,
16454         compute `class->interface_id'; also create `class->interfaces'
16455         here and inflate them.
16456
16457         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
16458         `ginst->is_open'.
16459         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
16460
16461         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
16462
16463 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
16464
16465         * reflection.c (method_encode_code): Improved the error message
16466         generated by the exception.
16467
16468 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16469
16470         * icall.c: Martin did not do what he said in the ChangeLog for
16471         2004-02-18, but put back the changes for properties and events.
16472         Commenting those changes out again and adding comment to bug #54518.
16473         
16474         * process.c: removed warning.
16475
16476 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
16477
16478         * marshal.c (emit_struct_conv): Print an error message instead of
16479         asserting when a type does not have the StructLayout attribute.
16480
16481 2004-02-20  Martin Baulig  <martin@ximian.com>
16482
16483         * reflection.c (mono_type_get_object): Also use the cache for
16484         generic instances.
16485         (mono_reflection_bind_generic_parameters): Always compute
16486         `ginst->ifaces'.        
16487
16488 2004-02-20  Martin Baulig  <martin@ximian.com>
16489
16490         * class.h (MonoGenericMethod): Removed `klass'.
16491
16492         * class.c (mono_class_inflate_generic_method): Added `MonoClass
16493         *klass' argument.
16494
16495 2004-02-20  Martin Baulig  <martin@ximian.com>
16496
16497         * reflection.c (method_encode_methodspec): Actually use the
16498         uninflated signature for the memberref.
16499
16500 2004-02-20  Martin Baulig  <martin@ximian.com>
16501
16502         * class.h (MonoGenericMethod): Removed `declaring'.
16503
16504         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
16505         is NULL, compute it here.
16506
16507 2004-02-20  Martin Baulig  <martin@ximian.com>
16508
16509         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
16510
16511         * metadata.c (mono_metadata_generic_inst_hash): New method.
16512         (mono_metadata_generic_inst_equal): New method.
16513
16514         * reflection.c (mono_reflection_bind_generic_parameters): Use the
16515         `klass->image->generic_inst_cache' cache to avoid creating
16516         duplicate MonoGenericInst's.
16517
16518         * class.c (mono_class_inflate_generic_type): Use the cache.
16519
16520 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
16521
16522         * object.c: fixed gc descriptor calculation for embedded valuetypes.
16523
16524 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16525
16526         * icall.c: added Socket.WSAIoctl icall.
16527
16528         * socket-io.[ch]: implemented
16529         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
16530
16531 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
16532
16533         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
16534
16535 2004-02-18  Urs C Muff  <umuff@quark.com>
16536
16537         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
16538         this work on PPC and other big-endian architectures.
16539
16540         * debug-mono-symfile.h: Prepended the names of all the `guint32'
16541         fields with an underscore to make sure they're only accessed by
16542         the read32() macro.
16543
16544 2004-02-18  Martin Baulig  <martin@ximian.com>
16545
16546         * icall.c: Put the klass->refclass changes back for methods and
16547         fields, but not for properties and events.  We're currently not
16548         distinguishing between DeclaringType and ReflectedType for
16549         properties and events, that's what caused the regressions.
16550
16551 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16552
16553         * object.c:
16554         (mono_async_result_new): the handle can be NULL.
16555
16556         * threadpool.c: Use an event instead of a semaphore, don't initialize
16557         it until needed. This saves quite a few semaphores from being created
16558         when using the threadpool.
16559
16560 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
16561
16562         * object.c (mono_string_is_interned_lookup): Fix interning of long
16563         strings. Fixes #54473.
16564
16565         * domain.c (ldstr_equal): Optimize if the two strings are equal.
16566
16567         * icall.c: Revert the klass->refclass changes since they introduce
16568         regressions (bug #54518).
16569
16570 2004-02-18  Martin Baulig  <martin@ximian.com>
16571
16572         * class.c (mono_class_init): If we're a generic instance and don't
16573         come from a TypeBuilder, inflate our members here.
16574         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
16575         (mono_class_create_generic): New public method.
16576         (mono_class_initialize_generic): Removed.
16577         (get_instantiation_name): Renamed to
16578         _mono_class_get_instantiation_name() and made it public.
16579
16580 2004-02-18  Martin Baulig  <martin@ximian.com>
16581
16582         * class.c (mono_class_inflate_generic_type): Clear the new
16583         instance's `nginst->klass' when inflating a generic instance.
16584         (mono_class_is_subclass_of): Added (basic) support for generic
16585         instances.
16586
16587 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
16588
16589         * appdomain.h, domain.c: use a MonoCodeManager instead of a
16590         MonoMempool to hold compiled native code.
16591
16592 2004-02-17  Martin Baulig  <martin@ximian.com>
16593
16594         * class.h (MonoDynamicGenericInst): Added `count_properties' and
16595         `properties'.
16596
16597         * reflection.c (mono_reflection_generic_inst_initialize): Added
16598         `MonoArray *properties' argument.
16599
16600         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
16601
16602 2004-02-17  Martin Baulig  <martin@ximian.com>
16603
16604         * icall.c (ves_icall_Type_GetFields): Renamed to
16605         ves_icall_Type_GetFields_internal() and added a
16606         `MonoReflectionType *rtype' argument; pass it to
16607         mono_field_get_object() to set the field's "reflected" type.
16608         (ves_icall_Type_GetConstructors): Likewise.
16609         (ves_icall_Type_GetEvents): Likewise.
16610         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
16611         argument; pass it to mono_method_get_object() to set the method's
16612         "reflected" type.       
16613
16614 2004-02-17  Martin Baulig  <martin@ximian.com>
16615
16616         * class.h (MonoDynamicGenericInst): New type.
16617         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
16618
16619         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
16620         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
16621         (ves_icall_MonoGenericInst_GetFields): New interncall.
16622
16623         * class.c (mono_class_from_generic): Don't call
16624         mono_class_initialize_generic() if this is a dynamic instance;
16625         ie. it's being created from a TypeBuilder.
16626         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
16627         `class->byval_arg.type'.
16628
16629         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
16630         to `inflate_method' and made static.
16631         (mono_reflection_inflate_field): Removed.
16632         (mono_reflection_generic_inst_initialize): New public method.
16633
16634         * reflection.h (MonoReflectionGenericInst): Removed `methods',
16635         `ctors' and `fields'; added `initialized'.
16636
16637 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
16638
16639         * debug-helpers.c (mono_method_full_name): Fix output for empty
16640         namespaces.
16641
16642 2004-02-12  Martin Baulig  <martin@ximian.com>
16643
16644         * class.h (MonoClassField): Added `MonoType *generic_type'.
16645
16646         * reflection.c (mono_image_get_fieldref_token): Added support for
16647         instantiated generic types.
16648         (field_encode_inflated_field): Removed.
16649         (mono_image_get_inflated_field_token): Removed.
16650         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
16651
16652         * reflection.h (MonoReflectionInflatedField): Removed.
16653
16654 2004-02-12  Martin Baulig  <martin@ximian.com>
16655
16656         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
16657         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
16658
16659         * reflection.c (mono_image_get_methodspec_token): Take a
16660         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
16661         (mono_image_create_token): Check whether we have a
16662         `method->signature->gen_method' and call
16663         mono_image_get_methodspec_token() if appropriate.
16664         (inflated_method_get_object): Removed.
16665         (mono_reflection_bind_generic_method_parameters): Return a
16666         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
16667         (mono_reflection_inflate_method_or_ctor): Likewise.
16668
16669         * reflection.h (MonoReflectionInflatedMethod): Removed.
16670
16671 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
16672
16673         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
16674         for custom valuetype marshalling.
16675
16676         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
16677
16678 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16679
16680         * icall.c: fixed WSAGetLastError_internal name.
16681
16682 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
16683
16684         * threads.c (mono_thread_attach): Allow this to be called multiple
16685         times for a thread.
16686         
16687         * threads.c (build_wait_tids): Do not wait for ourselves.
16688
16689         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
16690         appdomain list is empty.
16691
16692         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
16693         memory returned by mono_string_builder_to_utf16, since it points into
16694         managed memory. Thanks to Bernie Solomon for noticing this.
16695
16696         * icall.c: Add AppDomainSetup icalls.
16697
16698         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
16699
16700         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
16701         types.
16702
16703         * reflection.c (reflection_methodbuilder_to_mono_method): Save
16704         custom attributes to the method_aux struct. Also fix array indexes etc.
16705
16706         * loader.c (mono_method_get_param_names): Make dynamic case work again.
16707         
16708 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
16709
16710         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
16711         (both static and runtime) and reduce startup time.
16712
16713 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
16714
16715         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
16716         AsAny marshalling conversion instead of crashing.
16717
16718         * marshal.c: Fix warnings.
16719
16720 2004-02-09  Martin Baulig  <martin@ximian.com>
16721
16722         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
16723
16724         * reflection.h (MonoReflectionInflatedMethod): Removed the
16725         `declaring' field, it's now in the unmanaged MonoGenericMethod.
16726
16727         * reflection.c (method_encode_methodspec): Removed the `method'
16728         argument; we get it from `gmethod->declaring'.
16729         (inflated_method_get_object): Removed the `declaring' argument.
16730
16731 2004-02-09  Martin Baulig  <martin@ximian.com>
16732
16733         * class.h (MonoGenericMethod): New type.
16734         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
16735         `generic_method'.
16736
16737         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
16738         a `MonoGenericMethod *gen_method' one.
16739
16740         * class.c (mono_class_inflate_generic_type): Take an additional
16741         `MonoGenericMethod * argument.  This is only non-NULL if we're
16742         inflating types for a generic method.   
16743         (mono_class_inflate_generic_signature): Renamed to
16744         inflate_generic_signature() and made static; take a
16745         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16746         (inflate_generic_header): Take a `MonoGenericMethod *' argument
16747         instead of a `MonoGenericInst *' one.
16748         (mono_class_inflate_generic_method): Likewise.
16749
16750         * reflection.c (encode_generic_method_sig): Take a
16751         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16752         (method_encode_methodspec): Likewise.
16753         (inflated_method_get_object): Likewise. 
16754
16755         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
16756         field with a `MonoGenericMethod *gmethod' one.  
16757
16758 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
16759
16760         * class.h (mono_class_has_parent): add parens to expansion
16761         so you can ! this.
16762
16763 2004-02-08  Martin Baulig  <martin@ximian.com>
16764
16765         * image.h (MonoImage): Removed `generics_cache'.
16766
16767         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
16768         instead of a `MonoType *' argument; removed the `inflate_methods'
16769         argument.  Don't inflate methods here.
16770
16771         * loader.c (find_method): If it's a generic instance, call
16772         mono_class_init() on the `sclass->generic_inst->generic_type'.
16773
16774         * metadata.c (mono_type_size): Make this work on uninitialized
16775         generic instances; call it on the `ginst->generic_type's class.
16776
16777         * reflection.c (mono_reflection_bind_generic_parameters): Call
16778         mono_class_from_generic() to create the `ginst->klass'.
16779
16780 2004-02-08  Martin Baulig  <martin@ximian.com>
16781
16782         * class.h (MonoClass): Changed type of `generic_inst' from
16783         `MonoType *' to `MonoGenericInst *'.
16784
16785 2004-02-08  Martin Baulig  <martin@ximian.com>
16786
16787         * icall.c (ves_icall_Type_BindGenericParameters): Just call
16788         mono_type_get_object(), this is now creating a `MonoGenericInst'
16789         for MONO_TYPE_GENERICINST.
16790         (ves_icall_MonoGenericInst_GetParentType): Likewise.
16791         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
16792
16793         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
16794         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
16795         (inflated_method_get_object): Added `MonoClass *refclass' argument.
16796         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
16797         and reflected type.
16798
16799         * reflection.h (MonoReflectionInflatedMethod): Removed
16800         `declaring_type' and `reflected_type'.
16801
16802 2004-02-08  Martin Baulig  <martin@ximian.com>
16803
16804         * class.h (MonoGenericInst): Added `MonoType *parent' and
16805         `MonoType **ifaces'.
16806
16807         * reflection.h (MonoReflectionGenericInst): Removed `klass',
16808         `parent' and `interfaces'.
16809
16810         * reflection.c (mono_reflection_bind_generic_parameters): Take a
16811         `MonoType *' argument and return a `MonoType *'.
16812
16813         * icall.c
16814         (ves_icall_MonoGenericInst_GetParentType): New interncall.
16815         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
16816
16817 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
16818
16819         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
16820         valuetype marshalling.
16821
16822 2004-02-06  Martin Baulig  <martin@ximian.com>
16823
16824         * class.c
16825         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
16826         (my_mono_class_from_generic_parameter): Likewise.
16827
16828 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
16829
16830         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
16831         contents of the symbol files lazily.
16832
16833         * object.h (MonoThread): Add 'name' and 'name_len' fields.
16834
16835         * threads.h threads.c icall.c: New icalls for getting and setting the
16836         threads name.
16837
16838 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
16839
16840         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
16841         Raise an exception when the domain is not found.
16842
16843 2004-02-03  Martin Baulig  <martin@ximian.com>
16844
16845         * reflection.c (mono_image_get_methodspec_token): Use the
16846         uninflated signature; fixes gen-33.
16847
16848 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
16849
16850         * gc.c threads.c: Make the finalizer thread a normal managed thread so
16851         the finalizer code can use thread functionality.
16852
16853         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
16854         the finalizer thread.
16855
16856         * threads.c: Make some functions more robust.
16857
16858         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
16859
16860         * metadata.h: Add new marshalling conventions.
16861
16862         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
16863         stringbuilder marshalling. Fixes #53700.
16864
16865         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
16866
16867         * reflection.c (mono_image_get_type_info): Save declarative security
16868         info.
16869
16870         * reflection.c (mono_image_get_field_info): Handle uninitialized 
16871         unmanaged fields as well.
16872
16873         * appdomain.c: Bump corlib version.
16874
16875 2004-02-01  Martin Baulig  <martin@ximian.com>
16876
16877         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
16878         method type arguments.  
16879
16880 2004-01-30  Duncan Mak  <duncan@ximian.com>
16881
16882         * marshal.h: Add prototype for
16883         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
16884         and
16885         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
16886         fix the build.
16887
16888 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
16889
16890         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
16891         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
16892
16893 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
16894
16895         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16896         custom marshalling of valuetypes.
16897
16898         * marshal.c: Fix some warnings.
16899
16900 2004-01-29  Martin Baulig  <martin@ximian.com>
16901
16902         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
16903         for generic method parameters.
16904
16905         * reflection.c (method_encode_methodspec): Write the uninflated
16906         signature into the methodspec table.
16907         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
16908         is always the uninflated method.
16909         (reflection_methodbuilder_to_mono_method): Copy the generic
16910         parameters from the MethodBuilder into `header->gen_params'.
16911
16912 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
16913
16914         * class.c (mono_class_from_generic_parameter): Fix warning.
16915
16916 2004-01-27  Martin Baulig  <martin@ximian.com>
16917
16918         * class.c (mono_class_from_generic_parameter): Don't create
16919         `klass->methods' here.  
16920
16921 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
16922
16923         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
16924         extension since it does not work with libraries named lib<FOO>.dll.so.
16925
16926 2004-01-25  Martin Baulig  <martin@ximian.com>
16927
16928         * class.c (mono_class_inflate_generic_type): Added support for
16929         MONO_TYPE_GENERICINST.
16930
16931         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
16932         inflate methods on open constructed types.      
16933
16934 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16935
16936         * object.c: fire ProcessExit event in the root AppDomain after running
16937         Main. Fixes bug #53299.
16938
16939 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
16940
16941         * socket-io.c: include the new socket-wrappers.h header.
16942         Use the wrappers instead of the unix socket functions to make the code
16943         more clear.
16944
16945 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
16946
16947         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
16948
16949         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16950         Fixes #22532.
16951
16952 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
16953
16954         * reflection.c (mono_image_create_pefile): Handle the case when the
16955         entry point is not a MethodBuilder.
16956
16957         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16958         field to ReflectionMethod since it is not allways a builder.
16959
16960         * reflection.c (type_get_fully_qualified_name): New helper function to
16961         return the fully qualified name of a type.
16962
16963         * reflection.c (encode_marshal_blob): Always emit the fully qualified
16964         type name for custom marshallers.
16965
16966         * reflection.c (mono_marshal_spec_from_builder): Ditto.
16967
16968         * class.c (mono_class_setup_vtable): If a parent class already 
16969         implements an interface, use the implementing methods from that class.
16970         Fixes #53148.
16971
16972 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16973
16974         * threadpool.c: just return instead of ExitThread to allow for thread
16975         clean up earlier.
16976
16977 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
16978
16979         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
16980         when closing resource modules.
16981
16982         * reflection.c (mono_image_create_pefile): Handle the case when the
16983         entry point is not a MethodBuilder.
16984
16985         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16986         field to ReflectionMethod since it is not allways a builder.
16987
16988 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
16989
16990         * marshal.c (mono_marshal_get_managed_wrapper): 
16991         mono_marshal_alloc takes native int so CONV_I
16992         the arg for 64bits.
16993
16994 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
16995
16996         * reflection.c (fixup_cattrs): New function to fixup the methoddef
16997         tokens in the cattr table. Fixes #53108.
16998
16999 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17000
17001         * loader.c: don't trim ".dll" before looking up in the config file.
17002         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
17003
17004 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
17005
17006         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
17007         Return the module which contains the resource as well.
17008         (ves_icall_System_Reflection_Module_Close): New icall.
17009
17010         * appdomain.c: Bump corlib version number.
17011
17012         * image.c (mono_image_addref): New public function.
17013
17014         * assembly.c: Call mono_image_addref.
17015
17016         * reflection.c (mono_module_get_object): Increase reference count of 
17017         the image.
17018
17019         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
17020         Fixes #22532.
17021
17022         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
17023         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
17024         proper exceptions on DllImport problems.
17025
17026 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
17027
17028         * class.c, metadata.c: eliminate CSIZE macro.
17029
17030 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
17031
17032         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
17033         * object.h: Added async_callback field in MonoAsyncResult.
17034         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
17035         * verify.c: Added async_callback in MonoAsyncResult layout.
17036
17037 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
17038
17039         * reflection.c (mono_reflection_get_custom_attrs): Add support
17040         for Modules.
17041
17042 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
17043
17044         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
17045         marshalling.
17046         (mono_marshal_method_from_wrapper): Add null pointer check.
17047
17048 2004-01-16  Martin Baulig  <martin@ximian.com>
17049
17050         * debug-mono-symfile.h: Set version number to 36 and reflect
17051         latest symbol writer changes.
17052
17053 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
17054
17055         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
17056         multi-dimensional arrays.
17057         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
17058         (mono_class_from_mono_type): Use bounded_array_class_get.
17059         
17060         * class.c (mono_bounded_array_class_get): New function which takes
17061         a 'bounded' bool argument to distinguish vectors from one dimensional
17062         arrays.
17063
17064         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
17065         bounded_array_class_get if the array has bounds.
17066
17067         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17068         Search modules loaded using AssemblyBuilder:AddModule as well.
17069
17070 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17071
17072         * appdomain.c: increased corlib version.
17073         * filewatcher.c: removed g_print.
17074         * icall.c:
17075         (get_property_info): only allocate what is actually requested.
17076         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
17077
17078 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17079
17080         * Makefile.am: added filewatcher.[ch]
17081         * filewatcher.[ch]: FileSystemWatcher runtime support.
17082         * icall.c: added new FSW icalls.
17083
17084 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
17085
17086         * string-icalls.c: fix stringbuilder regression as suggested by
17087         Iain McCoy <iain@mccoy.id.au>.
17088
17089 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
17090
17091         * process.c (process_read_stringtable_block): Recognize '007f' as
17092         a language neutral stringtable block.
17093
17094 2004-01-12  Patrik Torstensson
17095
17096         * object.h (MonoStringBuilder) : Changed layout to support our
17097         new stringbuilder class.
17098         * marshal.c: Change marshalling to support the new layout of 
17099         string builder.
17100         * appdomain.c: increased version number because new layout of
17101         string builder.
17102
17103 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
17104
17105         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
17106         assembly name as an string instead of an AssemblyName, since it is
17107         easier to extract info from it.
17108
17109         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
17110         the culture subdirectories too. Fixes #52231.
17111
17112 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17113
17114         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
17115         It takes 2 new parameters with an optional name for the method to look
17116         for and case ignoring info.
17117
17118         * threadpool.c: removed unused variable.
17119
17120 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17121
17122         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
17123         It takes 2 new parameters with an optional name for the property to look
17124         for and case ignoring info.
17125         Fixes bug #52753.
17126
17127 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
17128
17129         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
17130         Fix #52451.
17131
17132 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17133
17134         * appdomain.c:
17135         * assembly.c: escape the uri before passing it to g_filename_from_uri.
17136         Fixes bug #52630.
17137
17138 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
17139
17140         * reflection.c: Add support for more than one unmanaged resource.
17141
17142         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
17143         in field->def_value, as done in all other cases.
17144
17145         * reflection.c (mono_reflection_get_custom_attrs): Add support for
17146         TypeBuilders.
17147
17148         * reflection.c (mono_reflection_create_runtime_class): Remove 
17149         errorneous assignment to klass->element_class, since it is already
17150         done in mono_reflection_setup_internal_class.
17151
17152 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17153
17154         * gc.c: added missing LeaveCriticalSection.
17155         * icall.c: indented a couple of lines.
17156         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
17157         if we call EndInvoke inside a callback. Fixes bug #52601.
17158
17159 2004-01-07  Martin Baulig  <martin@ximian.com>
17160
17161         * mono-debug-debugger.h
17162         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
17163
17164 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
17165
17166         * appdomain.c: Use messages in NotImplementedException.
17167
17168         * exception.c (mono_get_exception_not_implemented): Now this takes
17169         a message argument.
17170
17171         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
17172         exception instead of g_asserting an aborting when something is not
17173         implemented.
17174
17175         Add some inline docs.
17176
17177 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
17178
17179         * reflection.h: Update after changes to object layout.
17180
17181         * reflection.c: Implement saving of unmanaged aka win32 resources.
17182
17183         * appdomain.c: Bump version number.
17184
17185         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
17186         Handle missing domains gracefully.
17187
17188 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
17189
17190         * file-io.c : On Windows, there are much more invalid_path_chars.
17191
17192 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
17193
17194         * class.h, object.c: prepare for GetType () speedup.
17195
17196 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
17197
17198         * profiler.c: workaround for --profile null reference exception on
17199           cygwin. Patch by Patrik Torstensson.
17200
17201 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
17202
17203         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
17204         make work for unaligned access.
17205
17206 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
17207
17208         * class.c: small cleanup (class->fields [i] -> field).
17209         * image.c: check address of metadata is valid.
17210
17211 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
17212
17213         * assembly.h assembly.c (mono_assembly_loaded): New public function to
17214         search the list of loaded assemblies.
17215
17216         * reflection.c (mono_reflection_type_from_name): Use 
17217         mono_assembly_loaded instead of mono_image_loaded.
17218
17219         * reflection.c: Fix warnings.
17220
17221 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
17222
17223         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
17224         is dynamic. This is needed since an assembly can contain both dynamic and
17225         non-dynamic images.
17226
17227         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
17228         assembly->dynamic.
17229
17230         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
17231
17232         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
17233         to store modules loaded using AddModule.
17234
17235         * reflection.c (mono_image_fill_file_table): Generalize this so it works
17236         on Modules.
17237
17238         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
17239
17240         * reflection.c (mono_image_fill_export_table_from_module): New function to
17241         fill out the EXPORTEDTYPES table from a module.
17242
17243         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
17244         into a separate function. Also handle loaded non-dynamic modules.
17245
17246         * reflection.c (mono_image_basic_init): Fix memory allocation.
17247
17248         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17249
17250         * assembly.c (mono_assembly_load_references): Make this public.
17251
17252 2003-12-19  Martin Baulig  <martin@ximian.com>
17253
17254         * class.c (mono_class_initialize_generic): Made this static, take
17255         a `MonoGenericInst *' instead of a `MonoClass *'.
17256         (mono_class_from_generic): Call mono_class_initialize_generic()
17257         unless we're already initialized or being called from
17258         do_mono_metadata_parse_generic_inst().
17259
17260         * class.h (MonoGenericInst): Added `initialized' and
17261         `init_pending' flags.
17262
17263         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
17264         `mono_class_init (gklass)' or mono_class_initialize_generic()
17265         here; set `generic_inst->init_pending' while parsing the
17266         `type_argv'.
17267
17268 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
17269
17270         * locales.c: include string.h for memxxx prototypes
17271
17272 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
17273
17274         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
17275         constructor when accessing literal fields.
17276
17277 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
17278
17279         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17280
17281         * reflection.c (assembly_add_resource_manifest): New function to fill
17282         the MANIFESTRESOURCE table.
17283
17284         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
17285
17286         * reflection.h: Update to changes in class layout.
17287
17288         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
17289         Reenable call to mono_runtime_is_shutting_down ().
17290
17291         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
17292         determine if the runtime is shutting down.
17293
17294 2003-12-16  Jackson Harper <jackson@ximian.com>
17295
17296         * icall.c: comment out call to mono_runtime_is_shutting_down to
17297         fix build.
17298         
17299 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
17300
17301         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
17302         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
17303
17304 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
17305
17306         * reflection.c: move definition of swap_with_size
17307         to before its first call
17308
17309 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
17310
17311         * appdomain.c (mono_runtime_is_shutting_down): New public function.
17312
17313         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
17314         icall.
17315
17316         * object.c: Fix warnings.
17317
17318         * icall.c (ves_icall_Type_Get...): Only consider inherited static
17319         members if FlattenHierarchy is set.
17320
17321         * reflection.c (mono_image_add_decl_security): New function to emit
17322         declarative security.
17323
17324         * reflection.h reflection.c: Add support for declarative security.
17325
17326         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17327         
17328 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
17329
17330         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17331         
17332         * appdomain.c verify.c: Moved corlib version checking into its own
17333         function in appdomain.c since it needs to create vtables etc.
17334
17335 2003-12-13  Patrik Torstensson <p@rxc.se>
17336
17337         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
17338         instead of unwrapped server.
17339
17340 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
17341
17342         * verify.c (check_corlib): Fix field index.
17343
17344 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
17345
17346         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
17347         GetGacPath icall.
17348
17349 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
17350
17351         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
17352         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
17353         cope with sizeof(size_t) != sizeof(guint32).
17354
17355 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17356
17357         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
17358         in case of failure.
17359
17360 2003-12-10  Mark Crichton <crichton@gimp.org>
17361
17362         * icall.c: removed the GetNonZeroBytes.  We now handle this case
17363         in managed code.
17364
17365         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
17366
17367 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
17368
17369         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
17370         marked as deleted.
17371
17372 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
17373
17374         * verify.c (check_corlib): Handle the case when the version field is 
17375         initialized by a static constructor.
17376
17377 2003-12-08  Patrik Torstensson  <p@rxc.se>
17378
17379     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
17380
17381 2003-12-08  Martin Baulig  <martin@ximian.com>
17382
17383         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
17384         a MonoReflectionGenericParameter, also take the parameter index
17385         and name as arguments.
17386         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
17387         (ves_icall_MonoGenericParam_initialize): New interncall.
17388         (ves_icall_Type_make_byref_type): New interncall.
17389
17390         * reflection.h (MonoReflectionGenericParam): Derive from
17391         MonoReflectionType, not just from MonoObject.  Added `refobj' and
17392         `index' fields.
17393
17394         * reflection.c (mono_reflection_define_generic_parameter): Create
17395         and return a new MonoReflectionGenericParam; don't initialize the
17396         constraints here.
17397         (mono_reflection_initialize_generic_parameter): New public method;
17398         initializes the constraints and creates the `param->pklass'.
17399
17400 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
17401
17402         * reflection.h reflection.c: Use the new fields 'num_types', 
17403         'num_fields' and 'num_methods' to track the number of types etc.
17404
17405         * verify.c (check_corlib): Check corlib version number.
17406
17407 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
17408
17409         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
17410         function works on all methods.
17411
17412 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
17413
17414         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
17415         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
17416         the custom_type_info flag of the transparent proxy.
17417         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
17418         objects that supports IRemotingTypeInfo.
17419         * object.h: Added custom_type_info field in transparent proxy.
17420
17421 2003-12-06  Martin Baulig  <martin@ximian.com>
17422
17423         * class.c (mono_class_create_from_generic): Removed.
17424         (mono_class_from_generic): Check `ginst->klass' before doing
17425         anything else.  This is important to fully support "recursive"
17426         generic types.
17427
17428         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
17429         empty `generic_inst->klass' before doing anything else.
17430
17431 2003-12-06  Dick Porter  <dick@ximian.com>
17432
17433         * verify.c: 
17434         * object.h:
17435         * icall.c:
17436         * locales.c: Use C structs to access class fields.  Don't do a
17437         conversion between MonoString and UChar because both are
17438         platform-endian UTF-16.  Compare now takes startindex and count
17439         parameters.  Add a char overload for IndexOf.  Speed up the
17440         invariant string IndexOf.
17441
17442 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
17443
17444         * Makefile.am (monosn_LDADD): Fix parallel build.
17445
17446 2003-12-04  Martin Baulig  <martin@ximian.com>
17447
17448         * icall.c
17449         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17450         (ves_icall_Type_make_array_type): New interncall.       
17451
17452 2003-12-04  Martin Baulig  <martin@ximian.com>
17453
17454         * locales.c: also change it in the !HAVE_ICU case.
17455
17456 2003-12-04  Dick Porter  <dick@ximian.com>
17457
17458         * icall.c:
17459         * locales.c: construct_compareinfo is now in CompareInfo, not
17460         CultureInfo.
17461
17462 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
17463
17464         * image.c (mono_image_load_file_for_image): Cache loaded images in the
17465         image->files array.
17466
17467         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
17468         table as well.
17469
17470         * assembly.c (mono_assembly_load_references): Only load references
17471         once.
17472
17473         * class.c (mono_class_from_name): Avoid linear search of the 
17474         EXPORTEDTYPE table.
17475
17476         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
17477
17478 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
17479
17480         * image.h (MonoImage): Add 'field_cache' field.
17481
17482         * loader.c (mono_field_from_token): Cache field lookups.
17483         
17484         * reflection.c (mono_module_get_object): Fix name property.
17485
17486         * icall.c (ves_icall_get_enum_info): Update after changes to 
17487         mono_metadata_get_constant_index ().
17488
17489         * icall.c: Get rid of get_type_info icall, use a separate icall for
17490         each type property to avoid needless memory allocations. Fixes #51514.
17491
17492         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
17493         to avoid needless binary searches.
17494
17495         * class.c (class_compute_field_layout): Move the initialization of
17496         field->def_value to mono_class_vtable ().
17497
17498         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
17499         non-corlib types.
17500
17501         * object.c (mono_object_allocate): Make it inline.
17502
17503         * object.c (mono_object_allocate_spec): Make it inline.
17504         
17505 2003-12-02  Dick Porter  <dick@ximian.com>
17506
17507         * locales.c (create_NumberFormat): NumberFormatInfo construction.
17508         Patch by Mohammad DAMT (mdamt@cdl2000.com).
17509
17510 2003-12-01  Dick Porter  <dick@ximian.com>
17511
17512         * threads.c: Fix signature and call in CreateMutex and
17513         CreateEvent.
17514
17515 2003-12-01  Dick Porter  <dick@ximian.com>
17516
17517         * icall.c: 
17518         * locales.c: Implement string compares and searching
17519
17520         * object.h: Add extra Thread field
17521
17522 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
17523
17524         * reflection.c (fixup_method): Add support for MonoCMethod.
17525
17526 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
17527
17528         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
17529
17530         * reflection.c (assembly_name_to_aname): Allow extra characters in
17531         assembly names. Fixes #51468.
17532
17533 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
17534
17535         * exception.c (mono_exception_from_name_domain): New helper function.
17536
17537         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
17538         exception object in the correct domain.
17539
17540         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
17541         formatting + make a copy a the input data.
17542
17543         * loader.c (mono_get_method_from_token): Methods which contain
17544         native code do not have entries in the ImplMap.
17545
17546         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
17547         Thanks to Gonzalo for spotting this.
17548         
17549         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
17550         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
17551
17552         * assembly.h (mono_assembly_load_from): Split the second part of 
17553         assembly loading into a new public function.
17554
17555         * exception.h (mono_get_exception_bad_image_format): New function.
17556
17557 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
17558
17559         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17560         Enumerate all modules inside a dynamic assembly. Fixes #51293.
17561         
17562         * icall.c: Add new icall for creating dynamic methods.
17563
17564         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
17565
17566         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
17567
17568         * reflection.c (mono_reflection_create_dynamic_method): New icall to
17569         create a dynamic method.
17570
17571         * reflection.c (resolve_object): New helper function.
17572
17573         * reflection.c: Generalize ReflectionMethodBuilder and the functions
17574         which manipulate it so they can also work on dynamic methods.
17575
17576         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
17577         creating the MonoReflectionMethodAux structure if it is not needed.
17578         
17579         * reflection.h verify.c: Update after changes to object layout.
17580
17581         * reflection.c (method_builder_encode_signature): Fix compilation on
17582         gcc 2.95.x.
17583
17584 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
17585
17586         * appdomain.h: Added support for context static fields. Added static_data
17587           field to MonoAppContext and renamed thread_static_fields to a more
17588           generic special_static_fields in MonoAppDomain, since it can now contain
17589           context static fields.
17590         * domain.c: Updated hashtable name.
17591         * object.c: Replaced field_is_thread_static() for a more generic
17592           field_is_special_static() which also checks for context static attribute.
17593           In mono_class_vtable(), added support for static context fields.
17594         * threads.c: Changed methods that manage thread static fields to more
17595           generic methods so they can be reused both for thread and context static
17596           data.
17597         * threads.h: Declared some new methods.
17598
17599 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
17600
17601         * reflection.h: Update after changes to the managed types.
17602
17603         * reflection.c (encode_custom_modifiers): New helper function.
17604
17605         * reflection.c (method_encode_signature): Emit custom modifiers.
17606
17607         * reflection.c (field_encode_signature): Emit custom modifiers.
17608
17609 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
17610
17611         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
17612
17613         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
17614         implementation.
17615
17616         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
17617         icall.
17618
17619         * object.c (mono_field_get_value_object): New function.
17620
17621         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
17622         specific.
17623
17624 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
17625
17626         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
17627         return a preallocated out-of-memory exception instance.
17628
17629         * object.c (out_of_memory): Use the new function.
17630
17631         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
17632         flag is before the custom modifiers. Fixes #49802.
17633
17634 2003-11-16  Martin Baulig  <martin@ximian.com>
17635
17636         * class.c (mono_class_is_open_constructed_type): Implemented the
17637         MONO_TYPE_GENERICINST case.
17638
17639 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
17640
17641         * assembly.c (mono_assembly_fill_assembly_name): New function to
17642         fill out the MonoAssemblyName structure.
17643         (mono_assembly_open): Use the new function.
17644
17645         * icall.c (fill_reflection_assembly_name): New helper function.
17646
17647         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
17648         new function.
17649
17650         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
17651
17652 2003-11-15  Martin Baulig  <martin@ximian.com>
17653
17654         * class.c (mono_class_is_open_constructed_type): New public
17655         function; checks whether a type is an open constructed type,
17656         ie. whether it still contains type parameters.
17657         (mono_class_inflate_generic_type): If we're a type parameter and
17658         the inflated type is also a MONO_TYPE_(M)VAR, return the original
17659         type.
17660
17661         * class.h (MonoGenericInst): Added `guint32 is_open'.
17662
17663         * loader.c (method_from_methodspec): Check whether we're an open
17664         or closed constructed type and set `ginst->is_open'.
17665
17666         * reflection.c (mono_reflection_bind_generic_parameters): Check
17667         whether we're an open or closed constructed type and set
17668         `ginst->is_open'.
17669         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
17670         from open constructed types.
17671
17672 2003-11-15  Martin Baulig  <martin@ximian.com>
17673
17674         * reflection.c (mono_reflection_bind_generic_parameters): If we're
17675         a generic instance (instead of a generic type declaration) with
17676         unbound generic parameters, bind them to our actual types.
17677
17678 2003-11-14  Martin Baulig  <martin@ximian.com>
17679
17680         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
17681
17682         * reflection.c (mono_reflection_bind_generic_parameters): If we're
17683         an interface type, populate `res->interfaces' with instantiated
17684         versions of all the interfaces we inherit.
17685
17686 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
17687
17688         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
17689         when MONO_PATH is set but doesn't contain the install dir.
17690
17691 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17692
17693         * icall.c:
17694         (ves_icall_Type_GetInterfaces): don't return an interface twice when
17695         it's also implemented in base classes. Fixes bug #50927.
17696
17697 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
17698
17699         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
17700         if this method is called from a finalizer. Fixes #50913.
17701
17702 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
17703
17704         * threads.c: Implement VolatileRead/VolatileWrite
17705
17706         * icall.c: Add new icalls for VolatileRead/VolatileWrite
17707
17708 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17709
17710         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
17711         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
17712         2.95.3.
17713
17714         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
17715         from Peter Ross (pro@missioncriticalit.com).
17716         
17717 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
17718
17719         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
17720
17721 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17722
17723         * assembly.c (mono_assembly_load_references): Disable check because it
17724         triggers on older corlibs which lots of people have.
17725
17726 2003-11-12  Jackson Harper  <jackson@ximian.com>
17727
17728         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
17729         load corlib.dll if mscorlib.dll is not found.
17730         * assembly.h: Remove corlib name define.
17731         * class.c:
17732         * domain.c:
17733         * image.c: Change corlib name to mscorlib.
17734         
17735 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17736
17737         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
17738
17739 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
17740
17741         * appdomain.h: Added loader_optimization here to sync with the C#
17742         code, and add disallow_binding_redirects field.
17743
17744 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17745
17746         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
17747
17748         * reflection.c (mono_image_build_metadata): Fix crash on modules
17749         with no types.
17750
17751         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
17752
17753         * icall.c (ves_icall_get_method_info): Return callingConvention as
17754         well.
17755
17756         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
17757         namespaces from the EXPORTEDTYPE table as well.
17758
17759         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
17760         from all modules inside the assembly.
17761         
17762 2003-11-11  Martin Baulig  <martin@ximian.com>
17763
17764         * reflection.c (mono_reflection_bind_generic_parameters): Make
17765         this work for interfaces.
17766
17767 2003-11-11  Martin Baulig  <martin@ximian.com>
17768
17769         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
17770
17771 2003-11-11  Martin Baulig  <martin@ximian.com>
17772
17773         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
17774         "MonoInflatedMethod" and "MonoInflatedCtor".
17775
17776 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17777
17778         * reflection.c (resolution_scope_from_image): Use the assembly table
17779         from the manifest module, since other modules don't have it.
17780
17781         * debug-helpers.c (mono_type_full_name): New helper function.
17782
17783         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
17784
17785         * image.c (mono_image_load_file_for_image): New public function which
17786         is a replacement for the load_file_for_image in class.c.
17787
17788         * assembly.c (mono_assembly_load_module): A wrapper for the function
17789         above which does assembly association and reference loading too.
17790
17791         * class.c (mono_class_from_name): Call mono_assembly_load_module.
17792
17793 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17794
17795         * appdomain.c: not all of the attributes for the full assembly name
17796         are required and the order doesn't matter. Fixes bug #50787.
17797
17798 2003-11-10  Dick Porter  <dick@ximian.com>
17799
17800         * locales.c: Use platform-endian UTF16
17801
17802 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
17803
17804         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17805         
17806 2003-11-10  Martin Baulig  <martin@ximian.com>
17807
17808         * metadata.c
17809         (mono_metadata_load_generic_params): Make this actually work.
17810
17811         * reflection.c (mono_reflection_bind_generic_parameters): If our
17812         parent is a generic instance, pass all the `types' to it, no
17813         matter whether it has the same number of type parameters or not.
17814
17815 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
17816
17817         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17818
17819         * assembly.c (mono_assembly_load_references): Move the image<->assembly
17820         assignment code to this function so it gets called recursively for all
17821         modules.
17822
17823         * image.c (load_modules): Remove the assembly assignment since it is
17824         now done by mono_assembly_load_references.
17825         
17826         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17827         Add 'module' argument.
17828         (mono_module_get_types): New helper function.
17829         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
17830
17831 2003-11-08  Martin Baulig  <martin@ximian.com>
17832
17833         * class.c (mono_class_inflate_generic_method): Interface method
17834         don't have a header.
17835
17836         * reflection.c (mono_image_get_methodspec_token): Take an
17837         additional `MonoGenericInst *' argument instead of reading it from
17838         the header; this is necessary to support interfaces.
17839         (mono_image_create_token): Pass the `MonoGenericInst *' from the
17840         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
17841         (inflated_method_get_object): Take an additional `MonoGenericInst *'
17842         argument.
17843
17844         * reflection.h (MonoReflectionInflatedMethod): Added
17845         `MonoGenericInst *ginst'.
17846
17847 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
17848
17849         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
17850
17851 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
17852
17853         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
17854
17855 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
17856
17857         * reflection.c 
17858         (reflection_methodbuilder_from_method_builder):
17859         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
17860         initialize a ReflectionMethodBuilder structure.
17861         (mono_image_get_methodbuilder_token):
17862         (mono_image_get_ctorbuilder_token): New functions to emit memberref
17863         tokens which point to types in another module inside the same assembly.
17864
17865         * reflection.c: Use the new helper functions.
17866         
17867         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
17868
17869         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
17870         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
17871
17872         * reflection.c (resolution_scope_from_image): Emit a moduleref if
17873         neccesary.
17874
17875         * reflection.c (mono_image_build_metadata): Emit metadata only for the
17876         current module. Emit the manifest only for the main module.
17877
17878         * reflection.c (mono_image_create_token): Add assertion when a 
17879         memberref needs to be created.
17880
17881         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
17882
17883         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
17884         larger buffer for the custom attribute blob. Fixes #50637.
17885         
17886 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17887
17888         * threadpool.c: notify listener on async processing handles after
17889         invoking the async callback. Thanks to Zoltan.
17890
17891 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17892
17893         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
17894         avoid code duplication.
17895
17896         * reflection.h (MonoDynamicImage): New type which is currently unused,
17897         but will be used through the ref.emit code in place of 
17898         MonoDynamicAssembly.
17899
17900         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17901         object layout.
17902
17903         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
17904         a MonoDynamicImage instead of just a MonoImage.
17905         
17906         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
17907         icalls to ModuleBuilder but keep their semantics, so they will work
17908         with moduleb->assemblyb. This will change later.
17909         
17910 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17911
17912         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17913         object layout.
17914
17915         * reflection.c (mono_image_build_metadata): Avoid creation of a default
17916         main module, since it is now done by the managed code.
17917
17918 2003-11-03  Martin Baulig  <martin@ximian.com>
17919
17920         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
17921         `ginst->klass' here.
17922         (method_encode_methodspec): Don't use the `ginst->generic_method's
17923         klass if it's a generic instance, use `ginst->klass' in this case.
17924
17925 2003-11-03  Martin Baulig  <martin@ximian.com>
17926
17927         * reflection.c (mono_image_get_generic_method_param_info):
17928         Removed, use mono_image_get_generic_param_info() instead.
17929         (mono_image_get_type_info): Write the GenericParam table before
17930         the Method table.  This is neccessary because in the GenericParam
17931         table, type parameters of the class (ie. '!0' etc.) must come
17932         before the ones from its generic methods (ie. '!!0' etc).
17933
17934 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17935
17936         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
17937
17938 2003-11-02  Martin Baulig  <martin@ximian.com>
17939
17940         * reflection.c (create_generic_typespec): Take a
17941         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
17942         the generic parameters from it.
17943
17944 2003-11-02  Martin Baulig  <martin@ximian.com>
17945
17946         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
17947         instead of a `MonoClassField *' since we just need the type.
17948         (create_generic_typespec): New static function.  Creates a
17949         TypeSpec token for a generic type declaration.
17950         (mono_image_get_generic_field_token): New static function.
17951         (mono_image_create_token): If we're a FieldBuilder in a generic
17952         type declaration, call mono_image_get_generic_field_token() to get
17953         the token.
17954
17955 2003-11-02  Martin Baulig  <martin@ximian.com>
17956
17957         * reflection.h
17958         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
17959         `MonoReflectionGenericInst *declaring_type' and
17960         `MonoReflectionGenericInst *reflected_type' fields.
17961
17962         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
17963         `MonoReflectionGenericInst *declaring_type' and a
17964         `MonoReflectionGenericInst *reflected_type' argument instead of a
17965         single `MonoReflectionGenericInst *type' one.  Set
17966         `res->declaring_type' and `res->reflected_type' from them.
17967         (mono_reflection_inflate_field): Likewise.      
17968
17969 2003-11-02  Martin Baulig  <martin@ximian.com>
17970
17971         * class.c (mono_class_setup_vtable): Don't store generic methods
17972         in the vtable.  
17973
17974 2003-11-02  Martin Baulig  <martin@ximian.com>
17975
17976         * reflection.h (MonoReflectionGenericInst): Added
17977         `MonoReflectionType *declaring_type'.
17978
17979         * reflection.c (mono_reflection_bind_generic_parameters): Use
17980         `if (tb->parent)' instead of `klass->parent'.
17981
17982 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
17983
17984         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
17985         with an empty ASSEMBLY table.
17986
17987         * reflection.c (mono_image_build_metadata): Avoid using the same loop
17988         variable in the inner and outer loops.
17989
17990 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
17991
17992         * metadata.h (mono_metadata_make_token): Put parentheses around macro
17993         argument.
17994
17995         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
17996         
17997         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
17998         icalls. Instead, do everything in managed code. This is needed since
17999         it is hard to restore the original domain etc. in unmanaged code in the
18000         presence of undeniable exceptions.
18001
18002         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
18003         New icalls to push and pop appdomain refs.
18004
18005 2003-10-31  Martin Baulig  <martin@ximian.com>
18006
18007         * class.c (inflate_generic_type): Renamed to
18008         mono_class_inflate_generic_type() and made it public.
18009
18010         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
18011         New interncall.
18012
18013         * loader.c (mono_field_from_memberref): Also set the retklass for
18014         typespecs.
18015
18016         * fielder.c (mono_image_get_inflated_field_token): New static
18017         method; creates a metadata token for an inflated field.
18018         (mono_image_create_token, fixup_method): Added support for
18019         "MonoInflatedField".
18020         (fieldbuilder_to_mono_class_field): New static function.
18021         (mono_reflection_inflate_field): New public function.
18022
18023         * reflection.h
18024         (MonoReflectionGenericInst): Added `MonoArray *fields'.
18025         (MonoReflectionInflatedField): New typedef.     
18026
18027 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
18028
18029         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
18030         for Solaris and other platforms without s6_addr16
18031
18032 2003-10-30  Martin Baulig  <martin@ximian.com>
18033
18034         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
18035         argument instead of two.
18036         (mono_class_inflate_generic_signature): Likewise.
18037         (inflate_generic_header): Likewise.
18038         (mono_class_inflate_generic_method): Likewise.  In addition, if
18039         `ginst->klass' is set, it becomes the new `method->klass'.
18040
18041         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
18042         field.
18043
18044         * reflection.c (encode_generic_method_sig): Write a 0xa as the
18045         first byte. [FIXME]
18046         (method_encode_methodspec): If we have generic parameters, create
18047         a MethodSpec instead of a MethodRef.
18048         (fixup_method): Added support for "MonoInflatedMethod" and
18049         "MonoInflatedCtor".
18050         (mono_image_create_token): Added support for "MonoInflatedMethod"
18051         and "MonoInflatedCtor".
18052         (inflated_method_get_object): New static function; returns a
18053         managed "System.Reflection.MonoInflatedMethod" object.
18054         (mono_reflection_bind_generic_method_parameters): Return a
18055         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
18056         (mono_reflection_inflate_method_or_ctor): Likewise.
18057         (mono_image_get_generic_method_param_info): Initialize unused
18058         fields to zero.
18059         (mono_image_get_generic_param_info): Likewise.
18060
18061         * reflection.h (MonoReflectionInflatedMethod): New public
18062         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
18063         "S.R.MonoInflatedCtor" classes.
18064
18065         * loader.c (method_from_memberref): If we're a TypeSpec and it
18066         resolves to a generic instance, inflate the method.
18067
18068 2003-10-28  Dick Porter  <dick@ximian.com>
18069
18070         * object.c (mono_runtime_run_main): Convert command-line arguments
18071         into utf8, falling back to the user's locale encoding to do so.
18072
18073 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
18074
18075         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
18076         at this time.
18077
18078         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
18079
18080         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
18081         up icalls at method definition time. Partially fixes #33569.
18082
18083 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
18084
18085         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
18086         marshalling of arrays. Fixes #50116.
18087
18088         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
18089
18090         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
18091         points to a vtable in the dying appdomain.
18092
18093         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
18094         listeners into unmanaged code inside the lock.
18095
18096         * object.c (mono_class_vtable): Turn off typed allocation in non-root
18097         domains and add some comments.
18098
18099 2003-10-25  Martin Baulig  <martin@ximian.com>
18100
18101         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
18102
18103         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
18104
18105         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
18106         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
18107         currently parsing.  Create the generic class and store it in
18108         `generic_inst->klass' before parsing the type arguments.  This is
18109         required to support "recursive" definitions; see mcs/tests/gen-23.cs
18110         for an example.
18111         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
18112         to support recursive typespec entries.
18113
18114         * class.c (mono_class_setup_parent): If our parent is a generic
18115         instance, we may get called before it has its name set.
18116         (mono_class_from_generic): Splitted into
18117         mono_class_create_from_generic() and mono_class_initialize_generic().
18118
18119 2003-10-25  Martin Baulig  <martin@ximian.com>
18120
18121         * icall.c (ves_icall_Type_BindGenericParameters): Return a
18122         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
18123         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
18124         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
18125
18126         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
18127         (create_typespec): Likewise.
18128         (mono_reflection_bind_generic_parameters): Return a
18129         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
18130         (mono_reflection_inflate_method_or_ctor): New public function.
18131
18132         * reflection.h (MonoReflectionGenericInst): New typedef.        
18133
18134 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
18135
18136         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
18137         inside the domain lock. Fixes #49993.
18138         
18139         * object.c (mono_class_vtable): When typed allocation is used, 
18140         allocate vtables in the GC heap instead of in the mempool, since the
18141         vtables contain GC descriptors which are used by the collector even
18142         after the domain owning the mempool is unloaded.
18143
18144         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
18145
18146         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
18147         reflect what it does. Also invalidate mempools instead of freeing
18148         them if a define is set.
18149
18150         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
18151         of the appdomain.
18152         
18153         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
18154         hold the finalizable objects in this domain.
18155
18156         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
18157         appdomain.
18158
18159         * appdomain.c (mono_domain_set): New function to set the current
18160         appdomain, but only if it is not being unloaded.
18161
18162         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
18163         appdomain which is being unloaded.
18164         
18165         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
18166         unloading of the root appdomain.
18167
18168         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
18169         icall to execute a method in another appdomain. Intended as a 
18170         replacement for InternalSetDomain, which can confuse the code 
18171         generation in the JIT.
18172
18173         * appdomain.c (mono_domain_is_unloading): New function to determine
18174         whenever an appdomain is unloading.
18175
18176         * appdomain.c (mono_domain_unload): New function to correctly unload
18177         an appdomain.
18178
18179         * assembly.c (mono_assembly_load_references): Check that an assembly
18180         does not references itself.
18181
18182         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
18183         domain manually, it asks the finalizer thread to do it, then waits for
18184         the result. Also added a timeout.
18185
18186         * icall.c: Register the new icalls.
18187
18188         * threads.h threads.c: Export the mono_gc_stop_world and 
18189         mono_gc_start_world functions.
18190         
18191         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
18192         function to fill out the mempool with 0x2a.
18193
18194 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
18195
18196         * reflection.h (MonoReflectionMethodAux): New structure to store
18197         information which is rarely used, thus is not in the MonoMethod
18198         structure.
18199
18200         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
18201         store the aux info.
18202
18203         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
18204         and marshalling info into the aux structure.
18205
18206         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
18207         from the aux structure.
18208
18209         * loader.c (mono_method_get_param_names): Retrieve the param names from
18210         the aux structure.
18211         
18212 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
18213
18214         * exception.h exception.c: Add AppDomainUnloadedException && fix 
18215         warning.
18216
18217 2003-10-21  Dick Porter  <dick@ximian.com>
18218
18219         * socket-io.c
18220         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
18221         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
18222
18223 2003-10-21  Martin Baulig  <martin@ximian.com>
18224
18225         * reflection.c (mono_reflection_bind_generic_parameters):
18226         `klass->parent' is NULL for interfaces.
18227
18228 2003-10-21  Martin Baulig  <martin@ximian.com>
18229
18230         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18231
18232 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
18233
18234         * exception.c (mono_exception_from_name_msg): New helper function for
18235         creating exceptions and initializing their message field.
18236
18237         * exception.c: Simplify functions using the new helper.
18238
18239         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
18240         New function.
18241
18242         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
18243         mono_raise_exception, since otherwise gcc doesn't generate the function
18244         epilog for raise_exception, confusing the stack unwinding in the JIT.
18245         Fixes #45043.
18246
18247         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
18248         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
18249         Fixes #49499.
18250
18251 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18252
18253         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
18254         utf8.
18255
18256 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
18257
18258         * icall.c: Removed GetUninitializedObject method because
18259           AllocateUninitializedClassInstance does the same.
18260
18261 2003-10-18  Martin Baulig  <martin@ximian.com>
18262
18263         * class.c (inflate_generic_signature): Renamed to
18264         mono_class_inflate_generic_signature() and made it public.
18265         (my_mono_class_from_generic_parameter): New static function; if we
18266         don't already have the generic parameter's MonoClass, create a
18267         very simple one which is just used internally in the runtime and
18268         not passed back to managed code.
18269
18270         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
18271
18272         * metadata.h (MonoMethodSignature): Moved the
18273         `MonoGenericParam *gen_params' to the MonoMethodHeader.
18274         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
18275
18276         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
18277         ves_icall_MonoMethod_GetGenericArguments(); this is now an
18278         interncall on the MonoMethod class, not on MethodInfo.
18279         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
18280         calling mono_reflection_bind_generic_method_parameters() directly.
18281
18282         * loader.c (mono_method_get_signature): If this is a MethodSpec;
18283         return the already computed `method->signature'.
18284         (method_from_methodspec): New static function to load a method
18285         from a MethodSpec entry.
18286         (mono_get_method_from_token): Call the new method_from_methodspec()
18287         for MethodSpec tokens.  
18288         (mono_get_method_from_token): If we're a generic method, load the
18289         type parameters.
18290
18291         * reflection.c (mono_image_get_memberref_token): Allow
18292         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
18293         table.
18294         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
18295         (mono_image_create_token): First check whether it's a generic
18296         method (so we'd need to create a MethodSpec), then do the other
18297         two alternatives.
18298         (mono_reflection_bind_generic_method_parameters): Return a
18299         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
18300         called directly from the interncall.
18301
18302 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
18303
18304         * reflection.c (load_public_key): Move loading of the public key
18305         into managed code.
18306
18307         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
18308
18309         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
18310         fields.
18311
18312         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
18313         culture, hash_alg and public_key. Fixes #49555.
18314
18315 2003-10-17  Martin Baulig  <martin@ximian.com>
18316
18317         * class.h (MonoGenericInst): Moved this declaration here and added
18318         `MonoMethod *generic_method'.
18319
18320         * icall.c
18321         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
18322         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
18323
18324         * metadata.c (mono_metadata_type_equal): Two types of
18325         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
18326         index; ie. don't compare the address of the `MonoGenericParam'
18327         structure.
18328         (mono_metadata_load_generic_params): Removed the `MonoMethod
18329         *method' argument.
18330
18331         * metadata.h (MonoGenericInst): Moved declaration to class.h.
18332         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
18333
18334         * reflection.c (method_encode_signature): Encode the number of
18335         generic parameters.
18336         (encode_generic_method_sig): New static function.
18337         (method_encode_methodspec): New static function; creates an entry
18338         in the MethodSpec table for a generic method.
18339         (mono_image_get_methodspec_token): New static function.
18340         (mono_image_create_token): Call mono_image_get_methodspec_token()
18341         for generic methods.
18342         (mono_reflection_bind_generic_method_parameters): New public
18343         function.  Instantiates a generic method.
18344
18345 2003-10-16  Martin Baulig  <martin@ximian.com>
18346
18347         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
18348         *gen_params' here from MonoMethodHeader.
18349
18350         * metadata.c (mono_metadata_parse_method_signature): If we have
18351         generic parameters, initialize `method->gen_params' and then set
18352         the correct `type->data.generic_param' in all the parameters.
18353
18354 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
18355
18356         * threads.c (mono_threads_get_default_stacksize): New function to 
18357         return the default stacksize.
18358
18359         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
18360         termination of the finalizer thread, since the previous method had
18361         race conditions. Fixes #49628.
18362
18363         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
18364         as for the other managed threads.
18365
18366 2003-10-16  Martin Baulig  <martin@ximian.com>
18367
18368         * class.c (inflate_generic_signature): Copy `generic_param_count'
18369         and `gen_params'.
18370
18371         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
18372         New interncall.
18373
18374         * metadata.c (mono_metadata_parse_method_signature): Actually set
18375         the `method->generic_param_count' here.
18376         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
18377
18378 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
18379
18380         * object.h: Add a new field to TypedRef to simplify the implementation
18381         of the REFANY opcodes in the JIT.
18382
18383         * icall.c: Make use of the new field.
18384
18385         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
18386         dynamically.
18387
18388 2003-10-15  Martin Baulig  <martin@ximian.com>
18389
18390         * class.c (mono_class_from_gen_param): Renamed to
18391         mono_class_from_generic_parameter() and moved most of the
18392         functionality from mono_reflection_define_generic_parameter()
18393         here; ie. we create a "real" class here.
18394         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
18395         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
18396         previously been called.
18397
18398         * class.h (MonoGenericParam): Moved the declaration of this struct
18399         here from metadata.h and added `MonoMethod *method'.
18400
18401         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
18402         interncall.
18403
18404         * loader.c (mono_get_method_from_token): If we have any generic
18405         parameters, call mono_metadata_load_generic_params() to read them
18406         from the MONO_TABLE_GENERICPAR.
18407
18408         * metadata.c (mono_metadata_load_generic_params): Added
18409         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
18410
18411         * metadata.h (MonoMethodSignature): Replaced
18412         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
18413         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
18414
18415         * reflection.c (mono_reflection_define_generic_parameter): Moved
18416         most of the functionality into the new
18417         mono_class_from_generic_parameter(); set the `method' field if
18418         we're a method parameter.       
18419
18420 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
18421
18422         * marshal.c (emit_struct_conv): if native size is 0
18423         emit no code.
18424
18425 2003-10-14  Martin Baulig  <martin@ximian.com>
18426
18427         * icall.c: The generics API has changed in the spec since it was
18428         added to System.Type; these modifications make it match the spec
18429         again.
18430         (ves_icall_Type_GetGenericParameters): Renamed to
18431         `ves_icall_Type_GetGenericArguments'.
18432         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
18433         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
18434         `ves_icall_MonoType_get_HasGenericArguments'.
18435         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
18436         `ves_icall_MonoType_get_IsGenericParameter'.
18437         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
18438         this is no interncall anymore.
18439         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
18440         `ves_icall_TypeBuilder_get_IsGenericParameter'.
18441
18442 2003-10-14  Martin Baulig  <martin@ximian.com>
18443
18444         * reflection.c (mono_reflection_bind_generic_parameters): Also
18445         inflate generic methods if we're reading the class from IL.
18446
18447 2003-10-13  Martin Baulig  <martin@ximian.com>
18448
18449         * reflection.c (mono_reflection_define_generic_parameter): This
18450         method isn't called directly from the icall anymore; take a
18451         `MonoReflectionAssemblyBuilder *' so we can use this for type and
18452         method generic parameters.
18453         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
18454         (method_builder_encode_signature): Encode generic parameters.
18455         (mono_image_get_method_info): Write generic params to the
18456         MONO_TABLE_GENERICPARAM table.
18457
18458         * reflection.h (MonoReflectionMethodBuilder): Added
18459         `MonoArray *generic_params'.
18460
18461         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
18462
18463         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
18464         wrapper for mono_reflection_define_generic_parameter().
18465         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
18466
18467 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
18468
18469         * marshal.h: Add missing function to fix build.
18470
18471         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
18472         the SetLastError pinvoke attribute.
18473
18474         * marshal.c (mono_marshal_set_last_error): New helper function called
18475         by the generated code.
18476         
18477         * marshal.c (mono_mb_emit_branch): New helper function.
18478
18479         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
18480
18481         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18482         classes as parameters and return values of delegates. Fixes #29256. 
18483
18484 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
18485
18486         * locales.c: use gint32 in non HAVE_ICU case
18487
18488 2003-10-11  Martin Baulig  <martin@ximian.com>
18489
18490         * mono-debug.c (mono_debug_add_method): Added a workaround for
18491         bug #48591.
18492
18493 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
18494
18495         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
18496         delegates passed to native code must use the STDCALL calling 
18497         convention. Fixes #35987.
18498
18499 2003-10-10  Martin Baulig  <martin@ximian.com>
18500
18501         * class.c (inflate_generic_type): If we're inflating for a generic
18502         type instance (and not for a generic method), return
18503         MONO_TYPE_MVAR unchanged.
18504
18505 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18506
18507         * string-icalls.c: Join ignores null strings in the source array.
18508         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
18509         * threads.c: GetAvailableTheads is slightly more accurate.
18510
18511 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
18512
18513         * threads.h threads.c : add mono_threads_set_default_stacksize
18514         and pass default to CreateThread calls.
18515
18516 2003-10-09  Dick Porter  <dick@ximian.com>
18517
18518         * icall.c:
18519         * locales.h:
18520         * locales.c: Internal calls for constructing CultureInfo and
18521         related objects from libicu (if its available.)
18522
18523 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
18524
18525         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
18526
18527 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18528
18529         * threadpool.c: added an argument to async_invoke_thread that is the
18530         item to process, pass the MonoAsyncResult to the thread start function
18531         when creating a new thread. This way we don't need to acquire any lock
18532         when we're creating a new thread. Readded a semaphore for faster
18533         response times (instead of that Sleep i added).
18534
18535 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
18536
18537         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18538         get daylight change dates better on Windows, fix handling
18539         of platforms without tm_gmtoff.
18540
18541 2003-10-06  Martin Baulig  <martin@ximian.com>
18542
18543         * class.c (inflate_generic_method): Renamed to
18544         mono_class_inflate_generic_method() and made public.
18545         (mono_class_init): Don't inflate the generic methods here.
18546         (mono_class_from_generic): Added `gboolean inflate_methods'
18547         argument.  Inflate the methods here.
18548
18549         * loader.c (mono_method_get_param_names): Ignore instances of
18550         generic types for the moment.
18551
18552         * reflection.c (fixup_method): Added support for inflated methods.
18553         (mono_image_create_token): Use mono_image_get_methodref_token()
18554         for inflated methods.
18555         (mono_custom_attrs_from_param): Ignore instances of generic types
18556         for the moment.
18557         (mono_reflection_bind_generic_parameters): New public function.
18558         Moved all the functionality from
18559         ves_icall_Type_BindGenericParameters() here and added support for
18560         dynamic types.
18561         (mono_reflection_define_generic_parameter): Initialize
18562         `klass->methods' here.
18563
18564         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
18565         functionality into mono_reflection_define_generic_parameter().
18566         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
18567         TypeBuilder, return that TypeBuilder.
18568
18569 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18570
18571         * appdomain.c: removed mono_delegate_semaphore.
18572
18573         * threadpool.c:
18574         (mono_thread_pool_add): moved hash table creation inside and the thread 
18575         creation outside of the critical region.
18576         (mono_thread_pool_finish): removed obsolete code.
18577         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
18578         continue or exit the thread depending on the queue.
18579
18580 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
18581
18582         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
18583         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
18584         handle more bool marshalling options
18585
18586 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
18587
18588         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
18589         arrays of structs. Also add a more descriptive error message when
18590         a structure member is marshalled as LPArray.
18591
18592 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
18593
18594         * marshal.c (mono_marshal_get_native_wrapper): Add support for
18595         marshalling arrays of complex types. Fixes #29098. Also remove an
18596         usused and incomplete function.
18597
18598 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
18599
18600         * gc.c: report heap_size - free_bytes as total memory allocated
18601         (bug#49362).
18602
18603 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
18604
18605         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
18606         fix timezone handling problems on Windows.
18607         
18608         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
18609         asserts when the year is outside the range handled by ms the functions.
18610
18611         * class.c (setup_interface_offsets): If the class is an interface,
18612         fill out its interface_offsets slot.
18613
18614 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18615
18616         * threadpool.c: mark threadpool threads as background.
18617
18618 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
18619
18620         * decimal.c - define DECINLINE to nothing if not using GCC
18621
18622 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
18623
18624         * assembly.c: More refcount fixes.
18625
18626 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18627
18628         * string-icalls.c: if we're not trimming, return the same string.
18629         When not splitting, don't create a new string.
18630
18631 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18632
18633         * image.c:
18634         (mono_image_open): increment the ref_count inside the critical section.
18635
18636 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
18637
18638         * image.c (mono_image_open): Fix reference counting bug.
18639
18640 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
18641
18642         * marshal.c (mono_marshal_type_size) struct alignment changed for 
18643         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
18644         64bits. Avoid leak in mono_marshal_get_native_wrapper when
18645         mono_lookup_pinvoke_call throws.        
18646
18647 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
18648
18649         * reflection.c (mono_reflection_parse_type): Fix #49114.
18650
18651         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
18652         temporary workaround for cygwin header problem.
18653
18654         * object.c (mono_object_isinst): Synchronize this with the code
18655         generated by the JIT for casts.
18656
18657 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
18658
18659         * reflection.c (encode_type): Fix #38332.
18660
18661 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
18662
18663         * marshal.c (mono_marshal_method_from_wrapper): New function to return
18664         the original method from the wrapper method.
18665
18666 2003-09-25  Martin Baulig  <martin@ximian.com>
18667
18668         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
18669         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
18670         (ves_icall_Type_get_IsGenericInstance): New interncall.
18671
18672 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
18673
18674         * object.c: fix cast warning in big endian code.
18675
18676 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
18677
18678         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
18679         
18680 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18681
18682         * assembly.c: don't call check_env from mono_assembly_load. It's
18683         already done once in mono_assemblies_init and may cause headaches when
18684         multiple threads are loading assemblies.
18685
18686 2003-09-19  Martin Baulig  <martin@ximian.com>
18687
18688         * reflection.c (mono_reflection_define_generic_parameter): Don't
18689         allocate `klass->methods', set `klass->flags' to
18690         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
18691
18692 2003-09-18  Martin Baulig  <martin@ximian.com>
18693
18694         * class.c (mono_class_init): Don't create `class->methods' if it's
18695         already initialized.
18696
18697         * metadata.c (mono_metadata_load_generic_params): Make this
18698         actually work.
18699
18700         * reflection.c (mono_reflection_define_generic_parameter): Set
18701         parent class and interfaces from the constraints.
18702
18703         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
18704         to keep this struct in sync with the declaration in TypeBuilder.cs.
18705
18706 2003-09-17  Martin Baulig  <martin@ximian.com>
18707
18708         * metadata.h (MonoType): Replaced the data's `int type_param'
18709         field with `MonoGenericParam *generic_param'.
18710         (MonoGenericParam): Added `MonoClass *klass'.
18711
18712         * class.c (mono_class_from_gen_param): Removed the
18713         `MonoImage *image' and `int type_num' arguments.
18714
18715         * metadata.c (mono_metadata_parse_generic_param): New static
18716         method; creates a MonoGenericParam which just contains the index.
18717         (do_mono_metadata_parse_type): Call
18718         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
18719         MONO_TYPE_MVAR.
18720
18721         * reflection.c (mono_image_typedef_or_ref): Generic type
18722         parameters may be in the same assembly, but never use a typedef
18723         for them.
18724         (mono_reflection_define_generic_parameter): We're now creating a
18725         "real" class for the type parameter; it's now safe to call
18726         mono_class_from_mono_type() on the class'es type, it'll do the
18727         right thing.
18728
18729 2003-09-16  Martin Baulig  <martin@ximian.com>
18730
18731         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
18732         `symfile->range_entry_size' and `symfile->class_entry_size' here;
18733         the `symfile' data structure must be fully initialized before it
18734         gets added to the table.
18735
18736 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
18737
18738         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
18739
18740         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
18741         class init trampolines.
18742
18743 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
18744
18745         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
18746         to the built-in profiler to turn off time and allocation profiling
18747         respectively.
18748
18749 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
18750
18751         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
18752         g_direct_equal.
18753
18754         * debug-helpers.c (mono_method_full_name): Print the wrapper type
18755         in human readable form.
18756
18757 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
18758
18759         * reflection.c icall.c: Fixed warnings.
18760
18761         * image.c (load_class_names): Use a temporary hash table to hold the
18762         namespaces in order to avoid doing many string comparisons.
18763
18764         * image.h: Fix typo.
18765
18766         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
18767         Pass NULL instead of g_direct_equal to the GHashTable constructor 
18768         since the NULL case is short-circuited inside g_hash_table_lookup, 
18769         leading to better performance.  
18770
18771         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
18772         obtain the first custom attribute for a given index. Depends on the
18773         CustomAttribute table being sorted by the parent field.
18774
18775         * reflection.c (mono_custom_attrs_from_index): Use the new function 
18776         for better performance.
18777
18778 2003-09-07  Martin Baulig  <martin@ximian.com>
18779
18780         * class.c (mono_class_init): If we're a generic instance, inflate
18781         all our methods instead of loading them from the image.
18782         (mono_class_from_generic): Set `class->methods = gklass->methods'.
18783
18784 2003-09-07  Martin Baulig  <martin@ximian.com>
18785
18786         * mono-debug-debugger.c: Added support for constructors.
18787
18788 2003-09-06  Martin Baulig  <martin@ximian.com>
18789
18790         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
18791         New interncall.
18792
18793         * reflection.c (mono_reflection_setup_generic_class): Call
18794         ensure_runtime_vtable() to create the vtable.
18795
18796 2003-09-05  Martin Baulig  <martin@ximian.com>
18797
18798         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
18799         MONO_TYPE_MVAR.
18800
18801 2003-09-04  Martin Baulig  <martin@ximian.com>
18802
18803         * reflection.c (mono_reflection_define_generic_parameter): Generic
18804         parameters start with zero.
18805
18806 2003-09-04  Martin Baulig  <martin@ximian.com>
18807
18808         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18809
18810         * reflection.h (MonoReflectionGenericParam): New typedef.
18811         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
18812         the generic parameters from the managed TypeBuilder.
18813
18814         * reflection.c (mono_reflection_define_generic_parameter): New function.
18815         (mono_reflection_create_runtime_class): Encode generic parameters.
18816         (mono_reflection_setup_generic_class): New function; this is
18817         called after adding adding all generic params to the TypeBuilder.
18818         (encode_type): Added MONO_TYPE_VAR.
18819
18820 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
18821
18822         * class.h class.c (mono_class_needs_cctor_run): Moved this method
18823         here from the JIT.
18824
18825         * assembly.h assembly.c: Moved the AOT loading code into an assembly
18826         load hook.
18827
18828 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
18829
18830         * reflection.h reflection.c class.h class.c: Delete duplicate 
18831         definition of mono_type_get_name () from reflection.c and export the
18832         one in class.c.
18833
18834         * class.c: Class loading fixes from Bernie Solomon 
18835         (bernard@ugsolutions.com).
18836
18837         * reflection.c: Endianness fixes from Bernie Solomon 
18838         (bernard@ugsolutions.com).
18839         
18840 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
18841
18842         * assembly.h assembly.c: Define a file format version for AOT
18843         libraries.
18844         
18845         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
18846
18847         * appdomain.h (MonoJitInfo): New field to determine whenever the
18848         code is domain neutral.
18849         
18850 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
18851
18852         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
18853
18854 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
18855
18856         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
18857         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
18858         Avoid caching the result since strings must be domain specific. Fixes
18859         #48050.
18860
18861 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
18862
18863         * marshal.c (mono_marshal_init): Make this callable multiple times
18864         since it is hard to find a correct place to call it.
18865
18866         * object.c (mono_runtime_class_init): Execute static constructors in
18867         the correct appdomain.
18868
18869         * image.c (build_guid_table): Handle the case when multiple images have
18870         the same GUID.
18871
18872 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18873
18874         * icall.c: added a couple of icalls for System.Web.
18875
18876 2003-08-28  Martin Baulig  <martin@ximian.com>
18877
18878         * icall.c (ves_icall_Type_BindGenericParameters): Use
18879         `klass->generic_inst' instead of `&klass->byval_arg' in the
18880         mono_type_get_object() call.  The returned type must be
18881         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
18882
18883 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
18884
18885         * NOTES: New file.
18886
18887         * object.c (mono_class_proxy_vtable): Make it thread safe.
18888
18889         * pedump.c: Fix warning.
18890
18891         * object.c appdomain.h: Get rid of metadata_section. 
18892         It is no longer needed and it was causing deadlocks with domain->lock.
18893
18894         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
18895
18896 2003-08-26  Martin Baulig  <martin@ximian.com>
18897
18898         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
18899
18900 2003-08-26  Martin Baulig  <martin@ximian.com>
18901
18902         * pedump.c (main): Call mono_metadata_init(),
18903         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
18904         and mono_loader_init().
18905
18906 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
18907
18908         * loader.h: Add missing include to fix build.
18909
18910         * image.h: mono_image_load_references is no more.
18911
18912         * assembly.c: Reworked assembly loading to make it really thread safe.
18913         After these changes, the assembly returned by mono_assembly_open is
18914         fully initialized, i.e. all its references assemblies are loaded.
18915
18916         * assembly.c (mono_image_load_references): Renamed to 
18917         mono_assembly_load_references, and made private, since clients no
18918         longer need to call it.
18919
18920         * class.c: Removed calls to mono_assembly_load_references, since it was
18921         a source of deadlocks.
18922
18923         * loader.h loader.c class.h class.c: Protect data structures using a 
18924         new lock, the loader lock.
18925
18926         * class.c (mono_class_setup_vtable): Create temporary hash tables and
18927         GPtrArrays only when needed.
18928
18929         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
18930         into empty structures by mcs. Fixes pinvoke7.cs.
18931         
18932         * domain.c (mono_init): Call a new initialization function.
18933
18934         * appdomain.c (mono_runtime_init): Call the new initializer function
18935         of the marshal module.
18936
18937         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
18938         inserted into empty structures by mcs. Fixes pinvoke7.cs.
18939
18940         * marshal.h marshal.c: Added locks around the wrapper caches to make
18941         this module thread safe.
18942
18943         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
18944         this argument. Fixes pinvoke1.exe.
18945
18946 2003-08-25  Lluis Sanchez <lluis@ximian.com>
18947
18948         * object.h: Added call_type field to MonoMethodMessage and the corresponding
18949         enumeration of values. Removed fields to store remote call output values in
18950         MonoAsyncResult. Not needed any more.
18951         * object.c: Initialize call_type and async_result fields in mono_message_init.
18952         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
18953         dispatching the message.
18954         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
18955         async call to finish. To do it use a message with EndInvoke call type.
18956
18957 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
18958
18959         * loader.h loader.c (mono_method_hash_marhal_info): New function which
18960         determines whenever a method has marshalling info.
18961
18962 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18963
18964         * assembly.c: fix the build on windows.
18965
18966 2003-08-22 Lluis Sanchez <lluis@ximian.com>
18967
18968         * object.cs: Fixed bug #47785.
18969
18970 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
18971
18972         * string-icalls.c (StringReplace): If their are no occurances of
18973         the old string found return a reference to the supplied
18974         string. This saves some memory and matches MS behavoir.
18975         
18976 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18977
18978         * socket-io.c: fixed compilation for systems that define AF_INET6
18979         and don't define SOL_IP/SOL_IPV6.
18980
18981 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
18982
18983         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
18984         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
18985
18986         * rawbuffer.c rawbuffer.h: Make this module thread safe.
18987
18988         * domain.c: Make this module thread safe.
18989
18990         * domain.c (mono_init): Call new initialization function.
18991
18992         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
18993         reference types too. Fixes #38812.
18994
18995         * image.c (mono_image_init): Fixed warnings.
18996
18997         * class.c (mono_class_from_typeref): Handle assembly load failure
18998         correctly.
18999
19000         * appdomain.c (add_assemblies_to_domain): Handle the case when
19001         the references of an assembly are not yet loaded.
19002
19003         * metadata.c image.c assembly.c: Moved initialization of global
19004         variables to a separate function called at startup since lazy 
19005         initialization of these variables is not thread safe.
19006         
19007         * image.c assembly.c: Made this module thread safe by adding locks in 
19008         the appropriate places.
19009
19010         * domain.c (mono_init): Call the new initialization functions of the
19011         three modules.
19012
19013 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
19014
19015         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
19016           make a direct call. It is proxy's work to make the call asynchronous.
19017           mono_delegate_end_invoke(): If the targe is a proxy, just collect
19018           the return values.
19019         * object.cs: mono_method_call_message_new(): read AsyncResult and
19020           state object from parameters list, if this info is requested.
19021         * object.h: Added fields to store remote call output values in
19022           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
19023
19024 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19025
19026         * object.h: add needed fields to MonoThread.
19027         * threads.c, threads.h: allow registering a function to cleanup data
19028         allocated per thread by the JIT.
19029
19030 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19031
19032         * loader.h: portability fix by Bernie Solomon
19033         * <bernard@ugsolutions.com>.
19034
19035 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
19036
19037         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
19038         return a MonoArray. This simplifies the code and also ensures that
19039         the cache allways contains an object reference as a value.
19040
19041         * icall.c (ves_icall_get_parameter_info): Simplified using the new
19042         function.
19043
19044 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19045
19046         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
19047         fixes a problem with byte ordering when getting the address family for
19048         a socket.
19049
19050 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
19051
19052         * .cvsignore: Added monosn.
19053
19054         * reflection.h reflection.c loader.c: Added support for parameter
19055         marshalling to dynamically created types. Fixes #47295.
19056
19057 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
19058
19059         * rand.c: remove useless warnings.
19060
19061 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
19062
19063         * class.c: implemented ldtoken for methods and fieldrefs.
19064
19065 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19066
19067         * threadpool.c: when mono_async_invoke was called, no one took care of
19068         monitoring the queue. So if the method invoked took some time and we
19069         got new async invoke requests after 500 ms (the thread created waited
19070         that long in WaitForSingleObject), the new async invoke was not called
19071         until the previous one finished.
19072
19073         This is fixed now. Thanks to Totte for helping with it.
19074
19075 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19076
19077         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
19078
19079 2003-08-11  Martin Baulig  <martin@ximian.com>
19080
19081         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
19082
19083 2003-08-06  Martin Baulig  <martin@ximian.com>
19084
19085         * mono-debug-debugger.c: Added support for static fields,
19086         properties and methods.
19087
19088 2003-08-06  Martin Baulig  <martin@ximian.com>
19089
19090         * mono-debug-debugger.c: Don't store the MonoString's vtable to
19091         make this work for applications with multiple application domains.
19092
19093 2003-08-04  Martin Baulig  <martin@ximian.com>
19094
19095         * mono-debug-debugger.c: Completely reworked the type support; the
19096         most important thing is that we're now just using one single
19097         `MonoType' instance per type.
19098
19099 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
19100
19101         * mono-endian.h, mono-endian.c, icall.c: Added icall
19102         ves_icall_System_Double_AssertEndianity to assert double word endianity
19103         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
19104
19105 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19106
19107         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
19108         support, icalls and fixes.
19109
19110 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
19111
19112         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
19113         classes that are a punctuation character in .NET is not the same a
19114         g_unichar_ispunct.
19115
19116 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19117
19118         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
19119
19120 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
19121
19122         * icall.c: Add new MemCopy internalcall.
19123         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
19124         Simplified code; It is not necessary to handle all the cases here,
19125         as the C# code takes care of it.  Only handle the case of the name
19126         resource embedded into the assembly.
19127
19128         Changed signature to return the data pointer and the size of the
19129         data. 
19130
19131 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
19132
19133         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
19134         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
19135
19136 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
19137
19138         * socket-io.c: ignore EINTR error in select.
19139
19140 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
19141
19142         * class.h, class.c: removed unused subclasses field in MonoClass.
19143
19144 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
19145
19146         * icall.c: improve fix of get_base_definition(). If the parent class
19147           doesn't have the mehod, look at the parent of the parent.
19148         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
19149           to check if a parameter is an in or out parameter
19150           (PARAM_ATTRIBUTE_IN is not set by default).
19151           mono_method_return_message_restore(): Use mono_class_value_size to
19152           get the size of a value type. mono_type_stack_size (parameterType)
19153           does not return the correct value if parameterType is byRef.
19154           mono_load_remote_field(), mono_load_remote_field_new(),
19155           mono_store_remote_field(), mono_store_remote_field_new():
19156           raise exception if the remote call returns an exception.
19157
19158 2003-07-28  Martin Baulig  <martin@ximian.com>
19159
19160         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
19161         method.  This is a wrapper around mono_runtime_invoke() which
19162         boxes the instance object if neccessary.
19163
19164 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19165
19166         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
19167         metadata.h, row-indexes.h, verify.c: first cut of generics support.
19168
19169 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19170
19171         * icall.c: disable mcs bug workaround.
19172
19173 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
19174
19175         * object.c (mono_runtime_class_init): Take the metadata_section
19176         mutex before obtaining the domain mutex.
19177
19178         * appdomain.h: Added definition of metadata_section mutex here. 
19179
19180         * object.c: define metadata_mutex here.
19181
19182 2003-07-24  Ravi Pratap  <ravi@ximian.com>
19183
19184         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
19185         fixed.
19186
19187 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
19188
19189         * reflection.c: Fix bug #46669
19190
19191 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19192
19193         * exception.c:
19194         * exception.h:
19195         * icall.c:
19196         * object.h: fill in the type name for TypeLoadException.
19197
19198 2003-07-23  Ravi Pratap  <ravi@ximian.com>
19199
19200         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
19201         relationship between TypeBuilders while compiling corlib) and bug
19202         45993 (Array types returned from the runtime while compiling
19203         corlib were from the loaded corlib).
19204
19205 2003-07-22  Martin Baulig  <martin@ximian.com>
19206
19207         * mono-debug-debugger.c: Reworked the type support a bit more;
19208         distinguish between types and classes.
19209
19210 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
19211
19212         * icall.c: add IsArrayImpl icall.
19213
19214 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
19215
19216         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
19217         initializing real_size only once. Also fix bug #46602.
19218
19219 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
19220
19221         * object.c: Renamed mono_metadata_section to metadata_section.
19222
19223 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
19224
19225         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
19226           empty array if the type is an array. Fixed.
19227           ves_icall_MonoMethod_get_base_definition: if the base method
19228           is abstract, get the MethodInfo from the list of methods of
19229           the class.
19230         * reflection.c: ParameterInfo.PositionImpl should be zero-based
19231           and it was 1-based. Fixed in mono_param_get_objects.
19232
19233 2003-07-20  Martin Baulig  <martin@ximian.com>
19234
19235         * mono-debug.h: Set version number to 31.
19236         (mono_debug_init): Added `MonoDomain *' argument.
19237
19238         * mono-debug-debugger.c: Reworked the type support; explicitly
19239         tell the debugger about builtin types; pass the `klass' address to
19240         the debugger.
19241
19242 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
19243
19244         * image.c: Allow new metadata tables to be loaded without a
19245         warning. Also update the warning message to give the new constant value.
19246                 
19247 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
19248
19249         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
19250         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
19251         array type representation changes.
19252
19253 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19254
19255         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
19256         on Environment.Exit () call.
19257
19258 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
19259
19260         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
19261         requires a matching corlib.
19262
19263 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
19264
19265         * Changelog: My editor decided to add a CR to each line. Sorry about that.
19266           Committed again without the CRs.
19267         
19268 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
19269
19270         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
19271           getting it from the "this" socket instance. Did not work
19272           if the socket is a subclass of Socket.
19273           Also fixed bug #35371.
19274
19275 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19276
19277         * metadata.c: fixed size for TypedByRef.
19278         * loader.c: when searching for a method, consider the vararg amrker.
19279         * unicode.c, decimal.c: constify some arrays.
19280
19281 2003-07-15  Dick Porter  <dick@ximian.com>
19282
19283         * socket-io.c: Fixed compilation for gcc < 3.2.
19284
19285         Fixed compilation for machines that don't have AF_INET6 (thanks to
19286         Bernie Solomon <bernard@ugsolutions.com> for that part.)
19287
19288         Fixed compile warnings.
19289         
19290         Fixed formatting and line endings.
19291
19292 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
19293
19294         * socket-io.h:
19295         * socket-io.c: Added IPv6 support.
19296
19297 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
19298
19299         * class.c (mono_class_is_assignable_from): New function to implement
19300         the is_assignable_from logic. Used by mono_object_isinst, 
19301         Type::IsAssignableFrom () and the interpreter.
19302
19303         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
19304         Object, even interfaces.
19305         
19306         * object.c (mono_object_isinst): Implement in terms of 
19307         is_assignable_from.
19308
19309         * icall.c (ves_icall_type_is_assignable_from): New icall.
19310
19311 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
19312
19313         * domain.c (foreach_domain): fix compiler warning.
19314
19315 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
19316
19317         * image.c (load_metadata_ptrs): use g_strndup because strndup is
19318         not available on all plattforms
19319
19320 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
19321
19322         * image.h image.c: Store the metadata version string in MonoImage.
19323         * icall.c: New icall to retrieve the image version.
19324         * reflection.c (create_dynamic_image): Fill in the image version field
19325         * reflection.c (build_compressed_metadata): Use the image version
19326         from the image structure.
19327
19328 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19329
19330         * appdomain.c: modified comment.
19331         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
19332         That will be its last iteration when mono_gc_cleanup is called from
19333         mono_runtime_cleanup and before the domain is unloaded.
19334
19335         Fixes bug #45962.
19336
19337 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
19338
19339         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
19340         attributes.
19341
19342 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19343
19344         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
19345         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
19346         Bernie Solomon <bernard@ugsolutions.com>.
19347
19348 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19349
19350         * object.c, object.h: provide mono_object_new_fast() for faster
19351         allocation in some special cases.
19352
19353 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
19354
19355         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
19356         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
19357
19358 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
19359
19360         * threadpool.c: fix leaks.
19361
19362 2003-07-01  Dick Porter  <dick@ximian.com>
19363
19364         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
19365         using MonoGHashTables.  Fixes threadpool bug posted to list.
19366
19367 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
19368
19369         * image.h, image.c: added support to load an assembly from a byte array.
19370         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
19371         assembly bundle support.
19372
19373 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
19374
19375         * threadpool.c (mono_thread_pool_add): keep a reference to the
19376         AsyncResult to prevent GC
19377
19378 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19379
19380         * class.c: leak fix.
19381
19382 2003-06-25  Dick Porter  <dick@ximian.com>
19383
19384         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
19385         for the async object, the WaitHandle object will close the handle.
19386         Fixes bug 45321.
19387
19388 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19389
19390         * class.c: in mono_array_class_get (), lookup from the hash with the
19391         same type we insert: this works around a bug in
19392         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
19393         lluis. The real fix will have to wait for after the release.
19394
19395 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19396
19397         * icall.c: fix memory leak when getting type members.
19398
19399 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19400
19401         * reflection.c: added more pubtoken special cases.
19402
19403 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
19404
19405         * class.c: handle field offset correctly when class size
19406         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
19407
19408 2003-06-20  Martin Baulig  <martin@ximian.com>
19409
19410         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
19411         *image' field.
19412
19413 2003-06-20  Martin Baulig  <martin@ximian.com>
19414
19415         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
19416
19417 2003-06-20  Martin Baulig  <martin@ximian.com>
19418
19419         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
19420         just distinguish between variables in registers and variables at
19421         an offset relative to a register.
19422
19423 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19424
19425         * icall.c: #ifdef out latest changes until mcs is fixed.
19426
19427 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19428
19429         * icall.c: return members in metadata order.
19430
19431 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19432
19433         * icall.c: avoid infinite loop in GetTimeZoneData.
19434
19435 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
19436
19437         * icall.c: added Marshal.Prelink/All icalls.
19438
19439 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19440
19441         * object.c, object.h: fix warnings and do some overflow checking
19442         when creating arrays.
19443
19444 2003-06-17  Dick Porter  <dick@ximian.com>
19445
19446         * file-io.h:
19447         * file-io.c: File attributes need to be tweaked slightly when
19448         passed from the managed to the w32 world.
19449
19450 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
19451         * profiler.h profiler-private.h profiler.c: Rework last patch
19452         based on suggestion by Paolo.
19453         
19454 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
19455
19456         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
19457         instruction level coverage data collection.
19458         * profiler.h profiler.c (: Added new callback function which can be
19459         used by the profiler to limit which functions should have coverage
19460         instrumentation.
19461         * profiler.c (mono_profiler_load): Call g_module_build_path to
19462         generate the file name of the profiler library.
19463
19464 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19465
19466         * profiler.c, profiler.h, profiler-private.h: added basic block 
19467         coverage profiling API.
19468
19469 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
19470
19471         * reflection.c (mono_reflection_create_runtime_class): Add support
19472         for events in dynamically generated code.
19473
19474         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
19475         not allocated.
19476
19477 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19478
19479         * icall.c: when getting timezone info, return reasonable values if we
19480         can't get the actual data.
19481
19482 2003-06-14  Dick Porter  <dick@ximian.com>
19483
19484         * threads.c (start_wrapper): Remove the reference to the thread
19485         object in the TLS data, so the thread object can be finalized.
19486         This won't be reached if the thread threw an uncaught exception,
19487         so those thread handles will stay referenced :-( (This is due to
19488         missing support for scanning thread-specific data in the Boehm GC
19489         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
19490
19491 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
19492
19493         * reflection.c: ensure streams and tables are first allocated with
19494         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
19495
19496 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19497
19498         * icall.c: fixed GetElementType for byrefs (bug# 44792).
19499
19500 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
19501
19502         * reflection.c (mono_reflection_create_runtime_class): Add support for
19503         properties to dynamically created classes.
19504         * reflection.c: Fix a few places where non-MonoObjects were inserted
19505         into the tokens hashtable.
19506
19507 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19508
19509         * object.c: some support to handle out of memory exceptions.
19510
19511 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
19512
19513         * marshal.c (mono_marshal_get_native_wrapper): support reference
19514         return types
19515
19516 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19517
19518         * object.h, object.c: more portability stuff from Bernie Solomon.
19519         Unexport mono_object_allocate(). Added mono_object_unbox ().
19520         Set exitcode when an unhandled exception is thrown.
19521
19522 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
19523
19524         * marshal.c (mono_marshal_get_native_wrapper): use custom
19525         marshaler for return types.
19526
19527 2003-06-10  Dick Porter  <dick@ximian.com>
19528
19529         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
19530         ip_mreq is available
19531
19532 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
19533
19534         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
19535         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
19536         by Bernie Solomon <bernard@ugsolutions.com>.
19537
19538 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
19539
19540         * gc.c (mono_gc_init): Avoid error message on shutdown when
19541         GC_DONT_GC=1 is used.
19542
19543         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
19544         New icall to return the GUID of a module.
19545
19546 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19547
19548         * class.c: ensure instance size always includes the parent's size
19549         even whem class size is set explicitly (fixes bug#44294).
19550
19551 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19552
19553         * profiler.h, profiler.c: made the simple profiler thread-safe,
19554         get more accurate timing info. Allow the loading of an
19555         externally-developed profiler module.
19556
19557 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
19558
19559         * marshal.c (mono_marshal_get_native_wrapper): improved
19560         class/byref arguments.
19561         (mono_marshal_get_native_wrapper): better string marshaling support.
19562
19563 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
19564
19565         * class.c: ensure .pack and .size are handled correctly and
19566         simplified layout of static fields.
19567
19568 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
19569
19570         * appdomain.c
19571         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
19572
19573         * loader.c (mono_lookup_pinvoke_call): look for modules in the
19574         current directory (fix bug 44008)
19575
19576 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
19577
19578         * marshal.c (mono_marshal_get_native_wrapper): started support for
19579         custom marshalers.
19580         (mono_delegate_to_ftnptr): consider marshalling specifications
19581
19582 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
19583
19584         * reflection.c, reflection.h: emit custom marshal info.
19585
19586 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19587
19588         * object.c: free the GError.
19589         * icall.c: added CloseEvent_internal.
19590         * threads.[ch]:
19591         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
19592         call.
19593
19594 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
19595
19596         * loader.c (mono_method_get_signature): Add support for dynamic
19597         assemblies.
19598
19599 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
19600
19601         * reflection.c: fixed bug #43905.
19602
19603 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19604
19605         * class.c, domain.c, icall.c, metadata.h, object.h: support for
19606         handling TypedReference and ArgIterator.
19607         * loader.c, loader.h: added function to get signature at call site.
19608
19609 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19610
19611         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
19612         data readonly. Buglets and warning fixes. Some MethodSpec support.
19613
19614 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19615
19616         * class.h, class.c, object.c: remove relative numbering support.
19617
19618 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
19619
19620         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
19621         free the string, until we get a chance to fix Gtk#
19622
19623 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19624
19625         * marshal.c: revert last patch.
19626
19627 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
19628
19629         * icall.c: updates for new mono_class_vtable() not calling
19630         the type constructor anymore.
19631
19632 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19633
19634         * object.h, object.c: separate vtable creation from type
19635         initialization. Make running the .cctor thread safe.
19636
19637 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
19638
19639         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
19640
19641 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
19642
19643         * loader.c (mono_get_method): consider calling convention
19644
19645 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
19646
19647         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
19648         to return the invisible global type for a module.
19649
19650         * reflection.c (mono_image_build_metadata): Emit global fields too.
19651
19652 2003-05-20  Peter Williams  <peterw@ximian.com>
19653
19654         * loader.c (mono_lookup_internal_call): Add a few newlines.
19655
19656 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
19657
19658         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
19659         literal strings.
19660
19661         * appdomain.c (set_domain_search_path): Recalculate search path when
19662         AppDomainSetup.PrivateBinPath changes.
19663
19664         * object.c (mono_class_compute_gc_descriptor): It turns out some
19665         parts of the class libs (like System.Thread) holds pointers to
19666         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
19667         to treat native int a pointer type here.
19668         
19669 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
19670
19671         * appdomain.h, domain.c: add hashtable for jump target resolution.
19672
19673 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
19674
19675         * reflection.h reflection.c icall.c: Added new icalls 
19676         GetManifestResourceInfoInternal, GetModulesInternal and support
19677         infrastructure.
19678
19679 2003-05-16  Dick Porter  <dick@ximian.com>
19680
19681         * icall.c:
19682         * file-io.h:
19683         * file-io.c: Implement System.IO.MonoIO::GetTempPath
19684
19685 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
19686
19687         * object.c: mono_store_remote_field: little fix to previous patch.
19688
19689 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19690
19691         * class.c: add constructors to array classes.
19692         * icall.c: special case array construction for InternalInvoke (),
19693
19694 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
19695
19696         * class.h class.c reflection.c object.c: Added support for field
19697         defaults in dynamically generated classes.
19698
19699 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
19700
19701         * reflection.c: properly encode charset for ddlimport.
19702
19703 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
19704
19705         * threads.c: allow compiling without GC.
19706
19707 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19708
19709         * appdomain.h, object.c, object.h, threads.c, threads.h: added
19710         handling of thread static data.
19711
19712 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19713
19714         * reflection.h, reflection.c: added mono_custom_attrs_free ().
19715
19716 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
19717
19718         * class.c (mono_array_class_get): always set the serializable flags
19719         (mono_array_class_get): always set the SEALED attribute for array types
19720
19721 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
19722
19723         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
19724         attributes (fix for bug 42021).
19725
19726 2003-05-12  Dick Porter  <dick@ximian.com>
19727
19728         * gc.c: Don't run finalizers when the finalizer thread is
19729         finishing up, because the default domain has already been
19730         destroyed.
19731
19732 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
19733
19734         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
19735         value is null, we should throw an exception.   This is slightly
19736         different than the other conventions used for the constructor.
19737
19738 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19739
19740         * socket-io.c: fixed windows build.
19741
19742 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19743
19744         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
19745
19746 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
19747
19748         * object.c (mono_string_new_wrapper): Compatibility fix for MS
19749         compilers.
19750
19751 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
19752
19753         * class.c (mono_class_layout_fields): Add experimental GC aware
19754         auto layout facility. Requires class library changes to work correctly.
19755
19756         (mono_class_setup_vtable): Avoid overriding explicit interface
19757         method implementations. Fixes iface3.exe test.
19758
19759         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
19760         object reference.
19761         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
19762         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
19763
19764         * metadata.h: Add new type classification macro which determines
19765         whenever the type holds an object reference.
19766
19767 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
19768
19769         * marshal.c (mono_marshal_get_native_wrapper): cleanups
19770
19771 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
19772
19773         * gc.c (finalizer_thread): Work around a GC bug.
19774
19775 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
19776
19777         * marshal.c (emit_struct_conv): allow unions
19778
19779         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
19780
19781 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
19782
19783         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
19784
19785 2003-05-06  Martin Baulig  <martin@ximian.com>
19786
19787         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
19788
19789 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19790
19791         * socket-io.c:
19792         (Select_internal): allow NULLs, don't create arrays if not needed.
19793         Coupled with Socket.cs changes.
19794
19795         * threadpool.c:
19796         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
19797         register a finalizer for it that will close the semaphore handle. This
19798         fixes the leak and make Lupus' test run with > 4080 loops.
19799
19800 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
19801
19802         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
19803         Jerome Laban (bug #42287)
19804
19805 2003-05-02  Martin Baulig  <martin@ximian.com>
19806
19807         * debug-mono-symfile.h
19808         (MonoSymbolFile): Moved declaration into mono-debug.h.
19809         (MonoDebugMethodJitInfo): Likewise.
19810         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
19811         argument.
19812         (_mono_debug_address_from_il_offset): Take a
19813         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
19814
19815         * mono-debug.h
19816         (MonoDebugDomainData): New struct.
19817         (mono_debug_get_domain_data): New function.
19818         (mono_debug_add_method): Take an additional `MonoDomain *'
19819         argument.
19820         (mono_debug_source_location_from_address): Likewise.
19821         (mono_debug_il_offset_from_address): Likewise.
19822         (mono_debug_address_from_il_offset): Likewise.
19823
19824 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
19825
19826         * reflection.c: one more check for null type in custom attrs.
19827
19828 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19829
19830         * reflection.c: avoid warning (comparison is always false due to limited
19831         range of data type).
19832
19833 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19834
19835         * icall.c: throw an exception in Type.GetField if the argument 'name'
19836         is NULL.
19837
19838 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
19839
19840         * reflection.c: fixed handling of enums in named arguments to custom
19841         attributes (bug #42123).
19842
19843 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
19844
19845         * reflection.c: use the right array element type and handle
19846         a null for a Type argument, too.
19847
19848 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
19849
19850         * reflection.c: handle arrays as arguments to custom attributes.
19851
19852 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
19853
19854         * reflection.c: handle a string value in a custom attr
19855         ctor that takes an object.
19856
19857 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
19858
19859         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
19860         (fix bug #42063)
19861
19862 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
19863
19864         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
19865
19866 2003-04-27  Martin Baulig  <martin@ximian.com>
19867
19868         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
19869         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
19870         MONO_DEBUGGER_EVENT_BREAKPOINT.
19871         (mono_breakpoint_trampoline_code): Removed.
19872         (mono_debugger_event_handler): The last argument is now a
19873         `guint32'.
19874         (mono_debugger_insert_breakpoint_full): Removed the
19875         `use_trampoline' argument.
19876         (mono_debugger_method_has_breakpoint): Likewise.
19877         (mono_debugger_trampoline_breakpoint_callback): Renamed to
19878         mono_debugger_breakpoint_callback(); take the method and
19879         breakpoint number as arguments.
19880
19881 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
19882
19883         * metadata.c: fix off by one when loading parameters attributes.
19884
19885 2003-04-24  Martin Baulig  <martin@ximian.com>
19886
19887         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
19888
19889 2003-04-24  Martin Baulig  <martin@ximian.com>
19890
19891         * mono-debug-debugger.c: Moved all code which interacts with the
19892         Mono Debugger here.
19893
19894         * debug-mono-symfile.c: This code now just deals with the symbol
19895         file itself, the debugger code is now in mono-debug-debugger.c.
19896
19897 2003-04-23  Martin Baulig  <martin@ximian.com>
19898
19899         * mono-debug.c (mono_debug_source_location_from_il_offset):
19900         New method; like mono_debug_source_location_from_address(), but
19901         takes an IL offset instead of a machine address.
19902
19903 2003-04-23  Martin Baulig  <martin@ximian.com>
19904
19905         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
19906         `line' field; this is now computed by the debugger.
19907
19908 2003-04-23  Martin Baulig  <martin@ximian.com>
19909
19910         * mono-debug.[ch]: New files.  This is the new debugging interface.
19911
19912         * mono-debug-debugger.[ch]: New files.  Moved all code which
19913         interacts with the Mono Debugger here.
19914
19915 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
19916
19917         * domain.c (mono_init): initialize mono_defaults.monitor_class
19918
19919 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
19920
19921         * reflection.c (method_encode_code): Add a spicy exception to help
19922         future compiler authors.
19923
19924 2003-04-21  Martin Baulig  <martin@ximian.com>
19925
19926         * icall.c
19927         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
19928         Make this work with relative pathnames; g_filename_to_uri() needs
19929         an absolute filename.
19930
19931 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
19932
19933         * icall.c: Track name changes in Object and ValueType.
19934
19935 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
19936
19937         * metadata.c (mono_type_stack_size): size should be a multiple of
19938         sizeof (gpointer)
19939
19940 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19941
19942         * gc.c:
19943         (internal_domain_finalize): moved into mono_domain_finalize. No need
19944         to create another thread because the finalizers will be run in the
19945         finalizer thread.
19946         
19947         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
19948         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
19949         to be run (MS does this too).
19950
19951 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
19952
19953         * object.c (mono_class_compute_gc_descriptor): Update comment.
19954
19955         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
19956
19957         * image.h: Add synchronized wrapper cache.
19958
19959         * image.c (do_mono_image_open): Initialize cache.
19960
19961         * reflection.c (create_dynamic_mono_image): Initialize cache.
19962
19963 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19964
19965         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
19966         ves_icall_System_Buffer_ByteLengthInternal.
19967
19968 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19969
19970         * reflection.c: setup klass->nested_in earlier. Allow
19971         a dash in the assembly name.
19972
19973 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
19974
19975         * metadata.c (mono_type_to_unmanaged): dont access
19976         type->data.klass for MONO_TYPE_OBJECT
19977         (mono_type_to_unmanaged): consider System.Delegate class
19978
19979 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
19980
19981         * class.c: just setup supertypes in the proper place instead of
19982         initializing the full element class for arrays.
19983
19984 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19985
19986         * class.c: ensure the element class of arrays is initialized.
19987         Setup the supertype info for array classes, too.
19988
19989 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
19990
19991         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
19992
19993 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19994
19995         * Makefile.am: re-added -m option when running cygpath. This way,
19996         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
19997         separator.
19998         * mono-config.c: same codepath for locating mono config file for WIN32
19999         and the rest.
20000         * assembly.c: if mono_assembly_setrootdir is called, don't override
20001         the value set.
20002
20003 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20004
20005         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
20006         MONO_ASSEMBLIES variable.
20007
20008 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
20009
20010         * icall.c: added Assembly::GetNamespaces() icall.
20011
20012 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20013
20014         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
20015
20016 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
20017
20018         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
20019         * object.c: fixed bug in the construction of vtable for proxies
20020
20021 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
20022
20023         * object.c (mono_array_new): Mark mono_array_new as an icall.
20024
20025 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20026
20027         * class.c: fixed test for public method when overriding interfaces.
20028         Closes bug #40970.
20029
20030 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
20031
20032         * appdomain.h, domain.c: added mono_domain_foreach() to
20033         be able to access the currently loaded appdomains.
20034         * object.c: make string interning work across sppdomains.
20035         Mark some functions for use as icalls.
20036
20037 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
20038
20039         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
20040
20041         * reflection.h reflection.c: Allocate long living data using 
20042         GC_MALLOC_ATOMIC so the collector does not need to scan it.
20043
20044         * reflection.c: Double the allocation size in streams instead of
20045         increasing it, to prevent unneccesary copying on large assemblies.
20046         
20047         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
20048         creation if the assembly does not have the Run flag set.
20049
20050 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
20051
20052         * class.h: avoid the C++ keywords in header files (Jerome Laban
20053         spotted and fixed this).
20054
20055 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20056
20057         * object.c:
20058         (mono_unhandled_exception): fill in the arguments for the
20059         UnhandledException event. Only trigger that event for the default
20060         domain (as MS does).
20061
20062 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
20063
20064         * object.c: Improve typed allocation stuff based on suggestions from
20065         Paolo. Also turn it on if the GC library supports it.
20066
20067 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
20068
20069         * object.c object.h class.h: Added experimental typed allocation
20070         facility using the interfaces in gc_gcj.h.
20071
20072         * os/gc_wrapper.h: Added new include files.
20073         
20074 2003-04-03  Martin Baulig  <martin@ximian.com>
20075
20076         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
20077         which is not yet enabled by default.
20078
20079         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
20080         functions.
20081         (mono_gc_lock, mono_gc_unlock): New static functions.
20082
20083         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
20084         functions; stop/start the world for the garbage collector.  This
20085         is using the windows API; we need to complete the SuspendThread()/
20086         ResumeThread() implementation in the io-layer to make this work on Unix.
20087         (mono_gc_push_all_stacks): New public function; tells the garbage
20088         collector about the stack pointers from all managed threads.
20089
20090 2003-04-03  Martin Baulig  <martin@ximian.com>
20091
20092         * object.h (MonoThread): Added `gpointer stack_ptr'.
20093
20094         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
20095
20096 2003-04-03  Martin Baulig  <martin@ximian.com>
20097
20098         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
20099
20100 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
20101
20102         * reflection.c (typebuilder_setup_fields): Initialize field.first and
20103         field.last.
20104
20105 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
20106
20107         * loader.c (mono_lookup_internal_call): Report the corlib that is
20108         out of sync.
20109
20110 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
20111
20112         * icall.c (ves_icall_type_GetTypeCode): fixed check for
20113         System.DBNull (it's class not valuetype).
20114
20115 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
20116
20117         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
20118         if the array method was already assigned a token (fixes bug#40646).
20119
20120 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
20121
20122         * reflection.c (mono_reflection_get_type): Attempt type resolve even
20123         if no assembly is given.
20124
20125 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
20126
20127         * metadata.h: Added the new tables.
20128
20129         * row-indexes.h: Added definitions for new tables.
20130
20131         * metadata.c: Add schemas for new tables, and add support for
20132         computing the sizes of them.
20133
20134         * class.c: Update for handling the new type cases.
20135
20136 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
20137
20138         * metadata.h (MONO_TYPE_IS_VOID): new macro
20139
20140 2003-03-31  Martin Baulig  <martin@ximian.com>
20141
20142         * threads.h (MonoThreadCallbacks): Added `thread_created'.
20143
20144         * threads.c (mono_thread_new_init): Call `thread_created' in the
20145         mono_thread_callbacks.
20146
20147 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
20148
20149         * loader.h: added marshalbyrefobject_class to mono_defaults
20150         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
20151         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
20152           generation of output parameters.
20153           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
20154         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
20155           contextbound and the target object belongs to the context of the caller.
20156         * object.h: added context and unwrapped_server variables in MonoRealProxy.
20157         * object.c: Implemented support for interfaces and abstract classes
20158           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
20159           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
20160
20161 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
20162
20163         * class.h class.c (mono_class_is_subclass_of): New function.
20164         
20165         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
20166         routines for most common case (calls from ArrayList::ToArray).
20167
20168         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
20169         routine so programs which call Environment::Exit() can be profiled.
20170
20171         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
20172         Added MONO_ARCH_SAVE_REGS.
20173
20174         * icall.c (ves_icall_type_is_subtype_of): Use new function.
20175
20176 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
20177
20178         * blob.h: Add a couple of new MonoType types definitions.
20179
20180         * tabledefs.h: Add a couple of new call convs.
20181
20182 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
20183
20184         * reflection.h (MonoReflectionDynamicAssembly): track changes in
20185         the layout of the class.
20186
20187         * reflection.c (alloc_table): double the size on overflow to avoid
20188         unnecessary copying.
20189
20190         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
20191         avoid filling out metadata tables and blobs. Also set mb->ilgen to
20192         null so it can be garbage collected.
20193         
20194 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
20195
20196         * reflection.c (mono_reflection_get_type): Return the resolved type
20197         only if it is in the assembly we searched.
20198
20199         * reflection.c (ensure_runtime_vtable): Initialize method slots.
20200
20201         * class.c (mono_class_setup_vtable): Set the slot of the overriding
20202         method.
20203
20204 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20205
20206         * appdomain.c:
20207         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
20208         the right one is 'file:///blah', but MS allows it.
20209         * assembly.c:
20210         (mono_assembly_open): allow 'file://blah'
20211
20212         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
20213
20214 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
20215
20216         * socket-io.c: fixes bug #40310.
20217
20218 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
20219
20220         * reflection.c (mono_reflection_parse_type): handle deeply nested
20221         types correctly.
20222
20223         * reflection.c (mono_image_create_token): Use unique token values
20224         since they will be put into a hash table.
20225
20226         * class.c (mono_class_setup_vtable): If a method occurs in more than
20227         one place in the vtable, and it gets overriden, then change the
20228         other occurances too.
20229
20230         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
20231         object as return type.
20232
20233 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20234
20235         * icall.c: Deleted "ToString" implementation for double and float
20236         because they are full implemented in managed code.
20237
20238 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20239
20240         * reflection.c, reflection.h: implemented and exported functions
20241         to retrieve info about custom attributes.
20242
20243 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20244
20245         * appdomain.c: moved Uri handling to assembly.c
20246         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
20247         work when using a file Uri in *nix and windows.
20248
20249         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
20250         GetReferencedAssemblies.
20251
20252 2003-03-18  Dick Porter  <dick@ximian.com>
20253
20254         * icall.c: Rename a couple of internal calls
20255
20256         * threads.c: Set the thread state to Stopped when a thread exits.
20257         Fixes bug 39377.
20258
20259 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
20260
20261         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
20262         New icall.
20263
20264         * object.c (mono_class_vtable): fix warning.
20265
20266 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
20267
20268         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
20269
20270         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
20271         memory.
20272         (method_encode_clauses): Create exception info structures in the right
20273         order.
20274         (mono_reflection_setup_internal_class): Initialize supertypes field.
20275
20276         * class.c object.c: Handle interfaces which implement other interfaces 
20277         correctly.
20278
20279         * class.h class.c: Move the supertypes array initialization code into 
20280         a separate function so it can be used for dynamic types too. Also call
20281         it earlier, in mono_class_init(), since it can be used before the
20282         type is initialized.
20283
20284 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20285
20286         * Makefile.am:
20287         * assembly.c:
20288         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
20289
20290         * appdomain.c:
20291         * appdomain.h:
20292         * marshal.c:
20293         * object.c: remove warnings.
20294
20295 2003-03-13  Martin Baulig  <martin@ximian.com>
20296
20297         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
20298         (MonoDebugLexicalBlockEntry): New types.
20299
20300         * debug-mono-symfile.c
20301         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
20302
20303 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20304
20305         * process.c: ret can be any non-zero value accroding to MS doc.
20306
20307 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
20308
20309         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
20310         fixing a warning for a miss-used prototype, would have cause
20311         random memory corruption.
20312
20313 2003-03-07  Martin Baulig  <martin@ximian.com>
20314
20315         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
20316         getting really annoying ....
20317
20318 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
20319
20320         * reflection.c (fixup_method): added support for array methods.
20321
20322 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
20323
20324         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
20325         (pointed out by Michael Adams).
20326
20327 2003-03-04  Dick Porter  <dick@ximian.com>
20328
20329         * icall.c: Temporarily reverted the Double and Single ToString()
20330         change, because it broke nunit.
20331
20332 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
20333
20334         * object.h, threads.h: make include files compatible with C++
20335         (patch by Jerome Laban <jlaban@wanadoo.fr>).
20336
20337 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20338
20339         * icall.c: Erased ToString helper functions for Double and Single.
20340         Now, that implementations ar all in managed code (Double and Single
20341         Formatters).
20342
20343 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
20344
20345         * appdomain.c: Added method for initializing the default context of
20346         a domain. Added internal call for getting the default context.
20347         * appdomain.h: Added context variable in MonoDomain struct.
20348         * domain.c: mono_domain_set also sets the default context of the domain
20349         * icall.c: Mapped internal method InternalGetDefaultContext.
20350         * object.c: mono_object_get_virtual_method returns always a remoting
20351         wrapper if the object is a transparent proxy.
20352         mono_runtime_invoke_array: when creating an object by calling the
20353         constructor, if the created object is a proxy, then the constructor should
20354         be called using the a remoting wrapper.
20355
20356 2003-03-03  Dick Porter  <dick@ximian.com>
20357
20358         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
20359         variable so it compiles on solaris.  Problem spotted by
20360         Christopher Taylor <ct@cs.clemson.edu>
20361
20362 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20363
20364         * appdomain.c:
20365         (get_info_from_assembly_name): don't leak value.
20366
20367         * icall.c:
20368         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
20369         result.
20370
20371 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
20372
20373         * assembly.c: export mono_image_load_references ().
20374         * class.c: handle function pointers. mono_class_from_name() now
20375         supports nested type names directly.
20376
20377 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
20378
20379         * reflection.h reflection.c: Encode already created dynamic methods 
20380         and fields correctly as a DEF instead of a REF.
20381
20382         * reflection.c: Get rid of the force_ref argument to 
20383         mono_image_typedef_or_ref since it was wrong in the first place.
20384
20385         * string-icalls.c: add error checking to string constructors according
20386         to the MSDN docs.
20387
20388         * reflection.c: Emit types in the order their TypeBuilders were 
20389         created. Previously, a new table index was assigned to each type before
20390         the tables were emitted. This was wrong because the signature blob
20391         might already refer to a type by its original table index.
20392
20393 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
20394
20395         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
20396         change.
20397         
20398 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20399
20400         * Makefile.am: make assemblies dir have \ instead of / on windows.
20401
20402 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
20403
20404         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
20405         iterate over the NESTEDCLASS table using a linear search since the
20406         table is not guaranteed to be sorted by the secondary key.
20407
20408         * class.c (mono_class_create_from_typedef): fixed up call to
20409         mono_metadata_nesting_typedef.
20410         
20411 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
20412
20413         * marshal.c (mono_string_to_byvalstr): clear the memory as
20414         suggested by Jerome Laban <jlaban@wanadoo.fr>
20415
20416 2003-02-26  Dick Porter  <dick@ximian.com>
20417
20418         * process.c: Cope with padding in .rsrc blocks
20419
20420 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
20421
20422         * metadata.h: reverted the filter_len change, it breaks reflection
20423         
20424 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
20425
20426         * metadata.h: added a new field to store the filter_len
20427         
20428
20429 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
20430
20431         * reflection.c: handle custom attributes for types and members
20432         created with Reflection.Emit (bug#38422).
20433
20434 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
20435
20436         * reflection.c: define RTSpecialName automatically for constructors for
20437         compatibility with MS.NET.
20438
20439         * reflection.c (mono_reflection_create_runtime_class): initialize
20440         nested_in field of dynamically created classes.
20441
20442 2003-02-22  Martin Baulig  <martin@ximian.com>
20443
20444         * debug-mono-symfile.h: Incremented version number.
20445
20446 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
20447
20448         * object.h icall.c process.c: fix warnings.
20449
20450 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
20451
20452         * appdomain.h appdomain.c:
20453         (mono_domain_try_type_resolve): split the 
20454         name_or_tb argument into a name and a tb argument.
20455         (mono_domain_has_type_resolve): new function to check whenever the
20456         application has registered a TypeResolve event handler.
20457         
20458         * icall.c reflection.h reflection.c: move the type resolve logic into
20459         mono_reflection_get_type () so it will be invoked when 
20460         Assembly::GetType () is called.
20461
20462         * reflection.c:
20463         (mono_reflection_get_type): renamed to get_type_internal.
20464         (mono_reflection_get_type): fixed type name generation so it works 
20465         for nested types too.
20466         (mono_reflection_get_type): call has_type_resolve () to avoid the 
20467         costly type name generation if there is no resolve event handler.
20468
20469 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20470
20471         * class.c, image.c: load exported types from file references.
20472
20473 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
20474
20475         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
20476           used to cache the managed methods used to create proxies and make 
20477           remote invocation of methods.
20478         * class.h: Added in MonoVTable a flag to indicate that a class needs 
20479           to be remotely created.
20480         * object.c: Modified the method mono_class_vtable(). It now initializes 
20481           the remote flag of the vtable. Modified mono_object_new_specific(), 
20482           so now it checks the remote flag.
20483         * icall.c: Added a couple of internal methods, one for enabling instance 
20484           creation interception for a type, and one for creating objects bypassing
20485           the remote check.
20486
20487 2003-02-18  Martin Baulig  <martin@ximian.com>
20488
20489         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
20490         New interncall to get a method's metadata token.
20491
20492         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
20493         New interncall for the debugger.
20494
20495 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
20496
20497         * class.c (mono_class_setup_vtable): allocate supertype array
20498
20499 2003-02-18  Martin Baulig  <martin@ximian.com>
20500
20501         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
20502
20503 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20504
20505         * reflection.c:
20506         (assembly_name_to_aname): jump over unknown properties (i've found
20507         something like: 'type, assembly, version=xxx, custom=null, public...',
20508         so now will ignore custom=null and still get the rest of the values).
20509
20510 2003-02-17  Dick Porter  <dick@ximian.com>
20511
20512         * threads.c: Have Thread.Start() wait for a semaphore to signal
20513         that the thread has set up all its local data.  This fixes bug
20514         34323, where Abort() raced the new thread's TLS data.
20515
20516         Also removes the handle_store() call from start_wrapper, because
20517         threads are now always created suspended and there is no longer a
20518         race between the parent and child threads to store the info.
20519
20520 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
20521
20522         * image.c: explain the #- heap issue in a message, hopefully
20523         avoiding FAQs on mono-list.
20524
20525 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20526
20527         * icall.c:
20528         (GetEntryAssembly): if the domain has not invoked
20529         AppDomain.ExecuteAssembly yet, return the assembly of the default
20530         AppDomain.
20531
20532 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
20533
20534         * class.c (mono_ldtoken): make it work in dynamic assemblies.
20535
20536 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
20537
20538         * metadata.c, reflection.c: simple speedup to type hash
20539         and equals code.
20540
20541 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
20542
20543         * image.c, image.h, class.c, assembly.c: move module loading
20544         to MonoImage. When loading metadata, consider alignemnet from
20545         the start of metadata, not from the metadata address in memory.
20546
20547 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
20548
20549         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
20550         AssemblyBuilder objects. Factored out custom attribute creation into
20551         a separate function.
20552         (create_custom_attr): new function to create custom attributes.
20553
20554 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
20555
20556         * Makefile.am: Got tired of typing the full pathname to pedump.
20557         Until there is another option, am installing this.
20558
20559 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
20560
20561         * class.c (class_compute_field_layout): always set field->parent 
20562         (mono_ldtoken): use mono_defaults.fieldhandle_class;
20563
20564 2003-02-11  Dick Porter  <dick@ximian.com>
20565
20566         * threads-types.h:
20567         * monitor.c: Rewrote Monitor, making lock much faster and
20568         Pulse/Wait work as specified.  Also uses much fewer handles, and only
20569         creates them as needed.
20570
20571         * exception.c: Added SynchronizationLockException
20572
20573         * threads.c: Deleted old Monitor implementation.  The new one is
20574         in a new file.
20575
20576 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
20577
20578         * class.c: handled TypedReference type code. Set the correct size for
20579         class data. Setup interface_offsets for interface classes, too.
20580
20581 2003-02-09  Martin Baulig  <martin@ximian.com>
20582
20583         * debug-mono-symfile.h: Reflect latest symbol writer changes.
20584
20585 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
20586
20587         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
20588         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
20589         * object.c: fixed mono_object_get_virtual_method () for interfaces.
20590         * verify.c: check for code that runs after the end of the method.
20591
20592 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20593
20594         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
20595         "System.Math::Round2".
20596         * sysmath.h: Added Floor, Round and Round2 definitions.
20597         * sysmath.c: Modified certain functions that were not 100% compliant
20598         with MS.NET (math precision) and added the implementation of Floor,
20599         Round and Round2.
20600
20601 2003-02-07  Martin Baulig  <martin@ximian.com>
20602
20603         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
20604
20605 2003-02-07  Martin Baulig  <martin@ximian.com>
20606
20607         * debug-mono-symfile.c: Reflected latest symwriter changes.
20608         (mono_debug_create_mono_symbol_file): Removed.
20609         (mono_debug_open_mono_symbol_file): Take an argument which
20610         specifies whether to create a dynamic symbol file.
20611
20612 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
20613
20614         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
20615
20616 2003-02-05  Martin Baulig  <martin@ximian.com>
20617
20618         * reflection.c (mono_image_build_metadata): Make this public,
20619         protect it against being called multiple times, don't create
20620         resources and don't build the compressed metadata here.
20621         (mono_image_create_pefile): Do this here.
20622
20623         * icall.c
20624         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
20625
20626 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20627
20628         * socket-io.c: fixed bug #36322.
20629
20630 2003-02-06  Piers Haken <piersh@friskit.com>
20631
20632         * appdomain.[ch]:
20633         * class.h:
20634         * debug-mono-symfile.c:
20635         * icall.c:
20636         * loader.c:
20637         * mono-config.c:
20638         * monosn.c:
20639         * reflection.c:
20640         * socket-io.c: warning cleanups
20641
20642 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
20643
20644         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
20645         function. works like remoting invoke, but does a check for the Proxy first.
20646
20647 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
20648
20649         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
20650
20651 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
20652
20653         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
20654         array of pointers.
20655         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
20656         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
20657
20658         * object.c (mono_store_remote_field_new): used by the new jit
20659         instead of mono_store_remote_field
20660         (mono_load_remote_field_new): used by the new jit
20661         instead of mono_load_remote_field
20662
20663 2003-02-05  Patrik Torstensson
20664
20665         * appdomain.c: changed unload to take the domain id instead
20666         of domain
20667         
20668         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
20669
20670
20671 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20672
20673         * appdomain.c: don't look for assemblies in ApplicationBase if
20674         PrivateBinPathProbe is set.
20675
20676 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20677
20678         * object.c: make the first argument in main_args contain the absolute
20679         path to the assembly. Fixes bug #37511.
20680
20681 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20682
20683         * icall.c: get correct UTC offset for countries not using daylight
20684         time saving. Fixes bug #30030.
20685
20686 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20687
20688         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
20689         and 1 are the family).
20690
20691 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
20692
20693         * icall.c (ves_icall_InternalExecute): removed wrong assertion
20694
20695         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
20696
20697 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
20698
20699         * reflection.c: added support for SignatureHelper tokens, which is
20700         needed by the Calli opcode.
20701
20702         * reflection.h: track changes to SignatureHelper class.
20703
20704         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
20705
20706 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20707
20708         * appdomain.c: fixed loading assemblies from PrivateBinPath.
20709
20710 2003-02-03  Patrik Torstensson
20711         * appdomain.[c|h], domain.c : 
20712          - Added support for getting a domain via domain id
20713          - Support for setting and getting domain from System.AppDomain 
20714            (used in cross appdomain channel)
20715          - Added support for get/set for a MonoAppContext on a thread 
20716            (Context class in System.Runtime.Remoting.Contexts),
20717          - Removed hack in Get/SetData and ExecuteAssembly.
20718         
20719         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
20720         the managed world to get control when a proxy is created.
20721
20722         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
20723         
20724 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
20725
20726         * icall.c
20727         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20728         Populate the codebase field as well.
20729
20730 2003-02-02  Martin Baulig  <martin@ximian.com>
20731
20732         * debug-mono-symfile.c
20733         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
20734         (mono_debug_symfile_add_method): Allow interncalls.
20735
20736 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20737
20738         * icall.c: throw parse exception if strtod fails or the string is empty.
20739
20740 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
20741
20742         * marshal.c: handle object type separately from defined
20743         class types.
20744
20745 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
20746
20747         * marshal.c: handle NATIVE_LPSTR for strings when it's
20748         explicitly specified.
20749
20750 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
20751
20752         * reflection.c, reflection.h, icall.c: setup the reflection
20753         handle cache for ModuleBuilders and AssemblyBuilders.
20754
20755 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
20756
20757         * reflection.c (reflection_methodbuilder_to_mono_method): set
20758         pinvoke flag
20759
20760 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20761
20762         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
20763
20764 2003-01-29  Dick Porter  <dick@ximian.com>
20765
20766         * threads.c: No need for the fake_thread kludge now that Thread
20767         doesn't run a class constructor
20768         
20769 2003-01-29  Dick Porter  <dick@ximian.com>
20770
20771         * threads.c: Use g_direct_hash instead of the rather bogus
20772         g_int_hash
20773
20774 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
20775
20776         * marshal.c (mono_marshal_get_native_wrapper): add check for null
20777         (fix pinvoke12.exe)
20778         (mono_marshal_get_struct_to_ptr): generate valid IL code
20779         (mono_marshal_get_ptr_to_struct): generate valid IL code
20780         (*): correctly set sig->pinvoke, we need to memdup the signature
20781         to do that
20782
20783 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20784
20785         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
20786         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
20787
20788 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20789
20790         * profiler.c: provide more callers information.
20791
20792 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
20793
20794         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
20795
20796         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
20797
20798         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
20799
20800 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20801
20802         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
20803         exception instead of going into an infinite loop on dates which it 
20804         can't yet handle.
20805
20806         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
20807         out-of-range exception if needed.
20808
20809         * class.c (mono_class_setup_vtable): allow a virtual method to provide
20810         an implementation for an interface method and to override an inherited
20811         method at the same time. 
20812         Imagine a scenario when a virtual method is used to override a
20813         virtual abstract method in a parent class, and this same method 
20814         provides an implementation for an method inherited from an interface. 
20815         In this case, the interface resolution code will set im->slot, which 
20816         means that the virtual method override pass will skip this method 
20817         which means a pointer to the abstract method inherited from the parent
20818         will remain in the vtable of this non-abstract class.
20819
20820         * class.c: (mono_class_setup_vtable): continue search for a real 
20821         method if only an abstract method is found.     
20822
20823 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20824
20825         * reflection.c: add size to encoding for ByValStr and ByValArray
20826         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
20827
20828 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20829
20830         * class.c (mono_class_setup_vtable): pass the override info as an
20831         argument.
20832
20833         * class.c (mono_class_setup_vtable): set the slot of overriding methods
20834         correctly.
20835         
20836         * reflection.c (ensure_runtime_vtable); add support for method 
20837         overrides.
20838         
20839 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20840
20841         * reflection.c (resolution_scope_from_image): Hack to work to work with
20842         dynamic assemblies.
20843
20844         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
20845         added a 'force_ref' argument to force this function to allways return 
20846         a TypeRef. This is needed by mono_image_get_memberref_token ().
20847         
20848 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20849
20850         * reflection.c (mono_image_get_type_info): interfaces really don't have
20851         a parent.
20852
20853         * reflection.c (mono_image_basic_init): fill out missing fields of
20854         image structure.
20855
20856         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
20857         dynamic assemblies. This is required so dynamic assemblies show up in
20858         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
20859         Type::GetType() etc. This is consistent with MS behaviour.
20860
20861         * image.c image.h reflection.c: add newly created classes to the name 
20862         cache so mono_class_get () will find them.      
20863
20864 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20865
20866         First part of changes to get IKVM.NET running under mono.
20867         
20868         * appdomain.h, appdomain.c: added new function 
20869         mono_domain_try_type_resolve() which will emit TypeResolve events. 
20870         This function will call AppDomain::DoTypeResolve to do the actual work.
20871
20872         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
20873         moved existing code dealing with dynamic tokens to a new function 
20874         called mono_reflection_lookup_dynamic_token (). This function will 
20875         raise TypeResolve events when appropriate. Since reflection.c is not 
20876         part of libmetadata, a new hook function called 
20877         mono_lookup_dynamic_token() is added to class.c which will call this.
20878
20879         * assembly.h assembly.c: make the invoke_load_hook function public,
20880         so it can be called for dynamic assemblies.
20881
20882         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
20883
20884         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
20885         type isn't found.
20886
20887         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
20888         MonoGHashTable, since it contains pointers to objects which the GC 
20889         needs to track.
20890
20891         * assembly.c (search_loaded): remove unused variable.
20892         
20893 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
20894
20895         * object.c: fixed issue exposed by gcc-generated IL programs
20896         that use RVA data for pointers.
20897
20898 2003-01-25  Martin Baulig  <martin@ximian.com>
20899
20900         * threads.c (start_wrapper): Moved the initialization of
20901         `start_func' above the mono_new_thread_init() call to which we
20902         pass it as argument.
20903
20904 2003-01-24  Martin Baulig  <martin@ximian.com>
20905
20906         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
20907         the MonoThread pointer.
20908
20909 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
20910
20911         * icall.c: Rename `PowImpl' to Pow.
20912
20913 2003-01-23  Dick Porter  <dick@ximian.com>
20914
20915         * threads.c (start_wrapper): Create a Thread object if needed, so
20916         the Main() thread can do the class initialisation in a subthread
20917         that has been set up to allow managed code execution.
20918
20919         Pass the thread ID instead of the MonoThread pointer to the thread
20920         start and attach callbacks.  This change is required, because the
20921         jit thread start callback must be called _before_ the Thread
20922         object can be created.
20923         
20924         (mono_thread_init): Removed much object creation code that is no
20925         longer needed.  No managed code is called from here now.
20926
20927         * object.c (mono_runtime_exec_managed_code): Create a subthread
20928         for Main, and call back to the runtime to use it.
20929         Set the exit code when Main exits.
20930
20931         * gc.c: Make sure domain finalisation happens in a subthread.
20932         Re-enable threaded GC, fixing bug 31333 (again).
20933
20934         * environment.c: System.Environment internall calls (so far just
20935         ExitCode is here, the others are still in icall.c)
20936
20937         * appdomain.c (mono_runtime_cleanup): All threads running managed
20938         code should have finished before mono_runtime_cleanup() is
20939         reached, so no need to clean up threads.
20940
20941 2003-01-22  Martin Baulig  <martin@ximian.com>
20942
20943         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
20944         `gpointer func' arguments.      
20945         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
20946         but added `MonoThread *thread' argument.
20947         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
20948
20949         * threads.c (mono_new_thread_init): Added `gpointer func' argument
20950         and pass it to the mono_thread_start_cb callback.
20951         (mono_install_thread_callbacks): New public function to install a
20952         set of callbacks which are set by the debugger.
20953         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
20954
20955 2003-01-22  Martin Baulig  <martin@ximian.com>
20956
20957         * Makefile.am: Install debug-mono-symfile.h.
20958
20959 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
20960
20961         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
20962
20963 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
20964
20965         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
20966         * class.c (mono_ptr_class_get): correctly set access levels of pointers
20967         (mono_array_class_get): correctly set access levels of arrays
20968
20969 2003-01-20      Patrik Torstensson
20970         * image.h (MonoAssemblyName): changed major, minor, build, revision
20971         from signed to unsigned.
20972
20973 2003-01-20  sean kasun <skasun@azstarnet.com>
20974
20975         * reflection.c (load_cattr_value): Now this handles
20976         MONO_TYPE_SZARRAY.  Fixes bug #35629
20977
20978 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
20979
20980         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
20981         integer value
20982
20983 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20984
20985         * decimal.c: fixed bug #26056.
20986
20987 2003-01-17  Martin Baulig  <martin@ximian.com>
20988
20989         * gc.c: Raise an ExecutionEngineException instead of using g_error().
20990
20991 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20992
20993         * exception.[ch]:
20994         (mono_get_exception_type_initialization): new function.
20995
20996         * object.c: throw a TypeInitializationException when an exception is
20997         thrown invoking the class constructor.
20998
20999 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21000
21001         * reflection.c: fixed attribute reading.
21002
21003 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21004
21005         * icall.c:
21006         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
21007         provided, look for the type in the calling assembly and then in
21008         mscorlib; if the assembly name is provided, only try that one.
21009
21010 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
21011
21012         * object.c: register the vtable before there is a chance it's
21013         queried again recursively.
21014
21015 2003-01-13  Duncan Mak  <duncan@ximian.com>
21016
21017         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
21018         gc-internal.h. 
21019         
21020 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
21021
21022         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
21023
21024 2003-01-11  Martin Baulig  <martin@ximian.com>
21025
21026         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
21027         this to 20 for the release.
21028
21029 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
21030
21031         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
21032
21033         * loader.c (mono_method_get_marshal_info): bug fix
21034
21035         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
21036         structures with explicit layout
21037
21038 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
21039
21040         * profiler.c: made the output more readable (and sorted). 
21041         Added caller information for the allocation profiler.
21042
21043 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
21044
21045         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
21046
21047 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21048
21049         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
21050         to get value types.
21051         
21052 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
21053
21054         * object.c, profiler.h, profiler.c, profiler-private.h:
21055         Added object allocation profiler.
21056
21057 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
21058
21059         * reflection.h, reflection.c: handle global methods.
21060         Compress blob entries.
21061
21062 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
21063
21064         * marshal.c: fix compilation.
21065
21066 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
21067
21068         * loader.c (mono_method_get_marshal_info): impl.
21069
21070         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
21071
21072 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21073
21074         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
21075         for reference types.
21076
21077 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
21078
21079         * loader.c: fixed off by one error in loaded parameter names.
21080
21081 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
21082
21083         * marshal.c (mono_marshal_get_icall_wrapper): like
21084         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
21085         instead of a MonoMethod.
21086
21087 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21088
21089         * decimal.c: fixed bug #36537.
21090
21091 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
21092
21093         * marshal.c: throw a missing method exception if a
21094         P/Invoke method is not found.
21095
21096 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
21097
21098         * icall.c: allow a null this for constructors.
21099
21100 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
21101
21102         * icall.c: raise the proper exceptions if the arguments to the
21103         internal Invoke are incorrect.
21104
21105 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
21106
21107         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
21108
21109 2003-01-03  Martin Baulig  <martin@ximian.com>
21110
21111         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
21112
21113 2002-12-31  Martin Baulig  <martin@ximian.com>
21114
21115         * debug-mono-symfile.c: Completely rewrote the type section.
21116         Instead of using individual malloc()ed fields, we use one big
21117         continuous memory area and offsets into this area.
21118         See the comments in the source code for details.
21119
21120 2002-12-30  Martin Baulig  <martin@ximian.com>
21121
21122         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
21123
21124 2002-12-30  Martin Baulig  <martin@ximian.com>
21125
21126         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
21127         line number table in this data blob instead of using an external
21128         pointer.
21129
21130 2002-12-28  Martin Baulig  <martin@ximian.com>
21131
21132         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
21133
21134 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
21135
21136         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
21137         as a boxed return type.
21138
21139 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
21140
21141         * appdomain.c
21142         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
21143         g_build_filename to properly get separators on the filename created.
21144
21145         * object.h: Small change, introduce MonoMarshalByRefObject to
21146         track the layout of that structure in the C# universe as we make
21147         changes there.
21148
21149 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
21150
21151         * object.c: removed assert to allow static fields on interfaces.
21152         * loader.c: a TypeSpec may be used for any type, not just arrays.
21153
21154 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21155
21156         * class.c, class.h: added mono_class_array_element_size ().
21157         Ignore static methods in interfaces.
21158
21159 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21160
21161         * threads.c: fixed the build under cygwin.
21162
21163 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21164
21165         * reflection.c: handle nullref constants. Allocate keys for
21166         reflection handles with the GC.
21167
21168 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21169
21170         * threads.c, threads.h: added mono_thread_get_abort_signal()
21171         to get a suitable signal for thread abort.
21172
21173 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21174
21175         * metadata.c: fix handling of ExportedType table.
21176
21177 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21178
21179         * icall.c: added WriteWindowsDebugString internal call.
21180
21181 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21182
21183         * reflection.h: added fields to match C# implementation.
21184
21185 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21186
21187         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
21188
21189 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
21190
21191         * gc.h, gc-internal.h: Rename header for GC internal calls to
21192         gc-internal.h from gc.h as to not clash with Boehm GC having its
21193         header installed as <gc.h> in outside include paths.
21194         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
21195         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
21196
21197 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21198
21199         * icall.c: assign minor, build and revision in FillName.
21200
21201 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
21202
21203         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
21204         Added support for running code generated by Reflection.Emit.
21205
21206 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21207
21208         * appdomain.c: check for NULL argument in LoadFrom.
21209
21210 2002-12-10  Dick Porter  <dick@ximian.com>
21211
21212         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
21213
21214 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21215
21216         * appdomain.c: fix buglet when building exe file name.  Handle full
21217         assembly name (needed after latest changes to AssemblyName).
21218         * image.c:
21219         (mono_image_close): free some hashtables.
21220
21221 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
21222
21223         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
21224         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
21225         on some systems (redhat 7.3) 
21226
21227 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
21228
21229         * threads.c: delete the critical section of a sync block,
21230         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
21231
21232 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
21233
21234         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
21235
21236 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21237
21238         * appdomain.[ch]: handle the assembly preload event to try loading the
21239         assemblies using the paths we have in the current domain.
21240
21241         * assembly.[ch]: created an assembly preload hook that is called to try
21242         loading the assembly by other means that the ones provided here.
21243
21244         * domain.c: initialize the domain search path.
21245
21246         From now on, assemblies (TODO: except corlib and System) are loaded
21247         according to these rules when using mono_assembly_load ():
21248
21249                 1. It tries to load the assembly from the ApplicationBase
21250                 of the current domain appending .dll and .exe (TODO: have to
21251                 try loading from name/name.dll and name/name.exe).
21252
21253                 2. It tries the search path specified in PrivateBinPath for the
21254                 current domain (if any).
21255
21256                 3. Previous behavior.
21257
21258 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
21259
21260         * icall.c: implemented GetInterfaceMap() related icall.
21261         * domain.c, loader.h: load MethodInfo in mono_defaults.
21262
21263 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21264
21265         * gc.c: disable the finalizer thread for now, untill all the issues
21266         with it are resolved.
21267
21268 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21269
21270         * string-icalls.c: handle embedded nulls in string ctor when the
21271         length is specified.
21272
21273 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21274
21275         * class.c: look for explicit interface implementation in parent
21276         classes, too.
21277
21278 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
21279
21280         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
21281
21282 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21283
21284         * gc.c: protect handles with a critical section.
21285
21286 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21287
21288         * icall.c:
21289         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
21290         parameters. If no assembly specified, try getting the type from all
21291         the assemblies in the current domain, else, load the assembly and get
21292         the type from it.
21293
21294 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21295
21296         * marshal.c: applied patch from Aleksey Demakov that fixes
21297         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
21298
21299 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21300
21301         * icall.c: fixed get_location.
21302
21303 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
21304
21305         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
21306         declarations to make it work with older gcc. 
21307
21308         * loader.c (mono_get_method): set signature->pinvoke for native calls
21309
21310 2002-11-20  Dick Porter  <dick@ximian.com>
21311
21312         * threads.c (mono_thread_init): Set the main thread's handle
21313
21314 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21315
21316         * gc.c: allow compilation without GC support. Changed to match the
21317         mono coding style.
21318
21319 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21320
21321         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
21322
21323 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
21324
21325         * reflection.c: set a public key token on the core assemblies.
21326
21327 2002-11-18  Dick Porter  <dick@ximian.com>
21328
21329         * threads.c: Split out some thread initialisation so that other
21330         files can set the start callback function.
21331
21332         * gc.c: Run finalisers in a separate thread, to avoid stack
21333         overflow.  Fixes bug 31333.
21334
21335         * appdomain.c: Set up GC finalisation thread.
21336
21337         * reflection.c: 
21338         * object.c: 
21339         * domain.c: Use gc.h macros for GC_malloc
21340         
21341 2002-11-15  Dick Porter  <dick@ximian.com>
21342
21343         * threadpool.c: 
21344         * threads.c:
21345         * appdomain.c: Removed mono_runtime_init_with_attach(),
21346         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
21347         merging the extra parameter with the existing function.  Removed
21348         unneeded code in mono_thread_attach().
21349
21350 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
21351
21352         * image.c (mono_image_loaded_by_guid): a method to get loaded
21353         images by guid. 
21354         (load_metadata_ptrs): we store the guid as string.
21355
21356 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
21357
21358         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
21359
21360         * metadata.c (mono_guid_to_string): imported method form Zoltan
21361         Varga (slightly modified)
21362
21363         * assembly.c (mono_assembly_open): load precompiled code
21364
21365         * loader.h (MonoMethod): we store the method token for use in the
21366         aot compiler. 
21367
21368 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21369
21370         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
21371         the hook function called when an assembly is loaded.
21372         
21373         * domain.c: Modified file.
21374         (mono_domain_assembly_load): removed hash table insertion of assemblies.
21375
21376         Fixes bug #33196.
21377
21378 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
21379
21380         * reflection.c: Map PEFileKind to the value expected by the WinNT
21381         image loader. 
21382
21383 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21384
21385         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
21386         Read until the buffer is filled completely.
21387
21388 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21389
21390         * icall.c: implemented MonoType.InternalGetEvent ().
21391
21392 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21393
21394         * appdomain.c: implemented InitAppDomainSetup. Delayed
21395         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
21396         the entry_assembly.
21397
21398         * assembly.c: base_dir is now an absolute path ending with
21399         G_DIR_SEPARATOR.
21400
21401         * icall.c: modified get_location according to the above changes.
21402
21403         * object.c: init AppDomain.SetupInformation for the default domain after
21404         we have the entry assembly.
21405
21406         * domain.c: when unloading a domain, setup = NULL.
21407
21408 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
21409
21410         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
21411
21412 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
21413
21414         * object.h, object.c: introduced mono_object_get_virtual_method ()
21415         to lookup the method invoked on an object when a callvirt is done on
21416         a method.
21417         * icall.c: make MethodInfo::Invoke() always do a virtual call.
21418
21419 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21420
21421         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
21422         current domain when loaded an assembly and failed to load it.
21423
21424         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
21425
21426 2002-10-31  Dick Porter  <dick@ximian.com>
21427
21428         * icall.c: 
21429         * file-io.h: 
21430         * file-io.c: Return the error status in a parameter, as the
21431         GetLastError() value has long since been blown away if we try and
21432         look it up in a subsequent internal call invocation.  Delete the
21433         GetLastError() internal call, because it's useless.
21434
21435 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
21436
21437         * class.[ch]: added cast_class to fix bug 29517
21438
21439 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
21440
21441         * marshal.c: create valid IL code in the filter clause:
21442         the new JIT is less forgiving:-)
21443
21444 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21445
21446         * icall.c: removed get_property internal call.
21447
21448 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
21449
21450         * appdomain.h domain.c: Added an ID to appdomains.
21451         
21452         * threads.c threads.h icall.c: Implement icall
21453         Thread:GetDomainID(), and remove unused icall 
21454         CurrentThreadDomain_internal.
21455
21456 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21457
21458         * icall.c: Don't recurse through the base types in GetConstructor.
21459         Fixes bug #32063. 
21460
21461 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
21462
21463         * mempool.h, mempool.c: added mono_mempool_empty() and
21464         mono_mempool_stats().
21465
21466 2002-10-23  Dick Porter  <dick@ximian.com>
21467
21468         * file-io.c: 
21469         * file-io.h: 
21470         * icall.c: Added MonoIO.GetFileType internal call
21471
21472 2002-10-17  Dick Porter  <dick@ximian.com>
21473
21474         * appdomain.c (mono_runtime_cleanup): Don't signal the async
21475         delegate semaphore before waiting for all threads to finish,
21476         because new threads can also call async delegates.  Fixes bug
21477         32004.
21478
21479         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
21480         of 3 seconds, in case another async job is queued.  (This part is
21481         needed because the bug fix reintroduced the 3s exit lag.)  This
21482         makes the mono_runtime_shutdown flag superfluous.
21483
21484 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21485
21486         * reflection.c: include ehader size in method section headers.
21487         Really check for suplicated modules entries.
21488
21489 2002-10-17  Martin Baulig  <martin@gnome.org>
21490
21491         * debug-mono-symfile.c: Added back support for locals.
21492
21493 2002-10-14  Martin Baulig  <martin@gnome.org>
21494
21495         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
21496         MONO_TYPE_VOID.
21497
21498 2002-10-14  Martin Baulig  <martin@gnome.org>
21499
21500         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
21501         mono_class_get() instead of looking in the class cache. 
21502
21503 2002-10-13  Martin Baulig  <martin@gnome.org>
21504
21505         * debug-mono-symfile.c: Set version number to 28, include the
21506         signature in method names.
21507
21508 2002-10-13  Martin Baulig  <martin@gnome.org>
21509
21510         * debug-mono-symfile.h: Set version number to 27.
21511
21512 2002-10-11  Martin Baulig  <martin@gnome.org>
21513
21514         * gc.c: Don't register/unregister NULL pointers as disappearing links.
21515
21516 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21517
21518         * metadata.c, metadata.h: added helper function to allocate signatures.
21519
21520 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21521
21522         * icall.c: added internal call to get the location of machine.config.
21523
21524 2002-10-08  Martin Baulig  <martin@gnome.org>
21525
21526         * debug-mono-symfile.c: Ignore classes with a pending init for the
21527         moment.
21528
21529 2002-10-03  Dick Porter  <dick@ximian.com>
21530
21531         * threads.c: Freebsd pthread_t is a pointer
21532
21533 2002-10-03  Dick Porter  <dick@ximian.com>
21534
21535         * socket-io.c: Implemented GetHostName_internal
21536
21537 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21538
21539         * mono-config.c:
21540         (mono_config_parse_file): don't leak the text.
21541
21542 2002-10-02  Martin Baulig  <martin@gnome.org>
21543
21544         * debug-mono-symfile.c: Added support for methods.
21545
21546 2002-10-01  Martin Baulig  <martin@gnome.org>
21547
21548         * debug-mono-symfile.c: Don't emit methods and line numbers for
21549         the dynamic symbol file, just write the type table.  We can easily
21550         have an external helper program which creates a symbol file for an
21551         IL file.        
21552
21553 2002-10-01  Dick Porter  <dick@ximian.com>
21554
21555         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
21556         Only add the handle to the cleanup array when we're about to
21557         launch the thread.  Bug 31425 deadlocked when the test was run on
21558         mono under w32.
21559
21560 2002-10-01  Martin Baulig  <martin@gnome.org>
21561
21562         * debug-mono-symfile.c: Added support for properties.
21563
21564 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21565
21566         * reflection.c: unaligned store fix from Mark Crichton
21567         <crichton@gimp.org>.
21568
21569 2002-09-27  Martin Baulig  <martin@gnome.org>
21570
21571         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
21572         New interncall.
21573
21574 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21575
21576         * assembly.h, assembly.c: use a sane API to hook into the assembly
21577         loading process instead of a useless special-purpouse hack
21578         (ngen needs a hook, too, for example).
21579
21580 2002-09-27  Dick Porter  <dick@ximian.com>
21581
21582         * threads.c (mono_thread_init): Call GetCurrentProcess() so
21583         io-layer can set up some process handle info.  Not needed on w32,
21584         but doesn't hurt either.
21585
21586         * process.c: Pass the program name in the second parameter to
21587         CreateProcess, so the path is searched.  Include the working
21588         directory. Implemented process name, process enumeration, and some
21589         process detail internal calls.
21590         
21591         * icall.c: Added internal calls for process lookup, and some
21592         process details
21593
21594 2002-09-26  Martin Baulig  <martin@gnome.org>
21595
21596         * assembly.c (mono_install_open_assembly_hook): New global
21597         function to install a function to be invoked each time a new
21598         assembly is loaded.
21599         (mono_assembly_open): Run this callback function if set.
21600
21601         * debug-mono-symfile.c: Put back line numbers for the dynamic
21602         symbol file and also record the .il file as source file.  This
21603         allows us to install the temporary symbol file as `file.dbg' just
21604         like a compiler-generated one.
21605
21606 2002-09-26  Nick Zigarovich <nick@chemlab.org>
21607
21608         * Corrected typo in gc.c (BOHEM vs BOEHM).
21609
21610 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21611
21612         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
21613         GetProperties. Also avoid calling g_slist_length in GetProperties and
21614         GetMethods.
21615
21616 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21617
21618         * reflection.c: avoid unaligned stores (bug spotted by
21619         Mark Crichton  <crichton@gimp.org>).
21620
21621 2002-09-25  Martin Baulig  <martin@gnome.org>
21622
21623         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
21624         instead of guint64 for addresses and added prologue/epilogue info.
21625
21626 2002-09-25  Martin Baulig  <martin@gnome.org>
21627
21628         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
21629         store line number info.  For the dynamic symbol file, we only need
21630         to provide the JIT generated dynamic line number info for the dynamic
21631         symbol file.
21632
21633 2002-09-25  Martin Baulig  <martin@gnome.org>
21634
21635         * debug-mono-symfile.h: Incremented version number.
21636
21637 2002-09-24  Martin Baulig  <martin@gnome.org>
21638
21639         * class.c (mono_debugger_class_init_func): New global function
21640         pointer variable.
21641         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
21642         call it.
21643
21644         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
21645         function.  This is called via the mono_debugger_class_init_func
21646         hook to add all types to the dynamic type table.
21647         (ves_icall_MonoDebugger_GetType): New interncall to get a class
21648         from its metadata token.
21649
21650         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
21651         New interncall for the debugger.
21652
21653 2002-09-24  Nick Drochak <ndrochak@gol.com>
21654
21655         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
21656         before using it in case it is null.
21657         
21658 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21659
21660         * metadata.c: allow custom modifiers in local var signatures
21661         (bug spotted by Zoltan Varga).
21662
21663 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21664
21665         * class.c: deal with the <Module> class that may have a NULL vtable.
21666         Eliminate warnings.
21667
21668 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21669
21670         * image.c, image.h: more strong name helpers.
21671         * monosn.c: more work: convert pem keys to cryptoapi format.
21672
21673 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21674
21675         * string-icalls.c: speedup IndexOf.
21676
21677 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21678
21679         * icall.c: updates from Zoltan.2.Varga@nokia.com.
21680
21681 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21682
21683         * icall.c: cleanup: use mono_object_domain ().
21684
21685 2002-09-23  Martin Baulig  <martin@gnome.org>
21686
21687         * debug-mono-symfile.c: Improved type support.
21688
21689 2002-09-22  Martin Baulig  <martin@gnome.org>
21690
21691         * debug-mono-symfile.c: Added support for reference types and strings.
21692
21693 2002-09-22  Martin Baulig  <martin@gnome.org>
21694
21695         * debug-mono-symfile.c: Started to work on the type table.
21696
21697 2002-09-21  Martin Baulig  <martin@gnome.org>
21698
21699         * debug-mono-symfile.c: Largely reworked the symbol table format.
21700         The symbol table is now incrementally updated each time a new
21701         method is added.  We're now also using our own magic and version
21702         so that you don't need to recompile all your classes if the
21703         dynamic table changes.
21704         (mono_debug_update_mono_symbol_file): Removed.
21705         (mono_debug_symfile_add_method): New function to add a method.
21706
21707 2002-09-21  Martin Baulig  <martin@gnome.org>
21708
21709         * icall.c
21710         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
21711         New interncall.
21712
21713         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
21714         New interncall to get a method from its metadata token.
21715
21716 2002-09-21  Martin Baulig  <martin@gnome.org>
21717
21718         * debug-mono-symfile.c: Create type table.
21719
21720 2002-09-20  Martin Baulig  <martin@gnome.org>
21721
21722         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
21723
21724 2002-09-20  Martin Baulig  <martin@gnome.org>
21725
21726         * debug-mono-symfile.c: Provide information about params and locals.
21727
21728 2002-09-20  Martin Baulig  <martin@gnome.org>
21729
21730         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
21731         New interncall.
21732
21733         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
21734         interncall to get a method from its metadata token.
21735
21736 2002-09-20  Martin Baulig  <martin@gnome.org>
21737
21738         * debug-mono-symfile.c: Added a few checks for method->header
21739         being non-NULL.  This should never happen, but for the moment
21740         let's use a g_warning() rather than a g_assert().
21741
21742 2002-09-19  Mark Crichton  <crichton@gimp.org>
21743
21744         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
21745         even if support for it isn't present.  Added an #ifdef to fix this.
21746
21747         * socket-io.c: Added checks back for Solaris support.
21748
21749 2002-09-19  Martin Baulig  <martin@gnome.org>
21750
21751         * debug-mono-symfile.c (read_string, write_string): Reflect latest
21752         changes in the symbol file format.
21753
21754 2002-09-18  Martin Baulig  <martin@gnome.org>
21755
21756         * debug-mono-symfile.c: Set version number to 21.
21757
21758 2002-09-18  Dick Porter  <dick@ximian.com>
21759
21760         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
21761         on netbsd.  Fixes bug 30051.
21762
21763 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21764
21765         * reflection.c:
21766         (set_version_from_string): little fix.
21767
21768 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21769
21770         * monosn.c, Makefile.am: added strong name utility.
21771         * reflection.h, reflection.c: implemented delayed signing,
21772         locale, version and hash id assembly attributes.
21773
21774 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21775
21776         * loader.c, metadata.c: load param attributes in signatures.
21777
21778 2002-09-16  Martin Baulig  <martin@gnome.org>
21779
21780         * debug-mono-symfile.c: Added string table with all method names.
21781
21782 2002-09-14  Martin Baulig  <martin@gnome.org>
21783
21784         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
21785         fast method lookup.
21786
21787 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21788
21789         * reflection.c: record the public key token of referenced assemblies.
21790
21791 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21792
21793         * image.c, image.h: added functions to get the strong name and the
21794         public key of an assembly.
21795         * pedump.c: use them.
21796
21797 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
21798
21799         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
21800
21801 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
21802
21803         * marshal.c (mono_marshal_get_managed_wrapper): Added
21804         MONO_TYPE_BOOLEAN 
21805
21806 2002-09-11  Martin Baulig  <martin@gnome.org>
21807
21808         * gc.c: Call GC_unregister_disappearing_link() on all links when
21809         finalizing them, this is necessary to aviod a crash in boehm's
21810         finalize handler.
21811
21812 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21813
21814         * gc.c: handle GetTarget for finalized objects spotted and fixed by
21815         nick@chemlab.org.
21816
21817 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
21818
21819         * icall.c: implemented MonoType::Module.
21820         * reflection.c, reflection.h: mono_module_get_object () from
21821         Tomi Pakarinen <tomi.pakarinen@welho.com>.
21822
21823 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21824
21825         * icall.c: ignore overridden methods in GetMethods ().
21826         Fix for FieldInfo::SetValue().
21827         * object.c: handle float/double in runtime invoke.
21828
21829 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21830
21831         * object.c: allow a constructor to be called again on an object.
21832
21833 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21834
21835         * class.h, class.c: move field layout code to it's own function and
21836         export it. Get an interface id earlier. Move fields in MonoClass
21837         so they are more cache friendly and align the bitfields.
21838         * loader.c: temporary handle get_param_names() for a runtime method.
21839         * reflection.c, reflection.h: more code to handle runtime creation of
21840         types.
21841
21842 2002-09-09  Martin Baulig  <martin@gnome.org>
21843
21844         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
21845         signature with the pinvoke field being set for the actual call.
21846
21847 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21848
21849         * icall.c: removed some unused icalls. Start of map of glib charsets
21850         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
21851
21852 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21853
21854         * debug-helpers.c: break infinite loop (found and fixed by
21855         Holger Arnold <harnold@gmx.de>).
21856
21857 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21858
21859         * icall.c: target may be null in create_delegate.
21860
21861 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21862
21863         * marshal.c: handle a boolean return type.
21864
21865 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21866
21867         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
21868
21869 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21870
21871         * gc.c: fix weakreferences.
21872
21873 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
21874
21875         * icall.c: added icall to get default codepage.
21876
21877 2002-09-03  Dick Porter  <dick@ximian.com>
21878
21879         * threads.h: 
21880         * threads.c: Use MonoThread instead of MonoObject where
21881         apropriate.
21882
21883         Store running thread objects in a hash table, so that we have all
21884         the info to hand when waiting for them to finish
21885         (means we don't need OpenThread() any more, so mingw builds should
21886         be fully functional again.)
21887
21888         * verify.c:
21889         * object.h: Added thread ID to MonoThread
21890
21891 2002-09-03  Martin Baulig  <martin@gnome.org>
21892
21893         * icall.c (System.Reflection.Assembly::get_location): New interncall.
21894
21895 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21896
21897         * icall.c: fixed leak in get_temp_path. Thanks lupus.
21898
21899 2002-09-03  Martin Baulig  <martin@gnome.org>
21900
21901         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
21902         argument to store the end address of the disassembled instruction.
21903
21904         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
21905         here from debug-symfile.h.
21906         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
21907         JIT into this struct.
21908         (MonoSymbolFile): Added `char *image_file' field.
21909         (MonoDebugGetMethodFunc): Removed.
21910         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
21911         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
21912         (mono_debug_find_method): New method.
21913
21914         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
21915         create a full symbol file.
21916         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
21917         and static symbol files.
21918         (mono_debug_find_method): The symbol file keeps an internal method hash,
21919         call this to get a MonoDebugMethodInfo from a MonoMethod.
21920
21921         * debug-symfile.[ch]: Removed.
21922
21923 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
21924
21925         * image.c (do_mono_image_open): Remove linker version check.
21926
21927 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
21928
21929         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
21930         wrappers for instance methods.
21931         
21932 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21933
21934         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
21935
21936 2002-08-28  Dick Porter  <dick@ximian.com>
21937
21938         * Makefile.am: Export HOST_CC for w32 builds
21939
21940 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21941
21942         * file-io.c process.c: MonoString are null terminated, no
21943         need for mono_string_to_utf16() anymore.
21944
21945 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21946
21947         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
21948
21949 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
21950
21951         * icall.c, reflection.h: speedup System.MonoType.
21952
21953 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21954
21955         * reflection.c: allow null as the value of a string argument in
21956         custom attributes constructors.
21957
21958 2002-08-27  Martin Baulig  <martin@gnome.org>
21959
21960         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
21961         `trampoline_address' field.
21962
21963 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
21964
21965         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
21966         check (fixes bug #29486) 
21967
21968 2002-08-27  Martin Baulig  <martin@gnome.org>
21969
21970         * debug-mono-symfile.c: Changed the file format in a way that allows us
21971         open it read-only and to use a specially malloced area for all the
21972         dynamic data.  We can now also generate a symbol file on-the-fly if we're
21973         debugging IL code and there is no MCS generated symbol file for it.
21974
21975 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21976
21977         * object.c: added a define for a good string and array
21978         creation speedup (not enabled by default because we need to deal with
21979         the synch stuff).
21980
21981 2002-08-26  Martin Baulig  <martin@gnome.org>
21982
21983         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
21984         function to create a dynamic symbol file.  This is used by the
21985         debugger to create a symbol file for IL code on-the-fly.
21986
21987 2002-08-26  Martin Baulig  <martin@gnome.org>
21988
21989         * loader.c (mono_lookup_pinvoke_call): Include the error message
21990         from g_module_error() in the error message.
21991
21992 2002-08-24  Martin Baulig  <martin@gnome.org>
21993
21994         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
21995         function to update the symbol file.  The symbol file is mmap()ed
21996         writable, but private.  This allows us to install the symbol file
21997         together with the assembly.
21998
21999 2002-08-24  Martin Baulig  <martin@gnome.org>
22000
22001         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
22002         but they can read the new symbol file format which mcs is now creating.
22003
22004         * debug-symfile.c (mono_debug_find_source_location): Moved to
22005         debug-mono-symfile.c; this is now operating on the new symbol file.
22006
22007 2002-08-23  Martin Baulig  <martin@gnome.org>
22008
22009         * debug-helpers.c (mono_method_desc_from_method): New function to get
22010         a MonoMethodDesc from a MonoMethod.
22011
22012 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22013
22014         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
22015         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
22016
22017 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22018
22019         * string-icalls.[ch]: make helper methods static.
22020
22021 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22022
22023         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
22024         types to it and to SetValueInternal.
22025
22026         * object.c: Moved handle_enum label to its proper place. This was the
22027         f... bug! ;-)
22028
22029         This time i compiled mcs and gtk-sharp and they both work.
22030
22031 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22032
22033         * icall.c: reverted partially my previous patch until 
22034         object.c:set_value handles enums correcly.
22035
22036 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22037
22038         * icall.c:
22039         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
22040         (ves_icall_System_Environment_get_MachineName): removed warning when
22041         compiling under cygwin.
22042
22043 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22044
22045         * object.c: fixed field_get_value() for reference types.
22046
22047 2002-08-22  Dick Porter  <dick@ximian.com>
22048
22049         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
22050         Don't free a buffer while it's still needed.  Patch from Jonathan
22051         Liger <Jonathan.liger@wanadoo.fr>
22052
22053 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
22054
22055         * icall.c (ves_icall_System_Environment_get_Platform): Add new
22056         internal call.
22057
22058 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
22059
22060         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
22061         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
22062
22063         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
22064         we call unmanaged code which throws exceptions.
22065
22066 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22067
22068         * appdomain.h: added per-domain entry_assembly.
22069         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
22070         arguments.
22071         * icall.c: Assembly::GetEntryAssembly icall.
22072         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
22073         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
22074
22075 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22076
22077         * appdomain.h, gc.c: added mono_domain_finalize ().
22078
22079 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22080
22081         * object.c:
22082         (mono_print_unhandled_exception): changed g_warning by g_printerr
22083         because g_log has a 1024 characters limit (yeah, i got a big stack
22084         trace). Don't print exception name, that should be in ToString 
22085         returned string.
22086
22087 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22088
22089         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
22090         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
22091
22092 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22093
22094         * object.c:
22095         (mono_print_unhandled_exception): after previous commit, i realized
22096         that MS calls ToString on the exception. I changed this function to
22097         do that. This way we get stack_trace for free.
22098
22099 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22100
22101         * object.c:
22102         (mono_print_unhandled_exception): invoke Message property instead of
22103         getting 'message' field from Exception. Don't allocate memory for
22104         'trace' and 'message' if not needed.
22105
22106 2002-08-18  Dick Porter  <dick@ximian.com>
22107
22108         * unicode.c: Fix asserts to match Encoder.cs checks
22109
22110 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22111
22112         * marshal.c: fix unaligned store issue and a few wrong
22113         opcode argument types.
22114
22115 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22116
22117         * icall.c: added GetUninitializedObjectInternal internal call.
22118
22119 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
22120
22121         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
22122         to the right domain.
22123
22124 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
22125
22126         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
22127
22128         * class.c (class_compute_field_layout): set blittable to false for Strings
22129
22130         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
22131
22132 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22133
22134         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
22135         first chunk of code to create types at runtime. Code to
22136         handle ReflectedType/DeclaringType. Make reflection handles
22137         domain specific.
22138
22139 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
22140
22141         * class.c: set correct name in arrays.
22142
22143 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
22144
22145         * appdomain.c (mono_domain_transfer_object): make it work with
22146         valuetypes. bug fixes.
22147
22148 2002-08-12  Dick Porter  <dick@ximian.com>
22149
22150         * object.h: Rename some parameters to avoid c++ keywords (Patch
22151         from Joseph Wenninger <kde@jowenn.at>)
22152
22153 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
22154
22155         * icall.c: added icall to implement Assembly.GetFile*.
22156
22157 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
22158
22159         * reflection.h, reflection.c: code to embed managed resources.
22160
22161 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22162
22163         * class.c: move all the type size stuff into
22164         class_compute_field_layout().
22165
22166 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22167
22168         * class.c: ensure enums have always the correct instance size.
22169         * unicode.c: remove wrong assert.
22170
22171 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22172
22173         * assembly.c: fix mem corruption issue.
22174         * image.h, image.c: added mono_image_get_resource () to access
22175         managed resources.
22176         * icall.c: implemented Assembly.EntryPoint property and some
22177         Managed Resources related internalcalls.
22178
22179
22180 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22181
22182         * image.c, image.h: impemented mono_image_get_entry_point ().
22183         * appdomain.c: use mono_image_get_entry_point.
22184
22185 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22186
22187         * reflection.c: support the object type argument when loading
22188         custom attributes.
22189
22190 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
22191
22192         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
22193         String as return type.
22194
22195 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
22196
22197         * reflection.c: fix encoding of named args for custom attrs to match
22198         the ms implementation. Read them back when instantiating custom
22199         attributes.
22200
22201 2002-08-02  Radek Doulik  <rodo@ximian.com>
22202
22203         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
22204         by Dietmar as quick fix
22205         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
22206         16 as stack size, used on more places as quick fix before Dietmar
22207         will fix it properly
22208
22209 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
22210
22211         * object.h, object.c: added accessors for fields and properties.
22212
22213 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22214
22215         * class.c, class.h: made mono_class_get_field_from_name ()
22216         loop on parent types.
22217         Added mono_class_get_property_from_name ().
22218
22219 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22220
22221         * class.c, class.h: move the code to setup the type vtable in its own
22222         function so that it can be reused also for types created at runtime.
22223         Eliminate the "class" identifier from the header file.
22224         * reflection.c: setup the vtable for enums so that we can create
22225         objects for use in SetConstant ().
22226
22227 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
22228
22229         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
22230         instead of the delegate itself as this pointer (bug #28383)
22231
22232 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
22233
22234         * marshal.c (mono_marshal_get_managed_wrapper): added return type
22235         conversions.
22236
22237 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22238
22239         * loader.c: don't set the pinvoke bit on icalls.
22240
22241 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
22242
22243         * debug-helpers.c (mono_method_full_name): only print a number to
22244         indicate wrapper type (so that the output is more readable in traces).
22245
22246 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
22247
22248         * class.c (mono_class_init): include method override patch from Paolo
22249
22250 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
22251
22252         * icall.c: fixed GetTypeCode().
22253
22254 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
22255
22256         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
22257         use real delegate invoke function to make it work with multicast
22258         delegates (fix bug# 28291).
22259
22260 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22261
22262         * object.c: load constant strings.
22263
22264 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22265
22266         * reflection.c: no magic numbers.
22267         * tabledefs.h: security action enum.
22268
22269 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22270
22271         * assembly.c: fix possible memory corruption.
22272
22273 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22274
22275         * reflection.h, reflection.c: added support for linking resources.
22276         * verify.c: check we have an updated corlib.
22277
22278 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
22279
22280         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
22281         string arrays.
22282         (mono_marshal_string_array): null terminate unmanaged string arrays.
22283         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
22284
22285 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22286
22287         * icall.c: Type.GetType () can now return also types from the
22288         calling assembly.
22289
22290 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22291
22292         * loader.h, loader.c: stack walking support.
22293         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
22294         GetCallingAssembly.
22295
22296 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
22297
22298         * marshal.c: added optimisations for blittable types 
22299
22300         * class.c (mono_array_class_get): do not set blittable attribute on arrays
22301         (mono_class_setup_mono_type): set blittable attribute for single
22302         and double.
22303
22304         * marshal.c (mono_string_utf8_to_builder): impl.
22305         (mono_string_builder_to_utf8): impl.
22306         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
22307
22308 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
22309
22310         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
22311         (mono_marshal_get_managed_wrapper): impl. byref types
22312
22313 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22314
22315         * icall.c:
22316         (search_method): don't display debug message. 
22317
22318 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
22319
22320         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
22321
22322 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22323
22324         * appdomain.c: set the missing filename when throwing exception.
22325
22326 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
22327
22328         * metadata.c (mono_type_size): code cleanup
22329         (mono_type_stack_size): removed some test code
22330
22331 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
22332
22333         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
22334         mono_get_exception_file_not_found now.
22335
22336         * exception.c (mono_exception_from_name_two_strings): New version
22337         that will call a constructor with two string arguments. 
22338         (mono_get_exception_file_not_found): New helper routine, used to
22339         report file-not-found errors.
22340
22341 2002-07-20  Dick Porter  <dick@ximian.com>
22342
22343         * process.h:
22344         * process.c: Pass file handles to CreateProcess
22345         
22346         * icall.c:
22347         * file-io.h:
22348         * file-io.c: Implemented CreatePipe
22349
22350 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
22351
22352         * metadata.c (mono_get_param_info): set alignment for value types
22353
22354 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22355
22356         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
22357         Constify mono_domain_assembly_open().
22358         * loader.c: handle null namespace in icalls.
22359
22360 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
22361
22362         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
22363         (emit_str_to_ptr_conv): marshal object as structs
22364
22365         * metadata.c (mono_type_to_unmanaged): marshal object as structs
22366
22367         * marshal.c (mono_marshal_get_runtime_invoke): support value types
22368
22369 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
22370
22371         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
22372         (mono_marshal_get_native_wrapper): we an now return value types
22373
22374 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22375
22376         * verify.c: more checks implemented.
22377
22378 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
22379
22380         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
22381         (fix bug #27695)
22382         (mono_marshal_get_native_wrapper): allow byref arguments
22383         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
22384         impl. PtrToStringXXX methods
22385         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
22386         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
22387         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
22388         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
22389         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
22390
22391 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22392
22393         * reflection.c: fix buglet in parsing an assembly name.
22394
22395 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
22396
22397         * marshal.c (emit_ptr_to_str_conv): first impl.
22398
22399 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22400
22401         * object.c, class.h: cache the vtable in the class as suggested by
22402         vargaz@freemail.hu (Zoltan Varga).
22403
22404 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22405
22406         * class.h, loader.c: added mono_field_from_token().
22407         * verify.c: first cut of type checking code.
22408
22409 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
22410
22411         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
22412
22413 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
22414
22415         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
22416         (fix bug #27782)
22417         (mono_marshal_get_remoting_invoke): impl.
22418         (mono_delegate_begin_invoke): impl.
22419         (mono_mb_emit_save_args): impl.
22420         (mono_delegate_end_invoke): impl.
22421         (mono_marshal_get_delegate_begin_invoke):
22422         (mono_marshal_get_delegate_end_invoke):
22423         (mono_marshal_get_delegate_invoke): generate a special name for
22424         those methods (including the signature) and associate them whith
22425         the delegate class. 
22426
22427 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
22428
22429         * reflection.[ch]: 
22430         (mono_reflection_type_from_name): now it has a MonoImage parameter
22431         which is used as the default image to search the type in. If the image
22432         is NULL or getting the type from it fails, it defaults to corlib.
22433
22434         * icall.c: changed 1 call to mono_reflection_type_from_name to match
22435         new parameter.
22436
22437 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22438
22439         * reflection.c: update the parameter table index.
22440
22441 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22442
22443         * domain.c: don't include the mark byte in the string hash.
22444
22445 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22446
22447         * icall.cs: icall for Type.GetTypeCode ().
22448         * verify: a couple of fixes and disabled local initialization checks.
22449
22450 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
22451
22452         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
22453
22454         * debug-helpers.c (mono_method_full_name): print the type of the
22455         runtime wrapper
22456
22457         * metadata.c (mono_signature_hash): a hash function for signatures
22458         (mono_signature_hash): better hash algorithm
22459
22460         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
22461
22462         * debug-helpers.c (mono_method_full_name): this can now generate
22463         method names with signatures
22464
22465         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
22466         method dont have this pointers.
22467
22468 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22469
22470         * reflection.c: fixup typebuilder tokens.
22471         * image.c: fix buglet.
22472         * marshal.h: remove whitespace.
22473         * metadata.h, metadata.c: reinstate code that was removed.
22474         * verify.c: handle catch directives and fix another couple of bugs.
22475
22476 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
22477
22478         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
22479         (mono_marshal_get_native_wrapper): make it comp. with the old code
22480         (mono_marshal_get_native_wrapper): support boolean
22481         (mono_marshal_get_managed_wrapper): support more types
22482
22483 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
22484
22485         * class.c (class_compute_field_layout): compute class->blittable attribute.
22486
22487 2002-07-09  Dick Porter  <dick@ximian.com>
22488
22489         * threads.c: Make the thread cleaning up cope with threads that
22490         call ExitThread()
22491
22492 2002-07-08  Radek Doulik  <rodo@ximian.com>
22493
22494         * reflection.c (method_encode_code): use non-translated values to
22495         compute finally_start, this fixes exception handling on ppc, yay!
22496
22497         * decimal.h (struct signscale): fix endianess
22498
22499 2002-07-07  Radek Doulik  <rodo@ximian.com>
22500
22501         * reflection.c: swap box_val and not val
22502
22503 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22504
22505         * reflection.c, reflection.h: handle full assembly info in type name.
22506         Handle Type arguments when loading custom attributes.
22507         * icall.c: updated to use new mono_reflection_type_from_name () method.
22508
22509 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22510
22511         * loader.c:
22512         (method_from_memberref): also print assembly name when method not found.
22513
22514 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22515
22516         * icall.c:
22517         (ves_icall_TypeGetProperties): fixed bug #27473. 
22518
22519 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22520
22521         * reflection.c: display image name and token when cannot find the
22522         .ctor for an attribute.
22523
22524 2002-07-05  Martin Baulig  <martin@gnome.org>
22525
22526         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22527
22528 2002-07-04  Dick Porter  <dick@ximian.com>
22529
22530         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
22531         compile on mingw.  This will cause mingw builds to not wait for
22532         subthreads to terminate after the main thread does.  I've lodged a
22533         bug with the mingw developers for them to wrap OpenThread().
22534
22535 2002-07-03  Dick Porter  <dick@ximian.com>
22536
22537         * threads.c: Store thread IDs instead of handles, because
22538         GetCurrentThread() returns a pseudohandle and therefore stores
22539         useless values.  mono_thread_cleanup() continues checking the
22540         array of threads until it is empty, to cope with subthreads
22541         spawning new threads after the main thread has finished.
22542
22543         * profiler.h:
22544         * profiler.c:
22545         * profiler-private.h: Pass the thread ID to thread profiler
22546         functions, instead of a handle
22547
22548 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22549
22550         * verify.c: fixes to make it more usable.
22551         * pedump.c: added --verify code to verify IL code in an assembly.
22552
22553 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22554
22555         * reflection.c: turn errors into warnings to allow compiling corlib.
22556
22557 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
22558
22559         * reflection.c: add special cases to compile corlib.
22560
22561 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22562
22563         * reflection.c: handle properties with only a set method.
22564
22565 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22566
22567         * opcodes.h: add enum with opcodes in opval order.
22568
22569 2002-07-01  Dick Porter  <dick@ximian.com>
22570         
22571         * object.h:
22572         * object.c (mono_runtime_run_main): Removed unneeded argument
22573
22574 2002-06-28  Martin Baulig  <martin@gnome.org>
22575
22576         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22577
22578 2002-06-27  Dick Porter  <dick@ximian.com>
22579
22580         * threads.c: Store the handle in both the parent thread and in the
22581         subthread, to minimise the time between starting a new thread and
22582         storing its ID.
22583
22584 2002-06-26  Dick Porter  <dick@ximian.com>
22585
22586         * appdomain.c (mono_runtime_cleanup): Close the socket library
22587         after all the threads have finished, not before
22588
22589 2002-06-26  Martin Baulig  <martin@gnome.org>
22590
22591         * debug-symfile.c (mono_debug_find_source_location): Added
22592         `guint32 *line_number' argument.  If it's not NULL, store the line number
22593         there and return the file name without the line number.
22594
22595 2002-06-25  Dick Porter  <dick@ximian.com>
22596
22597         * icall.c:
22598         * process.h:
22599         * process.c: Process forking and other support functions
22600
22601 2002-06-25  Dick Porter  <dick@ximian.com>
22602
22603         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
22604         things dont happen when the image is closed.
22605         (mono_image_lookup_resource): Walk the resource section looking
22606         for a particular entry
22607
22608         * cil-coff.h: PE resource section decoding
22609
22610 2002-06-25  Dick Porter  <dick@ximian.com>
22611         
22612         * assembly.h:
22613         * assembly.c: 
22614         (mono_assembly_foreach): Accessor functions to walk the list of
22615         loaded assemblies
22616         (mono_assembly_set_main):
22617         (mono_assembly_get_main): Process methods need to know which
22618         assembly is the "main" one
22619
22620         * object.c (mono_runtime_run_main): Record the main assembly
22621
22622         * debug-helpers.c: Fix typo
22623
22624 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
22625
22626         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
22627         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
22628
22629 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22630
22631         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
22632
22633 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
22634
22635         * image.c (do_mono_image_open): Initialize reference count,
22636         otherwise we leak the MonoImage.
22637
22638 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22639
22640         * reflection.c: small tweak to handle self-hosting.
22641
22642 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22643
22644         * reflection.c: fix type name parse code.
22645
22646 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22647
22648         * reflection.c: break out of the loop.
22649         * image.c: special case corlib.
22650
22651 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22652
22653         * reflection.c: add all the custom attrs at the end to ensure the
22654         ctors have been properly initialized when the attributes are defined
22655         in the current assembly.
22656
22657 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22658
22659         * reflection.c: handle correctly multiple-nested types.
22660
22661 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
22662
22663         * row-indexes.h: fix typos.
22664         * reflection.c: adjust for typos and fix method_def_or_ref
22665         encoding in MethodImpl table.
22666
22667 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22668
22669         * reflection.c: fix entry point patching (thanks Serge!).
22670
22671 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
22672
22673         * verify.c: add check for System.Exception
22674
22675 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22676
22677         * image.c, class.c: minifix for code just c&p'ed.
22678         * reflection.c: warning fix.
22679         * object.h, loader.h, domain.c: load also StringBuilder.
22680
22681 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22682
22683         * marshal.h, marshal.c: some support code to handle complex marshaling.
22684
22685 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22686
22687         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
22688         Better signatures with vtable error dump.
22689
22690 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
22691
22692         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
22693
22694 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
22695
22696         * icall.c (ves_icall_Type_GetField): impl.
22697
22698 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22699
22700         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
22701         to retrieve a marshal description blob for a field or param.
22702
22703 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22704
22705         * reflection.h, reflection.c: change order of nested type emission
22706         to avoid table corruption. The NestedTypes table is sorted.
22707         * icall.c: change order of GetConstructor results to workaround mcs bug.
22708
22709 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22710
22711         * reflection.h, reflection.c: handle field and param marshal
22712         information.
22713
22714 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22715
22716         * icall.c, marshal.c marshal.h: more Marshal class implementation.
22717
22718 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22719
22720         * reflection.c: fix call convention.
22721
22722 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22723
22724         * reflection.h, reflection.c: mono_image_get_memberref_token()
22725         takes a type instead of a class, now. Added
22726         mono_image_get_array_token() to create tokens for the special
22727         multi-dim array methods.
22728
22729 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22730
22731         * assembly.c: handle modules (no assembly table). Split
22732         loading references in its own function.
22733         * class.c: handle moduleref resolution scope.
22734         * image.c, image.h: cache module name in image.
22735
22736 2002-06-07  Martin Baulig  <martin@gnome.org>
22737
22738         * reflection.c (mono_image_get_type_info): Only add a class layout entry
22739         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
22740
22741 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22742
22743         * icall.c: more signature fixes that used uint instead of int.
22744
22745 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22746
22747         * reflection.c: fixed signature of field refs.
22748
22749 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22750
22751         * class.c, reflection.c: handle typerefs of nested types
22752         (both on read and when writing files).
22753
22754 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
22755
22756         * icall.c: fix method signatures that tried to workaround the previous
22757         typo, d'oh!
22758
22759 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22760
22761         * debug-helpers.c: fix typo.
22762
22763 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22764
22765         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
22766         rewrote the PE/COFF writing code (our programs are understood by the
22767         ms runtime, now).
22768
22769 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22770
22771         * gc.c, gc.h, icall.c: weakreference support.
22772
22773 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22774
22775         * Makefile.am, mono-config.c: use $(sysconfdir).
22776
22777 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22778
22779         * icall.c: changed default precision of Double.ToString() to 15.
22780         Fixed memory leak. Unified with Single.ToString.
22781
22782 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22783
22784         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
22785
22786 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22787
22788         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
22789         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
22790         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
22791         and myself.
22792
22793 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22794
22795         * debug-symfile.c, sysmath.c: yet more compilation fixes.
22796
22797 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22798
22799         * reflection.c, socket-io.c: more compilation fixes.
22800
22801 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22802
22803         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
22804         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
22805         unicode.c: warning and compiler compatibility fixes.
22806
22807 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22808
22809         * class.h, metadata.c: fixed warnings/compilation errors.
22810
22811 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22812
22813         * Makefile.am, mono-config.c, mono-config.h: configuration file
22814         support routines.
22815         * loader.c, loader.h: make Dll mapping configurable at runtime in the
22816         config file. Export methods to insert and lookup mappings.
22817
22818 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22819
22820         * reflection.c: handle types and boxed objects in custom attr
22821         constructors.
22822
22823 2002-05-30  Martin Baulig  <martin@gnome.org>
22824
22825         * debug-symfile.c
22826         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
22827
22828 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
22829
22830         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
22831         to lookup the implmap row for a P/Invoke method.
22832         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
22833         P/Invoke method from the runtime on an as needed basis.
22834
22835 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
22836
22837         * metadata.c (mono_metadata_parse_signature): impl.
22838
22839 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22840
22841         * class.c: handle .pack directive.
22842
22843 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22844
22845         * object.c: initialize static fields with RVA data.
22846
22847 2002-05-25  Martin Baulig  <martin@gnome.org>
22848
22849         * debug-symfile.c
22850         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
22851
22852 2002-05-24  Martin Baulig  <martin@gnome.org>
22853
22854         * debug-symfile.c
22855         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
22856         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
22857         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
22858
22859 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22860
22861         * object.c: special case string ctros in invoke.
22862         * gc.c: silly whitespace changes.
22863
22864 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
22865
22866         * threadpool.[ch]: impl. a threadpool that can
22867         be used by mint and mono.
22868
22869 2002-05-22  Martin Baulig  <martin@gnome.org>
22870
22871         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
22872         The first argument is now a `MonoReflectionModuleBuilder *', the return
22873         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
22874         `methods' field to get the method builder.  The `token' argument is the
22875         unfixed token.
22876
22877         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
22878         invalid characters instead of g_assert_not_reached()ing.  This seems
22879         to be the behaviour of mscorlib.
22880
22881 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
22882
22883         * object.c (mono_runtime_invoke_array): applied patch from Rachel
22884         Hestilow to fix bug #25104
22885
22886 2002-05-21  Martin Baulig  <martin@gnome.org>
22887
22888         * debug-symfile.c (mono_debug_find_source_location): New function.
22889         Looks up an IL offset in the line number table and returns the source
22890         location as a string.
22891
22892 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22893
22894         * icall.c:
22895         (mono_double_ToStringImpl): changed %f by %g until we have something
22896         better.
22897
22898 2002-05-21  Nick Drochak  <ndrochak@gol.com>
22899
22900         * icall.c : Use different name for Math.Pow's icall.  Needed to check
22901         parameters first in C#.
22902
22903 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22904
22905         * icall.c, reflection.h: added icall to get info about an event.
22906
22907 2002-05-20  Radek Doulik  <rodo@ximian.com>
22908
22909         * object.c (mono_value_box): don't use memcpy for boxing on BIG
22910         endian
22911         (mono_value_box): don't use memcpy for small sizes on
22912         architectures with unaligned access
22913
22914 2002-05-20  Martin Baulig  <martin@gnome.org>
22915
22916         * reflection.c (mono_reflection_setup_internal_class): Don't crash
22917         if `tb->parent == NULL'.
22918         (mono_reflection_create_internal_class): New function.  This is
22919         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
22920         for enum types.
22921
22922         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
22923         New interncall.
22924
22925 2002-05-19  Martin Baulig  <martin@gnome.org>
22926
22927         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
22928         argument to get the length, don't default to the array length.
22929
22930 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
22931
22932         * assembly.c (mono_assembly_setrootdir): New function used to
22933         override the MONO_ASSEMBLIES directory.
22934
22935 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22936
22937         * icall.c: ValueType_GetHashCode() initialize local var.
22938
22939 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22940
22941         * reflection.c: sort custom attributes table.
22942
22943 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22944
22945         * reflection.c: support named args in custom attributes (write support).
22946
22947 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22948
22949         * reflection.c: fix finally position calculation.
22950
22951 2002-05-15  Radek Doulik  <rodo@ximian.com>
22952
22953         * reflection.c: fixed endianess at many places
22954
22955         * icall.c (ves_icall_InitializeArray): comment out debug msg
22956
22957 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
22958
22959         * object.c (mono_unhandled_exception): new function to handle
22960         unhandled exceptions.
22961         (mono_unhandled_exception): call the UnhandledException event.
22962         (mono_runtime_delegate_invoke): impl.
22963
22964 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
22965
22966         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
22967         returns the RVA, not the direct pointer to the data. Handle the case
22968         when the class size is fixed.
22969
22970 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22971
22972         * reflection.c: fix some endianess issues.
22973
22974 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
22975
22976         * object.c (mono_runtime_invoke): is now able to catch exceptions.
22977
22978         * threads.c (mono_thread_init): added a callback which is invoked
22979         at thread start.
22980
22981 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
22982         
22983         * icall.c: make GetHashCode return non-negative values.
22984
22985 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
22986
22987         * object.c, icall.c, gc.c: revert to address-based hashcode.
22988
22989 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
22990
22991         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
22992
22993 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22994
22995         * icall.c, class.c: special case <Module>.
22996
22997 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
22998
22999         * icall.c: fix bug in GetNow().
23000
23001 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
23002
23003         * object.c (mono_runtime_class_init): make sure that we call all
23004         static class constructors.
23005
23006 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23007
23008         * reflection.c: sort methodsemantics table.
23009
23010 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23011
23012         * reflection.h, reflection.c: honour init locals setting.
23013
23014 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
23015
23016         * icall.c: copied Double ToStringImpl for Single ToStringImpl
23017
23018 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23019
23020         * reflection.c: support ContructorBuilders in attribute blob creation.
23021
23022 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23023
23024         * reflection.c: some changes to build a binary that can be run
23025         directly in windows.
23026
23027 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23028
23029         * loader.c: print a big message when an icall can't be found.
23030
23031 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23032
23033         * string-icalls.c: fix bug 24248.
23034
23035 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
23036
23037         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
23038         icall.c, reflection.h: separate assembly loading by pathname and by
23039         assembly name. Use the MONO_PATH env var to search for assemblies.
23040
23041 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23042
23043         * assembly.c, image.h: add some support for assemblies
23044         with multiple modules.
23045         * class.c, class.h: export mono_class_from_typeref().
23046         * loader.c: remove duplicated code and use mono_class_from_typeref(),
23047         instead.
23048
23049 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23050
23051         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
23052         documentation says (the ECMA one is correct).
23053
23054 2002-05-02  Dick Porter  <dick@ximian.com>
23055
23056         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
23057         Don't name the synchronisation mutex.
23058
23059 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
23060
23061         * rand.c
23062         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
23063         Make the prototypes match.
23064         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
23065         Same.
23066
23067         * icall.c
23068         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
23069         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
23070         all systems have tm.tm_zone, so use strftime() with %Z to print
23071         the timezone abreviation into a temp string.
23072
23073         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
23074         rather than mono_array_addr() on a MonoString on Big Endian
23075         machines.
23076
23077 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
23078
23079         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
23080         fix bug 24041
23081
23082 2002-04-30  Dick Porter  <dick@ximian.com>
23083
23084         * socket-io.c: Cope with SOCKET being an integer rather than a
23085         pointer now.
23086
23087         * threads.c: Added Thread_free_internal, to deal with thread
23088         handle cleanup.  Moved calls to handle_store() and handle_remove()
23089         to start_wrapper(), so each can only be called once.  Allocate
23090         synchronisation blocks with GC_malloc(), and use GC finalisation
23091         to close the handles.
23092
23093         * icall.c: added System.Threading.Thread::Thread_free_internal
23094
23095 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23096
23097         * icall.c: support Environment.Exit, CommandLineArgs().
23098
23099 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23100
23101         * object.c, object.h: added mono_runtime_run_main () and
23102         mono_runtime_get_main_args () for use in System.Environment.
23103
23104 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23105
23106         * gc.c: fix thinko, enable actual finalization since the jit is now
23107         fixed.
23108
23109 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23110
23111         * gc.c, object.c: take into account that an object may be offset wrt the address
23112         returned by GC_malloc().
23113
23114 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
23115
23116         * image.c: handle files without entries in the assembly table (modules).
23117
23118 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
23119
23120         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
23121         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
23122         allowed to be null when it's System.Object class setup.
23123
23124 2002-04-27  Martin Baulig  <martin@gnome.org>
23125
23126         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
23127         if `tb->parent == NULL' rather than crashing.
23128
23129 2002-04-28  Nick Drochak  <ndrochak@gol.com>
23130
23131         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
23132         calling acos() where asin() should have been called.
23133
23134 2002-04-26  Martin Baulig  <martin@gnome.org>
23135
23136         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
23137         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
23138         there's a subdirectory called `System', but we don't want to read that
23139         subdirectory as an assembly.
23140
23141 2002-04-25  Martin Baulig  <martin@gnome.org>
23142
23143         * debug-symfile.c: Reflect latest MonoString changes.
23144
23145 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23146
23147         * rand.c, rand.h: instance method icalls need to have an explicit
23148         this pointer as first argument in the C implementation.
23149
23150 2002-04-25  Nick Drochak <ndrochak@gol.com>
23151
23152         * icall.c: Fix typo in map for GetNonZeroBytes
23153
23154 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
23155
23156         * string-icalls.c : String does now passes unit tests without any 
23157         errors, the following changes has been made:
23158         
23159         Implemented replace methods.
23160         Renaming of methods to (try) follow the standard.
23161         Fixed compare ordinal
23162         Made all memory allocated directly to function instead of via icall function.
23163         Small performance fix in is_in_array function
23164                         
23165  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
23166
23167         c (mono_string_Internal_ctor_charp_int_int):
23168         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
23169         sindex < 0, throw ArgumentOutOfRangeException instead of
23170         ArgumentNullException.
23171
23172         Added new check for length == 0, however
23173         I need to make it return String.Empty from the C code.
23174         
23175         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
23176         that calculate the length for us here.
23177         
23178         (mono_string_Internal_ctor_sbytep_int_int): Replaced
23179         mono_string_new_utf16 with mono_string_new, since value is utf8.
23180
23181 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23182
23183         * object.c: register the object for finalization if needed.
23184         Allocate one more char in the string for the terminating 0 char.
23185
23186 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23187
23188         * class.c, class.h, image.c: check if a type implemenst a destructor.
23189         Use the proper key for array class lookups.
23190         * icall.c: register the icalls in the System.GC class.
23191         * gc.c, gc.h: GC-related functions and icalls.
23192
23193 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23194
23195         * icall.c:
23196         * socket-io.c:
23197         * unicode.c: free some strings gotten from mono_string_to_utf8 and
23198         changed a couple of free () by g_free ().
23199
23200         * decimal.c: one-liner in the comments for decimal2string ().
23201
23202 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
23203
23204         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
23205
23206 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
23207
23208         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
23209         * object.c (mono_runtime_invoke_array) : handle null in params
23210
23211 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
23212
23213         * string-icalls.c: fixed bug in split (one off bug)
23214
23215 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
23216
23217         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
23218         * icalls.c: added String::Equals as internal method
23219
23220 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
23221
23222         * threads.c: fixed bug in the double interlocked functions
23223
23224 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
23225
23226         * threads.c: implemented all of the new interlocked icalls.
23227         * string-icalls.c: fix a bug in insert.
23228         * icalls.c: added the icalls for interlocked, removed old string functions.
23229         
23230 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23231
23232         * loader.c: fix off-by-one error when reading argument names.
23233
23234 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23235
23236         * profiler.c: win32 counter implementation (untested).
23237         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
23238         (the latter needs testing and more complete impl. from win32 folks).
23239
23240 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
23241
23242         * object.c: mono_array_new_full workaround mono_array_class_get
23243         problem.
23244
23245 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23246
23247         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
23248         * object.h (mono_string_chars): Changed casting type.
23249
23250 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23251
23252         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
23253                            method signatures to use gunichar2 instead of gint16.
23254
23255 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
23256
23257         * object.h, object.c: domain-specific versions of mono_object_new and
23258         mono_array_new.
23259
23260 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
23261
23262         * object.c: changed String layout
23263
23264         * string-icalls.c (mono_string_Internal_ctor_chara): added
23265         internal string constructors.
23266
23267 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
23268
23269         * threads.c: pass 'this' to the thread start routine.
23270
23271 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23272
23273         * string-icalls.c: fix IndexOf and LastIndexOf. Now
23274         InternalCompareStr don't call twice mono_string_cmp_char for the last
23275         character. Improved performance in mono_string_cmp_char.
23276
23277 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23278
23279         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
23280         code into its own library: libmonoruntime.
23281
23282 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
23283
23284         * object.h, object.c: changed array format so that szarrays do not
23285         require a bounds structure.
23286         * icall.c, appdomain.c: support for new szarray format.
23287
23288 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23289
23290         * metadata.c: compare also the retuns type when comparing signatures:
23291         we didn't do this as an optimization since really overloaded methods
23292         must differ also in the arguments, but this doesn't work with
23293         low-level IL code (or when using explicit conversion operators: see
23294         bug#23498 for an example).
23295
23296 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23297
23298         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
23299
23300 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23301
23302         * icall.c: make MonoType::GetElementType its own icall.
23303
23304 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23305
23306         * icall.c: remove MonoMethod_get_Name().
23307         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
23308         object.
23309
23310 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23311
23312         * string-icalls.c: optimized a few methods.
23313
23314 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23315
23316         * icall.c: added all new string internal calls
23317         * string-icalls.c: added, new string internal call implementation.
23318         * object.c: added mono_string_new_size for allocating a string a size
23319
23320 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
23321
23322         * object.c (mono_object_isinst): use the same code as in the
23323         optimized x86 version.
23324
23325 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23326
23327         * profiler.c: TSC-based timer code (faster and more accurate).
23328         Not hooked up in configure, yet (set USE_X86TSC to 1).
23329
23330 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
23331
23332         * profiler.c, profiler.h: track time spent compiling methods.
23333         * threads.c: track thread creation/destruction.
23334
23335 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
23336
23337         * profiler.c, profiler.h, profiler-private.h: profiling interface
23338         and sample implementation. Moved here so that it can be used also by
23339         the jit.
23340
23341 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
23342
23343         * reflection.c, reflection.h: keep types and other handles separate in
23344         the hash tables for referred tokens. Add guid for modules.
23345
23346 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23347
23348         * assembly.c: fix bugs found with valgrind.
23349         * metadata.h, metadata.c: added mono_metadata_guid_heap().
23350
23351 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
23352
23353         * threads: added icall support for getting current domain for
23354                    the thread.
23355  
23356 2002-04-13  Martin Baulig  <martin@gnome.org>
23357
23358         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
23359         (MonoDebugVarInfo): Added `index' field for register based addresses.
23360         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
23361         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
23362         `MonoDebugVarInfo *params' and `guint32 this_offset' with
23363         `MonoDebugVarInfo *this_var'.
23364
23365         * debug-symfile.c (relocate_variable): New static function to write
23366         a location description for a local variable or method parameter.
23367
23368 2002-04-12  Martin Baulig  <martin@gnome.org>
23369
23370         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
23371         stack offset and begin/end scope address of a local variable.
23372         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
23373         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
23374         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
23375
23376         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
23377         Added new relocation types for start/end scope of a local variable.
23378
23379 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23380
23381         * object.h: add mono_object_domain() macro.
23382         * reflection.c: handle typespecs.
23383         * icall.c: MonoMethod::get_Name() implementation.
23384
23385 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23386
23387         * icall.c: String::GetHashCode() icall implementation.
23388
23389 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23390
23391         * icall.c: String::IndexOfAny icall.
23392         * object.c, object.h: make array->max_length more useful.
23393         Intrduced mono_object_class() and mono_string_length() macros.
23394
23395 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23396
23397         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
23398         instead of g_unichar_isdigit.
23399
23400 2002-04-11  Nick Drochak  <ndrochak@gol.com>
23401
23402         * icall.c: Implement a simple Double.ToString().
23403
23404 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23405
23406         * appdomain.h: only io-layer.h is supposed to be included.
23407         * icall.c: explicitly import environ. Fix warning.
23408
23409 2002-04-10  Nick Drochak  <ndrochak@gol.com>
23410
23411         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
23412                 return true even if it's not Daylight Savings time.
23413                 Only return false for the case where the function isn't
23414                 implemented for a plaform (read Windows).
23415
23416 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23417
23418         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
23419         data with a mutex.
23420
23421 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
23422
23423         * mempool.c (mono_mempool_alloc): only use g_malloc when
23424         absolutely necessary.
23425
23426 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
23427
23428         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
23429
23430         * class.c (mono_class_vtable): use domain mempool to allocate vtable
23431         (mono_class_proxy_vtable): use domain mempool
23432
23433 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23434
23435         * appdomain.h, appdomain.c: split initialization that requires the
23436         execution engine support into mono_runtime_init().
23437
23438 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
23439
23440         * class.c (mono_class_init): don't include vtable inside MonoClass
23441         to save some memory, gather some statistics.
23442         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
23443
23444 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23445
23446         * icall.c: internalcall implementation for ValueType.Equals().
23447
23448 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
23449
23450         * object.c (mono_message_init): moved 
23451         (mono_runtime_exec_main): new arch. independent impl.
23452         (mono_runtime_invoke_array): new method - like
23453         mono_runtime_invoke, but you can pass an array of objects.
23454         (mono_remoting_invoke): new arch. independent impl.
23455         (mono_message_invoke): new arch. independent impl.
23456         (mono_runtime_class_init): new arch. independent impl.
23457         (mono_runtime_object_init): new arch. independent impl.
23458
23459 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23460
23461         * metadata.c, object.c, reflection.c: documented the exported
23462         functions.
23463
23464 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
23465
23466         * icall.c: simpler code to pass the assembly builder data to corlib.
23467         Implement GetNestedTypes() internalcall.
23468
23469 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23470
23471         * class.c: warn if a type can't be loaded.
23472
23473 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
23474
23475         * image.h: typedef MonoImageOpenStatus
23476         * types.h: removed unused file
23477         
23478 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
23479
23480         * icall.c: Enum_ToObject accepts enum value arguments.
23481
23482 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23483
23484         * class.c: move initialization of properties, events and nested
23485         classes, so that they happen for interfaces, too.
23486
23487 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23488
23489         * icall.c: cleanup some ugly casts in Array_SetValue*.
23490
23491 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23492
23493         * icall.c: the values array fro enums is of the correct type, now.
23494         Implement (correctly) getFullName instead of assQualifiedName for
23495         MonoType.
23496         * reflection.h, reflection.c: added mono_type_get_name ().
23497
23498 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23499
23500         * assembly.c, image.h: for each MonoImage, record from wich assembly
23501         it was loaded.
23502         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
23503         Make Type.Assembly work.
23504
23505 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
23506
23507         * debug-symfile.h: use char* instead of gpointer to avoid
23508         unnecessary casts.
23509
23510         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
23511
23512         * icall.c (ves_icall_InternalExecute): impl. FielSetter
23513         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
23514
23515 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
23516
23517         * icall.c (mono_message_init): impl. (code cleanup)
23518         (ves_icall_InternalExecute): impl. FieldGetter
23519
23520         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
23521         defined we call all (non-static)methods through the vtable. 
23522
23523 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
23524
23525         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
23526         finalizer even though the memory is still referenced (and the chunk of
23527         memory is not freed).
23528
23529 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
23530
23531         * assembly.c: fix brokeness.
23532
23533 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
23534
23535         * class.c: kill some warnings. Check explicit interface method
23536         implementation also without considering the namespace.
23537         Load also literal strings in static class data.
23538
23539 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
23540
23541         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
23542         (default_assembly_name_resolver): Make the resolver take the
23543         "base" directory where the assembly was originally defined, so we
23544         can load DLLs that are in the same directory as the assembly that
23545         is being referenced.
23546
23547 2002-03-28  Dick Porter  <dick@ximian.com>
23548
23549         * file-io.h: 
23550         * file-io.c:
23551         * socket-io.c: 
23552         * unicode.h: 
23553         * unicode.c: Warning cleanups
23554
23555 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
23556
23557         * object.h, reflection.h: use the correct type instead of MonoObject.
23558
23559 2002-03-28  Martin Baulig  <martin@gnome.org>
23560
23561         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
23562         (mono_debug_update_symbol_file): Initialize classes if necessary.
23563
23564 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23565
23566         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
23567         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
23568
23569 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
23570
23571         * assembly.h: fix function prototype.
23572         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
23573         * mono-endian.h: use const cast.
23574
23575 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
23576
23577         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
23578
23579 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23580
23581         * loader.c: don't assert when a typeref can't be loaded, give
23582         a chance to the runtime to trow an exception instead.
23583         * loader.h: fix warning.
23584
23585 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
23586
23587         * class.c (mono_class_proxy_vtable): added proxy support
23588
23589 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
23590
23591         * icall.c: removed last of PAL calls, added System.Environment
23592         * file-io.h, file-io.c: MonoIO implementation
23593         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
23594
23595 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23596
23597         * appdomain.c: do not use the byte marker in ldstr table lookup.
23598         * debug-helpers.c: allow two ':' to separate class and method name.
23599         * object.c: allocate arrays bounds with the GC, too.
23600         * verify: add a few more checks.
23601
23602 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
23603
23604         * reflection.c: output also literal strings. Allocate parameter data
23605         with GC_malloc() (thanks, Martin, for catching this!).
23606
23607 2002-03-26  Martin Baulig  <martin@gnome.org>
23608
23609         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
23610         include the `this' offset in the `param_offsets'.
23611
23612 2002-03-25  Martin Baulig  <martin@gnome.org>
23613
23614         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
23615         mono_debug_get_class() function to get the classes. Added new
23616         relocation types for arrays and strings.
23617         (mono_debug_get_class): New static function to search in all
23618         referenced assemblies for a metadata token.
23619
23620         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
23621
23622 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
23623
23624         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
23625         hold gc-allocated objects. Make the string heap a stream like the
23626         others. Removed duplicated code when writing stream info.
23627         Added asserts to catch possible buffer overflows. Set the sorted map
23628         for tables that need sorting. Added some documentation.
23629
23630 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
23631
23632         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
23633         for interned strings and vtables.
23634
23635 2002-03-24  Martin Baulig  <martin@gnome.org>
23636
23637         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
23638         it in the array since it was created with g_slist_prepend().
23639
23640 2002-03-24  Martin Baulig  <martin@gnome.org>
23641
23642         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
23643         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
23644         (mono_debug_method_from_token): Renamed to
23645         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
23646         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
23647
23648         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
23649         relocation types.
23650
23651         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
23652
23653 2002-03-24  Martin Baulig  <martin@gnome.org>
23654
23655         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
23656         (mono_debug_method_from_token): New func.
23657
23658         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
23659         New interncall, calls mono_debug_local_type_from_signature().
23660         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
23661         calls mono_debug_method_from_token().
23662
23663 2002-03-23  Martin Baulig  <martin@gnome.org>
23664
23665         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
23666         specifies the number of bytes to be converted, not the array size.
23667         Return the number of chars, not the number of bytes.
23668         (ves_icall_iconv_get_chars): The `byteCount' argument
23669         specifies the number of bytes to be converted, not the array size.
23670
23671 2002-03-23  Martin Baulig  <martin@gnome.org>
23672
23673         * reflection.h (MonoReflectionSigHelper): New type.
23674
23675         * reflection.c (mono_reflection_sighelper_get_signature_local),
23676         (mono_reflection_sighelper_get_signature_local): New functions.
23677
23678         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
23679         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
23680         interncalls.
23681
23682 2002-03-23  Martin Baulig  <martin@gnome.org>
23683
23684         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
23685         is_writeable is set.
23686         (mono_raw_buffer_update): New function to write the modified map
23687         back to disk.
23688
23689         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
23690
23691         * debug-symfile.c (mono_debug_update_symbol_file): Call
23692         mono_raw_buffer_update() when done writing.
23693
23694 2002-03-23  Martin Baulig  <martin@gnome.org>
23695
23696         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
23697
23698         * debug-symfile.c: Added support for arguments and local variables.
23699
23700 2002-03-23  Dick Porter  <dick@ximian.com>
23701
23702         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
23703         protected by ifdefs, hence breaking the w32 build.
23704
23705 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23706
23707         * object.c: implement is_interned() the right way.
23708
23709 2002-03-21  Martin Baulig  <martin@gnome.org>
23710
23711         * debug-symfile.[ch]: New files to handle debugging information
23712         files. There's also support to dynamically update these symbol
23713         files to include machine dependent information.
23714
23715 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
23716
23717         * threads.c (mono_thread_create): new function to create thread
23718         from C
23719
23720 2002-03-20  Martin Baulig  <martin@gnome.org>
23721
23722         * icall.c (ves_icall_InternalInvoke): Create a new object if the
23723         method is a constructor.
23724         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
23725         points to ves_icall_InternalInvoke().
23726
23727 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
23728
23729         * file-io.c: Flush shouldn't throw exceptions.
23730
23731 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
23732
23733         * file-io.c: FileStream flush support; FileSetLength now
23734         restores file pointer.
23735
23736 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23737
23738         * class.c: set image for pointer classes.
23739
23740 2002/03/19  Nick Drochak <ndrochak@gol.com>
23741
23742         * sysmath.c: Forgot one.
23743
23744 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
23745
23746         * sysmath.c: Avoid redefining existing names.
23747
23748 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
23749
23750         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
23751         handled by runtime as icall rather than dllimport from libm.so
23752         * file-io.c, file-io.h: fixed handle argument type.
23753
23754 2002-03-18  Dick Porter  <dick@ximian.com>
23755
23756         * reflection.c (mono_image_get_type_info): rename interface to
23757         iface, because of "#define interface struct" on windows.
23758
23759 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
23760
23761         * class.c, class.h: rename and export mono_ptr_class_get().
23762         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
23763         * reflection.c, reflection.h, icall.c: better/saner type name
23764         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
23765         method signatures.
23766
23767 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
23768
23769         * class.c (mono_class_init): removed hardcoded GHC_SLOT
23770
23771         * icall.c (ves_icall_InternalInvoke): impl.
23772
23773 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23774
23775         * reflection.c: output the interface map table, too.
23776
23777 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
23778
23779         * class.c (class_compute_field_layout): separate computation of 
23780         static field layout
23781
23782 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
23783
23784         * icall.c: added System.Buffer support.
23785         * file-io.c: moved file icalls from PAL to FileStream.
23786
23787 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
23788
23789         * icall.c (ves_icall_System_Object_GetHashCode): impl.
23790
23791 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
23792
23793         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
23794
23795 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23796
23797         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
23798
23799 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23800
23801         * debug-helpers.{c,h}: moved here from monograph some useful functions
23802         to locate a method by name/signature in a class or image. Included
23803         also a small and flexible IL disassembler.
23804
23805 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23806
23807         * reflection.c: fixup tokens in methods with small header size, too.
23808
23809 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
23810
23811         * object.c (mono_string_to_utf8): remove assert(!error), instead
23812         print a warning. 
23813
23814 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
23815
23816         * icall.c: update to the new mono_Array_class_get interface.
23817
23818 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23819
23820         * appdomain.c, object.c: Boehm-GC enable.
23821         * icall.c: make get_data_chunk() support split data requests.
23822         Ensure a class is initialized in more cases. Return only the first
23823         property found in GetProperties() or the compiler gets confused. 
23824         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
23825         * reflection.h, reflection.c: add fixup mechanism for field and method
23826         tokens. Initialize assembly->typeref in a single place. Output
23827         properties after events. Support custom attributes for events, too.
23828         Typo fix for paramter custom attrs.
23829
23830 2002-03-07  Martin Baulig  <martin@gnome.org>
23831
23832         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
23833
23834 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
23835
23836         * class.c (mono_array_class_get): fix. for multi. dim. arrays
23837
23838 2002-03-06  Martin Baulig  <martin@gnome.org>
23839
23840         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
23841         non-zero lower bounds. See testcases #F10-#F13.
23842
23843 2002-03-05  Martin Baulig  <martin@gnome.org>
23844
23845         * exception.c (mono_get_exception_argument_out_of_range): New exception.
23846
23847         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
23848         ves_icall_System_Array_GetValue(), only calculate the absolute array position
23849         here.
23850         (ves_icall_System_Array_SetValue): Likewise.
23851         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
23852         as argument and does the actual work. This function is used when copying a
23853         multi-dimensional array.
23854         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
23855         now do all the widening conversions of value types.
23856         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
23857
23858 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23859
23860         * class.c: remove some magic numbers and use the smbolic names,
23861         instead. Added init_events() to load event info at class init time.
23862         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
23863         and mono_metadata_methods_from_event().
23864         * reflection.h, reflection.c: added support for writing out the evnets
23865         related information.
23866
23867 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23868
23869         * reflection.h, icall.c: use a different method (GetInterfaces)
23870         to gather interface info and add isbyref, isprimitive and
23871         ispointer to the ves_icall_get_type_info() return value.
23872
23873 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23874
23875         * class.h: stared adding support for events.
23876         * icall.c: split find_members implementation. Added debug icall to get
23877         the address of an object.
23878         * reflection.c: handle TypeBuilders in mono_type_get_object().
23879
23880 2002-03-01  Martin Baulig  <martin@gnome.org>
23881
23882         * icall.c (ves_icall_System_Array_GetLength): This must throw an
23883         ArgumentOutOfRangeException(), not an ArgumentException().
23884         (ves_icall_System_Array_GetLowerBound): Likewise.
23885         (ves_icall_System_Array_GetValue): Improved argument checking.
23886         (ves_icall_System_Array_SetValue): Improved argument checking.
23887
23888 2002-03-01  Martin Baulig  <martin@gnome.org>
23889
23890         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
23891         called with invalid arguments rather than just dying with g_assert().
23892         (ves_icall_System_Array_SetValue): Likewise.
23893         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
23894         raise a NotImplementedException instead.
23895         (ves_icall_System_Array_GetLength): Added argument checking.
23896         (ves_icall_System_Array_GetLowerBound): Added argument checking.
23897
23898 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
23899
23900         * object.h (mono_assert): new macros mono_assert and
23901         mono_assert_not_reached
23902
23903 2002-02-28  Martin Baulig  <martin@gnome.org>
23904
23905         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
23906         and "System::String::IsInterned" to "System::String::_IsInterned".
23907
23908 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
23909
23910         * icall.c: remove hacks for typebuilder. Added icall to create a
23911         modified type from a tybebuilder.
23912         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
23913         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
23914         to create a backing MonoClass for a TypeBuilder.
23915
23916 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23917
23918         * class.c, class.h: more refactoring of class init.
23919         Export mono_class_setup_mono_type() and mono_class_setup_parent().
23920
23921 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
23922
23923         * marshal.c, marshal.h: start of marshaling interface.
23924
23925 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
23926
23927         * icall.c: fix order in assembly qualified name icall.
23928
23929 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
23930
23931         * class.c: do not free str, since we store it in the hash table.
23932         * reflection.h: add label field to MonoILExceptionInfo.
23933         * reflection.c: handle references to more than one assembly. Handle
23934         case when there isn't a module created in the assembly.
23935
23936 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23937
23938         * class.c: Fix typo. Start refactoring of class init code.
23939
23940 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23941
23942         * appdomain.c: exit with 1 on error.
23943         * class.c: we already have the name in MonoClassField.
23944         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
23945         MonoStreamHeader instead of an offset of image->raw_metadata.
23946
23947 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
23948
23949         * appdomain.c (mono_init): Be even more descriptive about the error.
23950
23951 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
23952
23953         * appdomain.c: give the user an informative message when corlib can't
23954         be loaded.
23955
23956 2002-02-26  Martin Baulig  <martin@gnome.org>
23957
23958         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
23959         New icall to get the time zone data.
23960
23961 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23962
23963         * reflection.c: set virtual and raw size of section correctly.
23964         * threads.c: transfer domain information to newly created threads.
23965
23966 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
23967
23968         * class.c: when instancing a class in a domain, load the default
23969         vaules for static fields from the constant table. Fix System.Enum to
23970         not be an enum.
23971         * icall.c: implement Object::GetType() internalcall. Implemented
23972         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
23973         Fixed checking of binding flags in find_members().
23974         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
23975         * reflection.c: handle enumerations when writing to the constant
23976         table. Use a different object cache for types.
23977
23978
23979 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
23980
23981         * object.c (mono_object_isinst): fix for arrays
23982
23983         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
23984
23985 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
23986
23987         * object.c: don't use mprotect ()  and fix intern pool hash table
23988         lookup for big endian systems.
23989
23990 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23991
23992         * icall.c: change type_is_subtype_of () signature.
23993
23994 2002-02-21  Mark Crichton  <crichton@gimp.org>
23995
23996         * rand.c, rand.h: Added random number generator for
23997         System.Security.Cryptography classes.
23998
23999         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
24000
24001         * icall.c: Added System.Security.Cryptography calls.
24002
24003 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
24004
24005         * class.c, icall.c, metadata.c: better support for pointer types.
24006         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
24007         * reflection.c: Add support for getting custom attrs for properties
24008         and simplify some code.
24009
24010 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24011
24012         * icall.c: change getToken () and add custom attribute GetBlob()helper
24013         method.
24014         * reflection.h: add custom attrs array to the reflection builder structures.
24015         * reflection.c: encode and emit custom attributes for all the relevant
24016         reflection objects. Cache fieldref and methodref tokens. Change
24017         mono_image_create_token() interface to take a MonoDynamicAssembly.
24018         More complete custom attributes decoder. Load custom attributes for
24019         Assembly, Field, Method and Constructor objects, too. Make the
24020         returned array an Attribute[] one, not object[]. Added
24021         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
24022         custom attribute constructor.
24023
24024 2002-02-20  Dick Porter  <dick@ximian.com>
24025
24026         * icall.c:
24027         * rawbuffer.c:
24028         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
24029         problem code out for now).
24030
24031 2002-02-19  Radek Doulik  <rodo@ximian.com>
24032
24033         * object.c (mono_ldstr): use hash table to avoid multiple swapping
24034
24035 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
24036
24037         * icall.c: register the GetCustomAttributes method.
24038         * object.c, object.h: add mono_string_new_len ().
24039         * reflection.h, reflection.c: added mono_runtime_invoke(),
24040         mono_install_runtime_invoke(). Added
24041         mono_reflection_get_custom_attrs () to load custom attributes and
24042         create the attribute objects.
24043
24044 2002-02-19  Dick Porter  <dick@ximian.com>
24045         * threads-dummy-types.c:
24046         * threads-dummy-types.h:
24047         * threads-dummy.c:
24048         * threads-dummy.h:
24049         * threads-pthread-types.c:
24050         * threads-pthread-types.h:
24051         * threads-pthread.c:
24052         * threads-pthread.h:  Deleted obsolete files
24053
24054 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
24055
24056         * class.c (mono_class_vtable): runtime init the class when we
24057         allocate static class data.
24058
24059         * icall.c (ves_icall_System_Array_SetValue): check for null values.
24060
24061         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
24062         and String - but we will need generic marshalling support in the
24063         future. 
24064         (mono_init): set the domain name in a ms compatible way
24065
24066         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
24067         String[].
24068
24069 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
24070
24071         * object.c (mono_array_clone): use alloca() instead of g_malloc  
24072         for sizes
24073
24074         * appdomain.c (mono_domain_unload): impl.
24075
24076 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24077
24078         * appdomain.c, object.c: fix intern pool implementation.
24079         * class.c: fix alignment code.
24080
24081 2002-02-16  Radek Doulik  <rodo@ximian.com>
24082
24083         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
24084         and s2 > s1, just copy lower bytes to be compatible with little
24085         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
24086         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
24087
24088         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
24089         force big_endian to be 1 for big endian machines 
24090         (ves_icall_iconv_new_decoder): ditto
24091
24092 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
24093
24094         * socket-io.c (convert_sockopt_level_and_name): If the system
24095         doesn't define SOL_IP or SOL_TCP, get them by hand using
24096         getprotobyname() and caching the values (because this could be a
24097         slow operation).
24098         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
24099         Use the appropriate struct when the system does support it. Ie,
24100         not all systems have struct ip_mreqn so use struct ip_mreq when
24101         appropriate.
24102
24103 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
24104
24105         * reflection.c: handle finally clauses.
24106
24107 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
24108
24109         * socket-io.c: use g_snprintf() instead of snprintf.
24110
24111 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
24112
24113         * reflection.c (mono_param_get_objects): Cast second argument to
24114         mono_method_get_param_names to a const char** to silence the
24115         compiler warning.
24116
24117         * appdomain.c (mono_domain_assembly_open): Put parens around the
24118         truth statement in the for-loop.
24119
24120         * unicode.c (iconv_convert): Got rid of a compiler warning about
24121         int i being unused when the system has a new iconv.
24122         (iconv_get_length): Same.
24123
24124         * image.c (load_class_names): Cast the second argument to
24125         g_hash_table_insert() to char* to hush compiler warnings about the
24126         arg being a const.
24127         (mono_image_open): Same here.
24128
24129         * socket-io.c: Don't conditionally include sys/filio.h or
24130         sys/sockio.h here anymore since we now get them from
24131         io-layer/io-layer.h
24132         (inet_pton): If the system doesn't support inet_aton, implement
24133         using inet_addr and also #define INADDR_NONE if it isn't defined
24134         by the system.
24135
24136 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
24137
24138         * metadata.c, metadata.h: added function to get packing and size info
24139         of a typedef.
24140         * reflection.h, reflection.c: handle field RVA data. Save info about
24141         the table layout if needed. Assign typedef indexes to all the types
24142         before dumping the info about them to avoid forward reference problems.
24143
24144 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
24145
24146         * socket-io.c (convert_sockopt_level_and_name): ifdef
24147         SO_ACCEPTCONN because it is not defined on my system (old debian)
24148
24149 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
24150
24151         * opcode.c: use stddef.h to get NULL.
24152
24153 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
24154
24155         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
24156         for FIONBIO, FIONREAD and SIOCATMARK.
24157         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
24158         define INADDR_NONE and besides, inet_addr() is deprecated and
24159         should not be used. Use inet_pton() instead - it also has the
24160         added bonus that it can easily handle IPv6 addresses as well.
24161         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
24162
24163 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
24164
24165         * decimal.c: remove _MSC_VER conditional.
24166
24167 2002-02-13  Dick Porter  <dick@ximian.com>
24168
24169         * socket-io.c: 
24170         * icall.c: Internal calls for Blocking, Select, Shutdown,
24171         GetSocketOption and SetSocketOption
24172
24173 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24174
24175         * assembly.cs: better resolver: use it instead of some kludgy
24176         code.
24177
24178 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
24179
24180         * reflection.c: the best way to speed-up the compiler is to avoid
24181         infinite loops.
24182
24183 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
24184
24185         * class.c (mono_class_vtable): changed the object layout
24186         (obj->vtable->class). 
24187         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
24188
24189 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24190
24191         * assembly.c: look for assemblies in the assembly dir, too.
24192
24193 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24194
24195         * class.c: fix thinko in mono_class_from_type().
24196
24197 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24198
24199         * exception.h, exception.c: added TypeLoadException.
24200         * object.h, object.c: added mono_array_clone ().
24201         * icall.c: handle throwOnError in AssemblyGetType().
24202         Added Array.Clone().
24203         * opcode.h, opcode.c: use a single value for the opcode val.
24204         Compile fix for non-gcc compilers.
24205
24206 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
24207
24208         * opcodes.c, opcodes.h: export interesting info about opcodes.
24209
24210 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
24211
24212         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
24213         icalls. 
24214
24215         * class.c (class_compute_field_layout): set element_class for enums
24216         (mono_class_create_from_typedef): set element_class for normal classes
24217
24218         * icall.c (ves_icall_System_Enum_get_value): impl.
24219
24220         * class.c (mono_class_create_from_typedef): do not set valuetype
24221         flag for System.ValueType and System.Enum
24222
24223 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
24224
24225         * unicode.c (iconv_convert): fix big endian problem.
24226
24227 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24228
24229         * class.c: add asserts if we are ever going to scribble over memory.
24230         * socket-io.c: not all systems have AF_IRDA defined.
24231
24232 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
24233
24234         * class.c (class_compute_field_layout): do not consider static
24235         fields to compute alignment
24236
24237 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
24238
24239         * appdomain.c (mono_appdomain_get): impl.
24240         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
24241
24242 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
24243
24244         * icall.c: ignore "file://" prefix when loading an assembly.
24245
24246 2002-01-23  Dick Porter  <dick@ximian.com>
24247
24248         * socket-io.c:
24249         * icall.c:
24250         * Makefile.am: Added socket support
24251
24252 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
24253
24254         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
24255         code back.  This should return the assemblies that are loaded by
24256         the runtime on behalf of an application domain. 
24257
24258         The current implementation is still broken, it just returns every
24259         assembly loaded, but until we get real applications domain this
24260         will do.
24261
24262 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
24263
24264         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
24265         AppDomain object.
24266
24267 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
24268
24269         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
24270         the mono_class_from_name lookup.
24271         (ves_icall_get_parameter_info): ditto.
24272         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
24273         method.
24274         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
24275
24276 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24277
24278         * class.c: load also nested classes on class init.
24279         System.ValueType instance methods gets passed boxed
24280         values, unless methods in derived classed that get a pointer to the
24281         data.
24282         * icall.c: use better name parsing code in GetType().
24283         * image.c, image.h: add mono_image_loaded ().
24284         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
24285         * reflection.c, reflection.h: added mono_reflection_parse_type().
24286
24287 2002-01-22  Veronica De Santis <veron78@interfree.it>
24288
24289         * icall.c : Added mapping of internal calls for Manual and Auto reset events
24290         * threads.c : Added the implementation of internal calls for events
24291         * threads.h : Added prototypes of internal calls for events
24292         
24293 2002-01-21  Radek Doulik  <rodo@ximian.com>
24294
24295         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
24296
24297 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
24298
24299         * class.c (mono_class_init): set min_align to 1 (instead of 0)
24300         (mono_class_value_size): use min_align
24301
24302 2002-01-20  Dick Porter  <dick@ximian.com>
24303
24304         * threads.h:
24305         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
24306         so it compiles on w32.
24307
24308 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
24309
24310         * metadata.c (mono_type_stack_size): impl.
24311
24312         * class.c (mono_class_get_field): impl. memberref token
24313
24314 2002-01-16 Veronica De Santis <veron78@@interfree.it>
24315
24316         * icall.h : Added the internal calls mapping for CreateMutex_internal
24317                     and ReleaseMutex_internal.
24318         * threads.h : Added the prototype of mutexes internal calls.
24319         * threads.c : Added the implementations of mutexes internal calls.
24320
24321 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24322
24323         * metaparse.h: removed unused file.
24324         * reflection.c, reflection.h: added stream_data_align () function 
24325         to align data in streams and keep stream aligned. Add support for
24326         exception support in method headers.
24327
24328 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
24329
24330         * unicode.c: make iconv_convert () return the number of bytess written
24331         in the output buffer.
24332
24333 2002-01-15  Dick Porter  <dick@ximian.com>
24334         * threads.c: Make the runtime's idea of infinite timeouts coincide
24335         with the class library's
24336
24337         Fix a particularly egregious bug in mono_thread_cleanup(). That
24338         code was so utterly bogus it must have been written on a Monday.
24339
24340 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24341
24342         * reflection.h: add subtypes field to TypeBuilder.
24343         * reflection.c: encode constants for literal fields.
24344         Handle subtypes. Fix user string token (and add a zero byte)
24345         at the end.
24346         
24347 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
24348
24349         * class.c (mono_class_init): bug fix: assign slot numbers for
24350         abstract methods.
24351
24352 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24353
24354         * reflection.c: don't try to output a code RVA for abstract methods.
24355         Small fixes for method header format. Output parameter info to the
24356         ParamDef table. Save method overriding info to MethodImpl table.
24357         Fix property support. Allow typedef.extends to be a type in the
24358         building assembly.
24359         * verify.c: fix off-by-one error.
24360
24361 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
24362
24363         * class.c: fix mono_class_from_mono_type () for szarray types.
24364         Remove unused cache check in mono_class_from_type_spec().
24365         * icall.c: *type_from_name () functions handle simple arrays and byref.
24366         * reflection.c: handle byref and szarray types. Handle methods without
24367         body (gets P/Invoke compilation working). Handle types and fields in
24368         get_token ().
24369         * reflection.h: add rank to MonoTypeInfo.
24370
24371 2002-01-10  Dick Porter  <dick@ximian.com>
24372
24373         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
24374         internal calls
24375
24376 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24377
24378         * icall.c: initialize class in type_from_handle ().
24379         Loop also in parent classes for get_method ().
24380         * reflection.c: properly encode class and valuetype types.
24381         Start on encoding TypeBuilder types. Handle fieldrefs.
24382         Use correct length when registering a user string.
24383         Handle ConstructorBuilder and MonoMethod in get_token ().
24384         Make mono_type_get_object () aware of cached types.
24385         * object.c: back out change to mono_string_new ().
24386
24387 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
24388         * object.c: mono_string_new should return a NULL when the string 
24389         passed in is NULL -- not try to deference it.
24390         
24391 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
24392
24393         * icall.c: hack to make IsSubType work for TypeBuilders.
24394         * reflection.c: emit constructors before methods.
24395         Retrieve param names in mono_param_get_objects().
24396
24397 2002/01/05  Nick Drochak  <ndrochak@gol.com>
24398
24399         * Makefile.am: fix list of headers and sources so automake 1.5
24400         doesn't complain. Removed \# at end of list.
24401
24402 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24403
24404         * reflection.c: get token for a method ref. Set return type of
24405         constructor to void.
24406         * loader.c: debug message.
24407         * class.c: typo fix.
24408
24409 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
24410
24411         * icall.c: fix array init with rank > 1. FindMembers
24412         loops in parent class as well.
24413         * image.c: do not insert nested types in name cache.
24414         * reflection.c: warning fix.
24415         * reflection.h: add override method (for interface impl).
24416
24417 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
24418
24419         * metadata.c: fix customattr decoding.
24420
24421 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
24422
24423         * rawbuffer.cs: Added native Win32 implementation, avoids using
24424         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
24425
24426 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
24427
24428         * class.c: make the low-level routines handle the cache.
24429
24430 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
24431
24432         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
24433
24434 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
24435
24436         * class.c: fix mono_array_element_size() for objects.
24437         * class.h, class.c: add properties to MonoClass and load them
24438         at init time.
24439         * icall.c: check with isinst() when assigning a value to an array
24440         instead of requiring the classes to match exactly.
24441         Implemented icall for System.Type::GetType().
24442         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
24443         enums. Handle bindingflags when looking for methods and fields.
24444         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
24445         and mono_metadata_methods_from_property().
24446         * reflection.h, reflection.c: added structures for propreties,
24447         parameters and enums. Implemented mono_property_get_object() and
24448         mono_param_get_objects().
24449
24450 2001-12-18  Dick Porter  <dick@ximian.com>
24451
24452         * file-io.c: Use mono_string_to_utf16() instead of
24453         mono_string_chars()
24454
24455         * object.c: Added mono_string_to_utf16(), which copies the non
24456         NULL-terminated MonoString into a new double-null-terminated
24457         buffer.
24458
24459 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
24460
24461         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
24462
24463 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
24464
24465         * file-io.c: raise exceptions if handle is invalid.
24466
24467 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
24468
24469         * assembly.c: yet another check for mscorlib.
24470         * class.c, class.h: load nesting info for classes.
24471         * icall.c: many new functions to support the Reflection classes.
24472         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
24473         * reflection.h, reflection.c: mono_image_create_token(),
24474         mono_assembly_get_object(), mono_type_get_object(),
24475         mono_method_get_object(), mono_field_get_object(): methods to return
24476         objects that parallel the C representation of assemblies, types,
24477         methods, fields.
24478
24479 2001-12-11  Dick Porter  <dick@ximian.com>
24480
24481         * icall.c:
24482         * file-io.c: Internal calls for file IO.
24483
24484 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
24485
24486         * tabledefs.h: missing FileAttributes.
24487         * verify.h, verify.c: use is_valid_string () to simplify and check for
24488         valid strings more correctly. Fix warnings and speeling.
24489         Check more tables: Filed, File, ModuleRef, StandAloneSig.
24490         Check code: branches, maxstack, method calls.
24491
24492 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
24493
24494         * object.c (mono_object_allocate): removed static, so that the jit
24495         can allocate value types.
24496
24497         * icall.c (ves_icall_System_DateTime_GetNow): impl.
24498
24499 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24500
24501         * class.c: init enum types right away and register the
24502         token->MonoClass map in mono_class_create_from_typedef ().
24503         * verify.h, verify.c: first cut of the verifier.
24504         * pedump.c: add --verify switch to verify metadata tables.
24505         * tabledefs.h: add some missing enums.
24506
24507 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
24508
24509         * class.c (mono_install_runtime_class_init): impl.
24510         (mono_class_init): renamed mono_class_metadata_init to
24511         mono_class_init, also removed the metadata_inited flag
24512
24513         * object.c (mono_object_isinst): use faster algorithm
24514
24515 2001-11-30  Radek Doulik  <rodo@ximian.com>
24516
24517         * mono-endian.h: reverted last change
24518         added function prototypes
24519
24520         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
24521         add mono-endian.c back
24522
24523         * mono-endian.c: returned back, as Paolo pointed out, it's needed
24524         for unaligned access, I've mistaked it with endianess. I am
24525         sorry.
24526         (mono_read16): fix reverted endianess
24527         (mono_read64): ditto
24528         (mono_read32): ditto
24529
24530 2001-11-30  Dick Porter  <dick@ximian.com>
24531
24532         * exception.c: Implement mono_exception_from_name()
24533
24534 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24535
24536         * metadata.h, metadata.c: remove params_size and locals_size and their
24537         calculation from the metadata code: they are only usefult to the
24538         interp.
24539
24540 2001-11-29  Radek Doulik  <rodo@ximian.com>
24541
24542         * object.c (mono_ldstr): swap bytes here, it's probably not the
24543         best place, but works for me now, I'll redo it once I know mono
24544         better, also note that I add PROT_WRITE and don't reset back, also
24545         note that it's only affects big endians, so x86 should be OK
24546
24547         * mono-endian.h (read16): use just glib macros for both endians
24548
24549         * mono-endian.c: removed as glib macros are used in in
24550         mono-endian.h so we don't need to care about endianess for read
24551         macros as glib does that for us already
24552
24553 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
24554
24555         * class.h, class.h: take minimum alignment into consideration so
24556         that the fields of a class remain aligned also when in an array.
24557
24558 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24559
24560         * loader.h, loader.c: add mono_method_get_param_names().
24561         * class.c: 0-init class fields.
24562
24563 2001-11-26  Dick Porter  <dick@ximian.com>
24564
24565         * icall.c:
24566         * threads-types.h:
24567         * threads.c: New file that handles System.Threading on all platforms
24568
24569         * object.c: 
24570         * object.h: Remove the synchronisation struct from MonoObject,
24571         replace it with a pointer that gets initialised on demand
24572
24573         * Makefile.am: Replace all the system-specific threading code with
24574         a single file that uses the new wrapper library
24575
24576 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
24577
24578         * class.c, class.h: add mono_install_trampoline() so that the runtime
24579         can register a function to create a trampoline: removes the ugly
24580         requirement that a runtime needed to export arch_create_jit_trampoline.
24581         * object.h, object.c: added mono_install_handler() so that the runtime
24582         can install an handler for exceptions generated in C code (with
24583         mono_raise_exception()). Added C struct for System.Delegate.
24584         * pedump.c: removed arch_create_jit_trampoline.
24585         * reflection.c: some cleanups to allow registering user strings and
24586         later getting a token for methodrefs and fieldrefs before the assembly
24587         is built.
24588         * row-indexes.h: updates and fixes from the new ECMA specs.
24589
24590 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
24591
24592         * class.h, class.c: add enum_basetype field to MonoClass.
24593         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
24594         to get index in the constant table reated to a field, param or
24595         property.
24596         * reflection.h, reflection.c: handle constructors. Set public-key and
24597         version number of the built assembly to 0.
24598         * row-indexes.h: update from new ECMA spec.
24599
24600 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24601
24602         * class.h, class.c: add a max_interface_id to MonoClass.
24603         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
24604         since it's used to do that. Added mono_type_type_from_obj().
24605         Make GetType() return NULL instead of segfaulting if the type was not
24606         found. Handle simple arrays in assQualifiedName.
24607         * object.h: add a struct to represent an Exception.
24608         * reflection.c: output call convention in method signature.
24609         Add code to support P/Invoke methods and fixed offsets for fields.
24610
24611 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
24612
24613         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
24614         the value.
24615         * icall.c: use mono_array_addr instead of array->vector: fixes the
24616         reflection image writing.
24617         * reflection.c: init call convention byte to 0 in method signature.
24618         Encode the property signature. Don't output property-related methods
24619         twice. Really process the properties for a type (don't cast a field to
24620         a property, my mom always told me that).
24621         Fix 64 bit issues in pointer alignment in a different and more
24622         readable way.
24623
24624 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
24625
24626         * loader.h: Removed type class from MonoDefaults, added monotype
24627
24628         * loader.c: Loaded MonoType, removed loading of Type
24629
24630         * icall.c (my_mono_new_object): Now returns a System.MonoType,
24631         and fills in System.Type._impl with a RuntimeTypeHandle rather
24632         than the actual MonoClass *
24633
24634         (ves_icall_type_from_handle): change from type_class to
24635         monotype_class
24636
24637         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
24638         implemented
24639
24640         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
24641         implemented
24642
24643         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
24644
24645         (ves_icall_System_Reflection_Assembly_GetType): implemented
24646
24647         (ves_icall_System_MonoType_assQualifiedName): implemented
24648
24649         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
24650
24651 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
24652
24653         * assembly.c (mono_assembly_open): Implement a cache for the
24654         assemblies. 
24655
24656         (mono_assembly_close): only destroy the assembly when the last
24657         reference is gone.
24658         
24659 2001-11-09  Dick Porter  <dick@ximian.com>
24660
24661         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
24662
24663 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
24664
24665         * class.c (mono_class_metadata_init): bug fix: compute the right slot
24666
24667 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24668
24669         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
24670         from Martin Weindel.
24671         * object.h: add mono_string_chars ().
24672
24673 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
24674
24675         * reflection.c (build_compressed_metadata): Eliminates warnings
24676         and uses 64-bit clean code.
24677
24678         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
24679         (mono_type_equal): Change signature to eliminate warnings.
24680
24681 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24682
24683         * icall.c, loader.c: remove the internalcall array constructors.
24684         Changes to match the new MonoArray structure.
24685         * object.h, object.c: an array object doesn't allocate an extra
24686         vector. Add mono_array_new_full () to create jagged arrays easily.
24687
24688 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24689
24690         * metadata.h, metadata.c: add mono_metadata_field_info () to
24691         retreive all the info about a field from vairous tables.
24692         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
24693         * class.h, class.c: augment MonoClassField with more info.
24694         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
24695         policy and load a field's RVA if needed.
24696
24697 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
24698
24699         * class.c (mono_class_metadata_init): create a trampoline for all
24700         virtual functions instead of actually compiling them.
24701
24702 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
24703
24704         * class.h, class.c: include name in MonoClassField.
24705         * class.c: fix fundamental type of System.Object and System.String.
24706         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
24707         tokens in ldtoken.
24708         * icall.c: remove internalcalls for the Reflection stuff that is now
24709         done in C# code.
24710         * loader.c: mono_field_from_memberref () implementation.
24711         * mono-endian.c: thinko (s/struct/union/g).
24712         * object.c, object.h: make the mono_string_* prototypes actually use
24713         MonoString instead of MonoObject.
24714         * reflection.c, reflection.h: updates for changes in the reflection
24715         code in corlib: we use C structures that map to the actual C# classes.
24716         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
24717         fat method header if needed and use the info from the ILGenerator for
24718         methods. Handle fields in types. Misc fixes.
24719
24720 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
24721
24722         * class.c (mono_class_metadata_init): bug fix: always allocate
24723         space for static class data
24724
24725 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
24726
24727         * class.c (mono_compute_relative_numbering): use relative
24728         numbering to support fast runtime type checks.
24729
24730 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
24731
24732         * class.c (mono_class_create_from_typeref): added debugging output
24733         to print class name when MonoDummy is returned instead of real class
24734
24735 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
24736
24737         * class.c (mono_class_metadata_init): interface offset table now
24738         contains pointers into the vtable - this is more efficient for the jit
24739
24740 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
24741
24742         * class.c (mono_class_metadata_init): use a temporary vtable (the
24743         old algorithm only worked for the interpreter, but not for the jit)
24744
24745 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
24746
24747         * loader.c (method_from_memberref): use mono_class_get to get the
24748         class of an array instead of using System.Array directly.
24749         (mono_get_method): also add MEMBERREF methods to the method cache
24750         which usefull for arrays.
24751
24752 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
24753
24754         * pedump.c (arch_compile_method): added to compute vtable entry
24755
24756         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
24757         number of interfaces.
24758         
24759         * class.h: merged MonoArrayClass into MonoClass
24760
24761         * class.c (mono_class_create_from_typedef): compute the vtable size and
24762         allocate space to include the vtable inside MonoClass
24763         (mono_class_metadata_init): initialize the vtable
24764
24765 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
24766
24767         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
24768         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
24769         * image.c: endian fixes by Laurent Rioux.
24770         * object.h, object.c: rename MonoStringObject to MonoString and
24771         MonoArrayObject to MonoArray. Change some function names to conform to
24772         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
24773         guint16* as first argument, so don't use char*.
24774         Provide macros to do the interesting things on arrays in a portable way.
24775         * threads-pthread.c: updates for the API changes and #include <sched.h>
24776         (required for sched_yield()).
24777         * icall.c: updates for the API changes above.
24778         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
24779         platforms that need them.
24780
24781 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24782
24783         * class.c: set the correct type for all the fundamental
24784         type when loading the class.
24785
24786 2001-10-05  Dick Porter  <dick@ximian.com>
24787
24788         * threads-pthread.c (pthread_mutex_timedlock): Simple
24789         compatibility version for C libraries that lack this call.
24790
24791 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24792
24793         * class.c: MonoTypes stored in MonoClass are stored as
24794         fundamental MonoTypes when the class represents a
24795         fundamental type (System.Int32, ...).
24796         The TypeHandle return by ldtoken is a MonoType*.
24797         * icall.c: ves_icall_get_data_chunk () write out all the
24798         PE/COFF stuff. Implement ves_icall_define_method (),
24799         ves_icall_set_method_body (), ves_icall_type_from_handle ().
24800         * image.c: properly skip unknown streams.
24801         * loader.h, loader.c: add type_class to mono_defaults.
24802         * metadata.c, metadata.h: export compute_size () as
24803         mono_metadata_compute_size () with a better interface.
24804         Typo and C&P fixes.
24805         * pedump.c: don't try to print the entry point RVA if there is no entry point.
24806         * reflection.c, reflection.h: many cleanups, fixes, output method
24807         signatures and headers, typedef and typeref info, compress the metadata
24808         tables, output all the heap streams, cli header etc.
24809         * row-indexes.h: typo fixes.
24810
24811 2001-10-04  Dick Porter  <dick@ximian.com>
24812
24813         * object.h: Add a synchronisation mutex struct to MonoObject
24814
24815         * object.c (mono_new_object): Initialise the object
24816         synchronisation mutexes
24817
24818         * icall.c: System.Threading.Monitor internal calls
24819         
24820         * threads-pthread.h:
24821         * threads-pthread.c: System.Threading.Monitor internal calls
24822
24823         * threads-types.h: New file, includes the system-specific thread
24824         structures
24825         
24826         * threads-pthread-types.h:
24827         * threads-pthread-types.c: New files, handle pthread-specific
24828         synchronisation types
24829
24830         * threads-dummy-types.h: 
24831         * threads-dummy-types.c: New files of dummy support for
24832         thread-specific types
24833
24834         * metadata.c:
24835         * image.c:
24836         * pedump.c: include mono-endian.h not endian.h
24837         
24838         * Makefile.am: More threads files.
24839         Name mono-endian.h not endian.h
24840
24841 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
24842
24843         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
24844         stuff and implement a few more bits.
24845         * icall.c: a field needs to be dereferenced twice. Do not use the same
24846         name for two variables in the same scope.
24847         * image.c, image.h: cleanups.
24848
24849 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
24850
24851         * class.c (mono_class_metadata_init): bug fix: compute the right size
24852
24853 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
24854
24855         * icall.c: implemented some of the Reflection internalcalls.
24856         * image.c, image.h: start writing out the PE/COFF image.
24857         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
24858         that does the reverse than decode_blob_size ().
24859         * object.c: use mono_metadata_encode_value (). Move here
24860         temporary implementation of mono_string_to_utf8 ().
24861         * rawbuffer.c: make malloc_map static.
24862
24863 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24864
24865         * metadata.c: fix type comparison for arrays.
24866         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
24867         Added a couple of new classes to monodefaults.
24868         * icall.c: added a couple of Reflection-related internalcalls.
24869         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
24870         Added a byval_arg MonoType to MonoClass.
24871
24872 2001-09-28  Dick Porter  <dick@ximian.com>
24873
24874         * icall.c:
24875         * threads-pthread.h: 
24876         * threads-pthread.c: Implemented internal calls for
24877         LocalDataStoreSlot operations.  Applied mutexes around all shared
24878         data.  Reworked the thread creation and Start() operations to
24879         avoid a race condition.
24880         
24881         * threads-dummy.h:
24882         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
24883
24884 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
24885
24886         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
24887
24888 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
24889
24890         * class.c, loader.c: warn and return NULL instead of erroring out.
24891         * icall.c: added System.AppDomain::getCurDomain().
24892         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
24893
24894 2001-09-25  Dick Porter  <dick@ximian.com>
24895
24896         * threads-pthread.h:
24897         * threads-pthread.c: Implemented timed thread joining and added
24898         System.Threading.Thread::Join_internal internal call
24899
24900         * icall.c: Added System.Threading.Thread::Join_internal internal call
24901
24902         * threads-dummy.h:
24903         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
24904
24905 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
24906
24907         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
24908         mono_string_intern () to implement the semantics of the ldstr opcode
24909         and the interning of System.Strings.
24910         * icall.c: provide hooks to make String::IsIntern and String::Intern
24911         internalcalls.
24912
24913 2001-09-23  Dick Porter  <dick@ximian.com>
24914
24915         * threads-dummy.c: 
24916         * threads-dummy.h: New files of dummy threading routines
24917
24918         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
24919         support code based on system specifics
24920
24921         Rename PTHREAD_LIBS to THREAD_LIBS
24922         
24923 2001-09-23  Dick Porter  <dick@ximian.com>
24924
24925         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
24926         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
24927         internal calls.
24928         (mono_thread_init): Set up a Thread object instance to return when
24929         the main thread calls Thread.CurrentThread
24930         (mono_thread_cleanup): Wait for all subthreads to exit
24931
24932         * icall.c: New internal calls for System.Threading.Thread::Sleep
24933         (including Schedule) and CurrentThread
24934
24935         * threads.h: New file, to insulate thread-specific stuff from the
24936         rest of the code
24937
24938 2001-09-21  Dick Porter  <dick@ximian.com>
24939
24940         * threads-pthread.h: 
24941         * threads-pthread.c: New file, for handling pthreads-style
24942         threading support.  Start() now starts a new thread and executes
24943         the ThreadStart delegate instance.
24944
24945         * icall.c: Added the internalcall for
24946         System.Threading.Thread::Start_internal
24947
24948         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
24949
24950 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
24951
24952         * loader.c: work around the different signatures for delegates
24953         constructors csc generates in compiled code vs the ones compiled in mscorlib.
24954
24955 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
24956
24957         * class.h, class.c: add mono_class_get_field_from_name ().
24958         * *: Fix C comments and other ANSI C issues.
24959
24960 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
24961
24962         * endian.h, assembly.c: fix some endianness issues.
24963
24964 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
24965
24966         * loader.h, load.c: add delegate_class to mono_defaults.
24967         Handle runtime provided methods in mono_get_method ().
24968
24969 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
24970
24971         * loader.c (mono_get_method): use pinvoke for internal call
24972
24973         * icall.c: use pinvoke for internal call
24974
24975         * loader.c (method_from_memberref): set the method name
24976
24977 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
24978
24979         * metadata.c: help the compiler generate better code for
24980         mono_class_from_mono_type ().
24981
24982 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
24983
24984         * class.c (mono_class_metadata_init): delayed computing of the
24985         class size to mono_class_metadata_init ()
24986
24987 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
24988
24989         * class.c, class.h: add an interfaces member to MonoClass.
24990         * image.c, image.h: add assembly_name field to MonoImage
24991         from the assembly table.
24992         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
24993
24994 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24995
24996         * class.c: Handle Array in mono_class_from_mono_type ().
24997         * metadata.c, pedump.c: some endian fixes.
24998
24999 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
25000
25001         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
25002         * metadata.c: fix small problem introduced with the latest commit.
25003
25004 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
25005
25006         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
25007         We don't need a MonoMetadata pointer anymore to compare signatures in
25008         mono_metadata_signature_equal (), update callers.
25009         Reduced memory usage an number of allocations for MonoMethodHeader and
25010         MonoMethodSignature.
25011
25012 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
25013
25014         * metadata.c: added compare for szarray.
25015
25016 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
25017
25018         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
25019         and add a couple more types to it and mono_defaults. Give an hint on
25020         classes that need implementing in our corlib and are referenced
25021         in mscorlib.
25022
25023 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
25024
25025         * class.h, class.c: keep track if a class is also an Enum.
25026         * loader.c: Implement a couple more types for use in libffi
25027         marshalling. Gives better diagnostics when failing to dlopen
25028         a library. Set method->klass for P/Invoke methods, too.
25029
25030 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
25031
25032         * class.c, class.h: add a MonoType this_arg to MonoClass that
25033         represents a pointer to an object of the class' type that
25034         can be used by the interpreter and later the type cache.
25035         Add best guess alignment info for valuetype objects.
25036
25037 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
25038
25039         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
25040         into MonoType: one less level of indirection and allocation and
25041         simplifies quite a bit of code. Added cache for MonoTypes that are
25042         used frequently, so that we don't need to allocate them all the time.
25043
25044 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
25045
25046         * class.c (mono_class_create_from_typedef): System.Enum is also a
25047         value type, although it does not derive from System.ValueType
25048         (maybe a bug in the ms compiler?)
25049
25050         * metadata.c (mono_type_size): return the right size for value types
25051
25052         * loader.c (mono_get_method): only initialize method header if not abstract
25053
25054         * class.c (mono_class_from_mono_type): use mono_default values. 
25055
25056 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
25057
25058         * *: use MonoClass pointers instead of <type_tokens>
25059         
25060         * class.h: new flag: metadata_inited.
25061
25062         * class.c (mono_class_metadata_init): impl.
25063         (mono_class_instance_size): impl.
25064         (mono_class_data_size): impl.
25065
25066 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
25067
25068         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
25069         MonoClass now has the name and name_space fields. 
25070         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
25071         mono_get_method () takes and optional MonoClass as argument.
25072         Removed mono_typedef_from_name() and added mono_class_token_from_name()
25073         instead that takes advantage of a map from class names to typedef
25074         tokens in MonoImage.
25075
25076 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
25077
25078         * metadata.c: zero is not a valid alignment boundary.
25079         Merge MONO_TYPE_VOID in default decoding code.
25080
25081 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
25082
25083         * image.h: merged MonoMetadata into MonoImage
25084
25085         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
25086         identify the type of elements.
25087
25088 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
25089
25090         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
25091         * cil-coff.h: split MonoMSDOSHeader and add size info.
25092         * image.c: add some consistency checks.
25093         * metadata.c: fix row size computation: one programmer
25094         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
25095         add explanation for the locator routine.
25096         Fix decoding of size in method header.
25097         
25098 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
25099
25100         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
25101         (g_concat_dir_and_file): Bring g_concat_dir_and_file
25102         function from gnome-libs.  This uses the right path separator
25103         based on the OS, and also works around a bug in some systems where
25104         a double slash is not allowed. 
25105         (default_assembly_name_resolver): Use g_concat_dir_and_file
25106         (mono_assembly_open): ditto.
25107
25108 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
25109
25110         * metadata.c (mono_metadata_signature_equal): impl.
25111
25112         * *: void is now a realy MonoType (instead of using NULL)
25113         
25114         * metadata.c (do_mono_metadata_parse_type): use
25115         mono_metadata_parse_type to parse void value.
25116
25117 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
25118
25119         * metadata.c, metadata.h: in the signature and method header store
25120         only the space required for holding the loca vars and incoming arguments.
25121
25122 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
25123
25124         * metadata.c (do_mono_metadata_parse_type): treat void like any
25125         other type (instead of assigning NULL);
25126
25127 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
25128
25129         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
25130
25131 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
25132
25133         * image.c (do_mono_image_open): added a cache for arrays.
25134
25135 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
25136
25137         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
25138         decode a single column from a row in a metadata table and changes
25139         to take advantage of it in the typedef locator (gives a nice speed up).
25140         Store offset info for function params.
25141
25142 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
25143
25144         * image.h (MONO_IMAGE_IS_CORLIB): removed 
25145
25146 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
25147
25148         * assembly.c: how could mono_assembly_close () had ever worked?
25149         * metadata.c, metadata.h: provide offset info for local vars.
25150         Implement mono_type_size () to take care of alignment as well
25151         as size (it was mono_field_type_size in cli/class.c before).
25152
25153 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
25154
25155         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
25156
25157         * assembly.h (CORLIB_NAME): set to corlib.dll
25158
25159         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
25160
25161 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
25162
25163         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
25164         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
25165         tokentype.h: massive namespace cleanup.
25166
25167 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
25168
25169         * metadata.h, metadata.c: decode exception clauses when parsing method header.
25170
25171 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
25172
25173         * metadata.c (mono_metadata_free_type): added check for type !=
25174         NULL (void) before calling mono_metadata_free_type()
25175
25176 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
25177
25178         * metadata.h, row_indexes.h: added header with enumerations to use
25179         to index in the columns from tables in metadata and to decode coded
25180         tokens: we should start using this instead of embedding magic numbers
25181         all over the code.
25182
25183 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
25184
25185         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
25186         Move metadata_t info from cli_image_info_t to MonoImage, where
25187         it's easily accessible. Changed all the uses accordingly.
25188         Added the method and class caches to MonoImage.
25189         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
25190         and mono_metadata_decode_value () signature to be more consistent
25191         with the other parse functions (and simplify code). Taken advantage
25192         of zero-length array allocation with GCC. Removed reduntant (and
25193         wrong) MonoFieldType struct and use MonoParam instead. Changed
25194         mono_metadata_parse_field_type () to use common code for parsing.
25195         Added mono_metadata_typedef_from_field () and
25196         mono_metadata_typedef_from_method () to lookup a typedef index from a
25197         field or method token.
25198         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
25199
25200 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
25201
25202         * metadata.c (mono_metadata_parse_field_type): Implement. 
25203         (do_mono_metadata_parse_type): Split engine from
25204         mono_metadata_parse_type, so that we can create smaller structures
25205         for things that just have one pointer to the MonoType (look at
25206         the MonoFieldType)
25207
25208 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
25209
25210         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
25211         as Jan Gray found out, it is incorrect. 
25212
25213 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
25214
25215         * assembly.c: Implement asssembly loading.  This loads an image
25216         and loads all the referenced assemblies.  Come to think of it, we
25217         could always do lazy loading of the assemblies. 
25218
25219         * image.c (mono_image_open): Keep loaded images in a hashtable.
25220
25221         * image.h (MonoImage): Add reference count.
25222
25223 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
25224
25225         * assembly.c (mono_assembly_open): Keep track of the file name in
25226         case the assembly has no ASSEMBLY table.
25227
25228         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
25229         from get.c here.
25230
25231 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
25232
25233         * metadata.c, metadata.h: decode local vars in method header
25234         parse function. Change callers accordingly.
25235
25236 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
25237
25238         * metadata.h, cil-coff.h: protect against multiple inclusion.
25239         Added some new structures to hold information decoded from metadata:
25240         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
25241         and relevant decoding/free functions.
25242         * metadata.c: implement decoding functions. Add warning for out of bounds
25243         index in mono_metadata_locate(). Implement mono_get_method () to retreive
25244         all the info about a method signature and invocation. Remove check on
25245         uninitialized local var in parse_mh() and fix memory leak.
25246
25247 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
25248
25249         * metadata.h: More macros.
25250
25251         * tokentype.h: New file.
25252
25253 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
25254
25255         * assembly.c: added a consistency check and initialize
25256         some structures with g_new0().
25257         * metadata.c: fixed a couple more bugs in table size computation
25258         and add other checks for out-of bound access to metadata.
25259
25260 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
25261
25262         * metatada.c: fix bugs computing table sizes. Spew a
25263         warning when index in string heap is out of bounds.
25264
25265 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
25266
25267         * metadata.h: Add a couple of macros to manipulate tokens. 
25268
25269 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25270
25271         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
25272         cli_section_tables).
25273
25274 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
25275
25276         * metadata.c (mono_metadata_user_string): New function, provides
25277         access to the UserString heap. 
25278
25279 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
25280
25281         * metadata.c: Add inline documentation.
25282
25283 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
25284
25285         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
25286         files. 
25287
25288 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
25289
25290         * typeattr.h: New file, TypeAttribute flags. 
25291
25292 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
25293
25294         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
25295         mono_assembly_ensure_section): Section loading code.
25296         (load_section_tables): Load the sections.
25297
25298         * mono/metadata/metadata.c (mono_metadata_locate_token,
25299         mono_metadata_locate): Functions to locate the information
25300         definition given a token or a table and an index.
25301         (mono_metadata_compute_table_bases): New.
25302         (compute_size): New function to compute the sizes of the various
25303         tables.
25304
25305         * mono/metadata/metadata.h: Finish listing the different index
25306         types. 
25307
25308         * mono/metadata/pedump.c: Improve to dump new information.
25309
25310 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
25311
25312         * mono/metadata/metadata.c: Entered all the tables matching
25313         Beta2. 
25314
25315         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
25316
25317
25318