forgot license
[mono.git] / mono / metadata / ChangeLog
1 2008-05-05  Robert Jordan  <robertj@gmx.net>
2
3         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
4         support for value types. See #386415.
5
6         * object.c: comments.
7
8         Code is contributed under MIT/X11 license.
9
10 2008-05-05  Martin Baulig  <martin@ximian.com>
11
12         * debug-mono-symfile.h
13         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
14         for old pre-terrania symbol files.
15
16 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
17
18         * mono-config.c: Add ppc64 architecture.
19
20         Code is contributed under MIT/X11 license.
21
22 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
23
24         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
25           PPC64 uses function descriptors as well.
26
27         Code is contributed under MIT/X11 license.
28
29 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
30
31         * object.c (compute_class_bitmap): Ignore literal static fields.
32
33         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
34         var has an invalid format.
35         (describe_ptr): Add some sanity checks for the vtable.
36         (add_nursery_frag): Clear unused nursery fragments.
37         (major_collection): Clear all remaining nursery fragments.
38
39 2008-05-03  Robert Jordan  <robertj@gmx.net>
40
41         * image.c, metadata-internals.h: add thunk_invoke_cache.
42
43         * marshal.c, marshal.h: implement
44         mono_marshal_get_thunk_invoke_wrapper ().
45
46         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
47
48         Code is contributed under MIT/X11 license.
49
50 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
51
52         * verify.c (do_leave): Empty the stack.
53
54 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
55
56         * class.c (mono_class_is_assignable_from): Variance
57         doesn't work between reference and value types. For example,
58         given type C<T+>, C<int32> is not assignable to C<object>.
59         Break the argument checking loop on first error. 
60
61 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
62
63         * icall.c : base64_to_byte_array() needs some more strict
64           check for sequence of '=' characters. Patch by Santa
65           Marta (http://deee.g.hatena.ne.jp/santamarta).
66
67           Contributed under MIT/X11 license.
68           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
69
70 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
71
72         * domain.c: Disable LoadLibrary support to fix Win32 build.
73
74         Code is contributed under MIT/X11 license.
75
76 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
77
78         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
79         to help with cache behaviour.
80
81 2008-05-01  Miguel de Icaza  <miguel@novell.com>
82
83         * appdomain.c (mono_domain_from_appdomain): Add new accessor
84         method. 
85
86 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
87
88         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
89
90 2008-05-01  Dick Porter  <dick@ximian.com>
91
92         * process.c (process_get_fileversion): Only pass 16 bits of
93         language ID to VerLanguageName.  Fixes bug 381204.
94
95 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
96
97         * verify.c (mono_method_verify): Fix the comparison
98         operator for code bounds check.
99
100 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
101
102         * verify.c (mono_method_verify): Check the bounds of
103         all access of the code array.
104
105 2008-04-29  Kornél Pál  <kornelpal@gmail.com>
106
107         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
108
109 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
110
111         * image.c (mono_image_strong_name_position): Fix return value when the rva is
112         not valid.
113
114 2008-04-28  Kornél Pál  <kornelpal@gmail.com>
115
116         * loader.c (mono_get_method_from_token, mono_method_signature): Add
117         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
118         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
119         fixup main EXE images when using mono.exe for mixed-mode assembly support.
120         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
121         mono_runtime_load.
122         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
123         runtime initialization from metadata.
124         * assembly.c: Remove obsolete ceGetModuleFileNameA.
125         (mono_set_rootdir): Use mono_get_module_file_name.
126         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
127         handles.
128         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
129         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
130         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
131         MonoCLIImageInfo. Add support for module handles.
132         (load_cli_header): Update mono_cli_rva_image_map signature.
133         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
134         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
135         (mono_image_rva_map): Add support for module handles.
136         (mono_image_ensure_section_idx): Add support for module handles.
137         (mono_image_close): Add support for module handles.
138         (do_load_header): Add support for module handles.
139         (mono_image_open_from_module_handle): New function for internal use.
140         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
141         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
142         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
143         handles.
144         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
145         * image.h: Add mono_image_fixup_vtable.
146         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
147         support.
148         * coree.h: New file.
149         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
150         unsupported native code.
151         (mono_marshal_set_callconv_from_modopt): New function splitted from
152         mono_marshal_get_managed_wrapper.
153         (mono_marshal_get_managed_wrapper): Use
154         mono_marshal_set_callconv_from_modopt.
155         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
156         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
157         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
158         that results in a deadlock when the runtime is loaded in _CorDllMain.
159         * Makefile.am: Add coree.c and coree.h.
160
161         Contributed under MIT/X11 license.
162
163 2008-04-28  Mark Probst  <mark.probst@gmail.com>
164
165         * generic-sharing.c: Search for type arguments in array element
166         types as well.
167
168 2008-04-28  Mark Probst  <mark.probst@gmail.com>
169
170         * class-internals.h, generic-sharing.c: New, small runtime generic context.
171
172         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
173
174         * object.c: Don't setup the RGCTX when the vtable is created,
175         because we're setting it up lazily now.
176
177 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
178
179         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
180         64 bit support.
181
182 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
183
184         * verify.c (verify_class_for_overlapping_reference_fields): 
185         If class is under fulltrust allow reference types to overllap
186         if they have the same RVA.
187
188 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
189
190         * pedump.c: Added new flag valid-only, that makes the verifier
191         behaves just like --security=validil. It won't fail type load
192         due to unverifiable restrictions.
193
194 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
195
196         * class-internals.h (struct MonoMethod): Added a verification_success
197         field to cache verifier executions. Reduced MonoMethod:slot size by
198         one bit.
199
200 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
201
202         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
203         instead of a 'vt' argument to save an indirection and to allow these to be used
204         for valuetypes.
205         (scan_vtype): New helper function to scan an area using a gc descriptor.
206         (mono_gc_wbarrier_value_copy): Implement this.
207         (handle_remset): Add support for REMSET_VTYPE.
208         (find_in_remset_loc): Ditto.
209         (mono_gc_base_init): Allow some debugging options to be controlled through the
210         use of the MONO_GC_DEBUG env variable.
211         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
212         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
213
214 2008-04-23  Martin Baulig  <martin@ximian.com>
215
216         * domain.c (mono_domain_create): Move the call to
217         mono_debug_domain_create() down, after allocating the domain id.
218
219 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
220
221         verify.c (verify_class_for_overlapping_reference_fields): Skip
222         static fields while verifying for overlapping fields as they
223         don't matter at all.
224
225 2008-04-23  Marek Habersack  <mhabersack@novell.com>
226
227         * domain-internals.h: added a declaration of
228         mono_make_shadow_copy.
229
230         * assembly.c (mono_assembly_open_full): shadow copying of
231         assemblies moved to here, so that all the assemblies within the
232         application domain's private binary directories can be
233         processed. Fixes bug #380546
234
235         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
236         mono_make_shadow_copy and made non-static. The decision whether
237         to shadow-copy an assembly is made based on its location - it's
238         copied if it's in one of the private application domain binary
239         directories and its different to the target file in the shadow
240         directory. Fixes bug #380546
241
242 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
243
244         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
245
246         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
247         types.
248
249         * reflection.c (mono_image_create_token): Handle 
250         Method/ConstructorOnTypeBuilderInst.
251         (resolve_object): Ditto.
252         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
253         so it can be called from resolve_object. Also handle the case when the inflated
254         class already has its methods setup.
255
256 2008-04-21  Martin Baulig  <martin@ximian.com>
257
258         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
259
260 2008-04-20  Geoff Norton  <gnorton@novell.com>
261
262         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
263         pointer dereference.
264
265 2008-04-15  Marek Habersack  <mhabersack@novell.com>
266
267         * appdomain.c (try_load_from): if IOMAP is in effect, call the
268         portability API to look up the assembly file. Fixes behavior in
269         situations when the application has a bin/ directory, but the
270         assembly search patch refers to Bin/ (and thus the requested file
271         name is Bin/SomeLibrary.dll). Fixes bug #379888
272
273 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
274
275         verify.c (mono_type_is_generic_argument): Extracted this check
276         from a dozen places to here.
277
278         verify.c: Fixed all issues related to boxing generic arguments
279         and their constraints.
280
281 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
282
283         verify.c (mono_class_interface_implements_interface): Fix win32 build.
284
285 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
286
287         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
288         isn't finished yet. Fixes #363447.
289
290 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
291
292         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
293         Fixes #346419.
294
295 2008-04-13  Jb Evain  <jbevain@novell.com>
296
297         * domain.c: update the 2.1 profile versions.
298         Merged from the Moonlight 2 branch.
299
300 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
301
302         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
303         mscorlibs for the non-refonly case as well.
304
305         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
306         in mono_assembly_load_from_full (). Fixes #378924.
307
308 2008-04-11  Geoff Norton  <gnorton@novell.com>
309
310         * icall.c: The global extern environ doesn't exist on Mac.  We
311         need to call NSGetEnviron instead.
312
313 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
314
315         verify.c: Add generic method constraint verification.
316
317 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
318
319         class.c (mono_class_inflate_generic_method_full): Add a long
320         explanation to the is_mb_open hack. Remove the FIXME.
321
322 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
323
324         * verify.c (mono_method_verify): Mark all unknown opcodes
325         as invalid. Mark jmp as unverifiable.
326
327 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
328
329         * verify.c: Add code to do type constraint verification on class instances.
330
331         * verify.c (mono_verifier_verify_class): Use the type constraint 
332         verification code.
333
334 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
335
336         * class.c (mono_class_get_field_default_value): Don't pass cindex
337         as hint to mono_metadata_get_constant_index. The local is not initialized
338         and should contain garbage most of the time. This could only work
339         with a lot of luck.
340
341 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
342
343         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
344
345 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
346
347         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
348
349         * class.c (mono_class_from_generic_parameter): Save the token of the
350         generic param in MonoClass::sizes.generic_param_token.
351
352         * reflection.c (mono_custom_attrs_from_class): If the class type is
353         VAR or MVAR retrieve the attributes of the generic param.
354
355 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
356
357         * class.c (mono_class_init): Do class verification if the verifier
358         is enabled.
359
360 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
361
362         * verify-internal.h: Added mono_verifier_verify_class.
363
364         * verify.c: Added mono_verifier_verify_class. It checks for
365         classes with explicit layout that have overlapping reference fields.
366
367         * pedump.c: Init the verifier state prior to verification. Fixed
368         command line arguments.
369
370 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
371
372         * Makefile.am: Added verify-internals.h, hopefully fix the build.
373
374 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
375
376         * verify-internals.h: Fix a warning.
377
378 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
379
380         * verify-internals.h: New header with the verifier configuration
381         extracted from mini.c.
382
383         * verify.c: Implemented the new functions exported by verify-internals.h.
384
385 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
386
387         * verify.c: Add proper verification of ckfinite.
388
389 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
390
391         * verify.c (do_conversion): Improved error message to something
392         more meanfull.
393
394         * verify.c (check_is_valid_type_for_field_ops): Fix to work
395         with primitive types.
396
397 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
398
399         * verify.c: Added tail prefix checking. Marked icall
400         as unverifible.
401
402 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
403
404         * verify.c: Fix the detection of branches to the middle
405         of an instruction.
406
407 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
408
409         * verify.c: Implemented verification of volatile. and
410         unaligned. prefix. Check if a type is valid after retrieving it.
411
412 2008-04-01  Dick Porter  <dick@ximian.com>
413
414         * process.c (process_get_fileversion): If there's no string block,
415         set the file language to en_US.  Fixes the other new part of bug
416         374600.
417
418 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
419
420         * class.c: New functions mono_method_can_access_field_full and
421         mono_method_can_access_method_full. They perform type visibility
422         and type site check.
423
424         * class-internal.h: Added exported functions.
425
426         * verify.c: Use new functions to implement proper visibility checks.
427
428 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
429
430         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
431
432 2008-03-28  Dick Porter  <dick@ximian.com>
433
434         * process.c (process_get_fileversion): Use the first language ID
435         we see, rather than insisting on an invariant language.  Fixes bug
436         374600.
437
438 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
439
440         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
441         the streams to fix reading of invalid memory later.
442
443         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
444         to ease debugging.
445
446 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
447
448         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
449         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
450
451 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
452         * threads.h: Added MonoThreadManageCallback type and
453         mono_thread_set_manage_callback prototype
454         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
455         (used to store the mono_thread_manage callback).
456         * threads.c: Added mono_thread_set_manage_callback, and handle
457         "MonoThread->manage_callback" in build_wait_tids.
458
459 2008-03-26  Dick Porter  <dick@ximian.com>
460
461         * process.c (process_get_fileversion): Set FileVersionInfo strings
462         to Empty when the resource doesn't have the particular info.
463         Fixes bug 355717.
464
465 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
466
467         * verify.c (mono_method_verify): Proper prefix validation.
468
469 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
470
471         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
472         itself in a separate argument instead of throwing them. Fixes #373448.
473
474         * appdomain.c: Bump corlib version.
475
476 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
477
478         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
479
480 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
481
482         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
483         version macros.
484
485 2008-03-20  Mark Probst  <mark.probst@gmail.com>
486
487         * generic-sharing.c, class-internals.h: Code for putting
488         reflection types into the runtime generic context.
489
490 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
491
492         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
493         Fixes #340662. 
494
495
496 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
497
498         * verify.c (VerifyContext): Added instruction prefix data to the struct.
499
500         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
501
502         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
503
504         * verify.c (do_cast): Let the result value keep the boxed status.
505
506         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
507
508 2008-03-17  Jb Evain  <jbevain@novell.com>
509
510         * reflection.c: when running on a 2.0 runtime, emit
511         unconditionally the #~ header version as 2.0, and the
512         CLI header version as 2.5, for symmetry's sake with csc.
513
514 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
515
516         * class.c: Remove the unused cache_interface_offsets stuff.
517
518         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
519         profiler.c: Fix warnings.
520
521 2008-03-16  Mark Probst  <mark.probst@gmail.com>
522
523         * generic-sharing.c, class-internals.h: Support for putting
524         methods into the runtime generic context.
525
526 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
527
528         * class.c (mono_class_setup_fields): Ignore calls made to this function for
529         classes which are generic instances of not-yet finished typebuilders. Fixes
530         #351172.
531
532         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
533
534 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
535
536         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
537
538         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
539         field, replace it with a hash table in MonoDynamicImage.
540
541         * reflection.c (inflate_mono_method): Access the generic definition object from
542         image->generic_def_objects instead of imethod->reflection_info.
543
544         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
545
546         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
547         
548         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
549         function in reflection.c so it is easier to keep in sync with the dynamic image
550         creation code.
551
552         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
553         mono_image_close ().
554
555 2008-03-15  Mark Probst  <mark.probst@gmail.com>
556
557         * class.c (mono_class_generic_sharing_enabled): Disable generic
558         sharing for all architectures except AMD64 and x86 to fix build.
559
560 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
561
562         * verify.c: Use the generic definition MonoGenericContext when available.
563         Remove code for checking generics instance compatibility in favor of
564         mono_class_is_assignable_from.
565
566 2008-03-14  Mark Probst  <mark.probst@gmail.com>
567
568         * marshal.c, marshal.h, metadata-internals.h, image.c,
569         wrapper-types.h: New wrapper for invoking a shared static method
570         without having to pass the runtime generic context argument.
571
572 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
573
574         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
575
576 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
577
578         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
579         
580         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
581         create a token from a FieldOnTypeBuilderInst.
582         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
583         (resolve_object): Ditto.
584
585         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
586         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
587
588 2008-03-14  Martin Baulig  <martin@ximian.com>
589
590         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
591
592         * debug-mono-symfile.h
593         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
594         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
595
596 2008-03-10  Martin Baulig  <martin@ximian.com>
597
598         * debug-mono-symfile.h
599         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
600         `lexical_block_table_offset'.
601         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
602         `lexical_blocks'.
603         (MonoSymbolFile): Added `version'.
604
605         * mono-debug.h
606         (MonoDebugLexicalBlockEntry): Removed.
607         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
608         `lexical_blocks'.
609
610         * mono-debug.c (mono_debug_add_method): Don't compute lexical
611         blocks here; the debugger now does this internally.
612
613 2008-02-27  Martin Baulig  <martin@ximian.com>
614
615         * object.c (mono_runtime_exec_main): Call
616         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
617         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
618
619 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
620
621         * verify.c (verify_type_compatibility_full): Allow native int to be converted
622         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
623
624 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
625
626         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
627         ldftn with a virtual method.
628
629 2008-03-13  Geoff Norton  <gnorton@novell.com>
630
631         * decimal.c:  Only include memory.h if the platform has it.
632
633 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
634
635         * assembly.c, class.c, metadata-internals.h: make sure public key
636         tokesns are compared in a case-insensitive way. Also, all
637         the lookups in the GAC use a lowercase public key token
638         (gaacutil already does the lowercasing on install). Fixes
639         bug #369541.
640
641 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
642
643         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
644         and return value.
645
646 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
647
648         * image.c: when someone loads a mscorlib from a file, return the
649         currently loaded mscorlib (fixes bug #369253).
650
651 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
652
653         * class.c: handle types with no parents by forcing them to have
654         System.Object as a parent and marking them as broken (this currently
655         allows the first part of bug #369173 to work as well, likely because
656         we don't check for typeload exceptions everywhere yet).
657
658 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
659
660         * class.c: more complete check that types belong to corlib
661         (fixes second part of bug #369173).
662
663 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
664
665         * generic-sharing.c:  Including glib.h for the MSVC builds to define
666           "inline" to "__inline" before including mono-membar.h.
667           
668         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
669           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
670           MSVC builds.
671
672         Contributed under MIT/X11 license.
673
674 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
675
676         * verify.c (do_invoke_method): Remove return type validation.
677
678         * verify.c (do_ret): Do return type validation at return site instead of
679         call site.
680
681 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
682
683         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
684
685         * verify.c: Some todos cleaned and improved a few error messages.
686
687 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
688
689         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
690
691 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
692
693         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
694         system types correctly.
695
696         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
697         function.
698
699 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
700
701         * assembly.c (build_assembly_name): Fix a warning.
702
703 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
704
705         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
706         the called function takes an object type argument. Fixes storing or
707         valuetypes across remoting as well as reducing memory usage.
708         * image.c, metadata-internals.h: remove now unused ldfld_remote and
709         stfld_remote wrapper caches.
710
711 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
712
713         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
714         is not found.
715
716         * reflection.c (mono_image_register_token): New helper function to save
717         a token->object mapping.        
718
719         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
720         managed code.
721
722         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
723         one dimension arrays. Fixes #367670.
724         (mono_reflection_get_type_internal): Ditto.
725
726 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
727
728         * marshal.c: mono_load_remote_field_new() always returns object.
729         so use the proper signature (fixes bug #366445).
730
731 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
732         
733         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
734         add an 'inline_failure' flag instead.
735
736 2008-03-04  Mark Probst  <mark.probst@gmail.com>
737
738         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
739         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
740         contains the location of "this", used for exception handling.
741
742 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
743
744         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
745         their size on all platforms for perf reasons.
746
747 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
748
749         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
750         object-internal.h
751
752         * object-internal.h: Same.
753
754 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
755
756         * reflection.h: Fix the build I just broke.
757
758 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
759
760         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
761         Test if a token is valid, this remove explicit usage of 
762         MonoDynamicImage::tokens from the verifier code.
763
764         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
765
766         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
767         instead of direct access to MonoDynamicImage::tokens.
768
769 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
770
771         * verify.c (token_bounds_check): Fix the build I just broke.
772
773 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
774
775         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
776
777         * verify.c (verifier_load_method): Fixed the errors message.
778
779         * verify.c (mono_method_verify): Fixed a debug message.
780
781 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
782
783         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
784         mono-perfcounters.h, class-internals.h: support for predefined
785         writable counters, query of categories and counters, bugfixes.
786
787 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
788
789         * verify.c (do_refanytype): Verify the refanytype opcode.
790
791         * verify.c (mono_method_verify): Use do_refanytype.
792
793 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
794
795         * verify.c (do_mkrefany): Verify the mkrefany opcode.
796
797         * verify.c (mono_method_verify): Use do_mkrefany.
798
799 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
800
801         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
802         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
803         implementation.
804
805 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
806
807         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
808         the type load exception.
809
810 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
811
812         * verify.c: Added a few FIXME for method signatures
813
814         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
815         of mono_method_get_signature and get vararg call working. Removed unused
816         checks for return value.
817
818         * verify.c (do_refanyval): Verify the refanyval opcode.
819
820         * verify.c (mono_method_verify): Implemented verification of arglist and
821         use do_refanyval.
822
823 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
824
825         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
826         vtypes to marshal.c.
827
828         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
829         it works for AOT as well.
830
831 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
832
833         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
834         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
835         the system time is adjusted.
836
837 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
838
839         * icall.c, icall-def.h: use the new time functions (fixes the
840         non-monotonic behaviour of TickCount).
841
842 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
843
844         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
845         it breaks the build.
846         
847         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
848         cattr is not finished yet.
849
850 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
851
852         * verify.c: Proper token validation for field, method and type.
853
854 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
855
856         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
857
858         * loader.c (method_from_memberref): Generate type load error instead of method missing
859         if the type is not found.
860
861 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
862
863         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
864         some of the conversions caused the generation of a marshal directive exception.
865
866 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
867
868         verify.c: Report which exception should be thrown by the JIT.
869         Added a lot of FIXME notes.
870
871 2008-02-22  Mark Probst  <mark.probst@gmail.com>
872
873         * generic-sharing.c: Runtime generic context slots are not
874         instantiated on init anymore.  Instead, provide function to do the
875         instantiating on demand.
876
877         * class-internals.h: Added vtable to runtime generic context.
878         Macros for encoding direct and indirect slot offsets in one
879         guint32.
880
881 2008-02-21  Mark Probst  <mark.probst@gmail.com>
882
883         * object.c, generic-sharing.c: Moved some generic sharing code
884         from object.c to generic-sharing.c.
885
886         * generic-sharing.c: Added support for extensible runtime generic
887         context.
888
889         * metadata-internals.h: Two new hash tables in MonoImage for
890         extensible runtime generic context support.
891
892         * domain.c: Unregister generic vtables upon domain unloading.
893
894         * image.c: Destroy new hash tables upon image unloading.
895
896         * metadata.c: Unregister generic subclasses upon image unloading.
897
898         * class-internals.h: New data structure for runtime generic
899         context template.  New fields in the runtime generic context for
900         extensible part.
901
902         * Makefile.am: Added generic-sharing.c.
903
904 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
905
906         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
907         there is a pending loader exception, raise it.
908
909         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
910         same.
911
912         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
913         same.
914
915         Fixes #363450.
916
917 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
918
919         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
920
921         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
922         
923         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
924         ref-only requests for compatibility with MS.
925
926 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
927
928         * reflection.c (mono_custom_attrs_from_method): Don't silently
929         return an empty list for generic method instances.
930         (mono_custom_attrs_from_param): Likewise.
931
932 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
933             Raja R Harinath  <harinath@hurrynot.org>
934
935         Fix #354757
936         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
937         * class.c (mono_class_inflate_generic_method_full): Initialize it
938         when a fully-open method is instantiated.
939         * metadata.c (inflated_method_equal, inflated_method_hash): Update
940         to new field.
941         * reflection.c (inflate_mono_method): Don't create a temporary context.
942
943 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
944
945         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
946         Compute correct value, to prepare for imethod->reflection_info going away.
947
948 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
949
950         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
951
952 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
953
954         * verify.c: Implement skip visibility flag.
955
956 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
957
958         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
959         which contains an extra field to tell the kind of exception that should be thrown.
960
961         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
962
963 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
964
965         * loader.c (mono_method_get_param_names): Initialize 'klass' after
966         'method' is updated.
967
968 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
969
970         * class.c (mono_class_layout_fields): Set class->min_align for classes using
971         explicit layout as well. Fixes #360375.
972
973 2008-02-11  Geoff Norton  <gnorton@novell.com>
974
975         * loader.c: Guard and dereference against inflated generic methods
976
977 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
978
979         * class.c: Include Retargetable spec in assembly name.
980         * assembly.c: Always include PublicKeyToken spec in assembly name
981         (with value "null" if assembly is not signed), and include
982         Retargetable spec.
983         * icall-def.h: Added icall for Assembly.get_fullname.
984         * icall.c: Added icall returning the fullname of an assembly.
985
986 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
987
988         * class.c (mono_class_setup_vtable_general): Add a missing call to
989         mono_class_setup_methods () which is needed in the AOT case.
990
991 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
992
993         * verify.c (mono_type_get_stack_name): Added. Return the name for the
994         stack type of the given MonoType.
995
996         * verify.c (verify_type_compatibility_full): Handle the void type.
997
998         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
999         way stack merging works.
1000
1001         * verify.c (store_local): Improved verification message.
1002
1003         * verify.c (do_branch_op): If the merging is invalid, the method
1004         is unverifiable and not invalid. Improved error message.
1005
1006         * verify.c (merge_stacks): Properly merge a boxed valuetype and
1007         a reference type diferent than System.Object. Improved error
1008         message.
1009
1010 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
1011
1012         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
1013
1014         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
1015         type of an enum even if the argument is byref.
1016
1017         * verify.c: Replace all explicit uses of enumtype and enum_basetype
1018         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
1019
1020         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
1021
1022         *verify.c (verify_type_compatibility_full): Make enum types
1023         compatible with their base types.
1024
1025         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
1026         types are compatible for the special case of a boxed valuetype and
1027         System.Object.
1028
1029         * verify.c (verify_stack_type_compatibility): The function
1030         is_compatible_boxed_valuetype was extracted from here.
1031
1032         * verify.c (push_arg): Only set ctx->has_this_store if the method
1033         is not static.
1034
1035         * verify.c (do_ldelem): Fixed a typo in an error message and added
1036         strict check for mixing int32 and native int as the array type
1037         and ldelem type.
1038
1039         * verify.c (merge_stacks): Consider boxed valuetypes in the
1040         compatibility checks.
1041
1042 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
1043         * profiler.h: (MonoGCEvent): Added start-stop the world events.
1044
1045 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
1046         *class.c: use_new_interface_vtable_code: renamed the env var to have
1047         a "MONO_" prefix, and fix the logic to enable it by default.
1048
1049 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
1050         *class.c:
1051         mono_class_setup_vtable_general: rewrote the way in which interface
1052         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
1053         makes the code more maintainable.
1054         For now the old code is still there, and can be activated setting
1055         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
1056
1057 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
1058
1059         * verify.c: guarded some debug functions around and #ifdef.
1060
1061         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
1062
1063 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
1064
1065         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
1066         changes for now since they seem to break too many things.
1067
1068 2008-02-05  Mark Probst  <mark.probst@gmail.com>
1069
1070         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
1071         mono_marshal_find_nonzero_bit_offset): Added macro and function
1072         for finding the byte- and bit-offset of a bitfield within a
1073         struct.
1074
1075 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
1076
1077         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
1078         (mono_marshal_get_struct_to_ptr): Ditto.
1079
1080         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
1081         cctor_signature.
1082
1083 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
1084
1085         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
1086         between methods for non-corlib types.
1087
1088 2008-02-02  Geoff Norton  <gnorton@novell.com>
1089
1090         * loader.c (mono_method_get_param_names): Populate the parameter name for 
1091         generic parameters as well. (Fixes #342536)
1092
1093 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
1094
1095         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
1096
1097         * verify.c (do_invoke_method): Fix for calling with byref structs.
1098
1099         * verify.c (do_cast): push a boxed value type based on the type token and not
1100         the type of stack.
1101
1102 2008-01-31  William Holmes  <billholmes54@gmail.com>
1103
1104         * process.c (process_module_string_read): Check the size returned form 
1105           VerQueryValue to avoid out of memory exception. 
1106
1107 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
1108
1109         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1110         Handle properly modules which are not in the moduleref table. Fixes
1111         #356938.
1112
1113 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
1114
1115         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
1116         the dynamic case which is now in managed code.
1117         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
1118
1119         * marshal.c (mono_string_to_bstr): Fix a warning.
1120         (init_com_provider_ms): Ditto.
1121
1122         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
1123
1124         * exception.c (mono_get_exception_out_of_memory): New helper function.
1125
1126 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
1127
1128         * marshal.c: Add support for BSTR marshalling
1129         using other COM systems.
1130
1131         Code is contributed under MIT/X11 license.
1132
1133 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
1134
1135         * object.c (mono_runtime_invoke_array): reverted previous
1136         commit as it breaks the build.
1137
1138 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
1139
1140         * object.c (mono_runtime_invoke_array): Verify arguments for
1141         invalid types. Fixes #348522.
1142
1143 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
1144
1145         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
1146         non-final virtual calls using call. 
1147
1148         * verify.c (do_invoke): fixed some TODOs.
1149
1150         * verify.c (push_arg): set has_this_store for "ldarga 0".
1151
1152 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
1153
1154         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
1155         which belong to an inflated class. Fixes #356531.
1156
1157 2008-01-26  Robert Jordan  <robertj@gmx.net>
1158
1159         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
1160         which resort to FindFirstFile when a certain error condition
1161         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
1162         Code is contributed under MIT/X11 license.
1163
1164 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
1165
1166         * marshal.c (emit_marshal_string): Fix out string marshalling
1167         to use specified encoding. Fixes #323900.
1168
1169         Code is contributed under MIT/X11 license.
1170
1171 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
1172
1173         * class.c (mono_class_inflate_generic_method_full): Don't modify
1174         iresult->context after cache check.
1175
1176 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
1177
1178         * class.c (mono_class_inflate_generic_method_full): Change the
1179         struct assignments to memcpy for better visibility and add some comments.
1180
1181 2008-01-23  Dick Porter  <dick@ximian.com>
1182
1183         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
1184         procedure, and make it work on windows.
1185
1186 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
1187
1188         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
1189         a MonoReflectionTypeBuilder since it is always of that type.
1190
1191         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
1192
1193         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
1194
1195         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
1196         
1197         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
1198
1199         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
1200
1201         * reflection.c (mono_reflection_create_runtime_class): Remove already created
1202         instantiations from the type cache.
1203
1204 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
1205
1206         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
1207
1208         * verify.c (do_unbox_value): push a controled mutability managed pointer.
1209
1210 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
1211
1212         * verify.c (do_ldstr): added, verifies if the #US token is valid.
1213
1214         * verify.c (mono_method_verify): removed old TODO
1215
1216 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
1217
1218         * verify.c (do_newobj): add visibility check.
1219
1220 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
1221
1222         * verify.c (do_load_function_ptr): add visibility check.
1223
1224 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
1225         *class.c:
1226         mono_generic_class_get_class: hook profiler events.
1227         mono_field_get_offset: added to support heap-shot in the new profiler.
1228         *class.h: exported mono_field_get_offset.
1229         * reflection.c:
1230         mono_reflection_setup_internal_class: hook profiler events.
1231
1232 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
1233
1234         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
1235         argument here too and use it to avoid checking for pending exceptions if 
1236         possible.
1237
1238 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
1239
1240         * assembly.c (build_assembly_name): add arg for passing the assembly
1241         flags. Do not consider a PublicKey with value "null" valid.
1242         (mono_assembly_name_parse_full): added boolean argument that will be
1243         set if the assembly name contains a PublicKeyToken spec. Added support
1244         for the Retargetable spec for which only Yes or No are allowed as valid
1245         value. Consider assembly name invalid if Retargetable spec is set, but
1246         either version, culture or public key (token) are not specified.
1247         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
1248         with implementation in assembly.c.
1249         * icall.c (fill_reflection_assembly_name): also copy assembly flags
1250         from MonoAssemblyName.
1251         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
1252         introduced argument for mono_assembly_name_parse_full to know if the
1253         assembly name has a PublicKeyToken spec, and if it has instruct
1254         fill_reflection_assembly_name to use default value for keyToken (if
1255         PublicKeyToken is null).
1256
1257 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
1258
1259         * verify.c (mono_method_verify): fixed ovf ops with
1260         float values. They are unverifiable now.
1261
1262 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
1263
1264         * class.c (set_failure_from_loader_error): add BadImageException to the
1265         list of exceptions that can cause a type to fail to load.
1266
1267         * class.c (mono_class_get_exception_for_failure): same.
1268
1269 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
1270
1271         * verify.c (in_any_exception_block): added, check if offset
1272         is part of any exception handling clause.
1273
1274         * verify.c (get_stack_type): added VAR and MVAR types.
1275
1276         * verify.c (do_stobj): better error messages.
1277
1278         * verify.c (do_cpobj): added, check cpobj.
1279
1280         * verify.c (do_initobj): added, check initobj.
1281
1282         * verify.c (do_sizeof): added, check sizeof.
1283
1284         * verify.c (do_localloc): added, check localloc.
1285
1286         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
1287
1288 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
1289
1290         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
1291         save_lmf/restore_lmf opcodes.
1292
1293         * threads.c (mono_threads_install_notify_pending_exc): New function to
1294         install a callback notifying the JIT there is a pending exception on a thread.
1295         (mono_thread_request_interruption): Call the new callback.
1296         (mono_thread_get_and_clear_pending_exception): New function to return the
1297         exception pending on a thread.
1298
1299         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
1300         to turn off checking for pending exceptions.
1301         (mono_marshal_get_native_wrapper): Ditto.
1302
1303 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
1304
1305         * threads-types.h: Get rid of the unnecessary extern declarations.
1306
1307 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
1308
1309         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
1310         return field from parent class if not private.
1311         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
1312         returns fields from parent class if they are not private.
1313         (method_nonpublic): added function to determine if a given method
1314         should be considered non-public. Returns false for private methods
1315         on parent class, and internal methods from parent on the 1.0 profile.
1316         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
1317         use method_nonpublic function to determine whether method should be
1318         returned.
1319         (property_accessor_public): use newly introduced method_nonpublic
1320         function to determine whether accessor is non-public. 
1321         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
1322         event from parent class if not private. Only return static event if
1323         Static flag is set, and only return static event from parent class if
1324         FlattenHierarchy flag is set.
1325         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
1326         include non-private events from parent class.
1327
1328 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
1329
1330         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
1331         warning.
1332
1333 2008-01-16  Wade Berrier <wberrier@novell.com>
1334
1335         * security.c: Add assembly.h header to appease some warnings
1336
1337 2008-01-16  Dick Porter  <dick@ximian.com>
1338
1339         * process.c (process_module_string_read): Remove trailing null
1340         when saving string.
1341
1342 2008-01-16  Mark Probst  <mark.probst@gmail.com>
1343
1344         * class-internals.h: A new data structure describing the layout of
1345         a runtime generic context (MonoRuntimeGenericContextTemplate).
1346
1347         * metadata-internals.h: Added a hash table to MonoDomain that maps
1348         from open generic classes to their runtime generic context
1349         templates.
1350
1351         * object.c: Building of the runtime generic context, including
1352         proper handling of generic type arguments of superclasses.
1353         Building of the runtime generic context according to the template.
1354
1355 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
1356
1357         * class.c (mono_class_setup_fields): Set field.count for generic instances.
1358         Fixes #350856.
1359
1360         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
1361         mono_portability_find_file (). Fixes #325466.
1362         (mono_image_get_public_key): Fix a warning.
1363
1364 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
1365
1366         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
1367         Fixes #353550.
1368         (mono_class_from_name_case): Ditto.
1369
1370 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
1371
1372         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
1373           common storage for the tables used in the System/NumberFormatter class.
1374
1375 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
1376
1377         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
1378
1379 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
1380
1381         * verify.c (get_boxable_mono_type): check if the token is valid.
1382
1383         * verify.c (set_stack_value): changed to add an error if an
1384         invalid type is set on stack. Changed all callers due to signature change.
1385
1386         * verify.c (do_stobj): implement stobj validation.
1387
1388 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
1389
1390         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
1391         set container->is_method, it was set earlier.
1392
1393         * metadata.c (type_in_image): Handle MVARs which belong to not finished
1394         generic methods.
1395
1396         * reflection.c (mono_reflection_initialize_generic_parameter): Set
1397         is_method of the generic container to TRUE for methods.
1398
1399 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
1400
1401         * metadata.c (type_in_image): Handle type parameters properly.
1402
1403         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
1404         memory ownership of this structure.
1405
1406 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
1407
1408         * verify.c (get_boxable_mono_type): make typedref types been just
1409         unverifiable. check for void type.
1410
1411         * verify.c (do_unbox_any): added, verify opcode unbox.any.
1412
1413         * verify.c (do_load_function_ptr): accept method spec tokens.
1414
1415 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
1416
1417         * marshal.c (mono_class_native_size): Always set *align even if this is called
1418         recursively.
1419
1420 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
1421
1422         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
1423         out-of-date.
1424
1425 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
1426
1427         * verify.c: removed some old unused tables. A huge bunch of small fixes
1428         to things found while testing the verifier with mono basic.
1429
1430         * verify.c (dump_stack_value): dump null literal flag to.
1431
1432         * verify.c (verify_type_compatibility_full): fix comparison
1433         for types that have a generic super type.
1434
1435         * verify.c (verify_stack_type_compatibility): fix compatibility
1436         between null literals and reference types. fix compatibility between
1437         boxed valuetypes and object. fix corner case test for enums.
1438
1439         * verify.c (do_cmp_op): proper verification of cgt.un in case
1440         of reference types.
1441
1442         * verify.c (do_invoke_method): fix error message.
1443
1444         * verify.c (do_store_indirect
1445
1446         * verify.c (check_is_valid_type_for_field_ops): proper verification
1447         of managed pointers to valuetypes and boxed valuetypes. proper verification
1448         of null literals.
1449
1450         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
1451         allow token to be a reference type.
1452
1453         * verify.c (do_cast): proper handling of boxes valuetypes.
1454
1455         * verify.c (do_stelem): proper handling of storing a boxed valuetype
1456         in object[].
1457
1458         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
1459         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
1460         fixed the decoding of unbox_any
1461
1462 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
1463
1464         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
1465
1466 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
1467
1468         * verify.c (do_newobj): do delegate verification.
1469
1470         * verify.c (verify_delegate_compatibility): perform delegate
1471         verification.
1472
1473         * verify.c (verify_ldftn_delegate): perform tests related to
1474         ldftn delegates.
1475
1476         * verify.c (mono_delegate_signature_equal): perform the
1477         slightly diferent signature comparison required by delegates.
1478
1479         * metadata.c (mono_metadata_type_equal_full): added and exported
1480         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
1481         allows signature only comparison.
1482
1483         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
1484         as MONO_INTERNAL.
1485
1486 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
1487
1488         * verify.c: added a bunch of stack_slot_* functions to
1489         make access to stack slot type easier. This is required to
1490         allow optional flags, like null literal, boxed value and
1491         this pointer.
1492         All access paths to IlStackDesc::stype have been changed 
1493         to use these new funcions.
1494         Removed a bunch of unused functions and cleared all warnings.
1495         This patch introduces the usage of the this pointer and 
1496         boxed value flags.
1497
1498 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
1499
1500         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
1501
1502 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
1503
1504         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
1505         match managed version.
1506
1507         * appdomain.c: Bump corlib version.
1508         
1509         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
1510         argument.
1511
1512 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
1513
1514         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
1515         Set public key token to zero-length byte array if assembly is not
1516         strongnamed.
1517
1518 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
1519
1520         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
1521         writing a vtype array elem.
1522
1523 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1524
1525         * assembly.c (build_assembly_name): return FALSE if length of token is
1526         not 16 (if not "null").
1527         (mono_assembly_name_parse_full): return FALSE if value of version,
1528         culture, token or key is 0.
1529         * icall.c (fill_reflection_assembly_name): add boolean arguments to
1530         specify whether public key and public key token must be set to default
1531         value (zero-length byte array) if not available. Set versioncompat to
1532         SameMachine. If public key is available or the default is set, then
1533         set PublicKey flag.
1534         (ves_icall_System_Reflection_Assembly_FillName): if no public key
1535         is available, use empty byte array as default value. On the 2.0
1536         profile, use default value for public key token if not set.
1537         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
1538         profile, use default value for public key if not set. On the 2.0
1539         profile, use default value for public key token if not set.
1540         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
1541         default values for public key and public key token.
1542
1543 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
1544
1545         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
1546         field to keep it in synch with the managed object.
1547
1548         * marshal.c (emit_marshal_object): Add support for byref marshalling of
1549         delegates. Fixes #351520.
1550
1551         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
1552         contains defined memory.
1553         
1554         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
1555
1556         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
1557         
1558         * sgen-gc.c (check_consistency): New helper function to do a consistency check
1559         of the GC data structures.
1560
1561         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
1562
1563         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
1564         
1565         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
1566         barrier.
1567         (mono_array_clone_in_domain): Ditto.
1568         (mono_array_clone_in_domain): Ditto.
1569
1570         * threads.c (start_wrapper): Register the thread start argument as a GC root.
1571         (cache_culture): Use a write barrier.
1572
1573         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
1574         (ves_icall_get_property_info): Ditto.
1575
1576         * object.h (MONO_STRUCT_SETREF): New macro.
1577
1578         * class-internals.h (MonoStats): Add some GC statistics.
1579
1580         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
1581
1582 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
1583
1584         * exception.c (mono_exception_from_name_two_strings):
1585         Break from loop after method is found.
1586
1587 2008-01-04  Dick Porter  <dick@ximian.com>
1588
1589         * process.c (process_module_string_read): Rename variable to
1590         reflect correct usage, after fixing bug 345972.
1591
1592 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
1593
1594         * verify.c (mono_type_create_fnptr_from_mono_method): 
1595         created a MonoType function pointer instance to be used during
1596         verification. The verifier releases this memory at end.
1597
1598         * verify.c (mono_method_is_constructor): extracted repeated
1599         checks for constructor into a single class.
1600
1601         * verify.c (do_push_field): use new extracted method
1602         for constructor check.
1603
1604         * verify.c (do_newobj): same.
1605
1606         * verify.c (do_ldftn): renamed to do_load_function_ptr
1607         and make it verify ldvirtftn too.
1608
1609         * verify.c (mono_method_verify: proper verification
1610         of ldvirtftn. release created MonoMethod instances.
1611
1612 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
1613
1614         * verify.c (token_bounds_check): added.
1615
1616         * verify.c (do_ldftn): added.
1617
1618         * verify.c (mono_method_verify): proper verificartion of ldftn.
1619
1620 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
1621
1622         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
1623         than the table row count. It's the resposibility of the caller to
1624         make the bounds check and raise the correct error.
1625
1626         * metadata.c (mono_metadata_decode_row_col): Same.
1627
1628         * loader.c (mono_get_method_from_token): perform bounds check
1629         on token for methoddef table.
1630
1631 2007-12-29  Miguel de Icaza  <miguel@novell.com>
1632
1633         * icall.c
1634         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
1635         assert into a negative result, the managed code already coped with
1636         that.
1637
1638         Some folks on Windows reported this error. 
1639
1640 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
1641
1642         * appdomain.c: Bump corlib version.
1643         * icall.c:
1644         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
1645         CultureInfo.CreateCulture to create CultureInfo for name.
1646         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
1647         create CultureInfo for name. Fixes bug #347174.
1648
1649 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
1650
1651         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
1652         flags.
1653
1654         * verify.c (is_valid_branch_instruction): allow branching to the
1655         first instruction of the protected block.
1656
1657         * verify.c (is_valid_cmp_branch_instruction): same.
1658
1659         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
1660         avoid double initialization.
1661
1662         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
1663         detect which cases the eval stack should just be copied.
1664
1665         * verify.c (mono_method_verify): check if the eval stack
1666         is empty when entering a protected block.
1667
1668 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
1669
1670         * verify.c: added is_clause_in_range, is_clause_inside_range,
1671         is_clause_nested and verify_clause_relationship. They perform
1672         the verifications stated in P1 12.4.2.7.
1673
1674         * verify.c (mono_method_verify): remove some unused variables,
1675         add the new exception clause checks, add instruction border
1676         checks for protected block start/end, improved some error 
1677         messages and fixed a bug in the way invalid instruction access
1678         is detected.
1679
1680 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
1681
1682         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
1683         from GC 7.0 if available.
1684
1685         * object.c: Remove an unused define.
1686         
1687         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
1688
1689         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
1690
1691         * null-gc.c (mono_gc_make_descr_for_array): Implement.
1692
1693         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
1694
1695         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
1696         to take the same arguments as the other make_descr functions.
1697
1698         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
1699
1700         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
1701         directly.
1702
1703         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
1704         mini.c.
1705
1706         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
1707         call to boehm-gc.c.
1708
1709         * boehm-gc.c (mono_gc_register_root): Fix a warning.
1710
1711         * null-gc.c (mono_gc_register_root): Fix a warning.
1712
1713         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
1714
1715         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
1716         (mono_gc_base_init): Call GC_init ().
1717
1718         * null-gc.c: Define mono_gc_register_root () as a no-op.
1719
1720         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
1721
1722 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
1723
1724         * verify.c: add prototype for merge_stacks at top
1725
1726         * verify.c (do_switch): added.
1727
1728         * verify.c (merge_stacks): on some cases the stack merging
1729         was not happening properly. Unequal stack sizes at merge
1730         points should be invalid.
1731
1732         * verify.c (mono_method_verify): added more debug info on stack state.
1733         verify switch properly.
1734
1735 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
1736
1737         * method-builder.h: New file, moved the mono_mb_ declarations here from 
1738         marshal.h.
1739
1740         * boehm-gc.c marshal.c: Include method-builder.h.
1741
1742         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
1743
1744         * marshal.c: Remove some code which is now in method-builder.c.
1745
1746 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
1747
1748         * method-builder.c: New file, extraction of the method builder functionality 
1749         from marshal.c.
1750
1751         * marshal.c: Move the mb functions into method-builder.c.
1752
1753         * marshal.h marshal.c: Export some mono_mb_... functions.
1754
1755         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
1756
1757         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
1758         the caller.
1759
1760         * class.c (mono_class_get_full): Check the token type in the dynamic case.
1761
1762         * loader.c (mono_field_from_token): Ditto.      
1763
1764         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
1765         type as well.
1766         
1767         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
1768         Fixes #342565.
1769
1770         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
1771         a helper function for setting it.
1772
1773         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
1774
1775         
1776         * assembly.c: Significally simplify code now that referenced assemblies are 
1777         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
1778
1779         * threads.h: Don't include  the internal threads-types.h header file. Fixes
1780         #349952.
1781
1782 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
1783
1784         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
1785         instructions that were target of branches or are at protected block boundaries.
1786
1787         * verify.c (in_same_block): handle filter clauses.
1788
1789         * verify.c (is_valid_branch_instruction): added. checks the target of
1790         instructions br or brtrue/false.
1791
1792         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
1793         binary branch instructions such as beq and bge.
1794
1795         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
1796         and made it pin the instruction as been part of the exception block.
1797
1798         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
1799         of in_same_block.
1800
1801         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
1802         of in_same_block.
1803
1804         * verify.c (do_ret): ret from a protected block is unverifiable and
1805         not invalid.
1806
1807         * verify.c (do_static_branch): verify br and br.s instructions.
1808
1809         * verify.c (merge_stacks): add extra param to support detection
1810         of branches in the middle of instructions.
1811         
1812         * verify.c (mono_method_verify): verify branches and exception blocks
1813         that target the middle of instructions. Proper verification of br and br.s.
1814
1815 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
1816
1817         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
1818         skip_visibility field.
1819         (reflection_methodbuilder_from_dynamic_method): Ditto.
1820
1821         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
1822         registrations. Fixes #348193.
1823
1824         * threads.h: Move the internal mono_thread_get_pending_exception () to
1825         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
1826
1827 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
1828
1829         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
1830         icall registration. Fixes #348193.
1831
1832         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
1833         for corlib classes into object. Fixes #349621.
1834
1835 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1836
1837         * icall.c (property_accessor_nonpublic): new function to determine
1838         whether an accessor allows a property to be considered non-public.
1839         Returns false for private accessor(s) from parent class, and internal
1840         accessor(s) from parent on 2.0 profile (and higher).
1841         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
1842         to determine whether property should be included if NonPublic flag
1843         is set. Fixes bug #349078.
1844
1845 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
1846
1847         * verify.c (init_stack_with_value): added.
1848
1849         * verify.c (mono_method_verify): extracted common
1850         code for exception initialization into init_stack_with_value.
1851
1852         * verify.c (mono_method_verify): initialize the exception
1853         for handler clauses as well.
1854
1855         * verify.c (mono_method_verify): fix the exception clause
1856         ordering rules, it should use handler end offset and not
1857         start offset.
1858
1859 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
1860
1861         * rawbuffer.c: remove useless warning.
1862
1863 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
1864
1865         * threads.h, threads-types.h: move functions to the correct header
1866         (fixes bug#349952).
1867
1868 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1869
1870         * verify.c (mono_method_verify): proper verification
1871         of exception handling clauses ranges and fallthru in
1872         and out of protected blocks.
1873
1874 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1875
1876         * verify.c (mono_method_verify): fixed compilation issue.
1877
1878 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1879
1880         * verify.c (mono_method_verify): a printf slipped in, changed
1881         to use verifier debug macro.
1882
1883 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
1884
1885         * verify.c (is_correct_leave): check for filter clauses.
1886
1887         * verify.c (do_filter): added.
1888
1889         * verify.c (mono_method_verify): property verification of leave.
1890
1891
1892 2007-12-18  Mark Probst  <mark.probst@gmail.com>
1893
1894         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
1895         Win32 build, until we figure out how to do the proper thing on
1896         Win32.
1897
1898 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
1899
1900         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
1901         by the previous patch.
1902         
1903         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
1904         the assembly resolve handler for refonly assemblies.
1905
1906 2007-12-17  Mark Probst  <mark.probst@gmail.com>
1907
1908         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
1909         Make sure only one thread is allowed to commence shutdown, and
1910         don't allow new threads to be started once shutdown is in
1911         progress.
1912
1913 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
1914
1915         * verify.c (is_correct_endfilter): added.
1916
1917         * verify.c (is_unverifiable_endfilter): added.
1918
1919         * verify.c (do_endfilter): added.
1920
1921         * verify.c (mono_method_verify): property verification of endfilter
1922         and fixed a corner case or endfinally.
1923
1924 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
1925
1926         * verify.h: new flags to support fail fast of unverifiable code and
1927         do non-strict verification. Non-strict verification is required to
1928         have MS runtime compatibility. There are a huge amount of unverifiable
1929         code that it accepts as verifiable. The strict mode verifies the code
1930         as the specs says.
1931         Non-strict mode will be required in cases where code needs to be
1932         accepted as verifiable but fails under strict mode.
1933
1934         * pedump.c: added support to fail fast and non-strict verification.
1935
1936         * verify.c: added support for both fail fast and non-strict verification.
1937
1938 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
1939
1940         * verify.c (is_correct_endfinally): added.
1941
1942         * verify.c (mono_method_verify): property verification of endfinally.
1943
1944 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
1945
1946         * verify.c (in_any_block): check for filter clauses.
1947
1948         * verify.c (is_correct_rethrow): added.
1949
1950         * verify.c (mono_method_verify): property verification of rethrow.
1951
1952         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
1953
1954 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
1955
1956         * verify.c (do_throw): added.
1957
1958         * verify.c (mono_method_verify): property verification of throw
1959
1960 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
1961
1962         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
1963         assemblies. Fixes #346425.
1964
1965 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
1966
1967         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
1968         FieldBuilders.
1969
1970         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
1971
1972         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
1973         prevent asserts when this is called with a token which might not be valid.
1974
1975         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
1976         lookup_dynamic_token_class with valid_token == FALSE.
1977
1978         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
1979
1980         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
1981
1982         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1983         
1984 2007-12-10  Mark Probst  <mark.probst@gmail.com>
1985
1986         * gc.c: Don't delay threadpool thread finalization unless Mono is
1987         shutting down.
1988
1989 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1990
1991         * threads.c: turn an assert into a non-fatal warning.
1992
1993 2007-12-09  Robert Jordan  <robertj@gmx.net>
1994
1995         * icall.c (GetVirtualMethod): Add missing argument validation.
1996
1997 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1998
1999         * verify.c (do_cast): added.
2000
2001         * verify.c (mono_method_verify): property verification of castclass and isinst.
2002
2003
2004 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
2005
2006         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
2007
2008         * verify.c (do_stelem): added.
2009
2010         * verify.c (mono_method_verify): property verification of stelem.X.
2011
2012 2007-12-07  Mark Probst  <mark.probst@gmail.com>
2013
2014         * class.c, class-internals.h: Introduce an environment variable
2015         (MONO_GENERIC_SHARING) through which the extent of generic code
2016         sharing can be controlled (share all classes, share only corlib
2017         classes, or share nothing).
2018
2019         * object.c: Only create runtime generic context for classes for
2020         which sharing is enabled.
2021
2022 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
2023
2024         * verify.c (do_ldelem): refactor it to work with ldelem.any.
2025
2026         * verify.c (mono_method_verify): property verification of ldelem.any.
2027
2028 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
2029
2030         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
2031         added ldelem.X opcodes.
2032
2033         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
2034
2035         * verify.c: proper verification of ldelem.X 
2036
2037 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
2038
2039         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
2040
2041 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
2042
2043         * verify.c (mono_method_verify): null literal requires special handling,
2044         the value pushed on stack need to be flagged as so.
2045
2046         * verify.c (do_ldelema): Verify ldelema properly.
2047
2048 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
2049
2050         * verify.c: Verify ldlen properly.
2051
2052 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
2053
2054         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
2055         to the target object's type. Fixes #346160.
2056
2057 2007-12-05  Dick Porter  <dick@ximian.com>
2058
2059         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
2060         Solaris needs the same workaround as BSD-derived systems.  Fixes
2061         bug 323524, patch by Burkhard Linke
2062         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
2063
2064 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
2065
2066         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
2067         handle to use when error dialog is shown; otherwise, update mask
2068         to show no error dialog when an error occurs.
2069
2070 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
2071
2072         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
2073
2074         * class.c (mono_class_get_field_default_value): New helper function to initialize
2075         field->def_type and field->data.
2076
2077 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
2078
2079         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
2080         the general one.
2081
2082         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
2083
2084         * marshal.c: Avoid depending on delegate->method_info being set.
2085
2086         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
2087         
2088         * object.c (mono_delegate_ctor): Set delegate->method.
2089
2090         * object-internals.h (struct _MonoDelegate): Add 'method' field.
2091
2092         * appdomain.c: Bump corlib version.
2093
2094 2007-11-27  Raja R Harinath  <harinath@gmail.com>
2095
2096         * metadata.c (mono_generic_inst_equal_full): Short-circuit
2097         equality check if we're comparing canonicalized MonoGenericInsts.
2098
2099 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
2100
2101         * class.c (generic_array_methods): Call mono_class_setup_methods () before
2102         accessing class->methods.
2103
2104 2007-11-22  Dick Porter  <dick@ximian.com>
2105
2106         * threads.c: Ensure that the synch_cs is set before trying to use
2107         it.
2108
2109 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
2110
2111         * profiler.c: r89126 broke the statistial profiler, unbreak.
2112
2113 2007-11-22  Martin Baulig  <martin@ximian.com>
2114
2115         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
2116
2117         * mono-debug.c
2118         (mono_debug_debugger_version): Bump to 3.
2119         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
2120         -> mono_debugger_class_initialized().
2121
2122         * mono-debug-debugger.c
2123         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
2124
2125         * class.c
2126         (mono_debugger_start_class_init_func): Removed.
2127         (mono_debugger_class_loaded_methods_func): Added.
2128         (mono_class_setup_methods): Call it here.
2129
2130 2007-11-22  Martin Baulig  <martin@ximian.com>
2131
2132         * mono-debug.c
2133         (mono_debug_add_delegate_trampoline): New public method.
2134         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
2135
2136         * mono-debug.h
2137         (MonoSymbolTable): Added `global_data_table'.
2138         (MonoDebuggerTypeKind): Removed.
2139
2140 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
2141
2142         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
2143         these methods.
2144
2145         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2146         
2147 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2148
2149         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
2150
2151 2007-11-20  Martin Baulig  <martin@ximian.com>
2152
2153         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
2154
2155         * mono-debug-debugger.c
2156         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
2157         (mono_debugger_remove_breakpoint): Likewise.
2158         (mono_debugger_check_breakpoints): Likewise.
2159         (mono_debugger_register_class_init_callback): New public method.
2160         (mono_debugger_remove_class_init_callback): Likewise.
2161         (mono_debugger_add_type): Likewise.
2162
2163         * mono-debug-debugger.h
2164         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
2165
2166 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
2167
2168         * class.c: more interface implementations needed for the
2169         array enumerator (fixes bug #341112).
2170
2171 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
2172
2173         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
2174         fix ParamName of ArgumentNullExceptions.
2175
2176 2007-11-17  Miguel de Icaza  <miguel@novell.com>
2177
2178         * reflection.c (mono_reflection_encode_sighelper): Generate the
2179         modopts and modreqs.   I have a useless test that crashes monodis,
2180         but that shows the code working.
2181
2182 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
2183
2184         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
2185         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
2186
2187 2007-11-15  Dick Porter  <dick@ximian.com>
2188
2189         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
2190         When joining a thread, it's the thread that's calling Join that
2191         gets WaitSleepJoin state not the target.  Fixes the standalone
2192         test case in bug 334740, and hopefully the whole bug too.
2193
2194 2007-11-15  Dick Porter  <dick@ximian.com>
2195
2196         * process.c: Read file version info from the files pointed at by
2197         process modules, not the current process.  Fixes bug 315969.
2198
2199         Use windows typedef names in some places to fix warnings on the
2200         windows build.
2201
2202 2007-11-15  Mark Probst  <mark.probst@gmail.com>
2203
2204         * image.c, metadata-internals.h: Added a generic_class_cache hash
2205         to MonoImage for looking up generic classes when sharing generics.
2206
2207 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2208
2209         * sgen-gc.c: warning cleanups.
2210
2211 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
2212
2213         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
2214         inherited properties.
2215
2216 2007-11-14  Mark Probst  <mark.probst@gmail.com>
2217
2218         * object.c, class-internals.h: Added more information to the
2219         runtime generic context.
2220
2221 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
2222
2223         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
2224         instead of just the target method. Generalize the abstract method handling to
2225         handle any non-static method.
2226
2227         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
2228         mono_marshal_get_delegate_invoke () signature change.
2229
2230 2007-11-13  Mark Probst  <mark.probst@gmail.com>
2231
2232         * class.c, class-internals.h: Made
2233         mono_type_get_basic_type_from_generic () public.  Fixed member
2234         access check for shared generics.
2235
2236         * loader.c: Don't insert field into field cache if it's part of a
2237         non-inflated generic class.
2238
2239         * domain.c, domain-internals.h: The generic sharing context is now
2240         part of the jit info data structure.  Added two accessor
2241         functions.
2242
2243 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
2244
2245         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
2246         the array Get/Set/Address methods, since the JIT inlines them.
2247
2248         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
2249
2250         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
2251         (mono_image_init): Initialize runtime_invoke_direct_cache.      
2252
2253         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
2254         mono_marshal_get_delegate_invoke signature change.
2255
2256         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
2257         an additional argument. Add support for invoking abstract methods.
2258
2259         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
2260
2261         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
2262
2263 2007-11-09  Mark Probst  <mark.probst@gmail.com>
2264
2265         * class.c: Do field layout for open generic classes as well.
2266
2267 2007-11-09  Mark Probst  <mark.probst@gmail.com>
2268
2269         * gc.c, gc-internal.h: Don't finalize threadpool threads with
2270         other objects, because the threadpool is still around.  Put them
2271         in a list instead and after finalizing all other objects in the
2272         root domain shut down the thread pool and then finalize the
2273         threads.  Fixes bug #337383.
2274
2275         * threads.c, thread-types.h: New mono_thread_create_internal()
2276         function for marking a thread with the threadpool flag before it
2277         started.  Set synch_cs to NULL after freeing it.
2278
2279         * threadpool.c: Mark threadpool threads before they start.
2280
2281 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2282
2283         * reflection.h, reflection.c: don't export random functions
2284         and lazy load dbnull and missing objects.
2285
2286 2007-11-07  Jonathan Chambers <joncham@gmail.com>
2287
2288         * class.c: Initialize COM types if COM interfaces
2289         are present (not just COM classes).
2290         
2291         Code is contributed under MIT/X11 license.
2292
2293 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
2294         * reflection.c:
2295         create_dynamic_mono_image: hook module profiler events (dynamic case).
2296         mono_image_basic_init: hook assembly profiler events (dynamic case).
2297
2298 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
2299         * profiler.c:
2300         simple_appdomain_unload: completely terminate the profiler
2301         instead of only processing the statistical samples.
2302         simple_shutdown: make sure this is really called exactly once,
2303         even in multithreaded applications, and always listen to
2304         appdomain events.
2305         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
2306         here, the "[un]load" functions will do it.
2307         Fixes bugs #333791 and #325261.
2308
2309 2007-11-07  Geoff Norton  <gnorton@novell.com>
2310
2311         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
2312         rather than depend on __APPLE__.
2313
2314 2007-11-07  Mark Probst  <mark.probst@gmail.com>
2315
2316         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
2317
2318 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
2319
2320         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
2321         UTF16 MonoString. Fix the crash from bug #335488
2322
2323 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
2324
2325         * marshal.c: Correct (for non-Win32 OS) length != size in 
2326         mono_string_from_bstr. Fix #339530.
2327
2328 2007-11-06  Geoff Norton  <gnorton@novell.com>
2329
2330         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
2331         to succeed
2332
2333 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
2334
2335         * process.c: Added run-time GetProcessId API detection for Windows.
2336
2337 2007-11-04  Miguel de Icaza  <miguel@novell.com>
2338
2339         * reflection.c  (mono_param_get_objects): If a parameter has the
2340         attribute [System.Runtime.InteropServices.Optional] we should
2341         set the DefaultValue of the ParameterInfo to be
2342         System.Reflection.Missing instead of DBNull.
2343
2344         See bug #339013.
2345
2346         (mono_get_reflection_missing_object): New method,
2347         returns the System.Reflection.Missing.Value singleton instance.
2348
2349 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2350
2351         * culture-info-table.h : regenerated.
2352
2353 2007-11-02  Jonathan Chambers <joncham@gmail.com>
2354
2355         * icall.c: Use GetEnvironmentStrings on windows
2356         so we are using the same environment block as 
2357         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
2358         #333740.
2359         
2360         Code is contributed under MIT/X11 license.
2361
2362 2007-10-31  Martin Baulig  <martin@ximian.com>
2363
2364         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
2365
2366         * mono-debug-debugger.h
2367         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
2368
2369 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
2370
2371         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
2372         classes.
2373
2374 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
2375
2376         * culture-info-table.h : regenerated.
2377
2378 2007-10-30  Robert Jordan  <robertj@gmx.net>
2379
2380         * icall-def.h, icall.c:
2381         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
2382
2383         Code is contributed under MIT/X11 license.
2384
2385 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
2386
2387         * class.c (mono_class_setup_vtable): Find the inflated methods in the
2388         inflated class instead of inflating them again.
2389         
2390         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
2391         dynamic case.
2392
2393         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
2394         Call setup_supertypes () after klass->parent is set.
2395         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
2396
2397         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
2398         for inflated instances of not yet created dynamic generic classes.
2399         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
2400         times from inflated_method.
2401         (methodbuilder_to_mono_method): Ditto.
2402
2403 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2404
2405         * gc.c: code cleanup and removed old untested option of not creating the
2406         finalizer thread.
2407
2408 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
2409
2410         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
2411         creating a jump trampoline for dynamic methods.
2412
2413 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
2414
2415         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
2416         generic TypeBuilders when called from another method of the same type (bug #335131).
2417
2418
2419 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
2420
2421         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
2422         doesn't seem to work perfectly.
2423         
2424         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
2425         called multiple times.
2426         (methodbuilder_to_mono_method): Ditto.
2427         (resolve_object): Inflate FieldBuilder's.
2428
2429 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2430
2431         * string-icalls.c, string-icalls.h, appdomain.c: patch from
2432         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
2433         RemoveEmptyEntries in the string.Split implementation (bug #322375).
2434
2435 2007-10-26  Dick Porter  <dick@ximian.com>
2436
2437         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
2438         Thread initialisation changes
2439
2440 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
2441
2442         * verify.c: fix compatibility check between arrays and System.Array
2443
2444 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
2445
2446         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
2447         too. Fixes #336999.
2448
2449 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
2450
2451         * object.c (mono_value_box): Use typed allocation here.
2452
2453 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
2454
2455         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
2456         trampoline instead of compiling the method right away.
2457
2458         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
2459
2460 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
2461
2462         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
2463         related fields for dynamic classes. Fixes #334493.
2464
2465 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
2466
2467         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
2468         
2469         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
2470
2471         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
2472         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
2473
2474         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
2475
2476         * reflection.c (create_generic_typespec): Initialize klass->generic_container
2477         if needed.
2478         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
2479
2480 2007-10-18  Jonathan Chambers <joncham@gmail.com>
2481
2482         * marshal.c: Use correct key when removing item
2483         from ccw_hash.
2484         
2485         Code is contributed under MIT/X11 license.
2486
2487 2007-10-17  William Holmes  <billholmes54@gmail.com>
2488
2489         *marshal.c: Adding a case to marshal booleans to U1
2490
2491         Code is contributed under MIT/X11 license.
2492
2493 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
2494
2495         * class.c (mono_class_from_name): Search the modules compromising dynamic
2496         assemblies. Fixes #331601.
2497
2498 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
2499
2500         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
2501         exception if the type name contains an assembly component. Fixes #334203.
2502
2503         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
2504         modules inside dynamic assemblies. Fixes #334200.
2505         
2506         * reflection.c: Set image->public_key and image->public_key_length;
2507
2508         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
2509         fields.
2510
2511         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
2512         
2513 2007-10-16  Mark Probst  <mark.probst@gmail.com>
2514
2515         * metadata.c: Implemented correct comparing of generic classes.
2516         An inflated generic class can be equal to a non-inflated one if it
2517         is inflated with generic type variables as type arguments.  Fixes
2518         bug #333798.
2519
2520 2007-10-15  Dick Porter  <dick@ximian.com>
2521
2522         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
2523         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
2524         81646.
2525
2526         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
2527         instead of a monitor lock.  This means that monitor_try_enter and
2528         co can set the thread state safely.
2529         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
2530         thread_interrupt_requested, so interrupt actually works.
2531
2532         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
2533         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
2534         state accessor function
2535
2536 2007-10-15  Martin Baulig  <martin@ximian.com>
2537
2538         * mono-debug.h
2539         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
2540         the debugger with the current runtime.
2541
2542 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
2543
2544         * object.c, object-internals.h: added the ability to set a single
2545         trampoline for all the slots in a vtable.
2546
2547 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2548
2549         * marshal.c: deal with a possible race condition during multicast
2550         delegate invocation.
2551
2552 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2553
2554         * class.c: ensure value type methods don't have the synchronized
2555         flag set.
2556
2557 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
2558
2559         * string-icalls.c, string-icalls.h: reverted unapproved patch that
2560         breaks the build.
2561
2562 2007-10-11  Joel Reed  <joelwreed@comcast.com>
2563
2564         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
2565         to take an options parameter so that empty entries can be removed during
2566         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
2567
2568 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2569
2570         * marshal.c: make sure we don't store the signature from a dynamic
2571         method into the runtime invoke cache (bug #327189).
2572
2573 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2574
2575         * marshal.c: make sure the wrapper methods are properly initialized.
2576
2577 2007-10-11  Mark Probst  <mark.probst@gmail.com>
2578
2579         * metadata.c, metadata-internals.h: Generalized
2580         mono_type_stack_size() to mono_type_stack_size_internal() which
2581         takes an additional argument specifying whether it allows open
2582         types.
2583
2584 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
2585
2586         * verify.c (do_invoke_method): handle typedbyref params
2587         correctly and check for unverifiable return values.
2588
2589         * verify.c (do_newobj): fix a warning.
2590
2591 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
2592
2593         * verify.c: don't tread typedbyref as allways unverifable,
2594         so uses, like (ld/st)loc.0 are valid. verify for the cases
2595         that it matters, like boxing related operations.
2596
2597 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
2598
2599         * verify.c: add verification of the newobj opcode. verification
2600         of delegate instantation still missing due ldftn and virldftn not
2601         pushing the function type on stack
2602
2603 2007-10-08  Mark Probst  <mark.probst@gmail.com>
2604
2605         * class-internals.h: Runtime generic context data structure
2606         definition.
2607
2608         * object.c: Initialization of runtime generic context at runtime
2609         vtable creation time.
2610
2611 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
2612         * class.c (mono_class_create_from_typedef,
2613         mono_class_from_generic_parameter, mono_ptr_class_get,
2614         mono_fnptr_class_get, mono_bounded_array_class_get)
2615         * domain.c (mono_domain_create, mono_domain_free)
2616         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
2617         * image.c (do_mono_image_load, mono_image_close):
2618         Hooked up load-unload profiler events.
2619
2620 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
2621
2622         * domain.c: track statistics about the actual amount of native code
2623         allocated.
2624
2625 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
2626
2627         * class.c: the valuetype enumerators don't have the additional
2628         supertypes interfaces.
2629
2630 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2631
2632         * class.c: need more interfaces setup for the IEnumerator<T>
2633         object created for arrays (tests/ienumerator-interfaces.2.cs).
2634
2635 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
2636
2637         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
2638
2639 2007-10-05  Alp Toker  <alp@atoker.com>
2640
2641         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2642         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2643         #315863.
2644
2645 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
2646
2647         * verify.c (verify_type_compatibility_full): verification of
2648         compatibility improved, validates correctly non-strict checks between
2649         native int and I4 types different than (unsigned)int32.
2650
2651         * verify.c (do_store_indirect): added, do all verification of
2652         ldind.X opcodes. 
2653
2654         * verify.c (get_load_indirect_mono_type): renamed to
2655         get_indirect_op_mono_type, as it now returns the MonoType for 
2656         ldind.X and stind.X opcodes.
2657
2658 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
2659
2660         * reflection.c: Fix the encoding of generic type definition for
2661         TypeBuilders.
2662
2663         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
2664         mono_image_typedef_or_ref but allows to specify if typespec lookups should
2665         be made. Typespec check is done prior to typeref cache lookup.
2666
2667         * reflection.c (mono_image_typedef_or_ref): now just delegate to
2668         mono_image_typedef_or_ref_full.
2669
2670         * reflection.c (encode_generic_class): encode the generic class
2671         directly instead of calling encode_type.
2672
2673         * reflection.c (encode_type): encode the generic type definition
2674         MonoClass as a generic instantiation.
2675
2676         * reflection.c (create_typespec): cache typespec tokens in
2677         the assembly->typespec cache. Don't create typespec for a generic
2678         instance MonoClass. Create typespec for the generic type defintion.
2679
2680         * reflection.c (create_generic_typespec): encode the generic
2681         class directly instead of calling encode_type.
2682
2683         * reflection.c (mono_image_create_token): encode the generic
2684         type definition not using a typespec for MonoType instances.
2685
2686
2687 2007-10-04  Raja R Harinath  <rharinath@novell.com>
2688
2689         Fix #328812
2690         * class.c (mono_image_init_name_cache): Don't return nested
2691         'protected internal' classes.
2692         (mono_class_from_name_case): Likewise.
2693
2694 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2695
2696         * icall-def.h, icall.c : get_bundled_machine_config() is now the
2697           common function used by both DefaultConfig in System.dll and
2698           InternalConfigurationHost in System.Configuration.dll.
2699
2700 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2701
2702         * class.c: automatically add to vectors only a few essential explicit
2703         generic interfaces. The rest of the interfaces that arrays should
2704         provide are currently implicitly added (but still not lazily, see the
2705         design in the discussion of bug#325495 for the details of what is
2706         needed for that). Additionally, implicit interfaces are assigned the
2707         same vtable slot as the explicit interfaces (as they are compatible):
2708         this enables huge memory savings since we don't need to instantiate
2709         as many memthods and as large vtables anymore. Also, Since
2710         GetEnumerator<T> returns an instance of a type that is required to
2711         support a similarly large set of interfaces as arrays, we add
2712         implicit interfaces and interface offset sharing support to those
2713         types, too. This change adds all the required interfaces so that
2714         the anonarray.cs test case in the bug report works (we don't add
2715         all the interfaces to arrays of arrays 3-level deep and more because
2716         of the memory requirements explained in the bug and since they are much
2717         less common: the lazy-loading support will enabled them to work, too).
2718
2719 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
2720
2721         * verify.c (merge_stacks): major clean up, all type compatibility
2722         checks are done by verify_type_compatibility. This fix my earlier lack
2723         of understanding of the CLR type system and merge_stacks no longer looks
2724         scary.
2725
2726         * verify.c: fixed some bad spelling.
2727
2728 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
2729
2730         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
2731         a given stack slock.
2732         
2733         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
2734         verify_type_compatibility_full. This removed a near indentical function and fixed
2735         handling of Int32 and IntPtr across all opcodes.
2736
2737 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2738
2739         * class.c: only vectors have the additional generic interfaces.
2740
2741 2007-10-01  Jonathan Chambers <joncham@gmail.com>
2742
2743         * mono-config.c: Use g_strcasecmp instead of
2744         strcasecmp like everywhere else to fix
2745         compilation with MSVC.
2746         
2747         Code is contributed under MIT/X11 license.
2748
2749 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2750
2751         * object.c, object-internals.h: refactored the IMT code to enable
2752         building a single slot at a time and lazily creating the IMT trampolines
2753         and thunks.
2754
2755 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
2756
2757         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
2758
2759         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
2760         Fixes #328501.
2761         
2762 2007-09-29  Raja R Harinath  <harinath@gmail.com>
2763
2764         * loader.c (method_from_methodspec): Rearrange to avoid
2765         un-necessary exposition.  Don't assert out if the method's
2766         declaring type is a generic type definition.
2767
2768 2007-09-28  Martin Baulig  <martin@ximian.com>
2769
2770         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
2771
2772 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
2773
2774         * class-internals.h: optimize field layout of MonoClass to
2775         requires less cachelines at runtime and save a few bytes on 64 bit
2776         systems.
2777
2778 2007-09-28  Jb Evain  <jbevain@novell.com>
2779
2780         * reflection.c: when encoding type names in custom attributes,
2781         if the type is a closed generic type, its generic arguments
2782         have to be serialized as AssemblyQualifiedName, so that when
2783         they are deserialized, it's possible to re-create them properly.
2784         Fixes #329450.
2785
2786
2787 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2788
2789         * object.c, class-internals.h: added delegate-creation counter.
2790
2791 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
2792
2793         * class.c: cleanup of the code that synthetizes interfaces for
2794         arrays in 2.0: saves quit a bit of corlib mempool memory.
2795         Code to fix bug #325495 ifdeffed out for now until the issues
2796         with memory usage and O(n^2) behaviour are fixed.
2797
2798 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2799
2800         * marshal.c: when possible, do not duplicate the name of the methods
2801         in the method builder and in the generated MonoMethod.
2802
2803 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2804         * verify.c: added support for type checking ldind_* opcodes.
2805
2806 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2807
2808         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
2809         which is used to distinguish the fully open instantiation of a TypeBuilder
2810         with the rest. This temporary hack is required to restore the property that
2811         the fully open instantiation is the same type of the generic type definition.
2812
2813         * class-internals.h (mono_generic_class_is_generic_type_definition):
2814         new function as part of the internal API.
2815
2816         * class.c (inflate_generic_type): return NULL when the generic inst is
2817         fully open. The fully open generic type is now the same as the generic type
2818         definition for non TypeBuilder types.
2819
2820         * class.c (mono_generic_class_get_class): removed assert since it is
2821         no longer valid, gklass->cached_class can point to the generic type definition.
2822
2823         * class.c (mono_generic_class_is_generic_type_definition): new.
2824
2825         * metadata.c (mono_generic_class_hash): added is_tb_open field
2826         to the hash calculation.
2827
2828         * metadata.c (free_generic_class): if the generic class is associated
2829         with the generic type definition, its field will come from the mempool and
2830         must not be freed.
2831
2832         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
2833         new, this function identifies the corner case of a TypeBuilder fully open
2834         instantiation.
2835
2836         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
2837         for lookup. Set gclass->cached_class to be the container class in case of
2838         the fully open instantiation of non TypeBuilder types.
2839
2840         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
2841         to compare generic classes.
2842
2843         * reflection.c (method_encode_methodspec): remove assert that
2844         no longer is valid.
2845
2846         * reflection.c (mono_reflection_generic_class_initialize): add
2847         an aditional assert to ensure the proper type is used.
2848
2849 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
2850
2851         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
2852         to enjoy it.
2853
2854 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
2855
2856         * verify.c (push_arg): Fixed support for ldarga
2857         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
2858         MonoType used as first arg in case of instance calls.
2859
2860 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
2861
2862         * verify.c: Support for verifying VAR and MVAR types, 
2863
2864 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
2865
2866         * icall.c (ves_icall_get_property_info): Set the reflected type of the
2867         accessors correctly.
2868
2869 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
2870
2871         * threads.c: support OSX and other systems in
2872         mono_thread_get_stack_bounds (bug #328026).
2873
2874 2007-09-25  Martin Baulig  <martin@ximian.com>
2875
2876         * mono-debug.h
2877         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
2878
2879 2007-09-24  Martin Baulig  <martin@ximian.com>
2880
2881         * mono-debug.h
2882         (MonoDebugClassEntry): Moved the definition of this struct into
2883         mono-debug.c to make it private.
2884
2885         * mono-debug.c
2886         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
2887         type table per symbol file, we don't need to store the symfile id
2888         any longer.
2889
2890 2007-09-24  Martin Baulig  <martin@ximian.com>
2891
2892         Create one type table per symbol file, since a `MonoClass *' gets
2893         invalid when its image is unloaded.
2894
2895         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
2896         (MonoDebugHandle): Added `type_table'.
2897
2898 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2899
2900         * mempool.c, mempool.h: added mono_mempool_new_size () API
2901         to be able to specify a smaller initial size for the pool.
2902         Adjusted the code to slowly increase pool size before using
2903         the previous default size.
2904         * image.c: use a small initial size for image mempools.
2905
2906 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
2907
2908         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
2909         Fixes ##320990.
2910
2911         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
2912         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
2913
2914 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
2915
2916         * metadata.c (mono_type_create_from_typespec): Remove an invalid
2917         free. Fixes #327438.
2918
2919 2007-09-21  Raja R Harinath  <harinath@gmail.com>
2920
2921         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
2922         generic instantiations, etc.
2923         <MONO_TYPE_ARRAY>: Likewise.
2924
2925 2007-09-21  Martin Baulig  <martin@ximian.com>
2926
2927         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
2928         these structs were never defined.
2929         (MonoDebugHandle): Removed the `_priv' field, it was never used.
2930
2931 2007-09-21  Martin Baulig  <martin@ximian.com>
2932
2933         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
2934
2935 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
2936
2937         * image.c: removed the guid hash tables: we can get the same info
2938         without the additional memory usage hit (partially fixes also bug #327052).
2939
2940 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2941
2942         * profiler.h, profiler-private.h, profiler.c: add a new profiler
2943         event to handle unloading methods. After the event is called, the
2944         corresponding MonoMethod* must be considered invalid.
2945         * loader.c (mono_free_method): call the new mono_profiler_method_free
2946         event.
2947
2948 2007-09-20  Mark Probst  <mark.probst@gmail.com>
2949
2950         * domain-internals.h: New flag in MonoJitInfo which marks shared
2951         generic methods.  New hash table (shared_generics_hash) in
2952         MonoDomain to keep track of shared generic methods.  Prototypes
2953         for functions to register and lookup shared generic methods.
2954
2955         * domain.c: Support for registering and looking up shared generic
2956         methods via a hash table (shared_generics_hash) in MonoDomain.
2957
2958         * class-internals.h: New exception to signal failure of shared
2959         compilation of a generic method.  New counters for generics
2960         sharing in MonoStats.
2961
2962 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
2963
2964         * image.c, metadata-internals.h: don't keep a file descriptor open
2965         for loaded assemblies (bug#325988).
2966
2967 2007-09-19  Raja R Harinath  <rharinath@novell.com>
2968
2969         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
2970         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
2971         use the corresponding datatypes.
2972         (type_in_image): Update to changes.
2973         (CleanForImageUserData): Simplify.
2974         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
2975         Avoid quadratic behaviour in handling the "stolen" list by
2976         separating the filter predicate out, and by prepending the stolen
2977         items rather than appending them.
2978         (steal_ginst_in_image): Likewise.
2979         (mono_metadata_clean_for_image): Update to changes.
2980
2981 2007-09-19  Martin Baulig  <martin@ximian.com>
2982
2983         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
2984
2985 2007-09-19  Martin Baulig  <martin@ximian.com>
2986
2987         * mono-debug.c (mono_debug_cleanup): Don't call
2988         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
2989
2990 2007-09-19  Raja R Harinath  <harinath@gmail.com>
2991
2992         Fix crash on 'make run-test' in mcs/errors
2993         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
2994         Avoid more potential allocations in mono_class_from_mono_type.
2995         (ginst_in_image): Update to changes.
2996         (gclass_in_image): Rearrange slightly.
2997
2998 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
2999
3000         * class.c (mono_class_init): Move the code that sets up class->methods to 
3001         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
3002
3003         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
3004         canonical instance of an inflated generic signature.
3005         (mono_type_create_from_typespec): Remove an invalid free.
3006
3007         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
3008
3009 2007-09-18  Marek Habersack  <mhabersack@novell.com>
3010
3011         * domain-internals.h: added a declaration of the
3012         mono_assembly_load_full_nosearch internal function.
3013
3014         * assembly.c (mono_assembly_load_with_partial_name): use
3015         mono_try_assembly_resolve return value properly.
3016         (mono_assembly_load_full_nosearch): copied the function body from
3017         mono_assembly_load_full, without the code to invoke assembly
3018         search hooks.
3019         (mono_assembly_load_full): calls the above new function and if the
3020         assembly is not resolved, invokes the search hooks.
3021
3022         * appdomain.c (mono_runtime_init): restore the global postload
3023         assembly search handlers.
3024
3025 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
3026
3027         * class.c (mono_class_init): Make sure class->methods and class->properties
3028         are never NULL in the generics case.
3029
3030         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
3031
3032 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
3033
3034         * metadata.c (free_generic_class): Disable some code to fix the build.
3035
3036         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
3037
3038         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
3039         from the image mempool.
3040
3041         * metadata.c (free_generic_class): Free more data from the inflated class.
3042
3043         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
3044
3045         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
3046         mempool.
3047         (mono_type_create_from_typespec): Ditto.
3048
3049         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
3050         MonoImage to the caller.
3051         (mono_init_internal): Save the opened image in a global variable.
3052         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
3053
3054         * reflection.c (resolve_object): Fix a leak.
3055
3056         * metadata.c: Fix the freeing of data in the generics caches.
3057         
3058         * metadata.c (free_generic_inst): Comment this out to fix the build.
3059         (free_generic_class): Ditto.
3060
3061         * metadata.c: Free cached generic methods, instantinations and classes when
3062         they are removed from the caches.
3063         (mono_metadata_free_type): Free the type itself.
3064
3065         * class.c: Free the result of mono_class_inflate_generic_type () in a few
3066         places.
3067
3068 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3069
3070         * boehm-gc.c: restrict managed allocs to __thread supporting
3071         architectures.
3072
3073 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
3074
3075         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
3076         (mono_generic_class_get_class): Fix a leak.
3077
3078         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
3079         mono_metadata_free_type ().
3080         (mono_metadata_inflate_generic_inst): Fix a leak.
3081
3082 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
3083
3084         * mono-debug.c (free_header_data): Fix a leak missed earlier.
3085
3086         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
3087         mempool.
3088
3089         * mono-debug.c (mono_debug_close_image): Fix call to 
3090         g_hash_table_remove ().
3091
3092 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
3093
3094         * icall-def.h: redirect all the string ctor to the managed
3095         CreateString () methods.
3096         * string-icalls.c, string-icalls.h: removed dead code for string
3097         ctors and icalls.
3098
3099 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
3100
3101         * mono-debug.c: Fix memory leaks.
3102
3103 2007-09-14  Jonathan Chambers <joncham@gmail.com>
3104
3105         * threads-types.h: Implement mono_hazard_pointer_set and 
3106         mono_hazard_pointer_clear macros using do/while(0) to fix
3107         compilation with MSVC.
3108         
3109         Code is contributed under MIT/X11 license.
3110
3111 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
3112
3113         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
3114         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
3115
3116 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3117
3118         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
3119         icalls.
3120
3121 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3122
3123         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
3124         managed-code allocated as well.
3125
3126 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
3127
3128         * class.c (mono_class_is_assignable_from): Add support for generic variance.
3129
3130 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
3131
3132         * boehm-gc.c: fixed the build after the AOT changes.
3133
3134 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
3135
3136         * wrapper-types.h: Add an ALLOC wrapper type.
3137
3138         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
3139         reference managed allocator methods.
3140
3141 2007-09-12  Marek Safar  <marek.safar@gmail.com>
3142
3143         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
3144         of Type array and not MonoType, a fix suggested by Hari.
3145         
3146 2007-09-12  Jonathan Chambers <joncham@gmail.com>
3147
3148         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
3149         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
3150         
3151         Code is contributed under MIT/X11 license.
3152
3153 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
3154
3155         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
3156
3157 2007-09-12  Marek Habersack  <mhabersack@novell.com>
3158
3159         * image.c (do_mono_image_open): if assembly file fails to open and
3160         MONO_IOMAP is in effect, try to find the path in a
3161         case-insensitive way.
3162
3163         * appdomain.c (mono_runtime_init): do not install postload hooks -
3164         tests show that MS.NET doesn't use anything of that sort to
3165         trigger the AppDomain.AssemblyResolve event.
3166         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
3167         made non-static.
3168         (mono_runtime_init): init portability helpers here.
3169
3170         * assembly.c (mono_assembly_load_with_partial_name): if other   
3171         attempts fail, trigger the AppDomain.AssemblyResolve event handler
3172         to resolve the assembly.
3173
3174         * domain-internals.h: added mono_try_assembly_resolve and marked
3175         it as internal.
3176
3177 2007-09-11  Jb Evain  <jbevain@novell.com>
3178
3179         * object-internals.h (MonoReflectionDynamicMethod): add
3180         a `MonoReflectionType *owner` field. The owner is used
3181         * reflection.c:
3182         (mono_reflection_create_dynamic_method): use the owner of the dynamic
3183         method as the class declaring the dynamic method.
3184         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
3185         dynamic method to the declaring type of the methodbuilder.
3186
3187 2007-09-11  Mark Probst  <mark.probst@gmail.com>
3188
3189         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
3190         rules for calling methods via reflection.
3191
3192 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
3193
3194         * reflection.c (resolve_object): Add support for MonoGenericClass. 
3195         Inflate MonoType's.
3196
3197 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
3198
3199         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
3200         provide a managed method that does fast allocations without needing
3201         a managed->unmanaged transition. Boehm GC implementation currently
3202         enabled for ptrfree objects on sane architectures.
3203
3204 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
3205
3206         * marshal.c, marshal.h: exported a couple of useful functions and
3207         added mono_mb_get_label () to easily handle backward branches.
3208
3209 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
3210
3211         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
3212
3213 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
3214
3215         * loader.c (find_method): Fixed the regression introduced while
3216         fixing bug #81466.
3217
3218 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
3219
3220         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
3221         well.
3222         
3223         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
3224         icall.c reflection.c: Pass a MonoGenericContext argument to 
3225         mono_lookup_dynamic_token ().
3226
3227         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
3228         #82744.
3229         
3230 2007-09-09  Robert Jordan  <robertj@gmx.net>
3231
3232         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
3233         for generic methods.
3234
3235         * object.c (mono_object_get_virtual_method): Handle generic methods.
3236         Fixes bug #78882.
3237
3238         Code is contributed under MIT/X11 license.
3239
3240 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
3241
3242         * image.c: fix locking in mono_image_load_file_for_image ().
3243
3244 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
3245
3246         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
3247         used only as a cache: added an icall to fill it.
3248
3249 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
3250
3251         * reflection.h: exposed mono_reflection_free_type_info
3252         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
3253         since mono_reflection_bind_generic_parameters makes a copy of it.
3254         * reflection.c (free_type_info): subinfos should be freed.
3255         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
3256         made non static.
3257         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
3258         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
3259         this fixes #82695 and #81726.
3260    
3261
3262 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
3263
3264         * process.h, process.c:  added support for user profile/info in
3265           ProcessStartInfo. For now only Windows works.
3266
3267 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3268
3269         * metadata.c: consider the generic arguments when comparing
3270         signatures (bug #82614).
3271
3272 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
3273
3274         * cil-coff.h, image.c: updated assembly loader to cope with the
3275         PE32+ 64 bit file format.
3276
3277 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
3278
3279         * assembly.c, class.c, domain.c, loader.c: remove useless
3280         inclusion of cil-coff.h.
3281
3282 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
3283
3284         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
3285         if interface is marked with CoClassAttribute. 
3286    
3287         Code is contributed under MIT/X11 license.
3288
3289 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3290
3291         * sgen-gc.c: ensure no object from the to space is copied again or finalized
3292         if it's seen twice in major collections.
3293
3294 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
3295
3296         * sgen-gc.c: big objects are not copied to the gray area, but they
3297         need to be considered for scanning, too, if they are brought alive
3298         by an object ready for finalizations or a survived one.
3299
3300 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3301
3302         * sgen-gc.c: properly account the number of disappearing links when
3303         they are nullified.
3304
3305 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
3306
3307         * sgen-gc.c: share the code to scan the registered roots between the
3308         different types of collections.
3309
3310 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
3311
3312         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
3313
3314 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
3315
3316         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
3317         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
3318
3319 2007-08-28  Mark Probst  <mark.probst@gmail.com>
3320
3321         * security-manager.c (mono_security_manager_get_methods):
3322         LinkDemandSecurityException now has 2 arguments instead of 3.
3323
3324 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
3325
3326         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
3327         platforms which need it.
3328
3329 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
3330
3331         * sgen-gc.c: unregister thread data structures with a pthread_key_t
3332         dtor.
3333
3334 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
3335
3336         * threads.c: free the thread static data on thread exit.
3337
3338 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
3339
3340         * class.c: walk the hierarchy to find the generic definition for
3341         a class (fixes runtime part of bug #82498).
3342
3343 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
3344
3345         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
3346         ...
3347
3348         * image.c (mono_image_close): Here. Hopefully fixes #82510.
3349
3350 2007-08-24  Mark Probst  <mark.probst@gmail.com>
3351
3352         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
3353
3354 2007-08-24  Robert Jordan  <robertj@gmx.net>
3355
3356         * appdomain.c: don't perform the ':'->';' substitution on Win32.
3357
3358 2007-08-24  Jb Evain  <jbevain@novell.com>
3359
3360         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
3361         for byref types.
3362
3363 2007-08-24  Mark Probst  <mark.probst@gmail.com>
3364
3365         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
3366         #82286.
3367
3368 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
3369
3370         * assembly.c: Fix a warning.
3371         
3372 2007-08-23  Marek Habersack  <mhabersack@novell.com>
3373
3374         * appdomain.c: parse the <runtime> section looking for the probing
3375         element with the 'privatePath' attribute, which sets additional
3376         directories in which the runtime should look for assemblies.
3377
3378 2007-08-23  Robert Jordan  <robertj@gmx.net>
3379
3380         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
3381         Fixes #82499.
3382
3383 2007-08-23  Martin Baulig  <martin@ximian.com>
3384
3385         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
3386         _mono_debug_init_corlib() and remove it from the header file.
3387
3388 2007-08-23  Martin Baulig  <martin@ximian.com>
3389
3390         * mono-debug-debugger.c
3391         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
3392         don't notify the debugger about it.
3393
3394         * mono-debug-debugger.h
3395         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
3396
3397 2007-08-23  Robert Jordan  <robertj@gmx.net>
3398
3399         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
3400         Code is contributed under MIT/X11 license.
3401
3402 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
3403
3404         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
3405
3406 2007-08-22  Martin Baulig  <martin@ximian.com>
3407
3408         * mono-debug.c: Store debugging info on a per-domain basis and
3409         free it on domain unload.  Add support for unloading symbol files.
3410
3411         * mono-debug.h
3412         (MonoDebugList): New typedef.
3413         (MonoSymbolTable):
3414         - add `data_tables and `type_table'.
3415         - replace 'symbol_files' and `num_symbol_files' with a
3416           `MonoDebugList *'.
3417         (mono_debug_data_table): Removed.
3418         (mono_debug_list_add): New public function.
3419         (mono_debug_list_remove): New public function.
3420         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
3421         (mono_debug_init_2_memory): Renamed into
3422         mono_debug_open_image_from_memory().
3423         (mono_debug_close_image): New public function.
3424         (mono_debug_domain_create): Likewise.
3425         (mono_debug_domain_unload): Likewise.
3426         (MONO_DEBUGGER_VERSION): Bump to 60.
3427
3428         * mono-debug-debugger.h
3429         (MonoDebuggerEvent):
3430         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
3431         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
3432         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
3433         - rename `THREAD_CREATED' and `THREAD_EXITED' into
3434           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
3435         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
3436           meaning.
3437         (mono_debugger_add_symbol_file): Removed.
3438         (mono_debugger_add_type): Removed.
3439         (mono_debugger_lookup_type): Removed.
3440         (mono_debugger_lookup_assembly): Removed.
3441
3442         * domain.c
3443         (mono_domain_create): Call mono_debug_domain_create().
3444         (mono_init_internal): Call mono_debug_init_corlib().
3445
3446         * assembly.c
3447         (mono_assembly_close): Call mono_debug_close_image().
3448
3449 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
3450
3451         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
3452         mmap call.
3453
3454 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
3455
3456         * sgen-gc.c: ensure section->pin_queue_end is initialized
3457         correctly when non pinning objects in the section have been found.
3458
3459 2007-08-22  Marek Habersack  <mhabersack@novell.com>
3460
3461         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
3462         containing a list of directories separated by ':'. MSDN docs say
3463         the directories should be separated with ';'. Part of a bugfix for
3464         bug #81446
3465
3466 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
3467
3468         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
3469         it should MonoType and not MonoClass.
3470
3471 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
3472
3473         * culture-info-table.h : regenerated.
3474
3475 2007-08-20  William Holmes  <billholmes54@gmail.com>
3476
3477         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
3478          to call ReplaceFile Kernel32 on windows or in io-layer.
3479         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
3480         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
3481          as an internal call.
3482
3483         Code is contributed under MIT/X11 license.
3484
3485 2007-08-20  Jb Evain  <jbevain@novell.com>
3486
3487         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
3488         and MONO_EXCEPTION_FIELD_ACCESS.
3489
3490         * debug-helpers.[c|h]: new mono_field_full_name function.
3491
3492 2007-08-20  Mark Probst  <mark.probst@gmail.com>
3493
3494         * class.c: Removed class_security_level() and moved it to
3495         security-core-clr.c.
3496
3497         * security-core-clr.c, security-core-clr.h: class_security_level()
3498         is now public and renamed to mono_security_core_clr_class_level().
3499         It also looks for security attributes in the classes a class is
3500         nested in.
3501
3502 2007-08-20  Mark Probst  <mark.probst@gmail.com>
3503
3504         * security-core-clr.c, security-core-clr.h: CoreCLR security
3505         utility functions.
3506
3507         * Makefile.am: Added security-core-clr.[ch].
3508
3509         * security-manager.c, security-manager.h: Functions and enum for
3510         setting and getting the security mode.
3511
3512         * class.c: CoreCLR security checks.
3513
3514 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
3515
3516         * icall-def.h, process.c, process.h: implemented icall to get
3517         user/system processor times.
3518
3519 2007-08-17  Mark Probst  <mark.probst@gmail.com>
3520
3521         * domain.c, threads.c, class-internals.h, domain-internals.h: New
3522         reader-lock-free jit_info_table.
3523
3524 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
3525
3526         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
3527
3528         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
3529
3530         * object-internals.h (MonoException): Add missing _data member.
3531
3532 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
3533
3534         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
3535         checking that only methods with matching qname or fqname are picked
3536         from implemented interfaces.
3537
3538 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
3539
3540         * verify.c (do_newarr):added, do type verification of
3541         newarr ops, push the right value on the eval stack.
3542         * verify.c (mono_method_verify): use do_newarr
3543
3544
3545 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
3546
3547         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
3548         factored the common code into get_boxable_mono_type, which
3549         is now using mono_type_get_full, this fixed byref related tests.
3550
3551 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
3552
3553         * class.c: added mono_type_get_full, this function has the same
3554         behavior of mono_class_get_full but the returned MonoType has
3555         all metadata of the associated token in case of a typespec token.
3556         * class.c: added mono_type_retrieve_from_typespec, used by 
3557         mono_type_get_full to retrieve the token type.
3558         * class.c (mono_class_create_from_typespec): changed to use
3559         mono_type_retrieve_from_typespec.
3560         * class.c (mono_ldtoken): changed to use mono_type_get_full
3561         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
3562         * class-internals.h: exported mono_type_get_full for internal use.
3563
3564 2007-08-16  Jb Evain  <jbevain@novell.com>
3565
3566         * domain.c (supported_runtimes): add entry for
3567         the 'moonlight' runtime version.
3568
3569 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
3570
3571         * verify.c (mono_method_verify): small typo sliped in.  
3572
3573 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
3574
3575         * verify.c (do_unbox_value): added, do type verification of
3576         unboxing ops
3577         * verify.c (mono_method_verify): use do_unbox_value
3578
3579
3580 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
3581
3582         * verify.c (dump_stack_value): fixed typo, was printing string
3583         instead of object on stack.
3584         * verify.c (do_box_value): moved the byref check up as it leads
3585         to invalid code and should be done earlier.
3586         * verify.c: improved error messages for and ldobj
3587
3588 2007-08-15  William Holmes  <billholmes54@gmail.com>
3589
3590         * marshal.c (emit_marshal_custom): Omit the call to 
3591           marshal_native_to_managed when calling native to managed 
3592           and the argument is specified as an out argument.
3593
3594         Code is contributed under MIT/X11 license.
3595
3596 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
3597
3598         * verify.c: fixed the type checks for generics, function pointers and vectors.
3599         Added type verification for ldobj and ldtoken. The verifier
3600         would segfault if header or signature of a method contained references
3601         to non-existant types.
3602
3603 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
3604
3605         * marshal.c (cominterop_get_ccw): Patch from
3606         Bill Holmes to no walk up interface hierarchy. 
3607         All parent methods should be present in the interface for COM.
3608    
3609         Code is contributed under MIT/X11 license.
3610
3611 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
3612
3613         * marshal.c (emit_marshal_com_interface): Patch from
3614         Bill Holmes to handle COM Interfaces as return values
3615         for native->managed calls.
3616    
3617         Code is contributed under MIT/X11 license.
3618
3619 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
3620
3621         * marshal.c (cominterop_get_idispatch_for_object): Implement
3622         for runtime callable wrappers.
3623    
3624         Code is contributed under MIT/X11 license.
3625
3626 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
3627
3628         * pedump.c (main): changed from mono_init to mono_init_from_assembly
3629         so 2.0 types are accessible
3630
3631
3632 2007-08-13  Miguel de Icaza  <miguel@novell.com>
3633
3634         * domain.c (mono_init_internal): Call mono_assembly_load_friends
3635         once we load mscorlib.   Due to the order in which we initialize,
3636         the mono_assembly_load_full routine that loads mscorlib did not
3637         load friends.   We now load it once we load the
3638         mono_defaults.internals_visible_class class. 
3639
3640         * assembly.c: Expose the mono_load_friend_assemblies method.
3641
3642 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
3643
3644         * verify.c: improved the handling of boxing, better
3645         type checking for unary ops and conversion. Fix bug
3646         regarding managed pointer compatibility checking
3647
3648 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
3649
3650         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
3651
3652         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
3653
3654 2007-08-09  Raja R Harinath  <rharinath@novell.com>
3655
3656         * reflection.c (dup_type): Remove.
3657         * class.c (dup_type): Remove.
3658         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
3659         instead of the dodgy 'dup_type'.
3660         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
3661         handle the case where 'dup_type' needed the second argument.
3662
3663 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
3664
3665         * domain.c: Fix a warning.
3666
3667 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
3668
3669         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
3670         checking that methods with the same fqname are not overridden
3671         with a method from an ancestor.
3672
3673 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
3674
3675         * threads.c (free_thread_static_data_helper): Avoid a crash if
3676         thread->static_data is not yet set.
3677
3678 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
3679
3680         * marshal.c: Use correct image when emitting
3681         native wrapper for COM calls.
3682    
3683         Code is contributed under MIT/X11 license.
3684
3685 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
3686
3687         * icall-def.h, security.c, security.h :
3688           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
3689
3690 2007-08-07  Martin Baulig  <martin@ximian.com>
3691
3692         * mono-debug-debugger.h
3693         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
3694
3695         * domain.c (mono_domain_free): Call
3696         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
3697
3698 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
3699
3700         * verify.c (check_underflow, check_overflow): error message now returns IL offset
3701         * verify.c (in_same_block): code should test if either offset is inside the clauses
3702         * verify.c (mono_method_verify): push the exception into the eval stack of exception
3703         and filter blocks
3704
3705 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
3706
3707         * image.c (mono_image_close): Fix a leak.
3708
3709         * object.c (mono_runtime_invoke_array): Avoid using alloca.
3710
3711         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
3712
3713 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
3714
3715         * domain.c, threads.c, threads-types.h: fix memory retention issue
3716         with thread static variables not being cleared on domain unload.
3717         Reuse thread static slots after domain unload.
3718
3719 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
3720
3721         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
3722         nullable type.
3723
3724         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
3725         now done in mono_runtime_invoke_array.
3726
3727         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
3728         receiver is a nullable type.
3729
3730         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
3731         generic parameter.
3732
3733 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
3734
3735         * marshal.c: Implement COM Objects as return type for 
3736         managed->unmanaged calls. Added Release calls for COM Object
3737         out/return values in managed->unmanaged calls.
3738
3739         Code is contributed under MIT/X11 license.
3740
3741 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
3742
3743         * threads.h, threads-type.h: move the hazard pointer declarations
3744         to the private header.
3745
3746 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
3747
3748         * file-io.c, appdomain.c: memory leak fixes.
3749
3750 2007-08-02  Dick Porter  <dick@ximian.com>
3751
3752         * socket-io.c
3753         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
3754         SO_REUSEADDR setting into io-layer/sockets.c.
3755
3756 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
3757
3758         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
3759         from Object when called on a generic parameter. Fixes #82211.
3760
3761 2007-08-01  Dick Porter  <dick@ximian.com>
3762
3763         * file-io.c (convert_share): Test FileShare values bit-by-bit.
3764         Fixes bug 79250 yet again.
3765
3766 2007-07-30  Martin Baulig  <martin@ximian.com>
3767
3768         Merged the `debugger-dublin' branch.
3769
3770         * mono-debug.h
3771         (MonoDebugDataTable): New typedef.
3772         (MonoDebugMethodAddressList): New typedef.
3773         (MonoDebugWrapperData): Removed.
3774         (MonoDebugSymbolTable): Removed `current_data_table',
3775         `current_data_table_size', `current_data_table_offset'.
3776         (MonoDebugDataItemType): Moved into mono-debug.c.
3777         (MonoDebugMethodJitInfo): Remove `address'.
3778         (mono_debug_data_table): New global variable.
3779         (mono_debug_lookup_method_addresses): New public function.
3780         (mono_debug_find_method): Take a `MonoMethod *', not a
3781         `MonoDebugMethodInfo *'.
3782
3783         * mono-debug.c: Drop support for the old symbol tables.
3784
3785 2007-06-28  Martin Baulig  <martin@ximian.com>
3786
3787         * mono-debug.c (mono_debug_debugger_version): New public variable.
3788
3789 2007-07-31  William Holmes  <billholmes54@gmail.com>
3790
3791         * metadata.c Changed mono_type_create_from_typespec to not insert
3792           the type into the hash map until after
3793           do_mono_metadata_parse_type has completed.
3794         Fixes Bug #82194
3795         Code is contributed under MIT/X11 license.
3796
3797 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
3798
3799         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
3800         generic parameter. Fixes #82211.
3801
3802 2007-07-27  Jb Evain  <jbevain@novell.com>
3803
3804         * pedump.c (dump_metadata, dump_metadata_header): dump
3805         versions contained in the metadata header.
3806
3807 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3808
3809         * threads.c: register small_id_table with the GC.
3810
3811 2007-07-27  Mark Probst  <mark.probst@gmail.com>
3812
3813         * threads.c, threads.h, class-internals.h, object-internals.h:
3814         Hazard pointers, to be used by lock-free parallel algorithms.
3815
3816 2007-07-26  Dick Porter  <dick@ximian.com>
3817
3818         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
3819         routine on non-windows platforms, as I've not managed to think of
3820         a non-kludgy way of doing this.  Finishes off bug 78739.
3821
3822 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
3823
3824         * object.c: properly setup interface_bitmap in proxy vtables.
3825
3826 2007-07-25  Marek Habersack  <mhabersack@novell.com>
3827
3828         * appdomain.c (get_shadow_assembly_location): do not use TickCount
3829         to create unique shadow copy target directories, use the domain's
3830         serial number instead. Each domain gets a unique target directory
3831         that way.
3832
3833         * domain.c (mono_domain_create): added code to increment domain
3834         shadow copy serial number and cache the value in the current
3835         domain structure.
3836
3837         * domain-internals.h (struct _MonoDomain): added a new field -
3838         shadow_serial to hold the serial number used in generation of
3839         shadow-copy directories. This is to make sure that the directory
3840         name is unique for each and every domain created. We avoid a race
3841         condition with overriding assemblies already in use by other app
3842         domains.
3843
3844 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
3845
3846         * class.c (mono_bounded_array_class_get): fixed memory leak when 
3847         binding generic parameters.
3848
3849 2007-07-24  Raja R Harinath  <rharinath@novell.com>
3850
3851         * metadata.c (do_mono_metadata_parse_generic_class): Use
3852         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
3853         error.
3854
3855 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
3856
3857         * loader.c, class-internals.h, reflection.c: removed the per-method
3858         generics hashtable: we use the global one through the call of
3859         mono_class_inflate_generic_method ().
3860
3861 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3862
3863         * class.c, metadata.c, class-internals.h: introduce yet another
3864         generics global cache for inflated methods (fixes 98% of the perf
3865         issue in bug #81806).
3866
3867 2007-07-23  Raja R Harinath  <rharinath@novell.com>
3868
3869         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
3870         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
3871         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
3872         return a MonoGenericInst containing (a copy) of those types.
3873         (mono_metadata_inflate_generic_inst): Update to changes.
3874         (mono_metadata_parse_generic_inst): Likewise.
3875         (mono_get_shared_generic_inst): Likewise.
3876         * reflection.c (mono_class_bind_generic_parameters): Likewise.
3877         (mono_reflection_bind_generic_method_parameters): Likewise.
3878         * metadata-internals.h: Likewise.
3879         * icall.c (free_generic_context): Kill.
3880         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
3881
3882         * reflection.c (reflection_methodbuilder_to_mono_method): Use
3883         mono_metadata_type_dup.
3884         * marshal.c (mono_mb_create_method): Likewise.
3885
3886         * metadata.c (mono_metadata_type_dup): Rename from
3887         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
3888         MonoImage.  Handle a few more cases, esp. when no mempool is given.
3889         * marshal.c, metadata-internals.h: Update to changes.
3890
3891 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3892
3893         * class.c: fixed a small leak for array classes and removed warning.
3894
3895 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
3896
3897         * loader.c (mono_method_get_param_token): Make this work on generic methods.
3898         Return 0x8000000 for return parameters. Fixes #82161.
3899
3900 2007-07-21  Marek Habersack  <grendello@gmail.com>
3901
3902         * appdomain.c (get_shadow_assembly_location): append the current
3903         ticks value to the path. Avoids overwriting the same assemblies by
3904         several threads at the same time.
3905
3906 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3907         and Raja R Harinath  <rharinath@novell.com>
3908
3909         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3910         Simplify slightly.
3911         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
3912         property for testing if a method is a generic method definition.
3913
3914 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3915
3916         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
3917
3918 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3919
3920         * verify.c: used function from private branch, reverted to the one in class.h 
3921
3922 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3923
3924         * verify.c: a typo slipped in and the code wont compile
3925
3926 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3927
3928         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
3929         disabled box instruction as it is doing the wrong thing
3930         improved stack dump messages, now it is easier to debug type related issues
3931
3932
3933 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
3934
3935         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
3936
3937 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3938
3939         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
3940         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
3941         grouped with class and valuetype. This change will simply 
3942         the code as it should be handled just like unmanaged pointers.
3943
3944 2007-07-19  Mark Probst  <mark.probst@gmail.com>
3945
3946         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
3947
3948 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3949
3950         * verify.c: several stack merge issues fixed, reference comparisons now
3951         check the type size. strict type check now works correctly.
3952         added more uses of IS_MANAGED_POINTER macro.
3953         fixed issues pointed by running the test suite against .net.
3954         
3955
3956 2007-07-19  Mark Probst  <mark.probst@gmail.com>
3957
3958         * class.c, loader.c, class-internals.h: Removed the
3959         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
3960         defines.
3961
3962         * icall.c: Better error checking in some internal reflection
3963         methods.
3964
3965 2007-07-18  William Holmes  <billholmes54@gmail.com>
3966
3967         * filewatcher.c : removed unused variable 'filename' in 
3968           ves_icall_System_IO_FSW_SupportsFSW
3969
3970 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
3971
3972         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
3973         obsolete, removed.
3974
3975 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
3976
3977         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
3978         
3979         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
3980
3981 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
3982
3983         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
3984         Implement generics support.
3985         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3986
3987         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
3988         type_args and method_args arguments.
3989         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
3990         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3991         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
3992
3993 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
3994
3995         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
3996           It adds a rootimage parameter to mono_reflection_get_type_internal,
3997           adds new function mono_reflection_get_type_with_rootimage and use
3998           the rootimage to resolve the types instead of the current image
3999
4000 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4001
4002         * culture-info-table.h: Forgot to update after r78304.
4003
4004 2007-07-13  Raja R Harinath  <rharinath@novell.com>
4005
4006         * class.c (mono_class_is_open_constructed_type)
4007         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
4008
4009 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
4010
4011         * class.c (mono_bounded_array_class_get):  method fails if used with
4012         an incomplete TypeBuilder enum (no basetype field), fixed it by 
4013         avoiding calculating the size for such array as it cannot be instantiated.
4014         Fix bug #82015
4015
4016 2007-07-12  Raja R Harinath  <rharinath@novell.com>
4017
4018         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
4019         field.
4020         * metadata.c, reflection.c: Update to changes.
4021
4022 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
4023
4024         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
4025         mono_class_is_valid_enum, they are used to valide a enum when loading.
4026         * reflection.c: used new functions to throw TypeLoadException when and
4027         invalid enum is build with TypeBuilder. Fixes #82018
4028   
4029 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
4030
4031         * object.c: forgot commit of mono_class_setup_methods () to access
4032         iface->methods.
4033         * object-internals.h: added a few more handy fields to
4034         MonoIMTCheckItem.
4035
4036 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
4037
4038         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
4039         iface->methods.
4040
4041 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
4042
4043         * class-internals.h, object-internals.h, object.c: IMT-based
4044         interface invocation core from Massimiliano Mantione
4045         (massi@ximian.com) with a reworked arch-specific interface,
4046         bsearch implementation and a few bugfixes and memory savings by me.
4047
4048 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
4049
4050         * class.c (mono_class_create_from_typedef): mono would segfault if 
4051         an enum did not have a __value field. It now throws a TypeLoadException
4052         for such cases. Fix bug #82022
4053
4054 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
4055
4056         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
4057
4058 2007-07-09  Mark Probst  <mark.probst@gmail.com>
4059
4060         * class.c (mono_class_init): If a class is already inited but has
4061         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
4062
4063 2007-07-09  Mark Probst  <mark.probst@gmail.com>
4064
4065         * class.c: Properly handle the case of an unimplemented interface
4066         method.  Fixes: 81673.
4067
4068 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
4069
4070         * class-internals.h, object.c: cleanup patch from massi: use
4071         MonoVTable->interface_bitmap since the vtable interfaces offset array
4072         is going away.
4073
4074 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
4075
4076         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
4077         GetMDStreamVersion icall instead.
4078
4079 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
4080
4081         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
4082         not use mono_dl_build_path() with a full library name: makes
4083         fallbacks to libgaim and libfam work.
4084
4085 2007-07-06  William Holmes  <billholmes54@gmail.com>
4086
4087         * assembly.c: Added a continue statement in probe_for_partial_name when
4088          parse_assembly_directory_name fails.  Fixes : 82002
4089
4090 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
4091
4092         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
4093         and added a verification  for TYPEDBYREF.
4094         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
4095         make native int interchangeable with int32 and some small cleanup and formating.
4096         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
4097         handle byref of byref.
4098         * verify.c (push_local): handle byref of byref.
4099         * verify.c (do_binop): invalid mix of values is unverifiable
4100         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
4101         added visibility checks
4102         * verify.c (field related method): added visibility checks
4103         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
4104
4105 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
4106
4107         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
4108         string.
4109
4110 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
4111
4112         * profiler.c (mono_profiler_load): Fix an off-by-one error.
4113
4114         * marshal.c (emit_marshal_string): When returning a string from managed code,
4115         allways make a copy even for unicode strings. Fixes #81990.
4116
4117 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
4118
4119         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
4120         of byref generic inst types (bug #81997).
4121
4122 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
4123
4124         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
4125         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
4126
4127 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
4128
4129         * marshal.c (emit_marshal_string): Add support for unicode strings in
4130         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
4131
4132 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
4133
4134         * verify.c: field load/store are now verified, missing only access checks now
4135
4136 2007-06-28  Martin Baulig  <martin@ximian.com>
4137
4138         * mono-debug.c (mono_debug_debugger_version): New public variable.
4139
4140 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
4141
4142         * locales.c: When constructing DateTimeFormat or NumberFormat for
4143         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
4144         MonoCultureInfo contructed from the current locale is always
4145         read-only and has UseUserOverride set to true. All MonoCultureInfo
4146         instances returned for GetCultures have both IsReadOnly and
4147         UseUserOverride set to true. Fixes part of bug #81930.
4148
4149 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
4150
4151        * icall-def.h: Update System.__ComObject icalls
4152        * marshal.c: Avoid managed transition (and object creation)
4153        when looking up COM interface in RCW.
4154        * marshal.h: Ditto.
4155        
4156        Code is contributed under MIT/X11 license.
4157
4158 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
4159
4160         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
4161         to avoid crashes during assembly unloading.
4162
4163 2007-06-22  Raja R Harinath  <rharinath@novell.com>
4164
4165         Fix MethodInfo.IsGenericMethodDefinition
4166         * reflection.c (mono_reflection_bind_generic_method_parameters):
4167         Rearrange code to ensure we always uses a generic method definition.
4168         * class.c (mono_class_inflate_generic_method_full): Set
4169         'generic_container' field only for generic method definitions.
4170         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
4171         Use presense of 'generic_container' field as indication of being a
4172         generic method definition.
4173
4174 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
4175
4176         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4177
4178         * object-internals.h: Reflect changes in the layout of the managed Delegate
4179         class.
4180         
4181         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
4182         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
4183         runtime memory used by the dynamic method. Fixes #77146.
4184
4185 2007-06-21  Dick Porter  <dick@ximian.com>
4186
4187         * file-io.h: 
4188         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
4189         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
4190         81767.
4191
4192 2007-06-21  Raja R Harinath  <rharinath@novell.com>
4193
4194         * reflection.c (method_encode_methodspec): Add a tripwire.
4195         * class.c (inflate_generic_type): The fully open generic type is
4196         not the same as the generic type definition.
4197
4198 2007-06-21  Martin Baulig  <martin@ximian.com>
4199
4200         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
4201
4202         * mono-debug-debugger.h
4203         (MonoDebuggerBreakpointInfo): Removed.
4204         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
4205         (mono_debugger_remove_breakpoint): Likewise.
4206         (mono_debugger_breakpoint_callback): Likewise.
4207         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
4208
4209 2007-06-21  Raja R Harinath  <rharinath@novell.com>
4210
4211         * metadata.c (mono_metadata_lookup_generic_class): The fully open
4212         generic type is not the same as the generic type definition.
4213         * class.c (mono_generic_class_get_class): Likewise.
4214
4215 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
4216
4217         * icall.c: The second argument to 
4218         System.Reflection.MethodBase.GetMethodFromHandleInternalType
4219         is a MonoType not a MonoClass.
4220
4221 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
4222
4223         * verify.c: support for function pointers in the verifier
4224
4225 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
4226
4227         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
4228
4229 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
4230
4231         * assembly.c: removed Mono.Data.SqliteClient from the list of
4232         forward-compatible assemblies as it breaks the ABI (bug #81899).
4233
4234 2007-06-19  Raja R Harinath  <rharinath@novell.com>
4235
4236         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
4237         lookup/update with the loader lock.
4238         * reflection.c (mono_class_bind_generic_parameters): No need to
4239         protect mono_metadata_lookup_* with the loader lock.
4240         * class.c (inflate_generic_type): Likewise.
4241         
4242         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
4243         on a generic instantiated type.
4244
4245 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
4246
4247         *verify.c: produce meanfull error messages on verification error
4248         *verify.c: fixed some cases of verification errors reported as validation errors
4249         *pedump.c: fixed the error name array, now it shows validation errors properly
4250         *verify.h: fixed the contant that should be used for verification errors
4251
4252 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
4253
4254         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
4255         for bug #77596, 81858 and 80743 (generics data structures on domain
4256         unload).
4257
4258 2007-06-15  Raja R Harinath  <rharinath@novell.com>
4259
4260         Avoid allocating 'MonoGenericContext' on the heap.
4261         * class-internals (_MonoMethodInflated::context): Make field
4262         inline, not a pointer.
4263         * loader.c (method_from_methodspec): Allocate 'new_context' on the
4264         stack.  Use the context embedded within the inflated method as the
4265         hash key, rather than 'new_context'.
4266         * class.c (inflate_generic_context): Simplify.  Return a struct
4267         rather than allocating on the heap.
4268         (mono_class_inflate_generic_method_full): Update to changes.  Now,
4269         doesn't salt away a copy of the context -- simplifying the
4270         lifetime rules of a 'MonoGenericContext *'.
4271         (mono_method_get_context): Return pointer to embedded context.
4272         (setup_generic_array_ifaces): Allocate temporary context on stack.
4273         * reflection.c (inflate_mono_method): Likewise.
4274         (mono_reflection_bind_generic_method_parameters): Likewise.
4275         Use the context embedded within the inflated method as the hash key.
4276
4277         Avoid a source of allocation of 'MonoGenericContext'.
4278         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
4279         and 'cached_context' fields into embedded 'MonoGenericContext' field.
4280         * class.c: Update to changes.
4281         (mono_generic_class_get_context): Simplify drastically.  Now just
4282         returns a pointer to the field.
4283         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
4284         argument as a const pointer.
4285         (mono_metadata_generic_context_equal): Likewise.
4286         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
4287         Update to changes.
4288
4289 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
4290
4291         * verify.c improved the handling of brtrue/brfalse, factored out common code
4292
4293 2007-06-14  Raja R Harinath  <rharinath@novell.com>
4294
4295         Kill MonoGenericMethod.
4296         * class-internals.h (MonoGenericContext::method_inst): Rename from
4297         'gmethod' and convert to a MonoGenericInst.
4298         (MonoGenericMethod): Remove.
4299         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
4300         * loader.c (method_from_methodspec): Update to changes.  Use a
4301         MonoGenericContext as the key to the hashtable.
4302         * metadata.c (mono_metadata_generic_context_equal): Rename from 
4303         'mono_metadata_generic_method_equal' and take MonoGenericContext.
4304         (mono_metadata_generic_context_hash): Likewise from
4305         'mono_metadata_generic_method_hash'.  Change hash function.
4306         (mono_metadata_load_generic_params): Update to changes.
4307         (mono_get_shared_generic_method): Remove.
4308         * metadata-internals.h (mono_get_shared_generic_method): Remove.
4309         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
4310         (inflate_generic_context): Likewise.
4311         (mono_class_inflate_generic_method_full): Likewise.
4312         (setup_generic_array_ifaces): Likewise.
4313         (mono_class_create_from_typespec): Likewise.
4314         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
4315         (method_encode_methodspec): Update callsite.
4316         (reflection_methodbuilder_to_mono_method): Update to changes.
4317         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
4318         MonoGenericContext as the key to the hashtable.
4319         (inflate_mono_method): Update to changes.
4320
4321         * class-internals.h (MonoGenericMethod::container): Remove.
4322         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
4323
4324 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
4325
4326         * profiler-private.h, profiler.c, profiler.h: added API to profile
4327         exception events.
4328
4329 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
4330
4331         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
4332
4333 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
4334
4335         * verify.c: method invocation is now validated, now we verify parameter types on stack.
4336         Fixed overflow and underflow not aborting the verification process.
4337
4338 2007-06-13  Mark Probst  <mark.probst@gmail.com>
4339
4340         * class-internals.h (MonoStats): Added stats entries for dynamic
4341         code allocations.
4342
4343 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
4344
4345         * loader.c (mono_free_method): Free header->locals and header->clauses.
4346
4347         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
4348         dynamic case.
4349
4350         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
4351
4352         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
4353
4354 2007-06-12  Raja R Harinath  <rharinath@novell.com>
4355
4356         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
4357         the tables.
4358
4359 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
4360
4361         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
4362
4363 2007-06-11  Raja R Harinath  <harinath@gmail.com>
4364
4365         MonoGenericMethod on a diet
4366         * class-internals.h (_MonoMethodInflated::reflection_info): Move
4367         here ...
4368         (_MonoGenericMethod::reflection_info): ... from here.
4369         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
4370         Update to changes.
4371         * reflection.c (inflate_mono_method): Likewise.
4372         (mono_reflection_bind_generic_method_parameters): Likewise.
4373
4374 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
4375
4376         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
4377         *verify.c: factored long ldarg forms to share code with short forms
4378
4379 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
4380
4381         *verify.c: fixed code formating factored some duplicate code
4382         into a new function
4383
4384         *verify.h: fixed binary incompatibility introduced earlier
4385
4386         *pedump.c: fixed formating
4387
4388 2007-06-11  Raja R Harinath  <harinath@gmail.com>
4389
4390         Fix assertion when disassembling Mono.C5.dll
4391         * loader.c (method_from_methodspec): Avoid inflating a method
4392         twice with the same context.  If the methodref is inflated, use
4393         the declaring method instead.
4394
4395         * class.c (mono_class_from_generic_parameter): Fix case similar to
4396         bug #81830 handled below, but for method containers.
4397
4398 2007-06-10  Raja R Harinath  <harinath@gmail.com>
4399
4400         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
4401         get_shared_generic_class.  Directly inflate the instance.
4402         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
4403         (inflate_generic_class): Delete.
4404         (get_shared_generic_class): Delete.  Move setting of
4405         'cached_class' and 'cached_context' ...
4406         * metadata.c (mono_metadata_lookup_generic_class): ... here.
4407
4408         * metadata.c (mono_metadata_lookup_generic_class): Change
4409         signature to take the components of a MonoGenericClass rather than
4410         an allocated MonoGenericClass.  Change semantics to be intern-like.
4411         * reflection.c (mono_class_bind_generic_parameters): Update to
4412         changes.  Make locking region tighter.
4413         * class.c (inflate_generic_class): Update to changes.
4414         (get_shared_generic_class): Likewise.
4415         * metadata-internals.h: Likewise.
4416
4417         * reflection.c (mono_class_bind_generic_parameters): Take and
4418         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
4419         (mono_reflection_bind_generic_parameters): Use
4420         'mono_class_bind_generic_parameters' rather than duplicate the code.
4421         * class.c (mono_bounded_array_class_get): Update to changes.
4422         * object-internals.h: Likewise.
4423
4424         * reflection.c (mono_class_bind_generic_parameters): Only support
4425         parameterizing generic type definitions.  Remove support for other
4426         open types.
4427
4428 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
4429
4430         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
4431
4432         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
4433         in the dynamic case.
4434
4435 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
4436
4437         * threads.c: When cleaning up thread, reset the Background bit.
4438         Fixes bug #81720.
4439
4440 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
4441
4442        * metadata.c: Move variable declarations to top of scope.
4443        * verify.c: Move variable declarations to top of scope.
4444
4445        Code is contributed under MIT/X11 license.
4446
4447 2007-06-08  Raja R Harinath  <rharinath@novell.com>
4448
4449         * reflection.c (mono_class_bind_generic_parameters): Replace
4450         open-coded loop with mono_metadata_inflate_generic_inst.
4451
4452         * class.c (get_shared_generic_class): Don't call
4453         mono_get_shared_generic_inst.  Use the container's own
4454         'class_inst'.
4455
4456         * metadata.c (mono_metadata_load_generic_params): Move
4457         initialization of 'context' field here from ...
4458         * class.c (mono_class_create_from_typedef): ... here, and ...
4459         * loader.c (mono_get_method_from_token): ... here.
4460
4461         * class.c (get_shared_generic_class): Rename from
4462         mono_get_shared_generic_class and make static.
4463         (mono_get_shared_generic_inst): Move to metadata.c.
4464         * loader.c (mono_get_shared_generic_method): Likewise.
4465         * class-internals.h, metadata-internals.h: Update to changes.
4466
4467         Fix #81830
4468         * class.c (mono_class_from_generic_parameter): Don't assume a
4469         generic container owner exists.  Generic containers from monodis
4470         don't have any.
4471
4472 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
4473
4474         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
4475         * verify.h: new typedefs to returns the non-verifiable status
4476         * verify.c: initial implementation of generics, stack merging and object compatibility check
4477
4478 2007-06-06  Mark Probst  <mark.probst@gmail.com>
4479
4480         * class.c, image.c, class-internals.h (MonoImage): class_cache is
4481         a MonoInternalHashTable again (fixed bug in internal hash table
4482         code).
4483
4484 2007-06-06  Mark Probst  <mark.probst@gmail.com>
4485
4486         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
4487         MonoInternalHashTable again (fixed bug in internal hash table
4488         code).
4489
4490 2007-06-06  Mark Probst  <mark.probst@gmail.com>
4491
4492         * class.c, image.c, class-internals.h, domain.c,
4493         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
4494         changes.  Have to figure out what makes them break the SWF
4495         regression.
4496
4497 2007-06-04  Mark Probst  <mark.probst@gmail.com>
4498
4499         * class.c, image.c, class-internals.h (MonoImage): class_cache is
4500         a MonoInternalHashTable now.
4501
4502 2007-06-04  Mark Probst  <mark.probst@gmail.com>
4503
4504         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
4505         MonoInternalHashTable now.
4506
4507 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
4508
4509         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
4510         invoke_impl code.
4511
4512         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
4513
4514         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
4515         dependent trampoline.
4516
4517         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4518
4519         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
4520
4521 2007-05-29  Robert Jordan  <robertj@gmx.net>
4522
4523         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
4524
4525 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
4526
4527         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
4528
4529 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
4530
4531        * marshal.c: Fix interface lookup loops for
4532        cominterop_get_com_slot_for_method and 
4533        cominterop_get_method_interface. Only need to lookup
4534        if type is a class, else use interface type method is on.
4535
4536        Code is contributed under MIT/X11 license.
4537
4538 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
4539
4540         * reflection.c: HasSecurity can be present even if no specially 
4541         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
4542         SecurityAttribute). Fix CAS regression tests on buildbot.
4543
4544 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
4545
4546        * appdomain.c: Add configure checks for header files.
4547        * image.c: Add configure checks for header files.
4548        * file-io.c: Add configure checks for header files.
4549        * debug-mono-symfile.c: Add configure checks for header files.
4550        * threadpool.c: Add configure checks for header files.
4551        * console-io.c: Add configure checks for header files.
4552        * profiler.c: Add configure checks for header files.
4553        * rawbuffer.c: Add configure checks for header files.
4554        * icall.c: Add configure checks for header files.
4555        * rand.c: Add configure checks for header files.
4556        * socket-io.c: Add configure checks for header files.
4557
4558        Code is contributed under MIT/X11 license.
4559
4560 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
4561
4562         * reflection.c (mono_custom_attrs_from_builders): Remove the 
4563         assertion as it breaks the build.
4564         
4565         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
4566
4567         * reflection.c (lookup_custom_attr): Make a copy here too.
4568
4569         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
4570         dynamic images.
4571
4572         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
4573         images.
4574
4575         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
4576         info.
4577
4578 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
4579
4580         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
4581         (load_cattr_value): Ditto.
4582
4583 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
4584
4585         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
4586
4587 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
4588
4589         * threads.c: In "start_wrapper", set apartment_state to MTA if
4590         apartment_state is Unknown and we're running on 2.0 profile or
4591         higher.
4592         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
4593         to main method, then set apartment_state to Unknown on 1.0 profile,
4594         and MTA on 2.0 profile.
4595
4596 2007-05-16  Jb Evain  <jb@nurv.fr>
4597
4598         * class-internals.h (MonoDefaults): Add an attribute_class and
4599           customattribute_data_class.
4600         * domain.c (mono_init_internal): Populate them.
4601         * reflection.c: Use them to remove duplicates. Make a vew
4602         MonoClass variables `static'.
4603
4604 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
4605
4606         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
4607         step in implementing IMT, so that all isinst checks now can go
4608         through the bitmap.
4609         This was needed because vtables for TransparentProxy need to look
4610         like the vtable of the "target" class, so they need to point to
4611         its interface bitmap directly.
4612
4613         * object.c: inside "mono_class_create_runtime_vtable" and
4614         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
4615
4616 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
4617
4618         * object-internals.h
4619           culture-info.h : added territory field in MonoCulture and
4620           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
4621         * locales.c : fill territory field above too.
4622         * culture-info-table.h : regenerated.
4623
4624 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
4625
4626         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
4627         Fixes #81599.
4628
4629 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
4630
4631         * object.c: Always initialize apartment, even if 
4632         there is no custom attributes on entry point.
4633         
4634         Code is contributed under MIT/X11 license.
4635
4636 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
4637
4638         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
4639         * metadata.c: If no encoding is set, check for unicode
4640         on class.
4641         
4642         Code is contributed under MIT/X11 license.
4643
4644 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
4645
4646         * threads.c: Handle if mono_thread_current returns NULL 
4647         
4648         Code is contributed under MIT/X11 license.
4649
4650 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
4651
4652         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
4653         in start_wrapper. Added mono_thread_init_apartment_state and
4654         mono_thread_cleanup_apartment_state.
4655         * object.c: Initialize thread apartment state on main thread
4656         by checking for STAThreadAttribute on entry point.
4657         * object-internals.h: Add apartment_state field to MonoThread.
4658         * threads-types.h: Add unmanaged definition of 
4659         System.Threading.ApartmentState, MonoThreadApartmentState.
4660         
4661         Code is contributed under MIT/X11 license.
4662         
4663 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
4664
4665         * class.c: Fix windows build.
4666         * class-internals.h: Fix windows build.
4667         
4668         Code is contributed under MIT/X11 license.
4669
4670 2007-05-08  Robert Jordan  <robertj@gmx.net>
4671
4672         * process.c (CreateProcess_internal):
4673         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
4674         .CreateNoWindow was specified. Fixes #81496.
4675
4676 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
4677
4678         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
4679         step in implementing IMT, replaced it with two compact arrays
4680         (interfaces_packed and interface_offsets_packed) and a bitmap that
4681         is used for isinst checks (interface_bitmap).
4682
4683         * class.c: (compare_interface_ids): compare function to pass to
4684         bsearch when looking for an interface with a given id.
4685         (mono_class_interface_offset): reimplemented using bsearch on
4686         interfaces_packed, getting the offset from interface_offsets_packed.
4687         (print_implemented_interfaces): utility debugging function.
4688         (setup_interface_offsets): reworked to initialize interfaces_packed,
4689         interface_offsets_packed and interface_bitmap.
4690
4691         * object.c: replaced all accesses to "MonoClass.interface_offsets"
4692         with uses of interfaces_packed and interface_offsets_packed.
4693
4694 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
4695
4696         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
4697         mono_class_interface_offset prototype to wrap all accesses to
4698         "MonoClass.interface_offsets".
4699
4700         * class.c: Implemented mono_class_interface_offset, and wrapped all
4701         accesses to "MonoClass.interface_offsets".
4702
4703         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
4704         "MonoClass.interface_offsets".
4705
4706 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
4707
4708         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
4709         GetMethodFromHandle overloads (bug #78637).
4710
4711 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
4712
4713         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
4714         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
4715
4716 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
4717
4718         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
4719         #81498.
4720
4721         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
4722         gracefully.
4723         (mono_custom_attrs_from_index): Ditto.
4724
4725         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
4726         Fixes #81501.
4727
4728 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
4729
4730         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
4731         is now allocated from a mempool.
4732
4733 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
4734
4735         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
4736         caller holds threads_lock, leading to deadlocks. Fixes #81476.
4737
4738 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
4739
4740         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
4741         mono_loader_clear_error () too late. Fixes #81463.
4742
4743 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
4744
4745         * culture-info-table.h : regenerated.
4746
4747 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
4748
4749         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
4750         is missing.
4751
4752 2007-04-25  Dick Porter  <dick@ximian.com>
4753
4754         * Makefile.am: Put the mingw enforced-optimisation back into the
4755         PLATFORM_WIN32 section.
4756
4757 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
4758
4759         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
4760         patch.
4761
4762         * image.c (mono_image_load_module): New API function to load a module reference.
4763
4764         * image.c (load_modules): Load modules lazily. Fixes #80812.
4765
4766         * class.c (mono_class_from_typeref): Use mono_image_load_module.
4767         
4768         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
4769
4770         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
4771         to mono_image_load_module_dynamic.
4772
4773 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
4774
4775         * marshal.c: Fix calling convention for CCW on non-windows
4776         platforms. STDCALL on windows, CDECL everywhere else to work 
4777         with XPCOM and MainWin COM.
4778         
4779         Code is contributed under MIT/X11 license.
4780
4781 2007-04-23  Martin Baulig  <martin@ximian.com>
4782
4783         Fix #80969.
4784
4785         * loader.c
4786         (method_from_memberref): Added `gboolean *used_context' argument.
4787         (mono_get_method_from_token): Likewise.
4788         (mono_get_method_full): Don't insert the method in the cache when
4789         `used_context' is true.
4790
4791 2007-04-23  Raja R Harinath  <rharinath@novell.com>
4792
4793         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
4794
4795         * reflection.c (mono_reflection_bind_generic_parameters): Don't
4796         create new MonoTypes for returned types.
4797         * class.c (mono_generic_class_get_class): Export mono-internal.
4798         * class-internals.h: Update to changes.
4799
4800 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
4801
4802         * threadpool.c, threadpool.h, icall-def.h: patch from
4803         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
4804
4805 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
4806
4807         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
4808         
4809         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
4810
4811         * threads.c (mono_thread_get_stack_bounds): New helper function.
4812
4813         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
4814         Correctly compute stack bounds when attaching. Fixes #81394.
4815
4816 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
4817
4818         * reflection.c: fix handling of doubles in custom attributes
4819         for the arm-fpa format (bug #81368).
4820
4821 2007-04-18  Raja R Harinath  <rharinath@novell.com>
4822
4823         * reflection.c (assembly_add_win32_resources): Mildly relax an
4824         bounds check to let the end pointer point just past the end of the
4825         allocated buffer.  (may fix #81384)
4826
4827 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
4828
4829         * culture-info-table.h : regenerated.
4830
4831 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
4832
4833         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
4834         the thread is aborted early.
4835
4836 2007-04-05  Dick Porter  <dick@ximian.com>
4837
4838         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
4839         FindFirstFile()/FindNextFile() to find entries.  This lets the
4840         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
4841         81038.
4842
4843         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
4844         the parameters of
4845         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
4846
4847 2007-04-04  Martin Baulig  <martin@ximian.com>
4848
4849         * debug-helpers.c
4850         (mono_method_desc_full_match): Add support for nested classes.
4851
4852 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
4853
4854         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
4855
4856 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
4857
4858         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
4859         waiting for too many threads.
4860
4861 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
4862
4863         * environment.c: Fix return value check on uname so we can get the 
4864         executing version on Solaris operating systems.
4865
4866 2007-03-28  Jb Evain  <jbevain@gmail.com>
4867
4868         * class.c (mono_type_get_name_recurse): Complete the
4869         fix for the creation of assembly qualified names for
4870         pointer types. Fixes #81208.
4871
4872 2007-03-27  Dick Porter  <dick@ximian.com>
4873
4874         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
4875         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
4876         changed.
4877
4878         * threads.c
4879         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
4880         the value of ReleaseMutex().
4881
4882 2007-03-27  Dick Porter  <dick@ximian.com>
4883
4884         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
4885         in little-endian order, not network endian, so must be converted
4886         to host endian here.  Fixes bug 80593.
4887
4888 2007-03-22  Jb Evain  <jbevain@gmail.com>
4889
4890         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
4891         qualified names for pointer types. Fixes #81208.
4892
4893 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
4894
4895         * marshal.c: Add support for PreserveSigAttribute. 
4896         
4897         Code is contributed under MIT/X11 license.
4898
4899 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
4900
4901         * process.c: Fix endianness issues. Fixes #81126.
4902
4903         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
4904         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
4905
4906         * image.c (mono_image_lookup_resource): Make this work on big-endian
4907         machines.Change API contract so the caller needs to free the return value.
4908         
4909         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
4910         API change.
4911         
4912 2007-03-14  Martin Baulig  <martin@ximian.com>
4913
4914         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
4915         mono_type_get_desc() as well.
4916
4917 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
4918
4919         * icall.c:  Fix environ access in VS.  
4920         
4921 2007-03-13  Alp Toker  <alp@atoker.com>
4922
4923         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
4924         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
4925         #63841.
4926
4927 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
4928
4929         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
4930         circular references among dynamic methods. Fixes #81091.
4931
4932         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
4933
4934 2007-03-09  Martin Baulig  <martin@ximian.com>
4935
4936         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
4937
4938 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
4939
4940         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
4941         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
4942         
4943         Code is contributed under MIT/X11 license.
4944         
4945 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
4946
4947         * loader.c: Reapply patch for bug #79424.
4948
4949 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
4950
4951         * metadata.c (mono_type_to_unmanaged): Only convert object to
4952         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
4953
4954 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
4955
4956         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
4957         (and incorrectly set) is_reference field from MonoGenericInst.
4958
4959 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
4960
4961         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
4962         a little earlier.
4963
4964         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
4965
4966         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
4967
4968 2007-03-05  Miguel de Icaza  <miguel@novell.com>
4969
4970         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
4971         FileOptions.1 value to mean "temporary", map that to
4972         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
4973
4974         Fixes 80688
4975
4976 2007-03-03  Marek Habersack  <mhabersack@novell.com>
4977
4978         * appdomain.c: implement MS .Net style shadow copying. Copies of
4979         the assemblies are made in a subdirectory of the dynamic base
4980         directory, the assembly names are preserved.
4981         Copy .mdb and .config files along with the assemblies being shadowed.
4982
4983 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
4984
4985         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
4986         (emit_marshal_handleref): Ditto.
4987
4988         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
4989         on Visual C++. Fixes #80671.
4990
4991 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
4992
4993         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
4994         for clone operations.
4995
4996 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
4997
4998         * marshal.c: Fix warnings.
4999
5000 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
5001
5002         * loader.c: allow case-insensitive matching of the dll name
5003         in dllmap handling when prefixed with "i:".
5004
5005 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
5006
5007         * threads.c: Fix #ifdef for dummy_apc function for VS.
5008
5009 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
5010
5011         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
5012
5013 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
5014         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
5015         giving precedence to the methods with a fully qualified name
5016         (InterfaceName.MethodName) when building the interface sections
5017         of the vtable.
5018
5019 2007-02-16  Dick Porter  <dick@ximian.com>
5020
5021         * threadpool.c (append_job): Fix fast-path array handling, so it's
5022         less likely the array will grow exponentially when the load is
5023         heavy.
5024
5025 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
5026
5027         * metadata-internals.h, loader.c: fix dllmap lookup order
5028         for non-function maps, too, and prepare for fallback code.
5029
5030 2007-02-12  Robert Jordan  <robertj@gmx.net>
5031
5032         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
5033         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
5034         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
5035         GlobalFree. Fixes a part of bug #77075.
5036
5037 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
5038
5039         * loader.c: implemented typedef parent in field memberref.
5040
5041 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
5042
5043         * marshal.c: Fix warnings and remember to call Release on
5044         IUnknown of RCW.
5045         
5046         Code is contributed under MIT/X11 license.
5047
5048 2007-02-10  Miguel de Icaza  <miguel@novell.com>
5049
5050         * class-internals.h: Add MonoHandleRef definition, and
5051         handleref_class to mono_defaults. 
5052
5053         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
5054         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
5055
5056         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
5057         (do nothing on this stage)
5058         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
5059         (emit_marshal_handleref): New method, used for argument handling
5060         of HandleRefs. 
5061
5062 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
5063
5064         * class.c (mono_class_setup_parent): Lazily init com types.
5065         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
5066         init com types.
5067         * object.c (mono_remote_class_vtable): Lazily init com types.
5068         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
5069         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
5070         * domain-internals.h: Expose mono_init_com_types.
5071         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
5072         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
5073         Add support for COM Callable Wrapper marshalling.
5074         * marshal.h: Add icall definitions.
5075         * gc.c: Handle freeing of CCWs in finalizer code.
5076         
5077         Code is contributed under MIT/X11 license.
5078
5079 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
5080
5081         * reflection.c: changed all the signature encoding code to use
5082         a variable-sized buffer.
5083
5084 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
5085
5086         * marshal.c: locking fixes: never take the loader lock
5087         or other runtime locks when holding the marshal lock
5088         (fixes bug#80664).
5089
5090 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
5091
5092         * marshal.c: make the delegate function pointer mapping
5093         work for the moving GC.
5094
5095 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
5096
5097         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
5098         for bug #80618.
5099
5100 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
5101
5102         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
5103         gmodule.
5104
5105 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
5106
5107         * threadpool.c: made the code moving-GC safe.
5108
5109 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
5110
5111         * assembly.c, boehm-gc.c, class-internals.h, class.c,
5112         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
5113         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
5114         warning cleanup.
5115         * reflection.c: warning cleanup, some threading and moving GC fixes.
5116
5117 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
5118
5119         * class.c, loader.c: create the needed Set/Get/Address array methods
5120         as well as the .ctors in mono_class_init (), fixes bug #80567.
5121
5122 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
5123
5124         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
5125         we doesn't decrease its alignment. Should fix the sparc build.
5126
5127 2007-01-24  Dick Porter  <dick@ximian.com>
5128
5129         * socket-io.c
5130         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5131         Create the returned object if we need to ignore an unsupported
5132         socket option.  Fixes a segfault reported by Atsushi.
5133
5134 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
5135
5136         * class.c, object.c: restrict GC-tracked fields to
5137         UIntPtr fields used inside corlib, so we provide better
5138         type info to the GC and also allow broken packing as in
5139         bug #80580.
5140
5141 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
5142
5143         * sgen-gc.c: removed duplicated function.
5144
5145 2007-01-19  Miguel de Icaza  <miguel@novell.com>
5146
5147         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
5148         value that means that the value is not supported, but that we
5149         should not return a failure, but instead report this as a
5150         successful operation.
5151
5152 2007-01-19  Raja R Harinath  <rharinath@novell.com>
5153
5154         Fix tests/bug79956.2.il
5155         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
5156         (mono_generic_class_get_class): If the generic definition in an
5157         enum, copy over other fields related to it.
5158
5159 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
5160
5161         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
5162         genericinst enums (bug #79215).
5163
5164 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
5165         * class.c: Fix bug 80307.
5166
5167 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
5168
5169         * image.c: if the file table is not present, try to load
5170         all the modules, since we don't have info about them
5171         having or not metadata (bug #80517).
5172         * assembly.c: allow mono_assembly_load_references () to
5173         work for netmodules.
5174
5175 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
5176
5177         * image.c, metadata-internals.h, object.c: execute module
5178         cctors when running on the 2 runtime if present (bug #80487).
5179
5180 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
5181
5182         * icall.c: optimized InitializeArray() on bigendian.
5183
5184 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
5185
5186         * icall.c: fix for the broken ARM FPA double format.
5187
5188 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
5189
5190         * icall.c: handle endian issues for r4 and r8 types, too, in
5191         the InitializeArray() icall.
5192
5193 2007-01-15  Miguel de Icaza  <miguel@novell.com>
5194
5195         * loader.c (mono_loader_error_prepare_exception): Clear the error
5196         once we have extracted the information from it, do this before we
5197         call into the JIT's class loading mechanisms.
5198
5199         * object.c (mono_class_create_runtime_vtable): Do not clear the
5200         loader error before calling mono_class_get_exception_for_failure
5201         as the loader error is needed inside
5202         mono_class_get_exception_for_failure to throw the error (thinko).
5203
5204         Fixes #80521
5205         
5206 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
5207
5208         * reflection.c: align fields rva data so it's faster to load at
5209         runtime.
5210
5211 2007-01-12  Raja R Harinath  <rharinath@novell.com>
5212
5213         Prepare to simplify GenericMethod handling.
5214         * class-internals.h (mono_method_get_context): New accessor function.
5215         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
5216         rather than directly accessing '->context' field.
5217
5218         * class-internals.h (_MonoGenericParam.method): Move ...
5219         (_MonoGenericContainer): ... here.  Add into union with klass field.
5220         * class.c, icall.c, loader.c, metadata.c, reflection.c:
5221         Update to changes.
5222
5223 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
5224
5225         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
5226         the wrapper type enum and reduce relocations.
5227
5228 2007-01-12  Raja R Harinath  <rharinath@novell.com>
5229
5230         * reflection.c (inflate_mono_method): Reuse method instantiation
5231         from the generic method, if available.
5232
5233 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
5234
5235         * marshal.c (emit_marshal_variant): Fix conv_arg
5236         type in last commit, based on whether parameter is byref.
5237         
5238 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
5239
5240         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
5241         marshalling.
5242         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
5243         MONO_TYPE_OBJECT back for VARIANT support.
5244
5245 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
5246
5247         * marshal.c, marshal.h, icall-def.h: Implement 
5248         Marshal.ReAllocCoTaskMem.
5249
5250 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
5251
5252         * marshal.c: memory retention fixes: use the proper
5253         image cache for runtime_invoke method lookups.
5254
5255 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
5256
5257         * mempool.c: added code to help debug mempool allocations.
5258
5259 2007-01-11  Dick Porter  <dick@ximian.com>
5260
5261         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
5262         support (experimenting with faking it with IP_MTU_DISCOVER for
5263         systems that don't have IP_DONTFRAGMENT.)
5264         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
5265         icall.
5266
5267         * icall-def.h: new System.Net.Sockets.Disconnect icall.
5268
5269         * socket-io.h: Add new fields to MonoSocketAsyncResult
5270         corresponding to the new ones in Socket.cs.
5271
5272 2007-01-11  Raja R Harinath  <rharinath@novell.com>
5273
5274         Fix IronPython regression mentioned in #80249
5275         * metadata.c (do_mono_metadata_parse_generic_class): Clear
5276         'cached_context' field, since it may have been initialized as a
5277         side-effect of metadata parsing.
5278
5279         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
5280         (_MonoGenericClass.cached_class): Move here and rename from lone
5281         remaining field of ...
5282         (_MonoInflatedGenericClass): ... this.  Remove.
5283         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
5284         to changes.
5285
5286         Fix mcs/tests/test-128.cs regression.
5287         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
5288         2007-01-10 change below.
5289         [MONO_TYPE_OBJECT]: Recurse into array case.
5290
5291 2007-01-11  Raja R Harinath  <harinath@gmail.com>
5292
5293         * class-internals.h (mono_get_inflated_generic_class): Remove.
5294         * class.c (mono_get_inflated_generic_class): Remove.
5295         (mono_generic_class_get_class): Rename from
5296         mono_class_create_generic.
5297         (mono_class_from_mono_type) [GENERICINST]: Use it.
5298         * reflection.c, metadata.c: Update to changes.  Use
5299         'mono_class_from_mono_type'.
5300
5301 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
5302
5303         * reflection.c: use passed type when encoding an array element
5304         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
5305
5306 2007-01-09  Robert Jordan  <robertj@gmx.net>
5307
5308         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
5309         result arguments (someDelegate.EndInvoke (unrelatedAres)).
5310         Fixes bug #80392.
5311
5312 2007-01-09  Raja R Harinath  <rharinath@novell.com>
5313
5314         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
5315
5316         * object.c (set_value): Avoid aliasing between type->data.klass
5317         and type->data.generic_class.
5318
5319         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
5320
5321 2007-01-08  Raja R Harinath  <rharinath@novell.com>
5322
5323         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
5324         between type->data.klass and type->data.generic_class.
5325
5326 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
5327
5328         * marshal.c: In MS.NET, StringBuilder objects are not copied by
5329         value in out parameters.
5330
5331 2007-01-08  Raja R Harinath  <rharinath@novell.com>
5332
5333         Simplify invariant for MonoGenericClass::klass field.
5334         * class.c (mono_class_create_generic): Verify 'klass' is null.
5335         * metadata.c (do_mono_metadata_parse_generic_class): Don't
5336         initialize 'klass' field.
5337
5338 2007-01-05  Raja R Harinath  <rharinath@novell.com>
5339
5340         Ongoing work to avoid redundant data and simplify invariants.
5341         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
5342         'generic_class', and change type to a GenericInst.
5343         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
5344         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
5345
5346 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
5347
5348         * class.c : skip io-layer under PLATFORM_WIN32.
5349
5350 2007-01-03  Tor Lillqvist  <tml@novell.com>
5351
5352         Fix #80305: In a bundled executable, look in the bundled exe
5353         assembly to determine the runtime version. Add the possibility to
5354         bundle also the machine.config file.
5355         
5356         * assembly.c (mono_assembly_open_from_bundle): Make
5357         non-static. Allow being called even if we have no bundled
5358         assemblies, and return NULL right away in that case.
5359
5360         * domain-internals.h: Declare mono_assembly_open_from_bundle()
5361         here.
5362
5363         * domain.c (app_config_parse): Take an assembly exe file name as
5364         parameter instead of a config file name. Check for a bundled
5365         config file for that assembly by calling
5366         mono_config_string_for_assembly_file() (see below) before looking
5367         for one in the file system.
5368         (get_runtimes_from_exe): Corrsponding change to call of
5369         app_config_parse().
5370         (get_runtimes_from_exe): Check for bundled assembly exe file first
5371         by calling mono_assembly_open_from_bundle(). If no bundled
5372         assembly exe file is found, call mono_image_open() as before to
5373         look it up in the file system.
5374
5375         * mono-config.c: Add variable bundled_machinec_onfig.
5376         (mono_config_string_for_assembly_file): New function.
5377         (mono_config_for_assembly): Move code snippet that looks for a
5378         bundled assembly .config file into the above new function. Call
5379         it.
5380         (mono_register_machine_config, mono_get_machine_config): New
5381         functions to set and retrieve
5382
5383         * assembly.h: Declare mono_register_machine_config().
5384
5385         * mono-config.h: Declare mono_get_machine_config() and
5386         mono_config_string_for_assembly_file().
5387
5388         * icall.c: No declaration of environ necessary on Win32. It is
5389         declared (as a macro expanding to a function call) in stdlib.h.
5390         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
5391         New internal mono function. Returns the value of
5392         mono_get_machine_config() as a Mono string.
5393
5394         * icall-def.h: Add get_bundled_machine_config().
5395
5396 2007-01-04  Raja R Harinath  <rharinath@novell.com>
5397
5398         Remove redundant field
5399         * class-internals.h (_MonoGenericContext.container): Remove field.
5400         * loader.c (mono_method_get_signature_full): Don't parse a
5401         "container" for a signature parse when the signature is inflated
5402         immediately.
5403         (method_from_methodspec): Likewise, for a generic_inst.
5404         * class.c, metadata.c, reflection.c: Update to changes.
5405
5406 2006-01-04  Raja R Harinath  <rharinath@novell.com>
5407
5408         * class-internals.h (_MonoGenericClass): Rename 'context' field to
5409         'cached_context', and change semantics -- it starts off NULL, and
5410         is initialized on demand.
5411         * class.c (mono_generic_class_get_context): New accessor to
5412         replace 'context' field accesses.
5413         (mono_class_get_context): New helper.
5414         (*): Update to changes.
5415         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
5416
5417 2007-01-03  Miguel de Icaza  <miguel@novell.com>
5418
5419         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
5420         before the memcpy.   Fixes Marshal2 regression.
5421
5422 2007-01-02  Jb Evain  <jbevain@gmail.com>
5423
5424         * blob.h: add a MONO_TYPE_ENUM definition
5425         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
5426         fix the encoding of arrays of enums in custom attributes.
5427
5428         Fixes #79666.
5429
5430 2007-01-01  Miguel de Icaza  <miguel@novell.com>
5431
5432         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
5433         string is null terminated, but only cut the string short if it
5434         overflows the buffer.   
5435         
5436         (mono_string_to_byvalstr): Also fix this routine.   The code here
5437         was not properly terminating a string (it was only terminated
5438         because of the previous catch-all memset). 
5439
5440         I left the memset, because I do not know if applications expect
5441         the runtime to clear this region. 
5442
5443         Fixes #79944.
5444
5445         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
5446         Clear the error before returning to unmanaged code to prevent the
5447         runtime from being confused later on (fixes  80420).
5448         (ves_icall_type_from_name): Always call mono_loader_clear_error
5449         after parsing a type that could have failed.
5450         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
5451
5452         * loader.c (mono_loader_clear_error): Fix indentation.
5453
5454 2006-12-28  Martin Baulig  <martin@ximian.com>
5455
5456         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
5457
5458 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
5459
5460         * reflection.c: patch from Rolf Bjarne Kvinge to fix
5461         getting a token for an EnumBuilder.
5462
5463 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
5464
5465         * reflection.c: be more careful in case resource generation
5466         fails to create the data array.
5467
5468 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
5469
5470         * sgen-gc.c: write barrier for clone and fix unregister handles.
5471
5472 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
5473
5474         * reflection.c: some fixes needed in the generics code for the moving GC.
5475
5476 2006-12-22  Robert Jordan  <robertj@gmx.net>
5477
5478         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
5479         account. Fixes bug #80299.
5480
5481 2006-12-21  Raja R Harinath  <rharinath@novell.com>
5482
5483         Fix WaitHandle usage in delegates.
5484         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
5485         * object.c (mono_wait_handle_new): Use the property set method to
5486         initialize the handle.
5487         (mono_wait_handle_get_handle): New.
5488         * threadpool.c (mono_async_invoke): Use it.
5489         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
5490         Likewise.
5491         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
5492
5493 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
5494
5495         * marshal.c (emit_marshal): Call emit_marshal_variant and
5496         emit_marshal_com_interface when applicable.
5497         (emit_marshal_variant, emit_marshal_com_interface): Add
5498         methods for this case and remove if's from emit_marshal_object.
5499         
5500 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
5501
5502         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
5503
5504 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
5505
5506         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
5507         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
5508         and GlobalFree on Windows. Remove FIXME.
5509
5510 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5511
5512         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
5513         implementation for managed objects.
5514
5515 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
5516
5517         * object.c: implemented code to be used for checking
5518         that no reference field overlaps with non-references.
5519
5520 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5521
5522         * threadpool.c: fix queue code to be compatible with the
5523         moving GC.
5524
5525 2006-12-18  Miguel de Icaza  <miguel@novell.com>
5526
5527         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
5528         in structures by throwing ArgumentNullException.
5529
5530         (emit_marshal_safehandle): Also when they are null parameters.
5531
5532         (emit_marshal_safehandle): Add support for ref
5533         SafeHandles parameters
5534
5535 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5536
5537         * profiler.c: updated to use the mono-dl API instead of
5538         gmodule.
5539
5540 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5541
5542         * profiler.c: updated to use the mono-dl dynamic loading
5543         API instead of gmodule.
5544
5545 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
5546
5547         * profiler.c: use readlink, older versions of glib don't have
5548         g_file_read_link ().
5549
5550 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5551
5552         * profiler.c: try to detect the path to mono if libc fails to provide
5553         a useful name (bug #80286).
5554
5555 2006-12-16  Raja R Harinath  <rharinath@novell.com>
5556
5557         Fix #80242
5558         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
5559         instance, use the generic type definition instead.
5560         (ves_icall_Type_GetNestedTypes): Likewise.
5561         * class.c (mono_class_create_generic): Always set the
5562         nested_classes of a generic instance to NULL, even if the generic
5563         type definition has nested types.
5564
5565 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
5566
5567         * marshal.c (mono_string_from_bstr): Revert previous Windows change
5568         and fix on Linux.
5569         
5570 2006-12-15  Miguel de Icaza  <miguel@novell.com>
5571
5572         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
5573         my arguments were in the wrong order.   I also fixed the Windows
5574         version which seems to have had the same issue.
5575
5576         (mono_free_bstr): On Unix, this is g_free.
5577         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
5578         conversions (for the tests in corlib to pass).
5579
5580 2006-12-14  Miguel de Icaza  <miguel@novell.com>
5581
5582         * marshal.c (emit_ptr_to_object_conv): For now, ignore
5583         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
5584         exception if a ref SafeHandle in a struct has changed).
5585         
5586         (emit_struct_conv): Do not perform layout checks for classes
5587         derived from SafeHandle, as those are specially handled. 
5588
5589         (emit_object_to_ptr_conv): Add support for
5590         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
5591
5592         (emit_marshal_safehandle): Implement conversion of return values
5593         of safehandles (MARSHAL_ACTION_CONV_RESULT).
5594         
5595         * threads.c: WaitHandle now is compiled with two different handles
5596         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
5597         for 2.0.
5598         
5599         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
5600         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
5601         these routines to cope with both kinds of fields.
5602
5603 2006-12-12  Miguel de Icaza  <miguel@novell.com>
5604
5605         * metadata.c (mono_type_to_unmanaged): Handle the case where
5606         type->data.klass is a SafeHandle, and in that case, return the
5607         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
5608         MONO_MARSHAL_CONV_SAFEHANDLE. 
5609
5610 2006-12-11  Miguel de Icaza  <miguel@novell.com>
5611
5612         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
5613         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
5614         calling emit_marshal_object.
5615
5616         (emit_marshal_safehandle): Implement marshalling of
5617         SafeHandle parameters (no ref support yet).
5618
5619         (MarshalAction): Document the defines as I implement
5620         them for SafeHandle.
5621
5622         (emit_marshal_object): indentation police.
5623
5624         * class-internals.h: Define MonoSafeHandle.
5625         Add safehandle_class to MonoDefaults type.
5626
5627         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
5628         list of classes to check for fields. 
5629
5630         * domain.c (mono_init_internal): Add SafeHandle to the list of
5631         mono_defaults loaded.
5632
5633 2006-12-15  Raja R Harinath  <rharinath@novell.com>
5634
5635         Fix #80253
5636         * reflection.c (mono_reflection_bind_generic_parameters): If the
5637         generic type definition is a type builder, ensure that it is fully
5638         initialized before instantiating it.  Kill some dead code.
5639
5640 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
5641
5642         * object.c: clear the loader_error () before loading
5643         more metadata stuff (bug #80258).
5644
5645 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
5646
5647         * icall.c, icall-defs.h: type modifiers icalls for
5648         parameters and properties.
5649
5650 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
5651
5652         * object.c, icall.c: fixed warnings.
5653
5654 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
5655
5656         * marshal.c: fixed a couple of leaks and coding style in a few places.
5657
5658 2006-12-08  Dick Porter  <dick@ximian.com>
5659
5660         * process.c: Cope with NULL ProcessStartInfo arguments on windows
5661         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
5662         80173.
5663
5664 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
5665
5666         * process.c: ProcessStartInfo may have only filename set and
5667         arguments can be NULL.
5668
5669 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5670
5671         * icall.c: fix leak found by Robert Jordan.
5672
5673 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
5674
5675         * marshal.c, marshal.h: generate managed method to access an element
5676         of a multi-dimensional array.
5677
5678 2006-11-30  Paolo Molaro (lupus@ximian.com)
5679
5680         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
5681
5682 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5683
5684         * icall.c: back out GetFields () fix until the serialization code is
5685         fixed to not depend on the incorrect behaviour.
5686
5687 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
5688
5689         * profiler.c: provide defaults if none are set.
5690
5691 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
5692
5693         * Makefile.am, attrdefs.h: new public header file with
5694         constants for attributes for use by embedders.
5695
5696 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
5697
5698         * icall.c: GetFields () fix for bug #80064.
5699
5700 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
5701
5702         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
5703         removed long unused icalls.
5704
5705 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
5706   
5707         * marshal.c: 
5708                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
5709                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
5710                 can be generated without a delegate class.
5711                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
5712         
5713         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5714
5715 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5716
5717         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
5718         #80069.
5719
5720 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5721
5722         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
5723         icall-def.h: added icalls needed by System.GC.
5724
5725 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
5726
5727         * loader.c: ensure the class in catch clauses is handled
5728         correctly for generics methods (fixes bug#79980).
5729
5730 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
5731
5732         * monitor.h, monitor.c: added mono_locks_dump () function
5733         to help debug deadlocks involving managed locks.
5734
5735 2006-11-13  Dick Porter  <dick@ximian.com>
5736
5737         * file-io.c (get_file_attributes): If the file is a symlink try
5738         and get the stat data for the target, but also add the
5739         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
5740         the specs for the windows symlink support, but will probably have
5741         to be reworked when I have test data from a vista machine.  Fixes
5742         bug 79887.
5743
5744 2006-11-13  Dick Porter  <dick@ximian.com>
5745
5746         * gc.c (mono_domain_finalize): 
5747         * marshal.c (mono_delegate_begin_invoke): 
5748         * threadpool.c (socket_io_init, mono_thread_pool_init)
5749         (mono_thread_pool_finish): 
5750         * monitor.c (mono_monitor_try_enter_internal): 
5751         * threads.c (mono_thread_resume, mono_thread_init)
5752         (mono_thread_suspend_all_other_threads)
5753         (mono_thread_execute_interruption): 
5754         * appdomain.c (mono_domain_unload): Check for NULL error returns
5755         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
5756         75733.
5757
5758 2006-11-11  Miguel de Icaza  <miguel@novell.com>
5759
5760         * process.c
5761         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
5762         Only close the handle if the value of the handle is not
5763         INVALID_HANDLE_VALUE.  This just makes the process a bit more
5764         robust.
5765
5766         Improvement for #75733, so that we do not run into this problem. 
5767
5768         
5769         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
5770         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
5771         internal variables.  Fixes #79462 
5772         
5773
5774 2006-11-09  Dick Porter  <dick@ximian.com>
5775
5776         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5777         Use poll() not select().  Fixes bug 79397.
5778
5779 2006-11-09  Raja R Harinath  <rharinath@novell.com>
5780
5781         Fix #79872
5782         * assembly.c (mono_assembly_load_from_full): Check that the given
5783         image has an assembly manifest.
5784
5785 2006-11-09  Ankit Jain  <jankit@novell.com>
5786
5787         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
5788         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
5789         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
5790
5791 2006-11-07  Dick Porter  <dick@ximian.com>
5792
5793         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5794         Put the old resolver behaviour back for pre-2.0 profiles.
5795
5796 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5797
5798         * threadpool.c: precise GC and locking fixes.
5799
5800 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
5801
5802         * class.c: don't load types that have an explicit unaligned
5803         managed reference. Provide better info in the TypeLoad exception.
5804         Part of the fix for bug #79744.
5805         * object.c: use the correct check for class type load issues.
5806
5807 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5808
5809         * class.c: enforce alignment of fields with managed references
5810         even when Pack=1 is forced by the user (bug #77788).
5811
5812 2006-11-03  Dick Porter  <dick@ximian.com>
5813
5814         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5815         If the address reverse lookup fails, return it as the hostname
5816         anyway.  Fixes bug 79721.
5817
5818 2006-11-03  Dick Porter  <dick@ximian.com>
5819
5820         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
5821         Fix build on Windows.
5822
5823 2006-11-02  Dick Porter  <dick@ximian.com>
5824
5825         * icall-def.h: 
5826         * object-internals.h: 
5827         * exception.c (mono_get_exception_thread_interrupted): 
5828         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
5829         Fixes bug 74525.
5830
5831         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
5832         Check for pending Thread.Interrupt.
5833
5834 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
5835         * loader.c: Fixed bug 79684.
5836
5837 2006-10-27  Dick Porter  <dick@ximian.com>
5838
5839         * file-io.c (get_file_attributes): Force symlinks to directories
5840         to be returned as a regular file.  Fixes bug 79733.
5841 2006-10-26  Dick Porter  <dick@ximian.com>
5842
5843         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
5844         CreateFile to open a directory then we need to set the
5845         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
5846
5847 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
5848
5849         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
5850         friends.
5851
5852 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5853
5854         * sgengc.c: small cleanup of timer code.
5855
5856 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5857
5858         * sgen-gc.c: fix some warnings and start adding support for
5859         complete object removal on domain unload.
5860
5861 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
5862
5863         * assembly.c: build_assembly_name should not consider a version
5864         number without build or revision number invalid. Fixes bug #79715.
5865
5866 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
5867
5868         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
5869         call kernel32 function OutputDebugString directly.
5870         
5871         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5872         
5873 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
5874
5875         * reflection.c: small cleanup, using a function to insert a MonoString
5876         in the string heap.
5877
5878 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
5879
5880         * reflection.c: moving GC fixes.
5881
5882 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
5883
5884         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
5885         all the objects with finalizers belonging to an unloading appdomain.
5886
5887 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
5888
5889         * sgen-gc.c: added ability to allocate even when the nursery is fully
5890         pinned and fixed a couple of bugs.
5891
5892 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
5893
5894         * threads.h: Revert the last change for now.
5895
5896         * threads.h (mono_thread_get_pending_exception): Rename this to
5897         mono_thread_get_undeniable_exception ().
5898
5899 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
5900
5901         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
5902         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
5903         when fname does not refer to valid assembly. This result in a more
5904         meaningful error message.
5905         * exception.c: added mono_get_exception_bad_image_format2 which 
5906         constructs a BadImageFormatException using the ctor taking a custom
5907         message and the file name. Passing in a NULL msg results in a default
5908         message.
5909         * exception.h: define mono_get_exception_bad_image_format2 function.
5910         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
5911         when file name pointed to an invalid IL image. Use 
5912         mono_get_exception_file_not_found2 to construct FileNotFoundException,
5913         as this results in a more meaningful error message.
5914
5915 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
5916
5917         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
5918         #79465.
5919
5920 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
5921
5922         * metadata.c (mono_type_size): Change the align parameter to guint32 for
5923         consistency with the other _size functions.
5924         (mono_type_stack_size): Ditto.
5925
5926         * class.c object.c icall.c: Fix warnings caused by the above change.
5927
5928         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
5929
5930         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
5931
5932         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
5933
5934 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5935
5936         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
5937         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
5938         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
5939         threadpool.h, threads-types.h: mark more internal functions.
5940
5941 2006-10-11  Dick Porter  <dick@ximian.com>
5942
5943         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5944         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
5945         reproduce the bug even before applying the fix.)
5946
5947 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
5948
5949         * reflection.c: allow retrieving attributes for arguments in generic
5950         methods (bug #79241).
5951
5952 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
5953
5954         * debug-mono-symfile.c: properly check fopen () result (found by
5955         coverity).
5956
5957 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
5958
5959         * reflection.c: make error message clearer and fixed two
5960         issuelets found by Coverity.
5961
5962 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
5963
5964         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
5965
5966 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5967
5968         * object-internals.h, gc-internal.h, profiler-private.h:
5969         mark internal functions.
5970
5971 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5972
5973         * reflection.c: put data in the text section.
5974         * icall.c: recognize more types in type_from_typename ().
5975         * process.c, marshal.c: added some GC FIXMEs.
5976
5977 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5978
5979         * loader.c: check for NULL before initializing.
5980
5981 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
5982
5983         * gc.c (finalizer_thread): Use a non-alertable wait here.
5984
5985         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
5986         until the correct solution is found.
5987
5988 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
5989
5990         * reflection.c (mono_module_get_object): Avoid an assert when operating on
5991         modules with no metadata. Fixes #79596.
5992
5993         * image.c (load_metadata_ptrs): Put back the error message when
5994         the #- heap is encountered since the support is not complete yet.
5995
5996 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5997
5998         * gc.c: do not allow the user to SuppressFinalize () a
5999         delegate because it would leak the trampoline if present.
6000
6001 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
6002
6003         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
6004         PropertyPtr table.
6005
6006 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
6007
6008         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
6009
6010         * metadata.c (mono_metadata_get_param_attrs): Ditto.
6011
6012         * row-indexes.h: Add definitions for *Ptr tables.
6013
6014         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
6015
6016         * metadata.c (mono_metadata_translate_token_index): New helper function to
6017         translate table indexes used in uncompressed metadata.
6018         (mono_metadata_decode_table_row): Ditto.
6019         (mono_metadata_decode_table_row_col): Ditto.
6020
6021         * metadata.c: Add table schema for *Ptr tables.
6022
6023         * class.c loader.c: Use the new helper function to access the affected metadata
6024         tables.
6025         
6026         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
6027         #38532.
6028         
6029 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
6030
6031         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
6032         sequences which can be unbounded in size. Fixes #79583.
6033
6034 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
6035
6036         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
6037         static initialization.
6038
6039         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
6040
6041         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
6042
6043         * domain.c (mono_domain_free): Free up type_init_exception_hash.
6044
6045         * object.c (mono_runtime_class_init): Implement correct semantics when a static
6046         ctor fails, i.e. throw the same exception on subsequent accesses.
6047         
6048 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
6049
6050         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
6051         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
6052         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
6053         Handle marshalling of interfaces and VARIANTs contained in structs.
6054         
6055         Code is contributed under MIT/X11 license.
6056         
6057 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
6058
6059         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
6060         
6061         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
6062         mempool.
6063
6064 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6065
6066         * console-io.c: ignore previous SIGINT handler.
6067
6068 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
6069
6070         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
6071         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
6072         #79460, #79461, #79485.
6073
6074         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
6075
6076         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
6077         #79217.
6078
6079 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
6080
6081         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
6082         could be generated from it.
6083
6084 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
6085
6086         * rand.c: fix read loop to correctly handle EINTR.
6087
6088 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
6089
6090         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
6091         internal calls are defined to keep methods closer to the declaring
6092         type and allow a significant reduction in runtime relocations and
6093         memory usage.
6094
6095 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
6096
6097         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
6098         exception message to have FileNotFoundException use the default
6099         assembly load error message. Fixes bug #79426.
6100         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
6101
6102 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6103
6104         * threadpool.c: (start_thread_or_queue) use the root domain when
6105         creating the thread instead of the async object one.
6106
6107 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
6108
6109         * class.c, object.c, class-internals.h, reflection.c:
6110         for arrays, store element_size inside MonoClass (speedup
6111         for array object creation).
6112
6113 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
6114
6115         * icall.c: fixed CodeBase to use the file name and not the module
6116         name (bug #79365).
6117
6118 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
6119
6120         * mono-debug.c, mono-debug.h: export find_method as
6121         mono_debug_find_method ().
6122
6123 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
6124
6125         * debug-helpers.c, class-internals.h: added a few functions useful
6126         when debugging under gdb.
6127
6128 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6129
6130         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
6131         characters that need special handling.
6132
6133 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
6134
6135         * mono-config.c: make the os/cpu specification more flexible,
6136         allowing lists and negation.
6137
6138 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
6139
6140         * marshal.c: COM Interop fixes. Handle case where method->klass.
6141         is interface. Handle BSTR/MonoString when null. Use CDECL as 
6142         calling convention on non-windows platforms. This is for
6143         compatibility with XPCOM and MainWin COM.
6144         
6145         Code is contributed under MIT/X11 license.
6146         
6147
6148 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
6149
6150         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
6151         correctly. Fixes #79217.
6152
6153         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
6154
6155 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
6156
6157         * mono-config.c: allow both an os and cpu attribute for dllmap
6158         and dllentry elemnets to enable a single config file to be used
6159         for multiple architectures.
6160
6161 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
6162
6163         * loader.c: MonoLoaderError was cleared too soon on load failure.
6164         Fixes bug #79424.
6165
6166 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
6167
6168         * icall.c: use the defining class vtable when accessing a
6169         static field, not a pobblibly derived class.
6170
6171 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
6172
6173         * icall.c string-icalls.c: Remove references to unicode.h.
6174
6175         * unicode.h unicode.c Makefile.am: Remove these unused source files.
6176
6177         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
6178
6179         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
6180         indicating the image where custom marshaller types should be looked up.
6181         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
6182         custom marshallers, instead of corlib. Fixes #79425.
6183
6184 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
6185
6186         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
6187
6188 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
6189
6190         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
6191         Implement Environment.ProcessorCount.
6192         
6193         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
6194         Implement Environment.ProcessorCount.
6195         
6196         * icall.c: 
6197         Add Environment.ProcessorCount icall.
6198         
6199         Patch by Jason McFall.
6200
6201 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6202
6203         * assembly.c: don't append .exe/.dll when the filename already contains
6204         one of those extensions.
6205
6206 2006-09-12  Martin Baulig  <martin@ximian.com>
6207
6208         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
6209         to array interfaces.
6210
6211 2006-09-11  Martin Baulig  <martin@ximian.com>
6212
6213         * reflection.c (mono_image_build_metadata): Create the
6214         MethodImpl's after emitting all types and methods, so we don't
6215         need another fixup pass for them.
6216
6217 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
6218
6219         * class.c (mono_class_from_name_case): Fix regression introduced by the last
6220         change.
6221
6222 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
6223
6224         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
6225         unload.
6226
6227 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
6228
6229         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
6230         args is not set. Fixes #78926.
6231
6232 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
6233
6234         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
6235
6236         * image.c (load_class_names): Move this to class.c, and rename it to 
6237         'mono_image_init_name_cache'.
6238         (load_modules): Fix a warning.
6239
6240         * class.c icall.c image.c: Initialize image->name_cache lazily.
6241
6242         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
6243         on its name using information in the AOT file.
6244
6245         * class.c (mono_class_from_name): Use the new hook function.
6246
6247 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
6248
6249         * reflection.c (mono_param_get_objects): Handle enum default parameter values
6250         correctly.
6251
6252         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
6253         Fixes #79289.
6254         
6255 2006-09-06  Martin Baulig  <martin@ximian.com>
6256
6257         * icall.c (mono_lookup_internal_call): Small fix.
6258
6259 2006-09-05  Raja R Harinath  <rharinath@novell.com>
6260
6261         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
6262         double g_free.
6263
6264 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
6265
6266         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
6267         when --debug is specified.
6268
6269 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
6270
6271         * class.c (setup_generic_array_ifaces): Fix a warning.
6272
6273 2006-09-04  Miguel de Icaza  <miguel@novell.com>
6274
6275         * Temporarily remove the patch to assemly.c that checks the
6276         assembly versions as it breaks our gacutil.
6277
6278 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
6279
6280         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
6281
6282         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
6283         a net 1.0 runtime.
6284
6285         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
6286         created using the default ctor. Fixes #79152.
6287         (mono_string_builder_to_utf16): Ditto.
6288
6289 2006-09-01  Martin Baulig  <martin@ximian.com>
6290
6291         Fix handling of the generic array interfaces.
6292
6293         * class-internals.h
6294         (MonoDefaults): Removed `generic_array_class' and added
6295         `generic_ilist' class.
6296
6297         * class.c
6298         (mono_bounded_array_class_get): Add the new generic array interfaces.
6299         (setup_generic_array_ifaces): New static method; create vtable
6300         entries for each method in the generic array interfaces.
6301
6302         * metadata.c
6303         (select_container): Allow "parent-less" generic methods.
6304
6305         * marshal.c
6306         (mono_marshal_get_generic_array_helper): New public method.
6307
6308         * icall.c
6309         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
6310         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
6311         moved the interncall into System.Array.
6312
6313 2006-09-01  Raja R Harinath  <rharinath@novell.com>
6314
6315         A few more cases of avoiding work on types with ->byref set.
6316         Has the real fix for #79238
6317         * icall.c (is_generic_parameter): New helper.
6318         (ves_icall_Type_GetGenericParameterPosition): Use it.
6319         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
6320         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
6321         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
6322         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
6323         reference types.
6324         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
6325         reference types.
6326         (ves_icall_Type_get_IsGenericInstance): Likewise.
6327         (ves_icall_Type_get_IsGenericType): Likewise.
6328
6329 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
6330
6331         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
6332         class if possible.
6333
6334         * mempool.h (mono_mempool_get_allocated): New helper function.
6335
6336         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
6337         change.
6338
6339         * mempool.c: Fix warnings and the calculation of stats.
6340
6341         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
6342
6343         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
6344
6345         * loader.c (mono_get_method_from_token): Update method_count stat.
6346
6347         * class-internals.h (MonoStats): Add some stats.
6348
6349 2006-08-31 Robert Jordan  <robertj@gmx.net>
6350
6351         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
6352         with managed variants.
6353         All code is contributed under the MIT/X11 license.
6354         
6355 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
6356
6357         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
6358         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
6359
6360         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
6361
6362         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
6363         with cycles in classes.
6364
6365         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
6366
6367         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
6368         missing a [MarshalAs] directive. Fixes #79203.
6369
6370         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
6371         klass->marshal_info. Fixes #79217.
6372
6373 2006-08-30  Martin Baulig  <martin@ximian.com>
6374
6375         Committing a patch from Joachim Ante <joe@otee.dk>:
6376         Add support for binary data symbol stores.
6377
6378         * debug-mono-symfile.c
6379         (mono_debug_open_mono_symbol_file): Renamed into
6380         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
6381         arguments.
6382
6383         * mono-debug.c
6384         (mono_debug_open_image): Added `raw_contents' and `size' args.
6385         (mono_debug_init_2_memory): New public function.
6386
6387 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
6388
6389         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
6390
6391 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6392
6393         * appdomain.c: implement support for ShadowCopyFiles.
6394
6395 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
6396
6397         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
6398         when value is NULL (and should remove CID #51).
6399
6400 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6401
6402         * image.c: moved 2 functions to ../utils.
6403
6404 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
6405
6406         * gc.c: cope with the target object of a GC handle being NULL
6407         (bug #78877).
6408
6409 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
6410
6411         * class.c: recursively check parent's explicit implementations
6412         of interface methods (fixes bug #79125).
6413
6414 2006-08-19  Miguel de Icaza  <miguel@novell.com>
6415
6416         * filewatcher.c: Avoid warnings when building, do not redefine
6417         constants that are defined.
6418
6419         Remove warnings.
6420
6421 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6422
6423         * image.c: don't fail when the link points to an absolute path.
6424
6425 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
6426
6427         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
6428         Fix CID #3.
6429
6430 2006-08-17  Miguel de Icaza  <miguel@novell.com>
6431
6432         * image.c (full_path): A new method used to obtain the actual path
6433         of an assembly even in the presence of symbolic links.  
6434
6435         This is necessary for the case where we are running a binary that
6436         has been GACed, but we are using the "published" path name
6437         ($prefix/mono/1.0/blah.exe) which happens to point to the real
6438         file in the GAC.
6439
6440         This was the source of the failure for the `xsp' command with the
6441         recent AppDomain changes, as far as the runtime was concerned,
6442         there were two different assemblies: $prefix/mono/1.0/blah.exe and
6443         $prefix/mono/gac/blah/version/blah.exe.
6444
6445         (do_mono_image_open): use full path
6446
6447 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
6448
6449         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
6450
6451 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
6452
6453         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
6454         domain_id is supplied. Fix CID #241 and corlib's unit tests.
6455
6456 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
6457
6458         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
6459         small structures. Fixes #78990.
6460
6461 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
6462
6463         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
6464
6465         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
6466
6467 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6468
6469         * appdomain.c:
6470         * marshal.c: don't load all the assemblies from a domain into newly
6471         created ones. The new domains might have different rules and load
6472         assemblies from different locations. Fixes bug #76757.
6473
6474         Patch by Lluis. Conflicts resolved by Brian Crowell.
6475
6476 2006-08-16  Alp Toker  <alp@atoker.com>
6477
6478         * socket-io.c: First half of the fix for #79084.
6479         Set sa_size to the length of the content, not that of the struct.
6480         Don't add NULL suffix to the content, this should be done in
6481         managed code if needed.
6482
6483 2006-08-14  Raja R Harinath  <rharinath@novell.com>
6484
6485         Fix part of #79012
6486         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
6487         mono_metadata_parse_type returns NULL.
6488
6489 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
6490
6491         * normalization-tables.h : new file for string normalization data.
6492         * locales.c, locales.h, icall.c :
6493           added load_normalization_resource() for string normalization,
6494           and icall as well.
6495         * Makefile.am : added normalization-tables.h to the sources.
6496
6497 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
6498
6499         * marshal.c: Add more helper functions to reduce code duplication and use them
6500         everywhere.
6501
6502 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
6503
6504         * marshal.c: Fix non-x86 stdcall warnings.
6505         
6506         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
6507         them everywhere.
6508
6509 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
6510
6511         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
6512         type check on multi-dimensional arrays. Fixes #79000.
6513
6514 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
6515
6516         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
6517         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
6518         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
6519         * class-internals.h: add is_com_object to class structure.
6520         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
6521         null checks to COM object marshalling. Fix .ctor call on RCW.
6522         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
6523         
6524         All code is contributed under the MIT/X11 license.
6525
6526 2006-08-09  Dick Porter  <dick@ximian.com>
6527
6528         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
6529         racing mono_monitor_allocator_lock() somewhere, so don't delete
6530         the critical section for now.  Found by running and exiting
6531         monodevelop.
6532
6533 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
6534
6535         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
6536         (ves_icall_System_ComObject_FindInterface): Ditto.
6537         (ves_icall_System_ComObject_CacheInterface): Ditto.
6538
6539         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
6540         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
6541
6542 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6543
6544         * threadpool.c: treat pipes from process asynchronous reads as sockets
6545         when reading from them, so we get select/poll or epoll to wait for
6546         data.
6547
6548 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
6549
6550         * loader.c: Fix a typo (CID #233) in the null check.
6551
6552 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
6553
6554         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
6555         Hopefully fixes #78949.
6556         
6557         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
6558         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
6559         bytes. Fixes #78972.
6560
6561 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6562
6563         * filewatcher.c: we need to set errno here.
6564
6565 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6566
6567         * filewatcher.c: let Win32Exception get the error value.
6568
6569 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6570
6571         * filewatcher.c: translate errno into win32 errors for Win32Exception
6572         to know what happened.
6573
6574 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
6575
6576         * threadpool.c: Fix more warnings.
6577
6578         * assembly.c (search_loaded): Fix warnings.
6579
6580         * threadpool.c (mono_thread_pool_finish): Fix warnings.
6581         (mono_async_invoke): Ditto.
6582
6583 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
6584
6585         * object.c (mono_remote_class_vtable): Need to create proxy vtable
6586         entries for __ComObject type in addition to ComImport types.
6587         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
6588         about hash table.
6589         
6590         All code is contributed under the MIT/X11 license.
6591
6592 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
6593
6594         * image.c: avoid tentative loading of modulerefs that contain
6595         no metadata (P/Invoke library names).
6596
6597 2006-07-28  Dick Porter  <dick@ximian.com>
6598
6599         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
6600         mono_loader_lock() somewhere, so don't delete the critical section
6601         for now.  Found by running and exiting monodevelop.
6602
6603 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6604
6605         * filewatcher.c: define the inotify syscalls when we're building on
6606         linux and have sys/syscall.h. The build system might not have support
6607         for inotify but the target system might have it.
6608
6609 2006-07-26  Miguel de Icaza  <miguel@novell.com>
6610
6611         * domain.c: Documentation updates.
6612
6613         * loader.c (mono_free_method): Do not release the method
6614         information if we are being profiled, as profilers will use this
6615         information at shut down to present some data to the user.
6616
6617         This is needed so that the profiler does not crash, as the
6618         profiler tends to keep MonoMethods around, and they might become
6619         invalid if we free these.
6620
6621         (mono_get_method_constrained): Return the original CIL stream
6622         method as well, so verification can be performed against it.
6623
6624 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6625
6626         * filewatcher.[ch]: support for inotify file system watcher.
6627         * icall.c: add new internal calls for the inotify file system watcher.
6628
6629 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6630
6631         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
6632         #78888.
6633
6634 2006-07-20  Dick Porter  <dick@ximian.com>
6635
6636         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
6637         warning.
6638
6639 2006-07-20  Dick Porter  <dick@ximian.com>
6640
6641         * threads.c (start_wrapper): Do the thread cleanup while we still
6642         hold a reference to its object.  Fixes bug 78123.
6643
6644 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
6645
6646         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
6647         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
6648           "managed-to-managed".
6649         * icall.c: Redirect string constructors that take sbyte* to
6650           ves_icall_System_String_ctor_RedirectToCreateString.
6651         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
6652           to CreateString () methods with matching signature.
6653         * reflection.c: Use original security informations for
6654           MONO_WRAPPER_MANAGED_TO_MANAGED.
6655         * security-manager.c: Use original security informations for
6656           MONO_WRAPPER_MANAGED_TO_MANAGED.
6657         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
6658           that is a placeholder and only its address should be used.
6659         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
6660           that is a placeholder and only its address should be used.
6661
6662 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
6663
6664         Begin implementing COM Interop.
6665         * appdomain.c: Increment corlib version.
6666         * class.c: Set ComImport classes' parent to __ComObject.
6667         * loader.c: Mark cominterop methods as such.
6668         * domain.c: Add __ComObject class to MonoDefaults structure.
6669         * image.c: Add 2 hashtables to the image for COM Interop related methods
6670         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
6671         using the mempool allocator
6672         
6673         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
6674         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
6675         declaration for mono_metadata_type_dup_mp.
6676         
6677         * debug-helpers.c: Added strings for two additional wrapper types
6678         * object.c: Create proxy objects for ComImport classes
6679         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
6680         and added __ComObject class to MonoDefaults structure.
6681         
6682         * object-internals.h: Finish MonoRealProxy definition, and add definition of
6683         MonoComInteropProxy and MonoComObject.
6684         
6685         * marshal.c: Added support for COM Interop
6686         (signature_cominterop): Converts managed signature to corresponding
6687         unmanaged COM signature.
6688         (cominterop_get_function_pointer): gets unmanaged function pointer via
6689         COM object vtable
6690         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
6691         (cominterop_get_method_interface): returns interface type that method is defined on
6692         (mono_mb_emit_cominterop_call): emits native call to function pointer
6693         gotten from vtable
6694         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
6695         that matches signature of unmanaged function.
6696         (cominterop_get_native_wrapper): wrapper around adjusted method call.
6697         (cominterop_get_invoke): forwards call from proxy to __ComObject
6698         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
6699         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
6700         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
6701         
6702         * marshal.h: Added Marshal icall declarations.
6703         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
6704         so we can access them in finalizer
6705         
6706 2006-07-14  Dick Porter  <dick@ximian.com>
6707
6708         * object.c (mono_type_initialization_cleanup): Fix a race
6709         condition by temporarily commenting out the critical section
6710         deletion.
6711
6712 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
6713
6714         * reflection.c (create_custom_attr): Fix some warnings.
6715         (create_custom_attr_data): Ditto.
6716         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
6717         types. Fixes #78855.
6718
6719 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
6720
6721         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
6722
6723         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
6724
6725 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
6726
6727         * reflection.c (resolve_object): Add support for DynamicMethod.
6728
6729         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
6730         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
6731
6732 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
6733
6734         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
6735         don't leak GPtrArray's pdata has we have no use (nor free) for it.
6736
6737 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
6738
6739         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
6740         Fixes #77888.
6741
6742 2006-06-30  Raja R Harinath  <rharinath@novell.com>
6743
6744         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
6745         slightly: remove a shadow local variable.
6746
6747 2006-06-29  Raja R Harinath  <rharinath@novell.com>
6748
6749         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
6750         definition that introduces the virtual function slot.
6751         Also fix Coverity #105.
6752
6753 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
6754
6755         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
6756         for dynamic assemblies. Fixes #78724.
6757
6758 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
6759
6760         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
6761         Fixes #78722.
6762
6763 2006-06-21  Martin Baulig  <martin@ximian.com>
6764
6765         * reflection.c
6766         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
6767         fixes #76484.
6768
6769 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
6770
6771         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
6772
6773 2006-06-20  Raja R Harinath  <rharinath@novell.com>
6774
6775         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
6776         nor TYPEREFs.
6777         * class.c (mono_class_create_from_typespec): Add 'context' argument.
6778         Inflate result if necessary.
6779         (mono_class_get_full): Remove old version.  Rename from
6780         'mono_class_get' and add 'context' argument.  Pass it to
6781         ..._create_from_typespec.
6782         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
6783         (mono_ldtoken): Revert change below.
6784
6785 2006-06-20  Martin Baulig  <martin@ximian.com>
6786
6787         * class.c (mono_ldtoken): Don't pass the generic context to
6788         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
6789
6790 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
6791
6792         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
6793         and later freeing it. Fixes #78638.
6794
6795 2006-06-15  Miguel de Icaza  <miguel@novell.com>
6796
6797         * icall.c (mono_class_get_throw): Revert over-zealous error
6798         throwing, the caller for mono_class_get_throw will cope with
6799         errors when classes are not properly initialized already.
6800
6801         The code still copes with loader exceptions though.
6802
6803         Fixes the regression in reftype1 and reftype3 from the CAS tests.
6804         
6805 2006-06-14  Miguel de Icaza  <miguel@novell.com>
6806
6807         Fixes the `make run1' version of RuntimeAbort (to be commited,
6808         source is in Bugzilla).
6809         
6810         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
6811         FALSE on class loading failure instead of returning true.
6812
6813         * class.c (mono_class_create_from_typedef): It is possible for
6814         mono_metadata_interfaces_from_typedef_full to fail if a class is
6815         not found, cope with this.
6816         
6817
6818 2006-06-14  Dick Porter  <dick@ximian.com>
6819
6820         * socket-io.c: 
6821         * process.c: Fix a bunch of signed/unsigned warnings from gcc
6822         4.1.1
6823
6824 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
6825
6826         * culture-info-table.h : oops, forgot to make it nsync with r61548.
6827
6828 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6829
6830         * icall.c: Another fix for building mono in Visual Studio.
6831
6832 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6833
6834         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
6835         
6836 2006-06-09  Martin Baulig  <martin@ximian.com>
6837
6838         * debug-mono-symfile.c: Put this back and really fix it this
6839         time. Sorry for all the trouble.
6840
6841 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
6842
6843         * icall.c (mono_class_get_throw): Fix a warning.
6844         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
6845         ReflectionTypeLoadException if needed. Fixes #78606.
6846
6847         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
6848         (mono_class_init): Ditto.
6849
6850         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
6851         ref_only exceptions.
6852         (mono_loader_clear_error): Make this work even if there is no error.
6853
6854 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
6855
6856         * object-internals.h marshal.c marshal.h icall.c: Implement method 
6857         Marshal.GetComSlotForMethodInfo using internal call.
6858
6859 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
6860
6861         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
6862         a function for signalling it.
6863
6864         * class.c (mono_class_from_typeref): Use the new kind of loader error when
6865         a referenced assembly is not found.
6866
6867         * loader.c (mono_loader_error_prepare_exception): Add support for 
6868         LOADER_ERROR_ASSEMBLY. Fix formatting.
6869
6870 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
6871
6872         * domain.c appdomain.c class-internals.h marshal.c: Add support 
6873         for VARIANT marshalling on windows and increment corlib version
6874         since Variant struct was added.
6875
6876 2006-06-03  Miguel de Icaza  <miguel@novell.com>
6877
6878         * debug-mono-symfile.c: Revert Martin's previous patch which broke
6879         stack trace line information:
6880
6881         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
6882         (Martin) when looking up B which is between A and C, return A not C.
6883
6884         Bug is #78573.
6885
6886         Thanks to Alexander Olk for tracking this down.
6887
6888 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
6889
6890         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
6891         
6892         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
6893         avoid clobbering its value.
6894         (mono_string_to_lpstr): Fix a warning on windows.
6895
6896 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
6897
6898         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
6899
6900         * reflection.c loader.c: Removed references to 'dummy' flag.
6901
6902         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
6903
6904         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
6905         it gets GC tracking.
6906
6907         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
6908         GC tracking.
6909         
6910         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
6911
6912         * marshal.c threadpool.c: Update callers of mono_async_result_new.
6913
6914         * appdomain.c: Bump corlib version.
6915
6916 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
6917
6918         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6919         CEE_STIND_REF when working with object references.
6920
6921 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
6922
6923         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
6924         Fixes #78539.
6925
6926 2006-05-30  Miguel de Icaza  <miguel@novell.com>
6927
6928         * loader.c (method_from_memberref): Fix argument value for
6929         mono_loader_set_error_method_load (I was passing the MonoClass
6930         instead of the class name char *).
6931
6932 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
6933
6934         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6935         CEE_STIND_REF when working with object references.
6936
6937 2006-05-30  Martin Baulig  <martin@ximian.com>
6938
6939         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
6940         mono_method_full_name() change and replace the ':' with a '.'
6941         here.
6942
6943 2006-05-30  Martin Baulig  <martin@ximian.com>
6944
6945         * debug-mono-symfile.c
6946         (mono_debug_symfile_lookup_location): Fix the algorithm:
6947         when looking up B which is between A and C, return A not C.
6948
6949 2006-05-29  Martin Baulig  <martin@ximian.com>
6950
6951         * mono-debug.h
6952         (MonoDebugMethodInfo): Make the typedef public.
6953         (MonoDebugSourceLocation): New public struct.
6954
6955         * mono-debug.c
6956         (mono_debug_source_location_from_address): Removed.
6957         (mono_debug_source_location_from_il_offset): Removed.
6958         (mono_debug_il_offset_from_address): Removed.
6959         (mono_debug_address_from_il_offset): Removed.
6960         (mono_debug_lookup_method): New public function.
6961         (mono_debug_lookup_source_location): New public function; replaces
6962         the old mono_debug_source_location_from_*() functions; see the
6963         inline documentation.
6964         (mono_debug_free_source_location): New public function.
6965         (mono_debug_print_stack_frame): New public function; see the
6966         inline documentation.
6967
6968         * debug-mono-symfile.c
6969         (mono_debug_find_source_location): Renamed into
6970         mono_debug_symfile_lookup_location(); only take a
6971         `MonoDebugMethodInfo *' and an `offset' argument; added inline
6972         documentation.
6973         (mono_debug_find_method): Renamed into
6974         mono_debug_symfile_lookup_method().
6975
6976 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
6977
6978         * assembly.c (mono_assembly_open_full): Dont overwrite the status
6979         returned by mono_image_open_full ().
6980
6981         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
6982         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
6983         #78517.
6984
6985         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
6986         #78518.
6987
6988 2006-05-27  Miguel de Icaza  <miguel@novell.com>
6989
6990         * class.c (mono_class_from_typeref): handle missing images
6991         earlier, deals with bug #78418.   Refactor code; 
6992
6993         Fix a warning introduced in my previous commit (some stale code
6994         from before I revisited my patch).
6995
6996         * class.c (mono_class_create_from_typedef): On failure, remove the
6997         class from the MonoImage->class_cache as the class is not
6998         initialized;   Fixes the leak pointed out by Paolo.
6999
7000 2006-05-25  Dick Porter  <dick@ximian.com>
7001
7002         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
7003         DeleteCriticalSections until I figure out which one may still be
7004         sometimes locked when mono_thread_cleanup is called.
7005
7006 2006-05-24  Dick Porter  <dick@ximian.com>
7007
7008         * threads.c (mono_thread_cleanup): Move the threading cleanup out
7009         of mono_thread_manage and back into its own function, so it can be
7010         called after the finalizer thread has finished.
7011
7012         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
7013
7014 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
7015
7016         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
7017         Fixes #78495.
7018
7019         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
7020         with non-blittable elements.
7021         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
7022
7023 2006-05-24  Martin Baulig  <martin@ximian.com>
7024
7025         * mono-debug-debugger.h (MonoDebuggerEvent): Added
7026         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
7027
7028         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
7029         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
7030         `mono_debugger_event_handler' to NULL.
7031
7032 2006-05-24  Martin Baulig  <martin@ximian.com>
7033
7034         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
7035
7036 2006-05-24  Martin Baulig  <martin@ximian.com>
7037
7038         * mono-debug-debugger.h
7039         (mono_debugger_create_notification_function): Added
7040         `MonoCodeManager *' argument.
7041
7042 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
7043
7044         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
7045
7046 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
7047
7048         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
7049         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
7050         implementation.
7051
7052 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
7053
7054         * icall.c: precise GC support: objects can't be stored in unmanaged
7055         memory anymore, even if they are kept alive by other references: since
7056         they can move the GC needs to be able to always find them.
7057
7058 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
7059
7060         * object.c: precise GC support for static fields. Support
7061         for moving GCs: write barriers and pinned allocation for interned
7062         strings.
7063
7064 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
7065
7066         * domain.c, domain-internals.h: precise GC support for the MonoDomain
7067         structure.
7068
7069 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
7070
7071         * class.c, gc.c: sgen and precise GC updates.
7072
7073 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
7074
7075         * marshal.h, marshal.c: added write barrier wrapper and precise type
7076         fixes.
7077
7078 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
7079
7080         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
7081         support.
7082
7083 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
7084
7085         * reflection.c: precise and sgen GC updates.
7086
7087 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
7088
7089         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
7090
7091 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
7092
7093         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
7094
7095 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
7096
7097         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
7098         MONO_TYPE_OBJECT. Fixes #78462.
7099
7100 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
7101
7102         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
7103         and blittable types.
7104
7105 2006-05-17  Miguel de Icaza  <miguel@novell.com>
7106
7107         * class.c (mono_class_get_exception_for_failure): Implement parts
7108         of a TODO: if the loader error is set (instead of the class
7109         error), we return a Loader exception that can be properly thrown
7110         elsewhere.
7111
7112         This was exposed by some Winforms 2.0 code that I tried to run
7113         (Atsushi pointed me to it).
7114
7115 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
7116
7117         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
7118         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
7119         
7120         * marshal.c (emit_marshal_vtype): Add limited support for 
7121         UnmanagedType.LPStruct. Fixes #78427.
7122
7123         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
7124         Applied a patch from kangaroo to fix #77523.
7125
7126 2006-05-17  Martin Baulig  <martin@ximian.com>
7127
7128         * threads.c
7129         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
7130         (debugger_thread_created): Removed.
7131         (debugger_thread_exited): Removed.
7132
7133 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
7134
7135         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7136
7137         * object-internals.h (MonoReflectionResource): Sync with managed version.
7138
7139 2006-05-12  Wade Berrier <wberrier@novell.com>
7140
7141         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
7142
7143 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
7144
7145         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
7146         functions try to allocate from the image mempool.
7147
7148 2006-05-12  Dick Porter  <dick@ximian.com>
7149
7150         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
7151
7152 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
7153
7154         * object.c: The FieldGetter and FieldSetter methods require the full
7155         name of the class, not only the name. Fixes bug #78277.
7156
7157 2006-05-11  Miguel de Icaza  <miguel@novell.com>
7158
7159         * loader.c (method_from_memberref): Do not pass the NULL klass to
7160         mono_loader_set_error_() methods.  Pass the non-NULL value
7161         (class). 
7162
7163 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
7164
7165         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
7166         (mono_assembly_close): Null out assembly->image->references after freeing it.
7167
7168         * image.c (mono_image_close): Free image->references.
7169         
7170         * reflection.c (mono_image_basic_init): Fix a small memory leak.
7171
7172 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
7173
7174         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
7175         before checking if it's NULL (g_assert).
7176
7177 2006-05-10  Martin Baulig  <martin@ximian.com>
7178
7179         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
7180         I thought I already killed that two months ago, but now it somehow reappeared.
7181
7182 2006-05-10  Martin Baulig  <martin@ximian.com>
7183
7184         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
7185
7186 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
7187
7188         * reflection.c: Allocate memory for dynamically created methods in the image
7189         mempools.
7190
7191 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
7192
7193         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
7194         don't use the ad pointer before checking if it's NULL (g_assert).
7195
7196 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
7197
7198         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
7199         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
7200
7201         * marshal.c: Allocate all signatures from mempools.
7202
7203         * marshal.c: Allocate some more signatures from mempools.
7204
7205 2006-05-09  Miguel de Icaza  <miguel@novell.com>
7206
7207         * object.c (mono_load_remote_field): The code used to provide a
7208         temporary variable for returning results if the user did not
7209         provide a result pointer.  But our temporary variable was allocted
7210         on the satck.
7211
7212         Fix calling code to always pass a result area.   Coverity ID 103.
7213
7214 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
7215
7216         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
7217         value, not the old. Fixes #78312.
7218         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
7219
7220         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
7221         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
7222         per-image cache.
7223
7224         * assembly.c (mono_assembly_close): Free image->references.
7225
7226         * assembly.c (mono_assembly_names_equal): Fix a warning.
7227         (mono_assemblies_cleanup): Cleanup more global data.
7228
7229         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
7230
7231         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
7232         ptr_cache and image->modules.
7233
7234         * image.c (mono_image_init): Allocate array_cache lazily.
7235         
7236 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7237
7238         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
7239         behavior was changed recently and has bad side effects.
7240
7241 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
7242
7243         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
7244         
7245         * assembly.c (mono_assembly_close): Remove a debug printf.
7246
7247         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
7248
7249         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
7250         to also allow for temporary references between mono_image_open ()/close ().
7251
7252         * domain.c (get_runtimes_from_exe): Add a FIXME.        
7253
7254 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
7255
7256         * marshal.c: Fix support for dynamic methods.
7257
7258         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
7259
7260         * marshal.c (mono_marshal_cleanup): New cleanup function.
7261
7262         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
7263         image mempools.
7264
7265         * class.c (mono_class_init): Fix leaking class->nested_classes.
7266
7267         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
7268
7269         * image.c (mono_image_init): Initialize the new cashes.
7270
7271         * image.c (mono_image_close): Destroy the new cashes.
7272
7273         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
7274
7275         * mempool.c (mono_mempool_strdup): New helper function.
7276
7277         * class-internals.h: Add prototype for mono_loader_unlock ().
7278
7279         * domain.c (mono_jit_info_table_find): Fix a warning.
7280         (mono_debugger_check_runtime_version): Ditto.
7281
7282         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
7283         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
7284         functions to these modules.
7285
7286         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
7287         metadata modules.
7288         
7289         * marshal.c (mono_free_bstr): Fix a warning.
7290
7291         * assembly.c (mono_assembly_open_full): Fix another small leak.
7292
7293         * object.c: Fix some unload leaks in the remoting code.
7294
7295         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
7296         function.
7297
7298         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
7299
7300         * reflection.c: Fix some unload leaks in dynamic assemblies.
7301
7302 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
7303
7304         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
7305         * marshal.h: Add BSTR support on Win32
7306         * icall.c: Add BSTR icalls
7307         * metadata.h: Add BSTR enums
7308
7309 2006-04-28  Miguel de Icaza  <miguel@novell.com>
7310
7311         Work to catch the crash from #76795 and turn it into an
7312         exception.   As I stubbed out pieces of the VisualBasic support,
7313         I found a number of places where the code was failing and I added
7314         checks to those places. 
7315         
7316         * metadata.c (do_mono_metadata_parse_generic_class): Make this
7317         function return a status code.  If we fail to parse the signature
7318         from mono_metadata_parse_generic_inst, return FALSE.
7319
7320         * loader.c (mono_get_method_from_token): If we fail to load the
7321         method (mono_class_get) return NULL.   
7322
7323         * (method_from_memberref): Return NULL if we are unable to parse
7324         the method signature
7325
7326         (mono_loader_error_prepare_exception): Since we now use the
7327         loader_error flag internally to stop processing, and obtaining
7328         exceptions that might be thrown will walk this code path the
7329         proper way of going from a MonoLoaderError into a
7330         MonoException was convoluted.   This new routine encapsulates the
7331         process of turning the error into an exception and *clearing* the
7332         error afterwards.
7333         
7334 2006-04-27  Miguel de Icaza  <miguel@novell.com>
7335
7336         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
7337         with missing assemblies), and to cope with:
7338
7339                 * Missing fieldref from a non-existing assembly.
7340                 * Missing methodref from a non-existing assembly.
7341
7342         The first batch of work to address *some* of the issues from 76661.
7343         
7344         * object.c (mono_class_create_runtime_vtable): If we fail to
7345         initialize the class raise the exception here. 
7346
7347         * metadata.c (mono_class_get_overrides_full): If any methods fail
7348         to load return the failure to the caller.
7349
7350         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
7351         flagging assemblies that failed to load.   
7352
7353         Do not crash if we are unable to load the assembly.
7354
7355         (mono_assembly_close): Do nothing with REFERENCE_MISSING
7356         assemblies. 
7357
7358         * loader.c (mono_loader_set_error_type_load): Change the
7359         convention to always pass unallocated strings, so we make our own
7360         copies (I know our own code had duplicated strings before, but
7361         this keeps the normal conventions).
7362         (method_from_memberref): Call mono_loader_set_error_method_load
7363         for all possible failures of loading the class. 
7364         Remove assert, turn into a loader error.
7365
7366         (mono_loader_error_to_exception): Move this routine from mini
7367         (mini_loader_error_to_exception) there was no need to have that in
7368         mini. 
7369
7370         * class.c (mono_class_from_typeref): If we were not able to load
7371         the assembly with mono_assembly_load_reference, call the
7372         mono_loader_set_error_type_load to register the problem.
7373
7374         (mono_class_setup_fields): If we fail to load the type from
7375         mono_metadata_parse_type_full, call mono_class_set_failure and
7376         break from the loop.
7377
7378         If class->exception_type is set, we do not layout the fields as
7379         that might crash the runtime, and instead return (from breaking
7380         from the previous loop).
7381
7382         (mono_class_setup_vtable): This now returns a boolean indicating
7383         whether the table was properly setup.   The decision is driven by
7384         mono_class_get_overrides_full which might run into non-existing
7385         methods. 
7386         
7387         (mono_class_init): Returns TRUE on success or FALSE if there was a
7388         problem in loading the type (incorrect assemblies, missing
7389         assemblies, methods, etc).
7390
7391         When we call mono_class_setup_fields we also check for a potential
7392         error inside this call (either a class exception or a general
7393         loader exception).
7394
7395         (mono_class_create_from_typedef): If the parent fails to load
7396         (calling mono_class_get_full) return NULL.
7397         
7398         ** Important **
7399
7400         calls to mono_metadata_parse_type_full should be checked
7401         everywhere and set the mono_class_set_failure
7402         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
7403
7404         The current patch checks the places where my manually constructed
7405         tests show the errors are showing up, but we should do it
7406         everywhere. 
7407
7408         ** Important2 **
7409
7410         mono_class_init return values should be tested everywhere, like
7411         the previous case this is something that we should audit
7412         everywhere and not only on the cases exposed by the tests I
7413         created. 
7414
7415 2006-04-26  Miguel de Icaza  <miguel@novell.com>
7416
7417         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
7418         boolean parameter and instead pass the information on `options'
7419         parameter (FileOptions).
7420
7421         * icall.c: Register the new signature for MonoIO.Open.
7422
7423         * debug-helpers.c (dis_one): Trying to understand how coverity
7424         works.  Fix Run 5, item 78.
7425
7426 2006-04-26  Dick Porter  <dick@ximian.com>
7427
7428         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
7429         dereference.
7430
7431 2006-04-25  Martin Baulig  <martin@ximian.com>
7432
7433         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
7434
7435         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
7436         debugger_thread_created().
7437         (debugger_gc_push_all_stacks): Don't handle the main thread in any
7438         special way.
7439         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
7440         (mono_debugger_finalize_threads): New function; undo the effects
7441         of mono_debugger_init_threads().
7442         (mono_debugger_create_all_threads): Removed.
7443
7444 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
7445
7446         * image.c (mono_image_close): Tidy up trace messages.
7447
7448         * assembly.c (mono_assembly_close): Ditto.
7449
7450         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
7451         no longer references an already freed assembly. Fixes #78168.
7452
7453 2006-04-21  Dick Porter  <dick@ximian.com>
7454
7455         * threads.c (mono_thread_detach): Fix reference counting when
7456         detaching threads.
7457
7458 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
7459
7460         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
7461         #78155.
7462
7463 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
7464
7465         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
7466         (mono_type_to_stind): Ditto.
7467
7468         * marshal.c: Use the new helper functions to simplify code.
7469
7470         * image.c (mono_image_close): Add some code for help debug assembly unloading
7471         problems.
7472
7473         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
7474         image mempool.
7475
7476         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
7477         assembly was already loaded in another appdomain. Fixes #78083.
7478
7479 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
7480
7481         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
7482         referenced assemblies.
7483         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
7484
7485         * domain.c (mono_domain_free): Add a trace message.
7486
7487         * appdomain.c (add_assemblies_to_domain): Ditto.        
7488
7489         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
7490         field.  
7491
7492 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
7493
7494         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
7495
7496 2006-04-12  Martin Baulig  <martin@ximian.com>
7497
7498         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
7499         `USE_INCLUDED_LIBGC'.   
7500
7501 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
7502
7503         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
7504         the patch contains ../ and a small directory name later. Hopefully fixes
7505         #78035.
7506
7507 2006-04-10  Martin Baulig  <martin@ximian.com>
7508
7509         Clean up the debugger's thread-handling code.
7510
7511         The debugger's thread-handling code has been moved from
7512         ../mini/debug-debugger.c to threads.c.  We now iterate directly
7513         over the `threads' hash, keep track of exiting threads and also
7514         use proper locking.
7515
7516         We can now debug XSP and XSP based applications with the debugger.
7517
7518         * object-internals.h (MonoThread): Added `gpointer end_stack'.
7519
7520         * threads.h
7521         (MonoThreadCallbacks): Removed; this was only used by the debugger.
7522         (mono_install_thread_callbacks): Likewise.      
7523
7524         * threads.c (mono_thread_callbacks): Removed.
7525         (debugger_thread_created, debugger_thread_exited): New static functions.
7526         (start_wrapper): Call debugger_thread_created().
7527         (thread_cleanup): Call debugger_thread_exited().
7528         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
7529         (mono_debugger_init_threads): New public function.
7530         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
7531         iterate directly over the `threads' hash and also use proper locking.
7532
7533         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
7534
7535         * mono-debug-debugger.h
7536         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
7537
7538 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
7539
7540         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
7541         argument type=array. Fixes #78057.
7542
7543 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
7544
7545         * culture-info-table.h : regenerated. Fixed bug #69652.
7546
7547 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
7548
7549         * loader.c metadata.c: Reapply a variant r59116.
7550         
7551         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
7552
7553         * class.c (mono_class_setup_interface_offsets): New internal function.
7554
7555         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
7556         interfaces too. Fixes #77398.
7557
7558         * reflection.c (encode_cattr_value): Add support for 
7559         parameter type=object, argument type=array.
7560         (load_cattr_value): Ditto. Fixes #77916.
7561
7562         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
7563         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
7564
7565         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
7566         a byval char array and CharSet is Ansi.
7567
7568         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
7569
7570 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
7571
7572         * metadata.c: Add some locking comments.
7573         
7574         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
7575         mempool.
7576         (mono_metadata_free_method_signature): Don't free the signature itself.
7577
7578         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
7579
7580         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
7581         reference the same MonoImage.
7582         (mono_assembly_load_from_full): Add an assert.
7583
7584 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
7585
7586         * image.c (mono_image_close): Don't put the image we are about to free into the
7587         loaded_images_guid_hash.
7588
7589         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
7590         to reduce code duplication.
7591
7592         * marshal.c: Register the native functions called by this module as icalls, to
7593         somewhat centralize the creation of MonoMethodSignature's.
7594
7595         * loader.c (mono_method_signature): Add a cache for method signatures.
7596
7597         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
7598         the parameter attributes of a method.
7599         (mono_metadata_parse_method_signature_full): Refactored the computation of
7600         parameter attributes into a separate function. Also avoid one allocation in
7601         most cases.
7602
7603         * assembly.c (mono_assembly_close): Ditto.
7604
7605         * image.c (mono_image_close): Log trace messages with INFO level.
7606
7607         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
7608
7609         * image.c reflection.c: Correct reference counting of image modules.
7610         
7611         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
7612         of this function from the image mempool.
7613         
7614         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
7615         to allow more cached types to be used.
7616
7617         * mono-debug.c (mono_debug_add_method): Appled patch from
7618         David S. Miller  <davem@sunset.davemloft.net>: Access 
7619         minfo->lexical_blocks[] entry elements using read32().
7620
7621 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
7622
7623         * loader.c (mono_free_method): No longer free the method header for non-dynamic
7624         methods as it is allocated from the mempool.
7625
7626         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
7627         image mempool.
7628
7629         * metadata-internals.h: Add comments describing the reference counting scheme
7630         used for MonoImage and MonoAssembly.
7631
7632         * image.c assembly.c reflection.c: Rework reference counting of images and 
7633         assemblies so they are freed when the runtime is shut down. Free some 
7634         additional memory structures when an image is unloaded.
7635         
7636 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
7637
7638         * class.c loader.c reflection.c: Allocate more data structures in
7639         the image mempool.
7640
7641 2006-03-31  Miguel de Icaza  <miguel@novell.com>
7642
7643         * icall.c
7644         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
7645         build on pre glib 2.4 systems.
7646
7647 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
7648
7649         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
7650
7651         * icall.c: Fix some warnings.
7652
7653 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
7654
7655         * culture-info-table.h : regenerated.
7656
7657 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
7658
7659         * threads.c, object-internals.h, verify.c: changed the culture caching
7660         code to use a normal MonoArray for storage so the GC can keep track of
7661         them easily. Fixed bits of the cache logic, too and simplified the
7662         code.
7663
7664 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
7665
7666         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
7667         thread for non-Boehm GCs.
7668
7669 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
7670
7671         * domain.c, object.c, domain-internals.h: reduce the amount of memory
7672         needed to keep track of the data for static fields.
7673
7674 2006-03-29  Raja R Harinath  <rharinath@novell.com>
7675
7676         Fix #75172
7677         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
7678         for interface classes.  Use 'num_methods' instead.
7679         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
7680         before using '->vtable_size' field.
7681
7682 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
7683
7684         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
7685         doesn't contain managed pointers, so use a normal hashtable.
7686
7687 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
7688
7689         * reflection.c, class-internals.h, domain.c: fixed handling of types
7690         used as values for objects in custom attributes (bug #77915):
7691
7692 2006-03-24  Martin Baulig  <martin@ximian.com>
7693
7694         * class.c (mono_class_setup_fields): Added support for generic
7695         instances; fixes #77580.
7696
7697 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7698
7699         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
7700
7701 2006-03-24  Dick Porter  <dick@ximian.com>
7702
7703         * file-io.c (get_file_attributes): More stat macro breakage.
7704         Fixes bug 77759.
7705
7706 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
7707
7708         * profiler.c: added the file=filename option in the default profiler
7709         to output the profile data to filename.
7710
7711 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7712
7713         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
7714         bug #77877.
7715
7716 2006-03-22  Martin Baulig  <martin@ximian.com>
7717
7718         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
7719         allocated `MonoClassField *' in `fb->handle'.
7720
7721 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7722
7723         * class.c, image.c, metadata-internals.h: implemented new mechanism to
7724         allocate interface ID to save memory and allow better ID reuse on
7725         appdomain unload. setup_generic_vtable () removal from Martin.
7726
7727 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7728
7729         * object.h, appdomain.c, domain.c, exception.c, icall.c,
7730         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
7731         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
7732         write barriers for reference stores with managed objects accessed with
7733         C structures in the runtime and in embedding programs.
7734
7735 2006-03-20  Raja R Harinath  <rharinath@novell.com>
7736
7737         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
7738         'interface_id' and 'max_interface_id' fields of MonoClasses
7739         representing open generic types.
7740
7741 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
7742
7743         * object.h, object.c, icall.c: added functions to deal with
7744         storing valuetypes that contain references in managed objects.
7745         * reflection.c, string-icalls.c, threads.c, marshal.c: small
7746         fixes and comments around uses of mono_array_addr ().
7747
7748 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
7749
7750         * object.h, icall.c, monitor.c: object.GetHashCode ()
7751         implementation that supports the moving garbage collector.
7752
7753 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
7754
7755         * icall.c, threads-types.h, threads.c: implemented finalizer for
7756         LocalDataStoreSlot.
7757
7758 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
7759
7760         * metadata.c (mono_type_size): Add a fixme.
7761         (mono_type_stack_size): Ditto.
7762
7763         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
7764         'type_forwarders' field.
7765
7766         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
7767         attribute from net 2.0.
7768
7769         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
7770         from class.c.
7771
7772         * class.c (mono_class_setup_fields): Fix a warning.
7773         
7774         * class.c (mono_class_from_name): Add support for assemblyref entries
7775         in the EXPORTEDTYPE table.
7776
7777         * reflection.c: Add support for handling type forwarders under net 2.0.
7778
7779         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
7780         
7781 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
7782
7783         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
7784         overwriting entries in ModuleBuild->types, also clean up the code
7785         a little. Fixes #77774.
7786
7787 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
7788
7789         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
7790         load friend assembly info when present.
7791
7792 2006-03-14  Raja R Harinath  <rharinath@novell.com>
7793
7794         Fix crasher on gtest-158.cs.
7795         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
7796         the return value if the MonoClass we want is yet in an
7797         inconsistent state.
7798         * class.c (mono_class_create_from_typedef): Add an comment
7799         explaining an order dependency between mono_class_setup_parent and
7800         mono_class_setup_mono_type.
7801
7802 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
7803
7804         * class.c: documentation updates and events bug fix.
7805
7806 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
7807
7808         * class.c: some cleanup, locking fixes.
7809
7810 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
7811
7812         * class.c: fix the generics code to setup nested
7813         type info to the instantiated type (bug #77770).
7814
7815 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
7816
7817         * marshal.c: fixed a few type correctness issues.
7818
7819 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7820
7821         * loader.c: the Set/Get/Addrtess array methods should be public.
7822
7823 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
7824
7825         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
7826         
7827         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
7828         info->wrapper.
7829
7830 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
7831
7832         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
7833
7834         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
7835
7836         * mempool.c (mono_mempool_alloc): Speed this up a bit.
7837         (mono_mempool_alloc0): Ditto.
7838
7839 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7840
7841         * socket-io.c:
7842         (create_object_from_sockaddr): it was allocating 4 extra bytes
7843         for the AF_UNIX data. Fixes bug #77747.
7844
7845 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
7846
7847         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
7848
7849 2006-03-09  Dick Porter  <dick@ximian.com>
7850
7851         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
7852         Fixes bug 76966 again.
7853
7854 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
7855
7856         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
7857         names from r57532
7858         * appdomain.c: Bumped corlib version to 48 (due to r57532)
7859
7860 2006-03-07  Martin Baulig  <martin@ximian.com>
7861
7862         * object.c
7863         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
7864
7865 2006-03-07  Martin Baulig  <martin@ximian.com>
7866
7867         * class.c
7868         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
7869         regression introduced in r56970; see gtest-252.cs.
7870
7871         * loader.c (mono_get_method_constrained): Correctly handle generic
7872         methods; see gtest-253.cs.
7873
7874 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
7875
7876         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
7877
7878 2006-03-04  Martin Baulig  <martin@ximian.com>
7879
7880         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
7881         compute the parent type at runtime, just like we're already doing
7882         it for interfaces.
7883
7884         * reflection.c
7885         (mono_reflection_bind_generic_parameters): Don't compute the
7886         parent type anymore.
7887
7888         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
7889
7890 2006-03-04  Martin Baulig  <martin@ximian.com>
7891
7892         * mono-debug-debugger.h
7893         (mono_debugger_create_notification_function): Allocate memory at
7894         runtime and return a pointer to it.
7895
7896 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
7897
7898         * assembly.c: Fix windows build.
7899         
7900         * assembly.c: Fix build.
7901
7902         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
7903
7904         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
7905         
7906 2006-03-03  Dick Porter  <dick@ximian.com>
7907
7908         * process.c
7909         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7910         Check parameters before dereferencing them.  Fixes Aaron's part of
7911         bug 77393.
7912
7913 2006-03-03  Raja R Harinath  <rharinath@novell.com>
7914
7915         Fix performance regression.
7916         * loader.c (find_method_in_class): Add 'from_class' argument.
7917         Rename 'klass' argument to 'in_class'.  The signature is compared
7918         against the method in 'in_class', and the corresponding method is
7919         returned from 'from_class'.
7920         (find_method): Walk both 'in_class' and 'from_class' in parallel.
7921         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
7922         type definition and generic instantiation in parallel.
7923         (mono_get_method_constrained): Update to changes.
7924
7925 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
7926
7927         * threads.c: make sure the domain is correct, too when doing
7928         mono_thread_attach ().
7929
7930 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
7931
7932         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
7933         windows. Fixes #77683.
7934
7935 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
7936
7937         * object.h, *: introduced specific way to set elements of an array
7938         of references to be used as write barrier. Still need to audit the
7939         uses of mono_array_addr.
7940
7941 2006-03-01  Miguel de Icaza  <miguel@novell.com>
7942
7943         * object-internals.h: New field to cache the assmebly name, patch
7944         from Tambet Ingo (tambet@ximian.com)
7945
7946 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7947
7948         * decimal.h, class-internals.h, metadata-internals.h,
7949         file-io.h: mark a few function declarations as internal, to
7950         reduce the number of PLT entries.
7951
7952 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7953
7954         * file-io.c: fix typo in warning message.
7955
7956 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
7957
7958         * loader.c: on unix, lookup the "*A" version of a function
7959         if charset is auto as a second option before failing.
7960
7961 2006-02-28  Raja R Harinath  <rharinath@novell.com>
7962
7963         * class.h (mono_class_inflate_generic_method): Revert to two
7964         argument version.
7965         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
7966         (mono_class_inflate_generic_method_full): Add.
7967         * class.c (mono_class_inflate_generic_method_full): Rename from
7968         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
7969         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
7970         * loader.c, reflection.c: Update to changes.
7971
7972 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
7973
7974         * icall.c: const fixes and small improvements.
7975
7976 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7977
7978         * threadpool.c: for asynchronous connect(), enable the same workaround
7979         for BSD 6 as for the Mac. Fixes bug #77637.
7980
7981 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
7982
7983         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
7984         formatted classes. Fixes #77524.
7985
7986 2006-02-24  Raja R Harinath  <rharinath@novell.com>
7987
7988         * class.c (inflate_generic_type): Add a couple more
7989         micro-optimizations.
7990         (inflate_generic_context): Don't use the 'gmethod' from
7991         'inflate_with'.
7992         (mono_class_inflate_generic_method): If the method has generic
7993         parameters, but the passed-in context doesn't have a 'gmethod',
7994         create one.  Use the possibly simplified generic instantiation
7995         from the declaring class instead of the one passed in.
7996
7997 2006-02-24  Raja R Harinath  <harinath@gmail.com>
7998
7999         Make generic method signature and method header handling lazy.
8000         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
8001         (inflate_generic_header): Likewise.
8002         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
8003         parameter to avoid inflating types.
8004         (mono_get_inflated_method): Empty out.
8005         * class.h (mono_class_inflate_generic_method): Update to changes.
8006         * loader.c (mono_get_method_from_token): Don't parse signature for
8007         generic methods, nor methods of generic classes.
8008         (mono_method_signature): Rename from 'mono_method_signature'.
8009         Inflate signature on demand.
8010         (mono_method_get_header): Inflate method header on demand.
8011         * reflection.c: Update to changes.
8012
8013 2006-02-23  Raja R Harinath  <rharinath@novell.com>
8014
8015         * metadata.c (mono_metadata_inflate_generic_inst): If the
8016         instantiation is closed, don't bother expanding it in the new
8017         context.
8018         * class.c (inflate_generic_class): If the generic instantiation
8019         doesn't change after inflation, return the argument itself.
8020         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
8021         Add bounds checks.
8022         (inflate_generic_context): If neither the generic class nor the
8023         generic method instantiations change, return the original context.
8024         * reflection.c (mono_method_get_object): Do
8025         'mono_get_inflated_method' before accessing the ->klass field.
8026         (inflate_mono_method): Don't create a MonoGenericMethod unless
8027         necessary.
8028         (inflate_method): Don't pass a constructed type as the declaring
8029         type of a methodbuilder.
8030
8031 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
8032
8033         * object.c: fix memory overwrite.
8034
8035 2006-02-22  Dick Porter  <dick@ximian.com>
8036
8037         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
8038         it doesn't work any more.
8039         (mono_threads_request_thread_dump): Fix unused variable warnings.
8040
8041 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
8042
8043         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
8044         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
8045         the public header file.
8046
8047 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
8048
8049         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
8050
8051 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
8052
8053         * class-internals.h, object.c: reduce the size of MonoVTable
8054         and store the interface_offsets array at negative offsets.
8055
8056 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
8057
8058         * metadata.c: tweak table descriptors data structures to reduce
8059         size and runtime relocations.
8060
8061 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
8062
8063         * marshal.c: fix some types and opcodes to be type-safe
8064         in marshaling wrappers.
8065
8066 2006-02-21  Ankit Jain  <jankit@novell.com>
8067
8068         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
8069
8070 2006-02-21  Raja R Harinath  <rharinath@novell.com>
8071
8072         * metadata.c (get_constraints): Relax debugging checks for monodis.
8073
8074 2006-02-21  Ankit Jain  <jankit@novell.com>
8075
8076         * metadata.c (mono_metadata_load_generic_params): Move the code
8077         checking for ambiguous generic params from here to mono/dis/get.c
8078         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
8079
8080 2006-02-21  Raja R Harinath  <harinath@gmail.com>
8081
8082         Fix assertion triggered when compiling nemerle.
8083         * class.c (mono_get_shared_generic_inst): Rename from
8084         get_shared_inst and make non-static.
8085         * loader.c (mono_get_shared_generic_method): New.  Used to create
8086         the MonoGenericContext-equivalent of a MonoGenericContainer.
8087         (mono_get_method_from_token): Initialize the 'context' field of
8088         the created MonoGenericContainer.
8089         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
8090         * metadata.c (get_constraints): Add sanity check.
8091         * class-internals.h: Add new internal methods.
8092
8093         * reflection.c (verify_safe_for_managed_space): New sanity check.
8094         Currently checks that owner-less generic parameters aren't allowed
8095         in managed space.
8096         (mono_type_get_object): Use it.
8097         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
8098         that are now in mono_type_get_object.
8099         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
8100
8101 2006-02-19  Raja R Harinath  <harinath@gmail.com>
8102
8103         * metadata.c (mono_type_create_from_typespec): Rename from
8104         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
8105         argument and caching of types in the generic container.
8106         (unwrap_arrays, find_generic_param): Remove.
8107         * metadata-internals.h: Update.
8108         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
8109
8110 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
8111
8112         * class.c (mono_class_get_exception_for_failure): Fix a warning.
8113
8114         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
8115         return values. Fixes #77581.
8116
8117         * class.c (mono_fnptr_class_get): Switch name and name_space.
8118
8119         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
8120         classes and add support for [In, Out] attributes.
8121         (mono_marshal_free_asany): Ditto. Fixes #77524.
8122
8123 2006-02-18  Raja R Harinath  <harinath@gmail.com>
8124
8125         * class.c (mono_class_from_generic_parameter): Make more robust to
8126         incomplete MonoGenericContainers from monodis.
8127
8128 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8129
8130         * class-internals.h: added some more exception types.
8131         * class.c, metadata.c: added a few checks to handle missing
8132         types.
8133
8134 2006-02-17  Raja R Harinath  <rharinath@novell.com>
8135
8136         Use owner-less generic-params some more.
8137         * class.c (my_mono_class_from_generic_parameter): Remove.
8138         (mono_class_from_generic_parameter): Handle null image,
8139         param->name and param->owner.
8140         (mono_class_from_mono_type): Update.
8141         (mono_class_create_from_typespec): Remove 'container' parameter.
8142         If that parameter is non-null, the result is always inflated by
8143         'mono_class_get_full' anyway.
8144         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
8145         parameter.
8146         (mono_class_get_full): Update.
8147
8148         * class.c (inflate_generic_type) [GENERICINST]: If the generic
8149         instance is not open, don't bother inflating.
8150         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
8151         parse metadata for inflated classes.
8152         (_mono_class_get): Change GenericContext* parameter to
8153         GenericContainer*.
8154         (mono_class_create_from_typespec): Likewise.  Simplify, and
8155         implement trivially.  All the cases are handled in
8156         mono_class_from_mono_type.  Don't inflate returned class.
8157         (mono_class_get_full): Delegate GENERICINST optimization to
8158         inflate_generic_type.
8159         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
8160
8161 2006-02-16  Dick Porter  <dick@ximian.com>
8162
8163         * socket-io.c (create_object_from_sockaddr): Fix typo.
8164         (create_sockaddr_from_object): Check array lengths before
8165         potentially accessing items off the end.
8166         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
8167         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
8168         (ves_icall_System_Net_Sockets_Socket_Send_internal)
8169         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
8170         length checks to avoid wraparound overflows.
8171         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
8172         contents of the array of sockets
8173         (hostent_to_IPHostEntry2)
8174         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
8175         Check return value of inet_ntop ().
8176         (addrinfo_to_IPHostEntry): Fix typo
8177
8178 2006-02-16  Raja R Harinath  <rharinath@novell.com>
8179
8180         Type metadata parsing doesn't use generic-instantiation information.
8181         * metadata.c (mono_metadata_parse_array_full): Change
8182         MonoGenericContext* parameter to MonoGenericContainer*.
8183         (mono_metadata_parse_type_full): Likewise.
8184         (mono_type_create_from_typespec_full): Likewise.
8185         (mono_metadata_parse_mh_full): Likewise.
8186         (mono_metadata_parse_generic_inst): Likewise.
8187         (do_mono_metadata_parse_generic_class): Likewise.
8188         (do_mono_metadata_parse_type): Likewise.
8189         * metadata-internals.h: Update to changes.
8190         * class.c (mono_class_find_enum_basetype): Likewise.
8191         (mono_class_setup_fields): Likewise.
8192         (mono_class_create_from_typespec): Likewise.
8193         * loader.c (method_from_methodspec): Likewise.
8194         (mono_get_method_from_token): Likewise.
8195         (mono_method_get_header): Likewise.
8196
8197 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
8198
8199         * marshal.c: handle additional GENERICINST case (patch from
8200         Thong Nguyen <tum@veridicus.com>).
8201         Fix a few cases where LDIND_I/STIND_I was used for references.
8202
8203 2006-02-16  Raja R Harinath  <rharinath@novell.com>
8204
8205         * reflection.c (mono_reflection_get_token): Remove unused variable.
8206
8207 2006-02-16  Martin Baulig  <martin@ximian.com>
8208
8209         * reflection.c (mono_reflection_get_token): Add support for fields
8210         in instantiated generic types.
8211
8212         * icall.c
8213         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
8214
8215 2006-02-15  Martin Baulig  <martin@ximian.com>
8216
8217         * icall.c
8218         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
8219         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
8220         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
8221         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
8222
8223 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
8224
8225         * class.c, metadata.c, metadata.h, object.c, icall.c,
8226         marshal.c: changed mono_type_get_underlying_type () to do
8227         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
8228         Fixed handling of instantiated generic valuetypes (bug #75479).
8229
8230 2006-02-15  Raja R Harinath  <rharinath@novell.com>
8231
8232         * metadata.c (mono_metadata_decode_signed_value): Simplify.
8233         Delegate to mono_metadata_decode_value, and work on the returned value.
8234
8235         * icall.c (ves_icall_MonoType_GetGenericArguments):
8236         Add consistency check here too.
8237         
8238 2006-02-15  Ankit Jain  <jankit@novell.com>
8239
8240         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
8241         char/short etc.
8242
8243 2006-02-15  Ankit Jain  <jankit@novell.com>
8244
8245         * metadata.c (mono_metadata_decode_signed_value): New function to decode
8246         signed values, used only for representing lower bounds of arrays.
8247         (mono_metadata_parse_array_full): Use new
8248         mono_metadata_decode_signed_value to decode lower bounds.
8249
8250 2006-02-14  Martin Baulig  <martin@ximian.com>
8251
8252         * reflection.c
8253         (mono_reflection_get_token): Support "MonoGenericMethod" and
8254         "MonoGenericCMethod" and allow generic instances / methods.
8255
8256 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
8257
8258         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
8259         to obtain the terminal size using an ioctl.
8260
8261         * object.c (mono_nullable_init): Revert this as nullable reference
8262         types are not valid.
8263         (mono_nullable_box): Ditto.
8264
8265 2006-02-09  Dick Porter  <dick@ximian.com>
8266
8267         * threads.c (mono_thread_detach): Drop a reference to the thread
8268         we're detaching.
8269
8270 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
8271
8272         * object.c (mono_nullable_init): Handle nullable reference types.
8273         (mono_nullable_box): Ditto. Fixes #77446.
8274
8275 2006-02-07  Martin Baulig  <martin@ximian.com>
8276
8277         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
8278
8279 2006-02-07  Ankit Jain  <jankit@novell.com>
8280
8281         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
8282         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
8283         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
8284         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
8285         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
8286         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
8287
8288 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
8289
8290         * class.c (mono_class_create_generic): Set type_token as well.
8291
8292         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
8293         compatible with MS.
8294
8295 2006-02-02  Martin Baulig  <martin@ximian.com>
8296
8297         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
8298         has never been used so far.
8299
8300 2006-02-02  Martin Baulig  <martin@ximian.com>
8301
8302         * mono-debug-debugger.h: Changed comment at the top of this file;
8303         the header is not installed, but it's safe to #include it from
8304         within the JIT.
8305
8306         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
8307         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
8308
8309 2006-02-02  Martin Baulig  <martin@ximian.com>
8310
8311         * mono-debug.h
8312         (MonoSymbolTable): Removed the `metadata_info' field.
8313
8314         * mono-debug.c
8315         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
8316
8317         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
8318         (mono_debugger_add_builtin_types): Removed.
8319         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
8320         (mono_debugger_create_notification_function): We now operate on a
8321         pre-allocated area; take a `gpointer' and return `void'.
8322
8323         * mono-debug-debugger.c
8324         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
8325         (mono_debugger_add_builtin_types): Removed.
8326
8327 2006-02-02  Martin Baulig  <martin@ximian.com>
8328
8329         * threads.c (mono_debugger_create_all_threads): New public method.
8330
8331 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8332
8333         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
8334         breaks on several platforms.
8335
8336 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
8337
8338         * assembly.c: the VS.NET build doesn't supply default values for
8339         MONO_ASSEMBLIES and MONO_CFG_DIR.
8340
8341 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
8342
8343         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
8344         helper function.
8345
8346         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
8347
8348         * loader.c (method_from_memberref): Fix a warning.
8349
8350         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
8351
8352         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
8353         with explicit layout. Fixes #77433.
8354
8355 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
8356
8357         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
8358         max_interface_id is initialized before using it. Fixes #77398.
8359         (ves_icall_Type_GetInterfaces): Ditto.
8360
8361 2006-01-30  Raja R Harinath  <rharinath@novell.com>
8362
8363         * metadata.c (mono_metadata_parse_method_signature_full): Don't
8364         allocate memory for parameter attributes when parsing memberref
8365         signatures.
8366         * loader.c (mono_loader_set_error_method_load): Don't warn.
8367         (method_from_memberref): Ensure MissingMethodException gets thrown
8368         if method is not found.  Make warning more informative.
8369
8370 2006-01-29  Raja R Harinath  <harinath@gmail.com>
8371
8372         Fix #77397
8373         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
8374         return true if is byref.
8375         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
8376         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
8377         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8378
8379 2006-01-27  Raja R Harinath  <rharinath@novell.com>
8380
8381         Fix tests/find-method.2.il
8382         * loader.c (find_method, find_method_in_class): Remove is_inflated
8383         argument.  Revert 2006-01-18 change.
8384         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
8385         is generic, search for method in its generic definition.
8386         * class.c (mono_class_setup_vtable_general): Print generic
8387         arguments of generic types in debugging printf.
8388
8389 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
8390
8391         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
8392
8393         * threads.c (mono_threads_request_thread_dump): New helper function.
8394
8395 2006-01-25  Raja R Harinath  <rharinath@novell.com>
8396
8397         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
8398
8399 2006-01-25  Ankit Jain  <jankit@novell.com>
8400
8401         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
8402         move definition to ..
8403         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
8404         
8405 2006-01-25  Ankit Jain  <jankit@novell.com>
8406             Raja R Harinath  <rharinath@novell.com>
8407
8408         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
8409         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
8410         as necessary.
8411
8412 2006-01-25  Martin Baulig  <martin@ximian.com>
8413
8414         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
8415         `MonoDebuggerThread' into debug-debugger.c.
8416
8417 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
8418
8419         * profiler.c: fix printing of data.
8420
8421 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
8422
8423         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
8424           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
8425
8426 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
8427
8428         * object.c: fix deadlock related to string interning.
8429
8430 2006-01-23  Martin Baulig  <martin@ximian.com>
8431
8432         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
8433
8434         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
8435
8436 2006-01-23  Martin Baulig  <martin@ximian.com>
8437
8438         * mono-debug.h: Moved the prototypes of some functions which are
8439         used by the JIT here from mono-debug-debugger.h.
8440
8441 2006-01-21  Martin Baulig  <martin@ximian.com>
8442
8443         * Makefile.am: Don't install mono-debug-debugger.h.
8444
8445 2006-01-21  Martin Baulig  <martin@ximian.com>
8446
8447         * mono-debug-debugger.h: Enforce the private status of this header
8448         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
8449         Moved some stuff from mono-debugger-jit-wrapper.h here.
8450
8451 2006-01-20  Raja R Harinath  <rharinath@novell.com>
8452
8453         * class.c (mono_class_from_typeref): Add a sanity test to help
8454         catch lack of assembly load/search hooks.
8455
8456 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
8457
8458         * marshal.c (emit_struct_conv): Relax the fields with same offset
8459         check even more. Fixes #77230.
8460
8461 2006-01-18  Martin Baulig  <martin@ximian.com>
8462
8463         * loader.c (find_method_in_class): Added `gboolean is_inflated'
8464         argument; if false, we compare the uninstantiated signatures.
8465         (method_from_memberref): Compare the uninstantiated signatures;
8466         fixes #76417.
8467
8468 2006-01-18  Robert Jordan  <robertj@gmx.net>
8469
8470         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
8471         Clear the weak link. Fixes bug #77170.
8472
8473         * gc.c (mono_gchandle_free):
8474         Reflect *-gc.c changes (tiny optimization).
8475
8476 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
8477
8478         * metadata.c (mono_metadata_signature_dup): Applied patch from
8479         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
8480         Fixes #77288.
8481
8482 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
8483
8484         * marshal.c (emit_struct_conv): Allow fields with the same offset when
8485         marshalling from native to managed code. Fixes #77230.
8486
8487 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8488
8489         * threadpool.c: fix problem (Mac only) when more than one asynchronous
8490         connect. Fixes bug #77020.
8491
8492 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
8493
8494         * class.c: fixed id assignement for nested interfaces (bug #77275).
8495         Added also better info for --print-vtable debugging.
8496
8497 2006-01-12  Martin Baulig  <martin@ximian.com>
8498
8499         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
8500         interfaces on-the-fly; fixes #76625.
8501
8502         * class-internals.h
8503         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
8504         don't need that anymore.
8505
8506 2006-01-12  Miguel de Icaza  <miguel@novell.com>
8507
8508         * socket-io.c
8509         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8510         To avoid initing the nested_classes when not needed I turned the
8511         PeerCredData as a toplevel internal class, as it has to be shared
8512         anyways. 
8513
8514         Fixes the CASA issue.
8515
8516 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
8517
8518         * domain.c: Accessors for MonoJitInfo
8519
8520         * profiler-private.h: Add jitinfo to the end jit hook
8521
8522         * profiler.[ch]: Define new hooks, called after jitting which give
8523         the MonoJitInfo that was compiled
8524
8525 2006-01-10  Martin Baulig  <martin@ximian.com>
8526
8527         * class.c (mono_class_setup_events): Add support for generic
8528         classes; fixes #76440.
8529
8530 2006-01-06  Raja R Harinath  <rharinath@novell.com>
8531
8532         Fix #77160.
8533         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
8534         on passed-in method.
8535
8536 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
8537
8538         * object.c (mono_runtime_invoke_array): Add Nullable support.
8539
8540         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
8541
8542 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
8543
8544         * file-io.c: Don't consider sockets as directory and avoid an endless
8545         loop. Fix bug #76966.
8546
8547 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
8548
8549         * object.c (mono_nullable_init): New helper function.
8550         (mono_nullable_box): Ditto.
8551
8552         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
8553
8554         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
8555
8556         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
8557         
8558 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
8559
8560         * class.c (mono_class_is_assignable_from): Make T assignable to 
8561         Nullable<T>.
8562
8563 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
8564
8565         * appdomain.c: Bump corlib version to 46.
8566         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
8567         serialization purpose) and changed ves_icall_System_Reflection_
8568         Assembly_get_code_base signature to accept a boolean (to escape, or 
8569         not, the assembly code base).
8570
8571 2005-12-23  Dick Porter  <dick@ximian.com>
8572
8573         * icall.c: 
8574         * threads-types.h: 
8575         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
8576         CreateEvent icall now returns "created" boolean parameter.
8577
8578 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
8579
8580         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
8581         #76967.
8582
8583         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
8584         when attr_klass is an interface. Fixes #77045.
8585
8586 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
8587
8588         * marshal.c (emit_struct_conv): Fix previous patch.
8589         
8590         * marshal.c (emit_struct_conv): Add a check for fields with the same
8591         offset.
8592
8593 2005-12-20  Raja R Harinath  <rharinath@novell.com>
8594
8595         Fix regression in Mono.C5.
8596         * class.c (mono_class_create_generic): If 'klass' is an interface
8597         set up the interface offsets.
8598         (mono_class_is_assignable_from): Don't throw away generic arguments.
8599
8600 2005-12-19  Raja R Harinath  <rharinath@novell.com>
8601
8602         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
8603         type parameters.
8604
8605 2005-12-15  Raja R Harinath  <rharinath@novell.com>
8606
8607         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
8608         dead store.
8609         (do_mono_metadata_parse_generic_class): Don't pass the current
8610         generic context when parsing the type being instantiated: it
8611         cannot use it, anyway.
8612
8613         * loader.c (method_from_memberref): Don't inflate a signature if
8614         it doesn't contain any type parameters.
8615
8616 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
8617
8618         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
8619
8620 2005-12-14  Martin Baulig  <martin@ximian.com>
8621
8622         * class.c
8623         (mono_type_get_name_recurse): Don't return null for type
8624         parameters and open generic classes.
8625         (mono_class_setup_methods): Don't exclude generic instances.
8626         (mono_get_unique_iid): Use different IDs for different
8627         instantiations of the same generic type.
8628         (mono_class_setup_vtable): Only use setup_generic_vtable() for
8629         open generic instances; create a normal vtable for closed generic
8630         instances.
8631         (mono_class_setup_vtable_general): We're now also called for
8632         closed generic instances.
8633
8634         * reflection.c
8635         (mono_reflection_bind_generic_parameters): Correctly use
8636         mono_metadata_lookup_generic_inst() everywhere.
8637
8638 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
8639
8640         * object.c (mono_class_create_runtime_vtable): Call 
8641         mono_class_setup_vtable ().
8642
8643         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
8644         function.
8645         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
8646         #76959.
8647
8648         * loader.c (mono_loader_set_error_type_load): Print the type load
8649         warnings to the console so they are more visible to the user.
8650         (mono_loader_set_error_method_load): Ditto.
8651
8652         * reflection.c (ensure_runtime_vtable): Revert the last change as it
8653         is still broken.
8654         
8655         * reflection.c (ensure_runtime_vtable): Fix build.
8656
8657         * reflection.c (ensure_runtime_vtable): Disable an optimization which
8658         doesn't work in all cases.
8659
8660 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
8661
8662         * object.c (mono_array_new_full): Treat a single dimensional array
8663         with 0 lower bounds as an szarray. Fixes #76973.
8664
8665         * reflection.c (custom_attr_visible): Really fix this.
8666
8667 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
8668
8669         * reflection.c (custom_attr_visible): Allow nested public attributes
8670         as well.
8671
8672         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
8673         interface check.
8674
8675 2005-12-12  Raja R Harinath  <harinath@gmail.com>
8676
8677         * class.c (set_generic_param_owner): Delete.
8678         (mono_class_create_from_typedef): Don't set ->owner field of
8679         generic parameters to "param containers" of enclosing classes.
8680         * reflection.c (mono_reflection_initialize_generic_parameter):
8681         Likewise.
8682
8683 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
8684
8685         * reflection.c (custom_attr_visible): Fix build.
8686
8687 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
8688
8689         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
8690         private attributes.
8691         
8692         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
8693         handling of null parameter defaults.
8694
8695 2005-12-09  Raja R Harinath  <rharinath@novell.com>
8696
8697         * class.c (mono_class_from_generic_parameter): Don't set
8698         klass->generic_container.
8699         (my_mono_class_from_generic_parameter): Likewise.
8700
8701 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
8702
8703         * reflection.c (load_public_key): Fix a warning.
8704         (method_encode_code): Fix unaligned accesses.
8705
8706 2005-12-07  Martin Baulig  <martin@ximian.com>
8707
8708         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
8709
8710         * reflection.c
8711         (write_generic_param_entry): Encode our custom attrs.
8712
8713         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
8714
8715 2005-12-07  Martin Baulig  <martin@ximian.com>
8716
8717         * reflection.c (encode_new_constraint): Removed; we don't use the
8718         `NewConstraintAttribute' anymore.
8719
8720 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
8721
8722         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
8723         not fire a TypeResolve event when Assembly.GetType () is called.
8724
8725 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
8726
8727         Beginning of support for nullable types in the runtime. Parts of
8728         this patch are from Martin.
8729
8730         * appdomain.c (MONO_CORLIB_VERSION): Bump
8731
8732         * domain.c (mono_init_internal): get the nullable type
8733
8734         * class.c (mono_class_is_nullable): New method
8735         (mono_class_get_nullable_param): New mehod
8736         (mono_class_create_generic): In types T? set cast_class to T
8737
8738         * class-internals.h (MonoDefaults): new nullable default class
8739         (mono_class_get_nullable_param, mono_class_get_nullable_param):
8740         new methods.
8741
8742 2005-12-05  Raja R Harinath  <rharinath@novell.com>
8743
8744         * metadata.c (select_container): New.  Refactor code to select the
8745         appropriate GenericContainer given the type of generic parameter
8746         we are looking for.
8747         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
8748         not a MonoGenericContext.  Use select_container.  Update parameters.
8749         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
8750         and MONO_TYPE_MVAR.
8751         (unwrap_arrays): Remove duplicate tests.
8752         (find_generic_param): Rename from 'has_same_context'.  Now walks a
8753         generic instantiated class to find any arguments that are generic
8754         parameters.
8755         (mono_type_create_from_typespec_full): Use find_generic_param to
8756         avoid evicting some generic instantiations from the typespec
8757         cache.
8758
8759 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
8760
8761         * reflection.c: fixed writing of doubles on ARM FPA.
8762
8763 2005-12-02  Robert Jordan  <robertj@gmx.net>
8764
8765         * icall.c: Fixed EventInfo.ReflectedType (#76829).
8766
8767 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8768
8769         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
8770         least on SUSE 10 they are not the same (on debian, they are just the
8771         same thing).
8772
8773 2005-12-01  Raja R Harinath  <rharinath@novell.com>
8774
8775         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
8776         DeclaringType for VARs and MVARs.
8777         * class.c (set_generic_param_owner): Fix initialization of owner
8778         fields.
8779
8780 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8781
8782         * icall.c: fixed Enum.ToObject() to correctly convert the values.
8783
8784 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8785
8786         * threadpool.c: workaround for a bug that shows up on the Mac:
8787         select()+connect() on a blocking socket is not like it should
8788         be, so we proceed to connect() in that case, wasting the I/O
8789         threadpool thread until connect succeedes. Fixes bug #75436.
8790
8791 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8792
8793         * threadpool.c: fix typo when setting file descriptor states.
8794
8795 2005-11-28  Raja R Harinath  <rharinath@novell.com>
8796
8797         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
8798         * metadata.c (mono_metadata_parse_method_signature_full): Don't
8799         create a temporary signature container.
8800         (mono_metadata_parse_generic_param): Update to changes.
8801         (mono_type_create_from_typespec_full): Update to changes.
8802         * loader.c (method_from_memberref): Don't use a
8803         MonoGenericContainer while parsing a memberref signature.
8804         (method_from_methodspec): Remove dead-store of the 'container'
8805         variable.  It's overwritten before use.
8806
8807         * metadata.c (mono_type_create_from_typespec_full): Make debugging
8808         checks tighter.
8809         (mono_metadata_parse_generic_param): Likewise.
8810         * loader.c (find_method_in_class): Does not need a
8811         MonoGenericContainer.  Use 'mono_method_signature' rather than
8812         'mono_method_signature_full'.
8813         (find_method, mono_get_method_constrained, method_from_memberref):
8814         Update to changes.
8815
8816         * metadata.c (mono_type_create_from_typespec_full): Ensure that
8817         owner-less generic-parameters are never evicted from the typespec
8818         cache.
8819
8820         * loader.c (method_from_memberref): Don't use the current context
8821         when parsing signatures.
8822         (method_from_methodspec, mono_get_method_from_token): Update to changes.
8823
8824         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
8825         side-effects in g_assert.
8826         * loader.c (mono_get_method_from_token): Resolve klass earlier so
8827         that we don't potentially lose information.
8828
8829 2005-11-26  Dick Porter  <dick@ximian.com>
8830
8831         * icall.c:
8832         * threads.c: icalls to implement basic (ie, not named)
8833         System.Threading.Semaphore.
8834
8835 2005-11-24  Dick Porter  <dick@ximian.com>
8836
8837         * process.c
8838         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
8839         Use GetProcessId() if it's available.
8840
8841 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
8842
8843         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
8844
8845 2005-11-23  Raja R Harinath  <rharinath@novell.com>
8846             Ankit Jain  <jankit@novell.com>
8847
8848         * loader.c (mono_get_method_from_token): Initialize 'method' field
8849         of all generic parameters before parsing the signature.  Remove
8850         code that "fixed"-up MVAR references.
8851
8852 2005-11-23  Ankit Jain  <jankit@novell.com>
8853
8854         * metadata.c (mono_metadata_has_generic_params):
8855         (mono_metadata_load_generic_param_constraints):
8856         (mono_metadata_load_generic_params): Move duplicate code ...
8857         (mono_metadata_get_generic_param_row): ... here. Returns the
8858         first row-id in GenericParam table for a given owner (token).
8859         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
8860         prototype.
8861
8862 2005-11-23  Raja R Harinath  <rharinath@novell.com>
8863             Ankit Jain  <jankit@novell.com>
8864
8865         * metadata.c (mono_metadata_class_equal): Pass signature_only when
8866         comparing VARs too.
8867         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
8868         type->data.generic_param only if the type is an MVAR.
8869         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
8870         leak owner-less VARs and MVARs into managed space.
8871
8872 2005-11-21  Martin Baulig  <martin@ximian.com>
8873
8874         * class-internals.h
8875         (MonoMethod): Moved the `generic_container' here from
8876         `MonoMethodNormal' since we now also need it for
8877         `MonoMethodPInvoke';
8878         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
8879         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
8880         an union containing both `MonoMethodNormal' and
8881         `MonoMethodPInvoke'.
8882
8883         * loader.c
8884         (mono_get_method_from_token): Allow implementing generic methods
8885         as interncalls.
8886
8887         * threads.c
8888         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
8889         icall.
8890
8891 2005-11-17  Dick Porter  <dick@ximian.com>
8892
8893         * icall.c: 
8894         * process.h: 
8895         * process.c: Split the Process Start_internal icall into
8896         ShellExecuteEx_internal and CreateProcess_internal, which are
8897         called depending on whether UseShellExecute is true.  Fixes bug
8898         76670.
8899
8900         * appdomain.c (MONO_CORLIB_VERSION): Incremented
8901
8902 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
8903
8904         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
8905         'msize' parameters, use the information in 'mspec' instead.
8906         (emit_object_to_ptr_conv): Ditto.
8907
8908         * marshal.c (emit_struct_conv): Handle explicit layout structs with
8909         fields out of order. Fixes #76733.
8910
8911 2005-11-17  Ankit Jain  <jankit@novell.com>
8912
8913         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
8914
8915 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
8916
8917         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
8918           bug #76575.
8919
8920 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
8921
8922         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
8923         for types with non-auto layout. Fixes #76717.
8924
8925 2005-11-16  Ankit Jain  <jankit@novell.com>
8926
8927         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
8928         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
8929         if generic_context is null.
8930           (mono_metadata_generic_param_equal): param->owner can be null.
8931           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
8932         null.
8933
8934 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
8935
8936         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
8937         the correct value.
8938
8939 2005-11-15  Martin Baulig  <martin@ximian.com>
8940
8941         * object.c (set_value): Use mono_class_from_mono_type() instead of
8942         the hack for generic instances; fixes #76136.
8943
8944 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
8945
8946         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
8947         fields.
8948
8949         * image.c (load_metadata_ptrs): Initialize the new fields.
8950
8951         * reflection.c (create_dynamic_mono_image): Ditto.
8952
8953         * reflection.c (build_compressed_metadata): Use the new fields.
8954
8955         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
8956         icall.
8957
8958         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
8959         icall.
8960         
8961 2005-11-15  Ankit Jain  <jankit@novell.com>
8962             Raja R Harinath  <harinath@gmail.com>
8963
8964         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
8965         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
8966         new per-generic_container cache if the cached MonoType's context matches
8967         the current context.
8968           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
8969         to the expected context.
8970           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
8971
8972 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8973
8974         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
8975         we changed the signature of an icall.
8976         * icall.c: Modify to mono_double_ParseImpl return true/false 
8977         depending on the success, instead of throwing the exception. This will
8978         help us in Double.TryParse methods.
8979         
8980 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
8981
8982         * marshal.c (emit_marshal_object): Throw an exception when
8983         marshalling 'object' instead of crashing. Fixes #76696.
8984
8985 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
8986
8987         * class-internals.h: Add prototype for mono_type_get_full_name ().
8988
8989 2005-11-11  Dick Porter  <dick@ximian.com>
8990
8991         * threads.c (mono_thread_manage): Make sure the main thread has
8992         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
8993
8994 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
8995
8996         * loader.c (mono_loader_set_error_type_load): Log a warning to the
8997         console about the missing type.
8998         (mono_loader_set_error_method_load): Ditto.
8999
9000 2005-11-09  Miguel de Icaza  <miguel@novell.com>
9001
9002         * mono-config.c (mono_get_config_dir): Set the system defaults if
9003         none is specified.
9004
9005         * assembly.c (mono_set_dirs): New API entry point to set the
9006         assembly and the config directory in one call
9007
9008 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
9009
9010         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
9011         the ftnptr was created from a delegate in a domain other than the
9012         current domain. Fixes #75377.
9013
9014         * exception.h exception.c: Add mono_get_exception_not_supported ().
9015
9016 2005-11-08  Martin Baulig  <martin@ximian.com>
9017
9018         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
9019
9020 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
9021
9022         * security-manager.h: Added definitions to deal with strongname key 
9023         pairs bigger (and smaller) than 1024 bits.
9024         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
9025         adjust wrt the public key length being used.
9026
9027 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
9028
9029         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
9030           Windows build (r51396-51397).
9031
9032 2005-11-03  Martin Baulig  <martin@ximian.com>
9033
9034         * class.c (mono_class_setup_vtable_general): Also add generic
9035         methods to the vtable; fixes #76581.
9036
9037 2005-11-01  Miguel de Icaza  <miguel@novell.com>
9038
9039         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
9040         sure that we lookup GetString method from the System.Text.Encoding
9041         class, not the derived class or we get an empty method.
9042
9043         Fixed class #76612.
9044
9045 2005-10-25  Miguel de Icaza  <miguel@novell.com>
9046
9047         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
9048         if it has been previously set (embedders). 
9049
9050         Make mono_set_rootdir available also on Unix.
9051
9052 005-10-24  Robert Jordan  <robertj@gmx.net>
9053
9054         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
9055
9056 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
9057
9058         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
9059         only calls which are made to native code use this flag.
9060
9061         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
9062
9063 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
9064
9065         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
9066         Add support for FieldBuilders.
9067
9068 2005-10-29  Martin Baulig  <martin@ximian.com>
9069
9070         * mono-debug.c
9071         (mono_debug_using_mono_debugger): New public method; returns
9072         whether we're running inside the debugger.
9073
9074 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
9075
9076         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
9077         for Method/Constructor/FieldBuilders.
9078
9079 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
9080
9081         * reflection.c (module_add_cattrs): Save custom attributes for global methods
9082         and fields as well.
9083
9084 2005-10-26  Martin Baulig  <martin@ximian.com>
9085
9086         * mono-debug-debugger.c
9087         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
9088
9089 2005-10-24  Raja R Harinath  <harinath@gmail.com>
9090
9091         * icall.c (base64_to_byte_array): Don't pass an out-of-range
9092         integer to isspace.
9093
9094 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
9095
9096         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
9097         when passing valuetypes byref. Fixes #76502.
9098
9099 2005-10-19  Jackson Harper  <jackson@ximian.com>
9100
9101         * profiler.c: Don't put a . in front of types that are not in a
9102         namespace.
9103
9104 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
9105
9106         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
9107
9108 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
9109
9110         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
9111         #76436.
9112         (mono_marshal_get_ldflda_wrapper): Fix a warning.
9113
9114 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9115
9116         * assembly.c metadata-internals.h icall.c: Define an additional
9117         parameter for mono_assembly_name_parse_full, so we can avoid creating
9118         S.R.AssemblyName.Version when no version info wasn't passed.
9119         
9120 2005-10-09  Miguel de Icaza  <miguel@novell.com>
9121
9122         * class.c (mono_type_get_full_name): Reimplement method that was
9123         removed. 
9124
9125         * image.c: Some docs
9126
9127 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
9128
9129         * profiler.c (output_newobj_profile): Fix printing of Total memory
9130         on x86.
9131
9132 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
9133
9134         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
9135
9136 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
9137
9138         * threads.c: remove debug output.
9139
9140 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
9141
9142         * threads.c (mono_thread_manage): Fix crashes if more than 64
9143         threads need to be aborted. Hopefully fixes #75899.
9144
9145         * assembly.c (mono_stringify_assembly_name): New helper function.
9146
9147         * class.c: Use mono_stringify_assembly_name instead of the similar
9148         static function.
9149
9150         * assembly.h assembly.c: Add support for calling a postload search 
9151         hook if an assembly cannot be loaded.
9152
9153         * appdomain.c: Register new search hooks which call the AssemblyResolve
9154         events in AppDomain. Fixes #75231
9155
9156 2005-10-07  Martin Baulig  <martin@ximian.com>
9157
9158         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
9159         methods without debug info.
9160
9161 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
9162
9163         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
9164         wrappers.
9165
9166 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9167
9168         * file-io.c: now that we return symlinks, use lstat and, when the file
9169         is a symbolic link, stat, to get the file attributes. Also avoid the
9170         conversion to/from utf16/external.
9171
9172 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
9173
9174         * class.c (mono_class_layout_fields): Compute klass->has_references
9175         correctly if an embedded valuetype is not yet initialized. Fixes
9176         #76331.
9177
9178 2005-10-04  Martin Baulig  <martin@ximian.com>
9179
9180         * metadata.c
9181         (mono_metadata_load_generic_param_constraints): New public
9182         function; splitted the constraints loading out from
9183         mono_metadata_load_generic_params().
9184
9185         * class.c (mono_class_create_from_typedef): Call
9186         mono_metadata_load_generic_param_constraints() after setting up
9187         the type and creating our parent; fixes #75329.
9188
9189 2005-10-04  Martin Baulig  <martin@ximian.com>
9190
9191         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
9192         non-dynamic parent classes.
9193
9194 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
9195
9196         * file-io.c : win32 build fix (ETXTBSY seems not found).
9197
9198 2005-10-04  Martin Baulig  <martin@ximian.com>
9199
9200         * reflection.c
9201         (mono_image_get_methodspec_token): Make the cache actually work;
9202         fixes #75974.
9203
9204 2005-10-04  Martin Baulig  <martin@ximian.com>
9205
9206         * class.c (mono_class_name_from_token): Removed the unneccessary
9207         `MonoGenericContext *' argument.
9208
9209 2005-10-04  Martin Baulig  <martin@ximian.com>
9210
9211         * loader.c
9212         (method_from_methodspec): Make the caching work again; fixes the
9213         performance regression from #76262.
9214
9215 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9216
9217         * file-io.c:
9218         * file-io.h:
9219         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
9220         GetFileSystemEntries that performs the same work but without going
9221         into io-layer, locking, etc.
9222
9223 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
9224
9225         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
9226         ThreadState_Stopped as well. Fixes #76047.
9227
9228 2005-09-29  Martin Baulig  <martin@ximian.com>
9229
9230         * class.c
9231         (inflate_generic_context): If the new context has a `gmethod', set
9232         its `container' that that gmethod's `container'.
9233
9234         * metadata.c
9235         (mono_metadata_parse_generic_param): Simplify things;
9236         `generic_container = generic_context->container;' is just fine.
9237
9238         * loader.c (method_from_methodspec): Code cleanups.
9239
9240 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
9241
9242         * decimal.c: fix warning (and let gcc generate correct
9243         code on ARM with optimizations).
9244
9245 2005-09-28  Martin Baulig  <martin@ximian.com>
9246
9247         * loader.c
9248         (method_from_memberref): Added `MonoGenericContext *class_context'
9249         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
9250         (method_from_methodspec): If we're a memberref, use the enclosing
9251         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
9252
9253 2005-09-28  Martin Baulig  <martin@ximian.com>
9254
9255         * object.c (mono_runtime_invoke_array): Added support for
9256         MONO_TYPE_GENERICINST; fixes #75917.
9257
9258 2005-09-27  Martin Baulig  <martin@ximian.com>
9259
9260         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
9261         `k->byval_arg.type' to determine the actual type.
9262
9263         * loader.c (method_from_methodspec): Removed some hacks.
9264
9265 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
9266
9267         * class-internals.h (mono_field_is_deleted): Do the test for
9268         rtspecialname before we check the actual name of the field. This
9269         prevents us from dereferencing a pointer into the string table,
9270         saving us from accessing a few pages
9271
9272         * *.c: Replace the use of {Enter,Leave}CriticalSection with
9273         macros. This will allow a deadlock debugger to easily be plugged
9274         in.
9275
9276 2005-09-27  Martin Baulig  <martin@ximian.com>
9277
9278         * loader.c (method_from_methodspec): Create a "signature"
9279         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
9280
9281 2005-09-27  Martin Baulig  <martin@ximian.com>
9282
9283         * class.c
9284         (inflate_generic_class): Correctly set the new context's
9285         container.
9286
9287         * loader.c
9288         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
9289         instead of a `MonoGenericContext *'.
9290         (mono_method_signature_full): Take a `MonoGenericContainer *'
9291         instead of a `MonoGenericContext *'.
9292
9293         * metadata.c
9294         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
9295         instead of a `MonoGenericContext *'.
9296         (mono_metadata_parse_method_signature_full): Likewise.
9297
9298 2005-09-26  Martin Baulig  <martin@ximian.com>
9299
9300         * class.c
9301         (mono_class_from_generic_parameter): Set `klass->generic_container'
9302         (mono_class_from_generic_parameter): Likewise.
9303         (mono_bounded_array_class_get): We inherit the generic container
9304         from the element class.
9305
9306         * loader.c
9307         (find_method, find_method_in_class): Take a `MonoGenericContext *'
9308         argument rather than computing it here.
9309         (method_from_memberref): Correctly set the generic context before
9310         parsing the signature.  Fixes #75681.
9311
9312 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
9313
9314         * object.c (mono_class_has_special_static_fields): Fix warnings.
9315
9316 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9317
9318         * assembly.c: Add parse_public_key function, to
9319         par the public keys. Also added mono_assembly_name_parse_full,
9320         to define it the parsed key should be freed or not.
9321         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
9322         to parse a long format assembly name.
9323         * metadata-internals.h: Keep mono_assembly_name_parse_full as
9324         private, since calling it to preserve the key requires
9325         freeing it manually.
9326         
9327 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
9328
9329         * locales.c : removed HAVE_ICU part.
9330
9331 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
9332
9333         * object.c (mono_class_create_runtime_vtable): Avoid calling 
9334         field_is_special_static if the klass has no special static fields.
9335
9336         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
9337         (MonoCachedClassInfo): Likewise.
9338
9339         * object.c (mono_class_has_special_static_fields): New helper function.
9340
9341 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
9342
9343         * class.c (mono_class_create_from_typedef): Don't call 
9344         interfaces_from_typedef_full for enums.
9345         (mono_class_create_from_typedef): Compute the base types of enums directly
9346         without calling mono_class_setup_fields ().
9347         (mono_class_find_enum_basetype): New helper function.
9348
9349         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
9350         one place inside the string heap.
9351         
9352 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
9353
9354         * class.c: locking fixes, code cleanups, some docs added.
9355         Allocate some data structures in the image mempool.
9356
9357 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
9358
9359         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
9360         the example code.
9361         
9362 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
9363
9364         * class-internals.h, class.c, reflection.c: reduce memory taken by
9365         MonoClass.
9366
9367 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
9368
9369         * metadata.c, metadata.h, loader.h: documentation updates, code and
9370         API cleanups.
9371
9372 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
9373
9374         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
9375         the example code.
9376
9377         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
9378         page faults caused by the runtime while reading metadata.
9379
9380 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9381
9382         * socket-io.c: the field names were changed 3 months ago and no one
9383         realized until bug #76077 got filed!
9384
9385 2005-09-20  Martin Baulig  <martin@ximian.com>
9386
9387         * icall.c (assembly_icalls): Removed some unused debugger icalls.
9388
9389 2005-09-20  Martin Baulig  <martin@ximian.com>
9390
9391         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
9392         write the rank into the class entry.
9393
9394 2005-09-20  Martin Baulig  <martin@ximian.com>
9395
9396         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
9397
9398 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
9399
9400         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9401
9402         * icall.c (custom_attrs_defined_internal): New icall.
9403
9404         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
9405         function.
9406         (mono_custom_attrs_construct_by_type): New helper function.
9407
9408 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
9409
9410         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
9411         terminate the resulting string. Fixes #76123.
9412
9413 2005-09-16  Martin Baulig  <martin@ximian.com>
9414
9415         * mono-debug.c
9416         (mono_debug_add_method): Ignore inflated methods for the moment.
9417
9418 2005-09-14  Martin Baulig  <martin@ximian.com>
9419
9420         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
9421
9422 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
9423
9424         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
9425         return a success/failure indication.
9426         (mono_metadata_interfaces_from_typedef_full): Ditto.
9427         (get_constraints): Ditto.
9428
9429 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
9430
9431         * marshal.c (emit_marshal_array): Fix handling of null arrays.
9432         
9433         * marshal.c (emit_marshal_array): Add support for returning string
9434         arrays from delegates. Fixes #76063.
9435
9436         * marshal.c: Use the emit_ldloc/stloc macros where possible.
9437
9438 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
9439
9440         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
9441         icall.
9442
9443 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
9444
9445         * reflection.c icall.c: Fix after mono_get_exception_type_load
9446         signature change.
9447
9448         * assembly.c (mono_assembly_get_assemblyref): New helper function.
9449         (mono_assembly_load_reference): Use the new helper.
9450
9451         * class-internals.h (MonoLoaderError): New structure containing 
9452         information about type loading errors.
9453
9454         * class-internals.h loader.c: Add APIs to store per-thread loader
9455         error information.
9456
9457         * loader.c class.c: Set the loader error if needed.
9458
9459         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
9460
9461 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
9462
9463         * decimal.c: fixed to handle the broken ARM fp format.
9464
9465 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
9466
9467         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
9468         broken.
9469
9470 2005-09-06  Martin Baulig  <martin@ximian.com>
9471
9472         * domain.c (supported_runtimes): Added v2.0.50727.
9473
9474 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
9475
9476         * culture-info.h: reduce the size of some structures.
9477
9478 2005-09-05  Martin Baulig  <martin@ximian.com>
9479
9480         Reflect latest API changes in the August CTP.
9481
9482         * icall.c
9483         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
9484         ("MonoType.HasGenericArguments"): Removed.
9485         ("MonoMethod.BindGenericParameters"): Renamed to
9486         "MakeGenericMethod".
9487         ("MethodBuilder.BindGenericParameters"): Renamed to
9488         "MakeGenericMethod".    
9489
9490 2005-09-05  Martin Baulig  <martin@ximian.com>
9491
9492         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
9493
9494 2005-09-05  Martin Baulig  <martin@ximian.com>
9495
9496         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9497
9498         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
9499         generic_container is non-NULL.
9500
9501 2005-09-05  Martin Baulig  <martin@ximian.com>
9502
9503         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9504
9505         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
9506
9507 2005-08-29  Michal Moskal  <malekith@nemerle.org>
9508
9509         * reflection.c (encode_locals,
9510         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
9511         for large generic types.
9512
9513 2005-09-05  Martin Baulig  <martin@ximian.com>
9514
9515         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9516
9517         * class.c (mono_dup_array_type): New public method.
9518         (mono_metadata_signature_deep_dup): New public method.
9519         (dup_type): Correctly duplicate array and function types.
9520
9521 2005-09-05  Martin Baulig  <martin@ximian.com>
9522
9523         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9524
9525         * reflection.c (get_default_param_value_blobs): Handle generic types
9526         and generic methods.
9527
9528 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
9529
9530         * class.c: Fixed error reporting (method/class were inversed) for 
9531         inheritance demands.
9532         * security-manager.c|h: Added the AppDomain when calling the managed
9533         System.Security.SecurityManager.InheritanceDemand method.
9534
9535 2005-09-01  Raja R Harinath  <rharinath@novell.com>
9536
9537         * reflection.c (encode_marshal_blob): 'marshaltype' and
9538         'marshaltyperef' are alternate sources for the custom marshaler
9539         name.
9540
9541 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
9542
9543         * class.c: fix creation of array classes with rank == 1
9544         (patch by Ankit Jain <jankit@novell.com>).
9545
9546 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
9547
9548         * object.c: fix check for creating the bound data for arrays vs
9549         szarrays.
9550
9551 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9552
9553         * object.c: configuration file name is now based on the executable name,
9554         not the image name. Fixes bug #75931.
9555
9556 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
9557
9558         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
9559         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
9560
9561 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
9562
9563         * rand.c: Use wincrypt.h instead of WinCrypt.h.
9564
9565 2005-08-24  Ankit Jain  <jankit@novell.com>
9566             Raja R Harinath  <rharinath@novell.com>
9567
9568         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
9569           called by it recursively.
9570           (mono_class_init): Remove special case in pending_init handling, since it's
9571           superseded by the fix to mono_class_from_typeref.
9572
9573 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
9574
9575         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
9576         BROKEN_THREAD_START stuff.
9577
9578 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
9579
9580         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
9581         trampoline.
9582
9583         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
9584         
9585         * object.c (mono_delegate_ctor): Replace the original function address with
9586         a delegate trampoline.
9587
9588 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
9589
9590         * icall.c: add boolean argument to base64_to_byte_array and 
9591         InternalFromBase64String to control whether a whitespace-only string
9592         is allowed (or should casue a FormatException to be thrown). We need
9593         this as the behavior has changed between MS.NET 1.x and 2.0, and we
9594         to match the MS behaviour in both profiles.
9595         * appdomain.c: Bump corlib version.
9596
9597 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9598
9599         This patch implements a big portion of publisher policy
9600         support, used to bind assembly versions and redirect
9601         one assembly from version A to version B.
9602
9603         * assembly.c:
9604         New GSList loaded_assembly_bindings, for storing the cached
9605         assembly bindings.
9606         (assembly_binding_maps_name): New static function for checking if a 
9607         assembly binding information maps an assembly name.
9608         (mono_assembly_binding_info_free): New function for freeing
9609         assembly binding information resources.
9610         (get_publisher_policy_info): New static function for retrieving 
9611         assembly binding information from a MonoImage.
9612         (compare_versions): New static function for comparing an assembly
9613         binding information data and the version of an assembly name.
9614         (check_policy_versions): New static function for checking if an
9615         assembly binding info mapping an assembly name is valid for it.
9616         (mono_assembly_load_publisher_policy): New static function for
9617         loading the 'policy.major.minor.MyAssembly' image for an assembly
9618         with an assembly name 'aname'.
9619         (mono_assembly_bind_version): New static function for updating
9620         assembly redirection.
9621         (mono_assembly_apply_binding): New static function for applying
9622         assembly binding.
9623         (search_binding_loaded): New static function for searching 
9624         loaded assembly binding infos in the cache domain.
9625         (mono_assembly_load_full): Don't apply assembly binding for
9626         reflection only assemblies.
9627
9628         * metadata-internals.h: Add MonoAssemblyBindingInfo,
9629         which contains information about assembly binding. Also
9630         declare signature for mono_config_parse_publisher_policy ()
9631         function, used to retrieve pub policy info.
9632         
9633         * mono-config.c:
9634         (publisher_policy_start): New static function used to parse publisher 
9635         policy config files.
9636         (publisher_policy_parser): New static MonoParseHandler containing 
9637         the functions used when parsing config files.
9638         (mono_config_parse_publisher_policy): New function for parsing
9639         publisher policy files.
9640         
9641 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
9642
9643         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
9644
9645         * marshal.c (mono_delegate_free_ftnptr): Ditto.
9646
9647         * object.c (mono_get_addr_from_ftnptr): New helper function.
9648
9649         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
9650
9651         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9652
9653 2005-08-19  Dick Porter  <dick@ximian.com>
9654
9655         * threads.c, threads.h, appdomain.c, appdomain.h,
9656         profiler-private.h, monitor.c, object.c, object-internals.h,
9657         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
9658         store the thread ID, so it can hold a 64 bit value if needed.
9659
9660 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
9661
9662         * reflection.c (mono_reflection_create_dynamic_method): Store the
9663         handle class into the method references as well so ldtoken works in
9664         dynamic methods.
9665
9666         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
9667         types.
9668
9669 2005-08-19  Ankit Jain <jankit@novell.com>
9670
9671         Fix #75847.
9672         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
9673           here rather than using the method signature of a arbitrary function
9674           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
9675           two arguments.
9676           Hack done with Harinath.
9677
9678 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9679
9680         * threadpool.c: disable printing stack traces when we get a exception
9681         in a threadpool thread. I need to do more testing to figure out which
9682         cases actually print this. Fixes bug #75828.
9683
9684 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9685
9686         * icall.c: there might be ignored whitespace after the last '='. This
9687         fixes length computation and bug #75840.
9688
9689 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
9690
9691         * assembly.c (mono_assembly_load_full): Consider .exe extension as
9692         well. Fixes #75809.
9693
9694         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
9695         #75784.
9696         
9697         * reflection.c (create_custom_attr_data): Ditto.
9698
9699 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
9700
9701         * locales.c, culture-info.h : removed RegionLCIDMap.
9702         * culture-info-tables.h : regenerated.
9703
9704 2005-08-16  Martin Baulig  <martin@ximian.com>
9705
9706         * class.c (mono_type_get_name_recurse): Small fix.
9707
9708 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
9709
9710         * locales.c : indentation fixie.
9711
9712 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
9713
9714         * object-internals.h,
9715           locales.h,
9716           locales.c,
9717           culture-info.h,
9718           icall.c : added RegionInfo table support.
9719         * culture-info-table.h : regenerated for region support.
9720
9721 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
9722
9723         * reflection.c (resolve_object): handle all kinds of MonoMethod
9724         including generic ones
9725
9726 2005-08-12  Ankit Jain <jankit@novell.com>
9727
9728         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
9729           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
9730
9731 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
9732
9733         * process.c: Don't close a thread handle when it's NULL. This is a
9734         workaround for bug #75733.
9735
9736 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
9737
9738         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
9739
9740 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
9741
9742         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
9743
9744 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9745
9746         * threadpool.c: if a work item in the thread pool has a callback that
9747         catches a exception, don't propagate it after invoking the callback.
9748         Fixes bug #75336.
9749
9750 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
9751
9752         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
9753
9754         * class-internals.h (MonoCachedClassInfo): Add some new fields.
9755
9756         * class.c (mono_class_init): Load field info lazily in the AOT case.    
9757
9758         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
9759
9760 2005-08-03  Ankit Jain  <jankit@novell.com>
9761
9762         Fix #75683.
9763         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
9764           PInvoke calling convention is 0.
9765
9766 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
9767
9768         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
9769         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
9770
9771 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
9772
9773         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
9774         to handle threads not started by the GC (patch by Michael Meeks
9775         <michael.meeks@novell.com>).
9776
9777 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
9778
9779         * reflection.c: Make buffer used in emitting types larger for some
9780         big generic types (patch by Michal Moskal).
9781
9782 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
9783
9784         * mono-debug.c: Fix some (not all) alignment problems.
9785
9786 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9787
9788         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
9789         Invoke mono_image_load_from_data_full passing the refonly
9790         parameter.
9791
9792         * assembly.c
9793         (mono_assembly_open_from_bundle): Add the refonly argument, 
9794         in order to pass it to other methods it calls to.
9795         (do_mono_assembly_open): Add the refonly argument, in order 
9796         to pass it to other methods it calls to.
9797         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
9798         the refonly parameter to it.
9799
9800         * image.c: Add loaded_images_refonly_hash and
9801         loaded_images_refonly_guid_hash to cache the reflection
9802         only loaded images.
9803         (mono_images_init): Initialize the hash tables used for
9804         caching the reflection only images.
9805         (load_modules): Invoke mono_image_open_full passing the refonly
9806         parameter to load the modules the correct way.
9807         (build_guid_table): Add the refonly argument, to re-build the 
9808         correct hash table.
9809         (do_mono_image_open): Added the refonly argument, in order to
9810         define it for the loaded image.
9811         (mono_image_loaded_full): New function, which receives an
9812         additional parameter to look for the image in the refonly or
9813         non-refonly section.
9814         (mono_image_loaded): Updated, using mono_image_loaded_full.
9815         (mono_image_loaded_by_guid_full): The same case that happens
9816         with mono_image_loaded_full.
9817         (mono_image_loaded_by_guid): Likewise.
9818         (register_image): Use the ref_only variable inside MonoImage
9819         to decide in which hash table store the current image.
9820         (mono_image_open_from_data_full): Rename
9821         mono_image_open_from_data to mono_image_open_from_data_full,
9822         adding the refonly argument, to define the ref_only variable 
9823         inside MonoImage.
9824         (mono_image_open_from_data): Return 
9825         mono_image_open_from_data_full.
9826         (mono_image_open_full): Rename mono_image_open to
9827         mono_image_open_full, receiving the new refonly argument,
9828         to pass it to inner methods.
9829         (mono_pe_file_open): Update this function, to open
9830         a MonoImage as a non-refonly image.
9831         (mono_image_close): Use the refonly variable inside
9832         MonoImage to remove the image from the correct caches.
9833
9834         * image.h: Add the signatures of mono_image_open_full,
9835         mono_image_open_from_data_full, mono_image_loaded_full,
9836         mono_image_loaded_by_guid_full.
9837
9838         * metadata-internals.h: Add the ref_only field to 
9839         MonoImage.
9840         
9841 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9842
9843         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
9844         Fix the last behavior, which used to load the assemblies and
9845         extract MonoReflectionAssemblyName information, instead of
9846         extract it from the metadata tables. Needed for Reflection
9847         Only assemblies.
9848         
9849 2005-07-29  Martin Baulig  <martin@ximian.com>
9850
9851         * mono-debug-debugger.c
9852         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
9853         not initialized.
9854
9855         * mono-debug.c
9856         (mono_debug_address_from_il_offset): Check whether we have
9857         debugging support before attempting to take the lock.
9858         (mono_debug_source_location_from_address): Likewise.
9859         (mono_debug_source_location_from_il_offset): Likewise.
9860         (mono_debug_il_offset_from_address): Likewise.
9861         (mono_debug_address_from_il_offset): Likewise.
9862
9863 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
9864
9865         * class.c (mono_class_from_name_case): Add support for dynamic images.
9866         Fixes #75650.
9867
9868         * object.c (mono_class_compute_gc_descriptor): Add a workaround
9869         for #75479.
9870
9871 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
9872         
9873         * reflection.c (mono_method_get_object): Fix warning.
9874
9875 2005-07-28  Martin Baulig  <martin@ximian.com>
9876
9877         * mono-debug.c
9878         (mono_debug_add_wrapper): Also write the wrapper type.
9879
9880 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
9881
9882         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
9883         
9884         * class.c (mono_class_init): Avoid reading nested classes if the AOT
9885         data indicates the class has none.
9886
9887 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
9888
9889         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
9890         loader lock with the debugger lock. Prevents deadlocks for beagle.
9891
9892         Beagle can now run on an smp box for a weekend without any
9893         issues. Woohoo!
9894
9895 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
9896
9897         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
9898         in a module. Fixes #75629.
9899
9900 2005-07-26  Martin Baulig  <martin@ximian.com>
9901
9902         * mono-debug.c (mono_debug_add_wrapper): New static method.
9903         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
9904         interncall or a wrapper.
9905
9906         * mono-debug.h (MonoDebugWrapperData): New public typedef.
9907         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
9908         (MONO_DEBUGGER_VERSION): Bump to 51.
9909
9910         * mono-debug-debugger.c
9911         (mono_debugger_add_type): Removed this empty function.
9912         (mono_debugger_add_method): Likewise.
9913
9914 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
9915
9916         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
9917         before accessing method->slot.
9918
9919 2005-07-21  Jb Evain  <jbevain@gmail.com>
9920
9921         * reflection.c (method_encode_clauses/class): Handle filters clauses.
9922         Fixes #75010.
9923
9924 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
9925
9926         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
9927         #75587.
9928
9929 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
9930
9931         * image.h image.c: Add mono_image_get_guid () API function.
9932
9933 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
9934
9935         There were issues when multiple threads tried to load
9936         assemblies. A deadlock was created between assemblies_mutex and
9937         mono_domain_assemblies_lock. This fixes the issue by making the
9938         assembly ref counting be lock free. See bug 75586.
9939         
9940         * image.c (mono_image_close): The add ref function here was using
9941         Interlocked operations while the unref was using a mutex and a
9942         --. I don't think this was ever a bug that would be exposed in a
9943         non-pendantic way (ie, by an embedder doing a ref on one thread
9944         and an unref on another), but for the sake of correctness, this is
9945         now Interlocked.
9946
9947         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
9948         (mono_assembly_load_reference): Call mono_assembly_addref rather
9949         than touching the refcount ourselves.
9950         (mono_assembly_close): Use InterlockedDecrement to unref the
9951         assembly. Don't acquire the lock unless it is actually needed.
9952
9953 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
9954
9955         * class.c (mono_class_layout_fields): Fix calculation of has_references
9956         for generic types.
9957
9958 2005-07-12  Martin Baulig  <martin@ximian.com>
9959
9960         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9961
9962         * metadata.c
9963         (mono_type_hash): Provide better hashing for generic instances.
9964         (mono_generic_inst_hash): Improve hashing.
9965         (mono_generic_class_hash): Likewise.
9966
9967         * reflection.c (mymono_metadata_type_hash): Improve hashing for
9968         generic instances.
9969
9970 2005-07-12  Martin Baulig  <martin@ximian.com>
9971
9972         * reflection.c (mono_reflection_create_runtime_class): Remove the
9973         hack for generic type definitions and non-`Run' assemblies.
9974         (mono_reflection_bind_generic_parameters): Also use
9975         `klass->wastypebuilder' to check for TypeBuilders.
9976
9977 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
9978
9979         * class.c (mono_class_layout_fields): Fix calculation of has_references
9980         for generic types.
9981
9982         * class.c (inflate_generic_class): Fix a leak.
9983         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
9984         for generic types.
9985
9986 2005-07-11  Martin Baulig  <martin@ximian.com>
9987
9988         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
9989         on error.
9990
9991 2005-07-11  Martin Baulig  <martin@ximian.com>
9992
9993         * loader.c (find_method): Also lookup in
9994         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
9995
9996 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9997
9998         * appdomain.c (mono_domain_unload): Don't free the error message
9999         before passing it to mono_get_exception_...
10000
10001         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
10002         
10003 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
10004
10005         * threads.c: try to better guess an available RT signal (bug #75387).
10006
10007 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
10008
10009         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
10010         and CACHE_OBJECT.
10011
10012 2005-07-07  Martin Baulig  <martin@ximian.com>
10013
10014         * class.c (mono_type_get_name_full): Return NULL for
10015         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
10016         fixes #75408.
10017
10018 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
10019
10020         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
10021         exit the appdomain as well being aborted.
10022
10023         * threadpool.c: Create all threadpool threads inside the root appdomain, and
10024         change back to the root domain after calling managed code. This enables
10025         appdomains using threadpools to be unloaded.
10026
10027 2005-07-07  Martin Baulig  <martin@ximian.com>
10028
10029         * class-internals.h
10030         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
10031         into `MonoDynamicGenericClass' since we only need it for dynamic
10032         types.
10033
10034         * reflection.c (mono_class_bind_generic_parameters): We don't need
10035         to compute the `parent' here.
10036
10037 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
10038
10039         * culture-info-table.h : regenerated.
10040
10041 2005-07-06  Martin Baulig  <martin@ximian.com>
10042
10043         * icall.c
10044         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
10045
10046         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
10047
10048 2005-07-06  Martin Baulig  <martin@ximian.com>
10049
10050         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
10051         we're doing a signature-only comparision; fixes #74945.
10052
10053 2005-07-06  Martin Baulig  <martin@ximian.com>
10054
10055         * class-internals.h (MonoGenericClass): Moved some things out into
10056         a new `MonoInflatedGenericClass' type.  
10057         (MonoInflatedGenericClass): New type; the `klass' of a
10058         `MonoGenericClass' is now computed lazyly in
10059         mono_get_inflated_generic_class().      
10060
10061         * class.c (mono_get_inflated_generic_class): New public function.
10062         (mono_class_inflate_generic_method): Removed the unused
10063         `MonoClass *' argument.
10064         (setup_generic_vtable): Don't call mono_get_inflated_method() on
10065         all the methods.
10066         (mono_class_create_generic): Make this static and merge it with
10067         mono_class_create_generic_2(); we're now called automatically from
10068         mono_get_inflated_generic_class().
10069
10070         * loader.c (mono_method_signature): Call
10071         mono_get_inflated_method() here.
10072
10073 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
10074
10075         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
10076         type of fields with RVA.
10077
10078         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
10079         for this pseudo class.
10080         (my_mono_class_from_generic_parameter): Likewise.
10081         (mono_class_init): Allow interfaces to have cctors.
10082
10083 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
10084
10085         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
10086         lazily for AOT methods.
10087
10088 2005-07-05  Martin Baulig  <martin@ximian.com>
10089
10090         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
10091         returns FALSE for a successful match, not TRUE.
10092
10093 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
10094
10095         * loader.c (mono_method_get_index): Optimize this a bit.
10096
10097 2005-07-04  Martin Baulig  <martin@ximian.com>
10098
10099         * class.c
10100         (class_compute_field_layout): Move the check for generic type
10101         definitions into mono_class_layout_fields().  Fixes #74684.
10102         (mono_class_from_generic_parameter): Correctly compute
10103         `klass->parent'; fixes #75457.
10104
10105         * reflection.c (register_assembly, register_module): Make sure
10106         `domain->rejobject_hash' is already created.
10107
10108 2005-07-02  Martin Baulig  <martin@ximian.com>
10109
10110         * class-internals.h
10111         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
10112         `MonoDynamicGenericClass'.      
10113
10114 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
10115
10116         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
10117         returned by a field getter is null, since null is a valid value.
10118
10119 2005-07-01  Martin Baulig  <martin@ximian.com>
10120
10121         * reflection.c (mono_reflection_generic_class_initialize): Update
10122         the `dgclass->fields [i].parent' to the correct class.
10123         (mono_image_get_fieldref_token): Use the declaring type, not the
10124         reflected type.
10125
10126 2005-07-01  Martin Baulig  <martin@ximian.com>
10127
10128         * loader.c (find_method): Also look in the interfaces; fixes #75429.
10129
10130 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
10131
10132         * threads.c (thread_cleanup): assert that thread != NULL
10133         (wait_for_tids_or_state_change): We were using the wrong variable
10134         when accessing wait->threads. `i' was always out of the bounds of
10135         the array.
10136
10137 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10138
10139         * loader.c: map user32 and kernel32 to libMonoSupportW
10140
10141 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
10142
10143         * appdomain.c (unload_thread_main): Mark this as WINAPI.
10144
10145 2005-06-28  Martin Baulig  <martin@ximian.com>
10146
10147         * loader.c (method_from_methodspec): Fix #75334.
10148
10149 2005-06-28  Martin Baulig  <martin@ximian.com>
10150
10151         Fix #74953 - Arrays now implement the generic IList<T> interface
10152         on the 2.0 platform.
10153
10154         * class-internals.h (MonoDefaults): Added `generic_array_class'.
10155
10156         * reflection.c (mono_class_bind_generic_parameters): New public
10157         function; similar to mono_reflection_bind_generic_parameters(),
10158         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
10159
10160         * domain.c (mono_init_internal): Try to initialize.
10161         `mono_defaults.generic_array_class' here; this'll only succeed if
10162         we're using the 2.0 corlib.
10163
10164         * icall.c
10165         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
10166         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
10167         (mono_lookup_internal_call): Added support for nested classes.
10168
10169         * loader.c
10170         (mono_get_method_from_token): Set `result->signature->pinvoke' if
10171         we're an interncall and have generic arguments.
10172
10173         * class.c
10174         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
10175         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
10176         instance of System.Array.InternalArray<T> for arrays, so they
10177         implement the generic IList<T> interface.
10178
10179 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
10180
10181         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
10182         (chastamar@yahoo.com). Fixes #75374.    
10183
10184 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
10185
10186         * culture-info-table.h: regenerated.
10187
10188 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10189
10190         * icall.c: handle spaces correctly for base64 strings.
10191
10192 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
10193
10194         * *.c: Kill some warnings.
10195
10196 2005-06-23  Duncan Mak  <duncan@novell.com>
10197
10198         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
10199         that this builds on Solaris 10 (x86).
10200
10201 2005-06-23  Martin Baulig  <martin@ximian.com>
10202
10203         * class.c
10204         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
10205         generic type definitions.
10206
10207 2005-06-23  Martin Baulig  <martin@ximian.com>
10208
10209         Fix #75331.
10210
10211         * metadata.c (mono_class_get_overrides): Renamed to
10212         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
10213         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
10214         pass it to mono_get_method_full().
10215
10216 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
10217
10218         * reflection.c (mono_reflection_create_runtime_class): take the
10219         mono_domain_lock in this method. Prevents deadlocks
10220
10221 2005-06-22  Martin Baulig  <martin@ximian.com>
10222
10223         * loader.c (method_from_methodspec): Fix #75330.
10224
10225 2005-06-22  Martin Baulig  <martin@ximian.com>
10226
10227         * reflection.c (type_get_qualified_name): Use
10228         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
10229         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
10230         argument; use it if we don't have an assembly name.
10231
10232 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
10233
10234         * object.c: In mono_message_init, set "copy out" flag for in
10235         parameters with the [Out] flag.
10236
10237 2005-06-21  Martin Baulig  <martin@ximian.com>
10238
10239         * class.c
10240         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
10241         and MONO_TYPE_PTR.
10242
10243 2005-06-21  Martin Baulig  <martin@ximian.com>
10244
10245         * class.c (mono_class_init): Don't initialize `class->fields' for
10246         generic instances since they're initialized again in
10247         compute_field_layout(). 
10248         (compute_field_layout): Set the field's `generic_info' here; fix
10249         #75320. 
10250
10251 2005-06-21  Martin Baulig  <martin@ximian.com>
10252
10253         * class-internals.h
10254         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
10255
10256         * metadata.c (mono_metadata_generic_method_equal): Also
10257         distinguish the `generic_class'; fixes #75334.
10258
10259 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10260
10261         * domain.c:
10262         * appdomain.c:
10263         * domain-internals.h:
10264         * reflection.c: 'domain_assemblies' field is now protected by its own
10265         lock. Don't call into managed code to run the AssemblyLoad event if we
10266         now there are no registered delegates for it.
10267
10268 2005-06-20  Martin Baulig  <martin@ximian.com>
10269
10270         * class.c (mono_class_is_assignable_from): Use a custom version of
10271         mono_class_has_parent() to make things work for generic instances;
10272         fix #75300.
10273
10274 2005-06-20  Martin Baulig  <martin@ximian.com>
10275
10276         * loader.c (method_from_methodspec): Apply a patch from
10277         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
10278
10279 2005-06-20  Martin Baulig  <martin@ximian.com>
10280
10281         * class.c (mono_class_init): Reverted Zoltan's last change; it
10282         breaks generics.
10283
10284 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
10285
10286         * threads.c (wait_for_tids_or_state_change): Add missing locking.
10287
10288 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10289
10290         * socket-io.c: fix the index in the socket array for writable/error
10291         sockets. Fixes bug #75306.
10292
10293 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
10294
10295         * class.c (mono_class_init): Allow interfaces to have static ctors.
10296
10297 2005-06-17  Martin Baulig  <martin@ximian.com>
10298
10299         * loader.c (method_from_methodspec): Use `context->container' when
10300         parsing the `gmethod->inst'.
10301
10302 2005-06-17  Martin Baulig  <martin@ximian.com>
10303
10304         * class.c (mono_type_get_name_recurse): Don't add the assembly
10305         name for type arguments.
10306
10307 2005-06-15  Martin Baulig  <martin@ximian.com>
10308
10309         * reflection.c (mono_image_get_inflated_method_token): Encode
10310         correct klass; fixes #75260.
10311
10312 2005-06-13 Michal Moskal <malekith@nemerle.org>
10313
10314         * icall.c: Make GetCorrespondingMethod/Constructor take
10315         MonoReflectionMethod method not MonoMethod. Removed
10316         MonoType.GetCorrespondingField, and make
10317         MonoGenericType.GetCorrespondingField take name not
10318         MonoClassField.
10319
10320 2005-06-13  Michal Moskal <malekith@nemerle.org>
10321
10322         * reflection.c (field_encode_signature, encode_locals):
10323          Make sizes of buffers for types larger (for big generic types).
10324          (create_generic_typespec,
10325          mono_reflection_sighelper_get_signature_local,
10326          mono_reflection_sighelper_get_signature_field):
10327          Add asserts for too small buffers.
10328
10329 2005-06-15  Martin Baulig  <martin@ximian.com>
10330
10331         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
10332         if our parent is not a dynamic type.
10333
10334 2005-06-15  Martin Baulig  <martin@ximian.com>
10335
10336         * class-internals.h (MonoTypeNameFormat): New enum.
10337
10338         * class.c
10339         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
10340         (mono_type_get_full_name): Removed.
10341         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
10342         argument instead of the boolean's.
10343
10344         * icall.c (ves_icall_System_MonoType_getFullName):
10345         Added `gboolean assembly_qualified'.    
10346
10347         * reflection.h
10348         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
10349
10350         * reflection.c (mono_reflection_parse_type): Parse the new type
10351         name format.
10352
10353 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10354
10355         * icall.c: no need to convert from utf16 to utf8 and then back again
10356         after the call to GetLogicalDrives.
10357
10358 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10359
10360         * icall.c: frombase64. Fix problems exposed by new tests.
10361
10362 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10363
10364         * icall.c: added internal calls for converting char [] and strings in
10365         base64 into byte [].
10366
10367 2005-06-10  Martin Baulig  <martin@ximian.com>
10368
10369         * class.c (mono_class_create_generic_2): Read the nested classes
10370         from the metadata rather than from `gklass->nested_classes' since
10371         `gklass' might not be initialized yet.
10372
10373 2005-06-09  Duncan Mak  <duncan@novell.com>
10374
10375         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
10376         all public headers. Fixes #74919.
10377
10378 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
10379
10380         * domain.c: The key for proxy_vtable_hash is now a pointer
10381         array. Added new GHashFunc and GCompareFunc functions for this.
10382
10383         * class.h: The list of interfaces in MonoRemoteClass is known in
10384         advance and can't grow (we create a new MonoRemoteClass if needed),
10385         so now the interface array can be allocated together with
10386         MonoRemoteClass.
10387         
10388         * object.c: Added a new method create_remote_class_key.
10389         Fixed mono_remote_class so it does not depend on
10390         mono_upgrade_remote_class.
10391         Removed extend_interface_array.
10392         Added new method clone_remote_class(), which makes a copy of a remote
10393         class and adds a new interface or class to it.
10394         mono_upgrade_remote_class() now creates a new remote class (or gets
10395         it from the cache) if an vtable upgrade is needed. In this way
10396         we make sure that other objects sharing the same remote class
10397         don't get the new vtable with unwanted interfaces.
10398         
10399         * object-internals.h:
10400         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
10401         
10402         * marshal.c: Track changes in mono_upgrade_remote_class().
10403
10404 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
10405         * icall.c: Add runtime methods for obtaining members of inflated
10406         class, which were created from supplied non-inflated members. It
10407         is used in internal Get{Method,Constructor,Field} methods in
10408         System.Type
10409
10410 2005-06-09  Martin Baulig  <martin@ximian.com>
10411
10412         * reflection.c
10413         (mono_reflection_bind_generic_method_parameters): Fix #75169.
10414
10415 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10416         * reflection.c (mono_image_basic_init): Define
10417         Version in MonoDynamicAssembly. 
10418         
10419 2005-06-08  Martin Baulig  <martin@ximian.com>
10420
10421         Fix #75136.
10422
10423         * loader.c
10424         (mono_method_signature_full): New public method; takes a
10425         `MonoGenericContext *'.
10426         (find_method): Use mono_method_signature_full() and pass the
10427         klass'es context to it.
10428
10429         * class.c (mono_class_is_inflated_method): Use
10430         mono_method_signature_full() and pass the context to it.
10431
10432 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
10433
10434         * object.c: add proper locking in mono_remote_class_vtable(),
10435         fixes possible memory corruption.
10436
10437 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
10438
10439         * marshal.c (mono_remoting_marshal_init): set
10440         initialized after initialization.
10441
10442 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10443
10444         * locales.c : hush.
10445
10446 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
10447
10448         * object.c (extend_interface_array): fix really silly
10449         memory corrupting / comparison bug.
10450
10451 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10452
10453         * reflection.c: Functions added to support the creation
10454         of CustomAttributeData, which includes Attribute data
10455         used by ReflectionOnly methods.
10456
10457         * reflection.h:  mono_reflection_get_custom_attrs_data and
10458          mono_custom_attrs_data_construct added (functions exposed).
10459
10460          * icall.c: Added mono_reflection_get_custom_attrs_data
10461          as icall.
10462         
10463 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
10464
10465         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
10466         lupus's request.
10467
10468 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
10469
10470         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
10471
10472         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
10473         dynamic DllImportAttribute.
10474
10475         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
10476         dynamic DllImportAttribute.
10477
10478         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
10479         Fixes #75162.
10480
10481 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10482
10483         * threads.c: avoid segfault when an unstarted thread is aborted.
10484
10485 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
10486
10487         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
10488         Returns the name and version of the runtime for reporting.
10489
10490 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10491
10492         * appdomain.c: bump corlib version.
10493         * object-internals.h: new field in MonoReflectionAssembly.
10494
10495 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10496
10497         * object-internals.h: Carlos forgot to add this field.
10498
10499 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10500
10501         * icall.c: Added create_version to create instances
10502         of Version of MonoReflectionAssemblyName. This change helps
10503         the AssemblyName tests to keep running fine.
10504         
10505 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
10506   
10507         * object.c (mono_method_return_message_restore): A somehow less
10508         intrusive fix for #75138.
10509
10510 2005-06-03  Raja R Harinath  <rharinath@novell.com>
10511
10512         * object.c (mono_method_return_message_restore): Fix computation
10513         of expected number of out args.
10514
10515 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
10516
10517         * reflection.c (mono_image_get_method_info): Fix the case when the
10518         charset is empty.
10519
10520 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
10521
10522         * object.c: Added missing null check in
10523           mono_method_return_message_restore.
10524
10525 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
10526
10527         * reflection.c (mono_image_get_method_info): Handle the case when
10528         dllentry is empty.
10529
10530 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
10531
10532         * object.c: When creating the vtable for a proxy, take into account
10533         all inherited interfaces, not only the ones registered in
10534         iclass->interfaces. This fixs bug #74996.
10535         Also, in mono_method_return_message_restore, verify that the array
10536         of out args has the expected lengh.
10537
10538 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10539
10540         * socket-io.c: update the timeout in Poll when the call is interrupte.
10541
10542 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10543
10544         * socket-io.c: support abort/suspend in Select_internal after last
10545         change.
10546
10547 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10548
10549         * threadpool.c: remove warning.
10550
10551 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10552
10553         * icall.c:
10554         * socket-io.[ch]: Select_internal uses poll() now when available, thus
10555         removing the 1024 limit from select(). Runtime part of the fix for
10556         bug #71203.
10557
10558 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10559
10560         * socket-io.c: when resolving the addresses for the same
10561         host returned by gethostname(), get the local IPs from the interface
10562         list. Loopback addresses are discarded if the are interfaces up with
10563         non-loopback ones. Fixes bug #63265.
10564
10565 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
10566
10567         * appdomain.c, verify.c, object-internals.h, reflection.c:
10568         bumped corlib number to 36, and added new extra_flags field
10569         to ReflectionMethodBuilder and friends.  Fixes #75060.
10570
10571 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
10572
10573         * gc.c: register a new weak link only if the object is non-null
10574         (fixes bug#75047).
10575
10576 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10577
10578         * culture-info.h : short time pattern too.
10579
10580 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10581
10582         * culture-info.h : expand long time pattern string length.
10583
10584 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10585
10586         * culture-info-table.h : update (more French date format; #72788).
10587
10588 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
10589
10590         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
10591         the method is static. Fixes #75029.
10592
10593 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
10594
10595         * reflection.c: Update the table_idx field of method builders after
10596         saving the module, since it can change. This is a workaround for
10597         bug #74914. 
10598
10599 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10600
10601         * culture-info-table.h : update (additional French date format).
10602
10603 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
10604
10605         * icall.c (ves_icall_type_Equals): Revert last change.
10606         
10607         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
10608
10609         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
10610
10611 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
10612
10613         * class-internals.h: Added executioncontext_class field to 
10614         MonoDefaults structure.
10615         * domain.c: Cache System.Threading.ExecutionContext class in 
10616         mono_defaults.
10617         * object.c: Capture the ExecutionContext for asynchroneous calls in
10618          mono_async_result_new.
10619         * object-internals.h: Added execution_context and original_context 
10620         fields to MonoAsyncResult. Added execution_context to MonoThread.
10621         * security-manager.c|.h: Added mono_get_context_capture_method to 
10622         return the capture method (if required by the security manager or by
10623         the framework version used).
10624         * threadpool.c: Apply capture (if present) ExecutionContext in 
10625         mono_async_invoke and revert to original context after it completes.
10626
10627 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
10628
10629         * culture-info-table.h : updated (real hacky solution for zh-CHT).
10630
10631 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
10632
10633         * culture-info-table.h : zh-CHT related workaround.
10634
10635 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
10636
10637         * marshal.c (emit_marshal_custom): Add some error checking and call the
10638         methods in the ICustomMarshaler interface. Fixes #74875.
10639         
10640         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
10641         native->managed wrappers.
10642
10643 2005-05-12  Martin Baulig  <martin@ximian.com>
10644
10645         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
10646         here and use the loader lock.
10647
10648         * mono-debug.c: Properly lock when the debugger is not attached.
10649         (mono_debug_init): Release the initial lock if we're not running
10650         in the debugger.
10651
10652 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
10653
10654         * marshal.c (emit_marshal_custom): Pass through NULL values without
10655         calling the custom marshalling routines.
10656
10657         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
10658         conversion in structures. Fixes #74882.
10659
10660 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
10661
10662         * culture-info-table.h : zh-* cultures were missing.
10663
10664 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
10665
10666         * threads.c: Added a new event background_change_event which is signaled
10667         when a thread changes its background mode.
10668         Moved here several checks previously done in managed code. The checks
10669         require the thread lock, and using the thread lock in managed code
10670         can result in deadlocks.
10671         Merged Start_internal and Thread_internal into a single method. Now 
10672         Thread_internal does all work of creating and starting a thread.
10673         Added icalls for setting and getting the state of the object. Moved from
10674         managed code to avoid locking there.
10675         Added wait_for_tids_or_state_change() which is called instad of
10676         wait_for_tids when waiting for non-backround threads to end. This method
10677         will return if one of the threads ends or the background_change_event
10678         is signaled.
10679         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
10680         the background mode. This method signals the background_change_event
10681         event.
10682         * icall.c:
10683         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
10684         removed Start_internal.
10685         
10686 2005-05-11  Martin Baulig  <martin@ximian.com>
10687
10688         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
10689         to order of some fields to get proper alignment on 64-bit machines.
10690
10691 2005-05-11  Martin Baulig  <martin@ximian.com>
10692
10693         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
10694         changes as they're broken and completely fuck up the debugger.
10695
10696         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
10697
10698 2005-05-10  Martin Baulig  <martin@ximian.com>
10699
10700         * reflection.c (mono_reflection_generic_class_initialize): Don't
10701         call mono_class_setup_parent() here.
10702
10703 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10704
10705         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
10706         send/receive timeout use an integer in milliseconds. We were using a
10707         struct timeval.
10708
10709 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10710
10711         * locales.c:
10712         (internal_get_cultures): reserve the first slot of the array for the
10713         InvariantCulture, which will be filled in managed code.
10714
10715 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
10716
10717         * reflection.c (mono_image_fill_module_table): Initialize the
10718         GENERATION field as well.
10719
10720 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10721
10722         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
10723         Monitor.Enter on the object.
10724
10725 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
10726
10727         * threads.c: Enable the wait for running threads when exiting.
10728         * icall.c: Suspend all threads before exiting.
10729
10730 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
10731
10732         * assembly.c (mono_assembly_load_reference): Fix warning.
10733
10734 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10735
10736         * threadpool.c: changed the default number of threads per cpu. From now
10737         on, the default will be 20 + (5 * number of cpus) instead of 50.
10738
10739 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
10740
10741         * loader.c (mono_method_get_signature_full): Add locking here.
10742
10743 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
10744
10745         * appdomain.c: Moved methods for parsing and freeing assembly
10746         names to assembly.c.
10747         * assembly.c, domain-internals.h: Created public methods for parsing
10748         assembly names. Fixed mono_assembly_load_with_partial_name:
10749         it now finds the best match, taking into account the version,
10750         token and culture specified in the partial name. Also return
10751         the latest version if no version information is specified.
10752
10753 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
10754
10755         * threadpool.c: replace check for SocketAsyncCall class.
10756
10757 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10758
10759         * threadpool-internals.h:
10760         * Makefile.am: added threadpool-internals.h
10761
10762         * threadpool.c: call mono_unhandled_exception on exceptions not handled
10763         that happen in threadpool threads (tested on MS).
10764         (mono_thread_pool_remove_socket): new function that dispatch any pending
10765         AIO call on a socket that is closing. By now only epoll really needs it,
10766         as select/poll wake up when the socket closes.
10767
10768
10769         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
10770
10771 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
10772
10773         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
10774
10775 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
10776
10777         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
10778
10779 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
10780
10781         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
10782         has an abort request, convert it into a suspend request.
10783
10784 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
10785
10786         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
10787         warning for the usage of `UnmanagedFunctionPointerAttribute' which
10788         is not supported yet.
10789
10790 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10791
10792         * image.c: register assemblies loaded from data (bundles) in the loaded
10793         assemblies hash. Fixes bug #74772.
10794
10795 2005-04-29  Martin Baulig  <martin@ximian.com>
10796
10797         * class.c (mono_type_get_name_recurse): Update to the new naming
10798         schema from the latest .NET 2.x beta2.
10799         (mono_class_setup_vtable_general): If we're a generic instance,
10800         copy the vtable from our generic type definition and inflate all
10801         the methods in it.
10802
10803         * loader.c (find_method): Update to the new naming schema from the
10804         latest .NET 2.x beta2.
10805
10806 2005-04-29  Raja R Harinath  <harinath@gmail.com>
10807
10808         * class.c (mono_class_init): Add a mono_loader_unlock to the
10809         #74734 fix.
10810
10811 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
10812
10813         * icall.c (ves_icall_System_Environment_Exit): Remove the 
10814         suspend_all_other_threads () call for the time being, since it can hang.
10815
10816         * threads.c (mono_thread_manage): Similarly, disable the waiting for
10817         the background threads to exit, since it can also hang.
10818
10819         * class.c (mono_class_init): Applied patch from Ankit Jain 
10820         (radical@gmail.com). Avoid pending init errors when a field refers
10821         to a nested class using a typeref. Fixes #74734.
10822
10823         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
10824         this for dynamic modules.
10825
10826 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10827
10828         * threads.c: don't wait for threads that are in the process of aborting
10829         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
10830         and waiting for background threads to finish. This makes xsp and
10831         mod-mono-server exit without random length delays and/or hangs.
10832
10833 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10834
10835         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
10836
10837 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
10838
10839         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
10840         dynamic types to prevent infinite loops. Fixes #74727.
10841
10842         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
10843         ..._is_assignable_to.
10844
10845 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
10846
10847         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
10848
10849 2005-04-25  Martin Baulig  <martin@ximian.com>
10850
10851         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
10852
10853         * domain.c
10854         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
10855
10856         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
10857
10858         * reflection.c (build_compressed_metadata): Set metadata header
10859         version to 2.0.
10860
10861 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
10862
10863         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
10864         number into an integral and a decimal part. Fixes #70473.
10865
10866         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
10867
10868 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
10869
10870         * culture-info-table.h : reflected the latest locale-builder output.
10871
10872 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10873
10874         * threadpool.c: check for SuspendRequested too when deciding if
10875         mono_thread_interruption_checkpoint should be called.
10876
10877 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10878
10879         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
10880         * threads.c: remove interruption_mutex and use Interlocked instead. When
10881         suspending all the threads, wait for all the suspended events at once.
10882         If we're shutting down and get an APC that is going to be queued,
10883         call mono_thread_execute_interruption immediately, as the thread might
10884         be sleeping on a pthread condition or mutex.
10885
10886         * icall.c: call mono_runtime_set_shutting_down before suspending the
10887         threads.
10888
10889         Fixes bug #74693. And now xsp is happier when exiting.
10890
10891 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
10892
10893         * loader.c (mono_stack_walk): Fix #74690.
10894
10895 2005-04-22  Martin Baulig  <martin@ximian.com>
10896
10897         * mono-debug.h (MonoDebugMethodJitInfo): Added
10898         `MonoDebugMethodJitInfo *jit'.
10899
10900         * mono-debug.c (mono_debug_read_method): Cache the
10901         MonoDebugMethodJitInfo in `address->jit'.
10902         (mono_debug_free_method_jit_info): New public method.
10903
10904 2005-04-22  Martin Baulig  <martin@ximian.com>
10905
10906         * class.c (mono_class_is_assignable_from): Disallow
10907         type parameter -> interface.
10908
10909 2005-04-21  Dick Porter  <dick@ximian.com>
10910
10911         * threads.c (mono_thread_create): Turn an assertion into an error.
10912
10913 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
10914
10915         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
10916         
10917         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
10918         Fix some gcc 4.0 warnings.
10919
10920 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
10921
10922         * file-io.c: fix alt dir separator char on unix systems
10923         and cleanup (fixes bug #71214).
10924
10925 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
10926
10927         * marshal.c: Use CALLVIRT instead of CALL when dispatching
10928         a call to a remote domain, since the method may be an
10929         interface method in the client domain. This fixes bug #74192.
10930
10931 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10932
10933         * threadpool.c: recv/send are now performed before going back to managed
10934         code to save one transition.
10935
10936 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10937
10938         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
10939
10940         * metadata/threadpool.c: removed hack to workaround the bug above.
10941
10942         Fixes bug #74618.
10943
10944 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
10945
10946         * reflection.c reflection.h: Fix handling of parameter defaults in
10947         dynamic methods. Also fixes handling of parameter attributes.
10948         Fixes #74609.
10949
10950         * mono-debug.c (mono_debug_close_image): Fix warning.
10951
10952 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10953
10954         * socket-io.h: replaced old unused field with new 'blocking'.
10955         * threadpool.c: restore socket blocking state on windows(tm).
10956
10957 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
10958
10959         * icall.c: don't return the codebase in the AssemblyName[] returned by
10960         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
10961         * object-internals.h: Removed FIXME (fields were presents) and fixed
10962         versioncompat declaration.
10963
10964 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10965
10966         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
10967         not closed, so don't cleanup when it happens.
10968
10969 2005-04-13  Chris Toshok  <toshok@ximian.com>
10970
10971         * mono-debug-debugger.h: change prototype for
10972         mono_debugger_lookup_type.
10973
10974         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
10975         this function, although it should probably be named
10976         mono_debugger_init_type.
10977
10978 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10979
10980         * threadpool.c: fix non-AIO case.
10981
10982 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
10983
10984         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
10985         the built-in profiler to measure just JIT compilation times.
10986
10987 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10988
10989         * threadpool.c: the epollfd might be closed by another thread at
10990         any time, so ignore EBADF at treat it as a "we're closing" sign.
10991
10992 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10993
10994         * threadpool.c: release the semaphores with a count equals to the number
10995         of working threads in both IO and regular pools. Fixed typo that messed
10996         up the count of IO pool threads. Don't initialize the pipe handles if
10997         we're using epoll.
10998
10999 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11000
11001         * threadpool.c: some systems don't like a NULL when deleting the socket
11002         from epoll.
11003
11004 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11005
11006         * threadpool.c: fix semaphore allocation.
11007
11008 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11009
11010         * threadpool.c: added epoll() based implementation for asynchronous IO
11011         that is used instead of the default poll() when available.
11012         It can be disabled by setting MONO_DISABLE_AIO.
11013
11014 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11015
11016         * threadpool.c: windows needs 'closesocket' and instead of returning
11017         0 when the stream is closed while in select, it returns -1. Fixes bug
11018         #74573.
11019
11020 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
11021
11022         * class.c (class_compute_field_layout): Fix the regression caused by
11023         the previous try.
11024
11025 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11026
11027         * threadpool.c: separate pool for socket async. IO.
11028         * threadpool.h: mono_max_worker_threads is not a global any more.
11029
11030 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
11031
11032         * class.c (class_compute_field_layout): Fix #74549.
11033
11034 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11035
11036         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
11037         use 2 connected sockets instead.
11038
11039 2005-04-08  Miguel de Icaza  <miguel@novell.com>
11040
11041         * mono-config.c: Add new entry point for mkbundle
11042         mono_config_parse_memory. 
11043
11044 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11045
11046         * threadpool.c: removed another unused function.
11047
11048 2005-04-08  Ankit Jain  <radical@corewars.org>
11049
11050         * reflection.c (get_default_param_value_blobs): Add 'types'
11051         parameter to get the types encoded in the constant table.
11052         (mono_param_get_objects): Use the type from the constant table,
11053         not the type of the parameter, when creating default values.
11054         Handle null default values correctly.
11055
11056 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11057
11058         * file-io.c:
11059         * file-io.h:
11060         * threadpool.c:
11061         * threadpool.h:
11062         * icall.c:
11063         * socket-io.c: removed dead code for async IO.
11064
11065 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11066
11067         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
11068
11069         * threadpool.c: intercept socket async. calls and pass them to a thread
11070         that is polling and dispatching the job items to the threadpool as
11071         socket become ready. Fixes bugs #71217, #71933.
11072
11073         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
11074         between char and short/ushort arrays.
11075
11076         * socket-io.c: remove dead code.
11077
11078 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
11079
11080         * locales.c,
11081           icall.c : removed InternalToUpper_Comp() and
11082           InternalToLower_Comp().
11083
11084 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
11085
11086         * char-conversions.h : The tables were incorrectly generated. Should
11087           be generated against invariant culture.
11088
11089 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
11090
11091         * object.c (mono_runtime_invoke_array): Fix return value when 
11092         passing pre-created valuetype objects to ctors.
11093
11094         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
11095         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
11096         Fixes #74338.
11097
11098 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
11099
11100         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
11101         only used with --security and hides the wrong corlib version error.
11102
11103 2005-03-30  Joshua Tauberer  <tauberer@for.net>
11104
11105         * class.c: Changed mono_class_name_from_token so that types
11106         outside of a namespace don't have an initial period.  Improved
11107         the g_warning message used in _mono_class_get when loading
11108         fails.
11109         * assembly.c: In mono_assembly_load_reference, when an assembly
11110         can't be found, "No such file or directory" is misleading and
11111         unhelpful because a few paths were checked for the presence of
11112         the assembly.  When that happens (ENOENT), display a nicer
11113         message indicating the directories that were searched.  In all
11114         cases, the warning is made easier to read for non-hackers.
11115
11116 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
11117
11118         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
11119         project/solution.
11120         * appdomain.h|domain.c: Removed inline from functions.
11121         * appdomain.c: Reduced warnings when compiling on windows.
11122         * icall.c: Fixed output_debug declaration to gunichar2*.
11123         * mono-config.c: Reduced warnings when compiling on windows.
11124         * rand.c: Added missing "windows.h". Added missing return value.
11125         * rawbuffer.c: Added missing winsock2.h for windows.
11126         * sysmath.h: Added mono-compiler.h header to allow/ease 
11127         compilation with non-GCC compilers.
11128         * threads.c: Fixed declarations to compile with VS.NET C compiler.
11129         Removed cast warnings.
11130
11131         Adapted from the work of J Lothian (for VC6).
11132
11133 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
11134
11135         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
11136         from default_path.
11137
11138 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
11139
11140         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
11141         the 2.0 profile.
11142
11143 2005-03-27  Raja R Harinath  <harinath@gmail.com>
11144
11145         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
11146         has to be in $(exec_prefix).  $(prefix) is for arch-independent
11147         stuff, and it would probably use $(prefix)/share rather than
11148         $(prefix)/lib.
11149
11150 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11151
11152         * console-io.c: added 2 includes that might be missing.
11153
11154 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
11155
11156         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
11157         profile.
11158
11159         * reflection.c (create_custom_attr): Allocate the params array using
11160         alloca so it gets GC tracking.
11161
11162 2005-03-23  Chris Toshok  <toshok@ximian.com>
11163
11164         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
11165         out some spew.
11166
11167 2005-03-24  Raja R Harinath  <rharinath@novell.com>
11168
11169         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
11170         changes to pick up any changes in prefix, etc.
11171
11172 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
11173
11174         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
11175         
11176         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
11177         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
11178
11179 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
11180
11181         * class-internals.h object-internals.h class.c reflection.c: Extend the
11182         mono_lookup_dynamic_token () function to return the class of the
11183         token as well. 
11184
11185         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
11186         well. Fixes #73848.
11187
11188 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
11189
11190         * security-manager.c: Skip inheritance checks for intra-corlib
11191         class inheritance and method overrides. This skips a lot of checks
11192         and (anyway) permissions cannot work until corlib is loaded.
11193
11194 2005-03-23  Martin Baulig  <martin@ximian.com>
11195
11196         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
11197         MONO_TYPE_GENERICINST.  
11198
11199 2005-03-23  Martin Baulig  <martin@ximian.com>
11200
11201         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
11202
11203 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11204
11205         * class.c: added locking comments to some functions.
11206         Cache the interface offsets arrays (saves about 20 KB
11207         of runtime memory in a typical app).
11208         Reduce the time overhead in mono_class_setup_supertypes ().
11209
11210 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
11211
11212         * icall.c: speedup and fix leaks in GetMethodsByName and
11213         GetPropertiesByName.
11214
11215 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11216
11217         * reflection.c: some locking fixes.
11218
11219 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11220
11221         * metadata.c: added missing break in case statement.
11222
11223 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
11224
11225         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
11226         typedbyref return values. Fixes #73941.
11227
11228 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
11229
11230         * security-manager.c|h: Added demandunmanaged method and 
11231         suppressunmanagedcodesecurity class to MonoSecurityManager.
11232         Renamed aptc class to allowpartiallytrustedcallers.
11233
11234 2005-03-17  Martin Baulig  <martin@ximian.com>
11235
11236         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
11237
11238 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11239
11240         * file-io.c: disabled file async. IO using aio_*. It uses the
11241         threadpool now. Workaround for bug #73718.
11242
11243 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11244
11245         * assembly.h, mono-config.c: added code to deal with bundled configs
11246         for bundled assemblies.
11247
11248 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
11249
11250         * *.c, private.h: cleanup, removing old private.h header file.
11251
11252 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
11253
11254         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
11255         and throw_on_unmappable_char attributes.
11256
11257 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
11258
11259         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
11260         _ProcessName_internal.
11261
11262 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
11263
11264         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
11265         #73631.
11266
11267         * icall.c threads.c threads-types.h: Remove slothash icalls as they
11268         are no longer used.
11269
11270 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
11271
11272         * object.c (compute_class_bitmap): Add support for generics. Fixes
11273         #73527.
11274
11275 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
11276
11277         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
11278
11279 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11280
11281         * filewatcher.c: commented out the code for windows watcher, as we don't
11282         use it (we use the managed implementation instead).
11283
11284 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
11285
11286         * object-internals.h (MonoThread): Remove 'unused1' field.
11287
11288         * appdomain.c: Bump corlib version.
11289
11290         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
11291
11292         * reflection.c (mono_reflection_create_runtime_class): Remove the
11293         AssemblyBuilder.Save optimization since it causes too many problems.
11294
11295 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
11296
11297         * exception.c|h: Added mono_get_exception_reflection_type_load to
11298         create a ReflectionTypeLoadException object.
11299         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
11300         to return NULL is a InheritanceDemand fails during reflection. Updated
11301         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
11302         ReflectionTypeLoadException if an InheritanceDemand fails during 
11303         reflection. Added icall mapping for GetLinkDemandSecurity.
11304         * security-manager.c|h: Added ves_icall_System_Security_
11305         SecurityManager_GetLinkDemandSecurity internal call to return the
11306         class and methods permissions set for a LinkDemand. Removed unused
11307         fields in MonoSecurityManager.
11308
11309 2005-03-10  Martin Baulig  <martin@ximian.com>
11310
11311         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
11312         it's a generic instance.
11313
11314 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
11315
11316         * reflection.c (mono_get_object_from_blob): Applied patch from
11317         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
11318
11319         * class.c (mono_class_is_assignable_from): Another try at fixing 
11320         #73469 without breaking anything.
11321
11322 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
11323
11324         * class.c: (mono_class_is_assignable_from): Revert the last changes
11325         since they don't work with generics.
11326         
11327         * class.c (mono_class_is_assignable_from): Fix build bustage.
11328
11329         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
11330         the managed IsAssignableFrom method. Fixes #73469.
11331
11332         * reflection.c (mono_reflection_call_is_assignable_from): New helper
11333         function.
11334
11335 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
11336
11337         * object.c (mono_load_remote_field_new): Fix returning uninitialized
11338         memory when the remoting callback does not sets the out arguments.
11339         Fixes #73007.
11340
11341         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
11342         by mistake.
11343
11344         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
11345
11346         * object-internals.h (MonoStackFrame): Sync with managed object layout.
11347
11348         * appdomain.c: Bump corlib version.
11349
11350 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
11351
11352         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
11353         function.
11354
11355         * threads.c (mono_thread_attach): Detect threads which are not started
11356         by the GC pthread wrappers.
11357
11358 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
11359
11360         * icall.c: Added new icall for RNG.
11361         * rand.c|h: Added new icall to open the RNG. This allows to share a 
11362         single handle on Linux to access /dev/urandom and fix #73183.
11363
11364 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
11365
11366         * object.c: setting the new vtable in a transparent proxy object must
11367         not change the GC descriptor.
11368
11369 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11370
11371         * object.c: fixed compilation without GCJ support.
11372         * reflection.c: for runtime-created types ensure klass->has_references
11373         is correct (bug #73215).
11374
11375 2005-03-02  Martin Baulig  <martin@ximian.com>
11376
11377         * class.c (mono_class_is_assignable_from): Make this work if
11378         `oklass' is a generic instance; fixes #72831.
11379
11380 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
11381
11382         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
11383         with hasthis set.
11384         
11385         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
11386
11387         * marshal.c: Reorganize native->managed marshalling code to also use
11388         the emit_marshal_... functions.
11389
11390 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
11391
11392         * object.c: typed allocs have issues with bitmap sizes > 30,
11393         so check for max_set >= 30.
11394
11395 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
11396
11397         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
11398         managed code. Fixes #73012.
11399
11400         * metadata.h (MonoMarshalSpec): Add elem_mult field.
11401
11402         * metadata.c reflection.c: Load/Emit elem_mult as well.
11403         
11404         * metadata.h (MonoMarshalSpec): Add comment.
11405
11406         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
11407
11408         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
11409         num_elem to -1 if not given.
11410
11411         * object-internals.h (MonoReflectionMarshal): Add has_size field.
11412
11413         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
11414         given values.
11415
11416 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
11417
11418         * null-gc.c (mono_gc_free_fixed): Was not compilable.
11419
11420 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
11421
11422         * reflection.c (encode_marshal_blob): Encode param_num field as well.
11423
11424         * object-internals.h (MonoReflectionMarshal): Add param_num field.
11425
11426 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
11427
11428         * object.c: generalized the reference bitmap creation
11429         and added hooks for the new GC.
11430         * class-internals.c: removed the gc_bitmap field from MonoClass.
11431
11432 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11433
11434         * domain.c: help the compiler to produce better code
11435         in mono_jit_info_table_find ().
11436
11437 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
11438
11439         * object.c: make all allocations look typed.
11440
11441 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11442
11443         * socket-io.c: load Mono.Posix if it's not loaded already
11444         (fixes bug#73033).
11445
11446 2005-02-24  Martin Baulig  <martin@ximian.com>
11447
11448         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
11449         * reflection.c (dup_type): Likewise.
11450
11451 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
11452
11453         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
11454         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
11455
11456 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11457
11458         * domain.c, threads.c, object-internals.h: make the critical thread
11459         local vars use the fast access mode (even when we're compiled in
11460         a lib). Provide accessors to be used by the jit during codegen.
11461
11462 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11463
11464         * appdomain.c: Changed hook functios behavior to include
11465         support for the reflection only assemblies. Some icalls were changed
11466         to support the mentioned assemblies too. Signatures of static methods
11467         try_assembly_resolve and real_load now have an additional parameter:
11468         refonly.
11469
11470         * assembly.c: General changes to mono_assembly_ methods to support
11471         reflection only api. Functions mono_assembly_open, mono_assembly_load,
11472         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
11473         suffix, to support an additional gbool parameter to specify whether
11474         the assembli is reflection only or not. Created some new hook functions 
11475         to add support for reflection only assemblies. Signatures of static 
11476         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
11477         have now an additional parameter: refonly.
11478
11479         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
11480         indicating whether the assembly is reflection only or not.
11481
11482         * exception.c: Add mono_get_exception_invalid_operation.
11483
11484         * icall.c: Throw an InvalidOperationException when trying to invoke
11485         a property/method/event, or trying to set/get the value of a field.
11486         Also add an icall to retrieve the ref_only flag to the
11487         MonoReflectionAssembly.
11488
11489 2005-02-23  Chris Toshok  <toshok@ximian.com>
11490
11491         Part of fix for #72827.
11492         * mono-debug.c (mono_debug_add_method): add lexical block data to
11493         the info we write.  Kind of a hack at the moment - we copy the
11494         lexical block info from the MonoDebugMethodInfo to the
11495         MonoDebugMethodJitInfo here, before writing it.
11496         (mono_debug_read_method): read the lexical block info.
11497
11498         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
11499
11500         * debug-mono-symfile.h: add lexical block support.
11501
11502         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
11503         support.
11504
11505 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
11506
11507         * loader.c (mono_lookup_pinvoke_call): Fix warning.
11508
11509         * object.c (mono_runtime_free_method): Call mono_free_method () and
11510         put the TODOs there.
11511
11512         * loader.c (mono_free_method): Free up most memory allocated for 
11513         dynamic methods.
11514
11515 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
11516
11517         * reflection.c: properly flag a Type argument to a
11518         named custom attr value (bug #72248).
11519
11520 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11521
11522         * reflection.c: reduce code duplication in named custom
11523         attribute encoding.
11524
11525 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
11526
11527         * reflection.c: properly encode custom attrs of type object
11528         (bug #72649).
11529
11530 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
11531
11532         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
11533
11534 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
11535
11536         * socket-io.c: load System.dll if it's not loaded already
11537         (bug #72850 and #70477).
11538
11539 2005-02-21  Martin Baulig  <martin@ximian.com>
11540
11541         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
11542         generic instances.
11543
11544 2005-02-21  Martin Baulig  <martin@ximian.com>
11545
11546         * reflection.c (mono_image_build_metadata): We also need to
11547         "fixup" the MethodImpl table after we computed the final method
11548         indices.  Call fixup_methodimpl() to do that.
11549         (fixup_methodimpl): New private method.
11550
11551 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
11552
11553         * assembly.c: special case mscorlib.dll (bug#72536),
11554         patch from Carlos Alberto Cortez.
11555
11556 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
11557
11558         * threads-types.h threads.c: Fix build bustage.
11559
11560         * threads.c: Use a union for long<->double conversions.
11561
11562         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
11563         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
11564
11565         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
11566         containing the checkpoint call with NOT_TAKEN.
11567         
11568         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
11569         checkpoint before pushing the arguments, so they won't have to be
11570         spilled to stack.
11571
11572 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11573
11574         * domain.c, assembly.c, domain-internals.h: make some data
11575         const and relocation-free.
11576
11577 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
11578
11579         * object.c, appdomain.c, class-internals.h: introduce the
11580         MonoClassRuntimeInfo structure to hold the info needed to
11581         use a class at runtime. Made mono_class_vtable() lock-free
11582         for all the appdomains.
11583
11584 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
11585
11586         * metadata-internals.h, image.c: introduce a per-image mempool to
11587         be used for memory that has the same lifetime as the image.
11588
11589 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
11590
11591         * domain.c: In mono_init_internal(), instead of selecting the first
11592         runtime version supported by an executable, get a list of all
11593         supported versions and select the one for which an mscorlib exists
11594         (since even if the runtime supports a given version, it doesn't mean
11595         that the framework for that version is installed).
11596         Modified get_runtimes_from_exe to support this behavior.
11597         In supported_runtimes, added information about additional system
11598         assembly versions.
11599         
11600         * assembly.c: Added support for more than one system assembly version
11601         per runtime version. Updated the assembly list.
11602         In mono_assembly_remap_version, removed the initial version check,
11603         since we don't know to which version we need to compare until we
11604         get the version set on which the assembly is based.
11605         Moved the code for loading corlib into the new method
11606         mono_assembly_load_corlib(), so it can be used by the initialization
11607         code.
11608         
11609         * domain-internals.h: Updated data structures and added declaration
11610         for mono_assembly_load_corlib.
11611
11612 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
11613
11614         * reflection.c (resolve_object): Fix the creation of the signature in 
11615         the SignatureHelper case.
11616
11617         * assembly.c (mono_assembly_remap_version): Fix binary search.
11618         
11619 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
11620  
11621         * class.c: Added inheritance check when a method is overloaded (from a
11622         virtual method or when implementing an interface) and when a class is
11623         inherited. Added functions to set a failure for a class and to 
11624         retreive the exception from a failure.
11625         * class-internals.h: Added fields to MonoClass to keep the exception
11626         information status for inheritance (or other exceptions) to be thrown
11627         later (i.e. not at load time).
11628         * object.c: Throw the inheritance SecurityException when a type is to 
11629         be created with either class or method inheritance violations.
11630         * reflection.c|h: Fix when getting declsec from a class. Removed 
11631         unrequired code for class. Improved sanity in parameter naming.
11632         * security-manager.c|h: Added functions to check for class and method
11633         inheritance.
11634
11635 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
11636
11637         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
11638         and has_finalize in dynamic types as well.
11639
11640 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
11641
11642         * culture-info-table.h : fixed currency format for en-GB (and so on).
11643
11644 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
11645
11646         * gc.c: ensure the GC handles never have 0 as a value.
11647
11648 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
11649
11650         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
11651         a pointer to a struct to unmanaged code. Fixes #72625.
11652
11653 2005-02-16  Martin Baulig  <martin@ximian.com>
11654
11655         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
11656
11657 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
11658
11659         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
11660
11661 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
11662
11663         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
11664
11665         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
11666         UnmanagedFunctionPointerAttribute, use it for determining calling convention
11667         etc. Fixes #71471.
11668
11669         * reflection.c (mono_custom_attrs_get_attr): New helper function.
11670
11671         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
11672
11673 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
11674
11675         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
11676         changes to make the current context a field in MonoThread.
11677
11678 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
11679
11680         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
11681         the last change.
11682         
11683         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
11684         extracted from mono_marshal_get_native_wrapper.
11685
11686         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
11687         to create wrappers around native functions.
11688
11689         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
11690         delegates for arbitrary function pointers. Fixes #71472.
11691
11692 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11693
11694         * threads.c: cleaned up the code a little.
11695
11696 2005-02-15  Martin Baulig  <martin@ximian.com>
11697
11698         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
11699         the data table.
11700
11701         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
11702         allocate larger chunks if needed.
11703
11704 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
11705
11706         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
11707         in by mistake.
11708
11709 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
11710
11711         * domain.c: keep the domains in an array and ensure the domain ids
11712         are kept small, so they can be used as indexes to domain-specific data
11713         with a small memory overhead.
11714
11715 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
11716
11717         * icall.c: Handle byref types in Type icalls. Fixes #72544.
11718
11719 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
11720
11721         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
11722
11723 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
11724
11725         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
11726
11727         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
11728         values.
11729
11730         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
11731         
11732 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
11733
11734         * domain-internals.h: add the hashtable here.
11735
11736         * class-internals.h: Remove `info' from MonoMethod
11737
11738         * domain.c: Add a new hashtable, jit_trampoline_hash
11739
11740 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11741
11742         * object.c: don't set the value of static fields
11743         (fixes bug#72494).
11744
11745 2005-02-11  Martin Baulig  <martin@ximian.com>
11746
11747         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
11748         (mono_debug_add_method): Silently ignore the method if it's too big.
11749         (mono_debug_add_type): Likewise.
11750
11751 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
11752
11753         * threads.c, appdomain.c: remove #ifdefs from the code.
11754
11755 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
11756
11757         * metadata-internals.h: Added flags to MonoAssembly to cache the most
11758         common security informations. This allows us to stay in unmanaged code
11759         when doing LinkDemand and it's special cases (except for the first 
11760         time for initialization). The flags a very much used with --security.
11761         * reflection.c|h: Added code to get declarative security attributes 
11762         for LinkDemand and InheritanceDemand. This required to refactor the
11763         existing code for Demand.
11764         * security-manager.c|h: Added new method fields for the special cases
11765         of LinkDemand.
11766
11767 2005-02-10  Martin Baulig  <martin@ximian.com>
11768
11769         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
11770         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
11771
11772 2005-02-10  Martin Baulig  <martin@ximian.com>
11773
11774         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
11775         debugging code; this is almost a complete rewrite.
11776
11777         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
11778
11779 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11780
11781         * domain.c, object.h: expose mono_string_equal () and 
11782         mono_string_hash ().
11783         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
11784         it's implemented in managed code.
11785
11786 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11787
11788         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
11789         lo leak objects between appdomains.
11790
11791 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11792
11793         * assembly.c: old compilers compilation fix from 
11794         robertj@gmx.net (Robert Jordan).
11795
11796 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
11797
11798         * class-internals.h: Little reminder for the future.
11799
11800         * debug-helpers.c: Fix up wrapper_type_names
11801
11802 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11803
11804         * image.c, metadata-internals.h: when loading an image from a file,
11805         mmap all of it and use the same codepaths as when using a
11806         in-memory image: the code is simpler and we use less memory
11807         (both writable and readonly).
11808
11809 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11810
11811         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
11812         API to alloc runtime data structures that need to be tracked by the
11813         GC and contain pointers.
11814         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
11815         make the code more readable and eventually use a different GC.
11816
11817 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
11818
11819         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
11820         for out arguments.
11821         
11822 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
11823
11824         * object.c: In release_type_locks(), don't release the cctor lock
11825         if it has already been released. This fixes a crash in the
11826         thread5 test.
11827
11828 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11829
11830         * gc.c, marshal.c, icall.c: register a delegate for finalization
11831         only when the native function pointer has been allocated for it.
11832
11833 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11834
11835         * object.c: cleaned up some code, allocate objects that are
11836         pointer free with the atomic malloc variant. Allocate memory
11837         for static data from the mempool if it's pointer-free.
11838         Allocate the bounds array at the end of the array data, when needed.
11839         * object-internals.h, object.h: move a private function in a private
11840         header.
11841         * class.c: handle missing case in tracking references in fields.
11842
11843 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11844
11845         * class.c, class-internals.h: keep track if a type has
11846         reference fields in either the instance or static fields.
11847
11848 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
11849
11850         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
11851         and renamed to MonoRuntimeInfo. Added fields to store the expected
11852         framework assembly version. Changed mono_get_framework_version and
11853         mono_get_runtime_version for a single mono_get_runtime_info method.
11854         
11855         * assembly.c: Added method to remap system assembly versions to the
11856         current executing runtime version. Removed old mapping code.
11857         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
11858         
11859         * icall.c, reflection.c: Track api changes.
11860
11861 2005-02-06  Miguel de Icaza  <miguel@novell.com>
11862
11863         * loader.c (method_from_memberref): Improve error reporting,
11864         produce the class name instead of the typeref/typedef index. 
11865
11866 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
11867
11868         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
11869
11870 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11871
11872         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
11873         stdcall and charset name mangling.  Reorganize the code and add
11874         some tracing stuff.
11875
11876 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
11877
11878         * monodiet.c: More iters!
11879
11880         * marshal.c: Iter usage.
11881
11882         * icall.c: Iter usage.
11883
11884         * object.c: Use iters.
11885
11886         * debug-helpers.c: More iters
11887
11888 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11889
11890         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
11891         under win32.
11892
11893 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
11894
11895         * mono-debug-debugger.c: use iters
11896
11897         * class.c, class-internals.h: mono_class_setup_events is static
11898         now
11899
11900         * All callers: use iters
11901
11902 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11903
11904         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
11905         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
11906
11907 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
11908
11909         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
11910
11911         * marshal.h: Add prototypes for ldfld/stfld_remote.
11912
11913         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
11914         this is called during startup.
11915         
11916 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
11917
11918         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
11919         MonoThreadsSync struct private in monitor.c. Changed the way
11920         MonoThreadsSync is allocated so it's faster and there is no
11921         need to keep track of it with a finalizer and it uses less memory.
11922         This also finally allows us to allocate mono objects as ptrfree when
11923         there are no reference fields.
11924
11925 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
11926
11927         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
11928         disappearing link to the GC interface and use them to simplify
11929         the gchandles code.
11930
11931 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
11932
11933         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
11934         stfld_remote which call mono_load/store_field_new. This allows methods
11935         calling ldfld/stfld wrappers to be AOTed.
11936
11937         * console-io.c: Include sys/filio.h under solaris.
11938         
11939         * console-io.c: Include curses.h if needed correctly.
11940
11941 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
11942         
11943         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
11944         method->klass as well.
11945
11946         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
11947
11948         * class.c (mono_class_init): Switch on lazy initialization of 
11949         methods.
11950
11951         * class.c (mono_class_get_finalizer): Handle the case when the 
11952         finalizer is inherited.
11953
11954 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11955
11956         * console-io.c: <curses.h> is needed by term.h on solaris.
11957
11958 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
11959
11960         * icall.c, class-internals.h, monodiet.c, class.c: Remove
11961         mono_class_setup_properties where possible. Remove this ftn from
11962         the header file, and make it static.
11963
11964 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
11965
11966         * loader.c: Add missing setup_... call.
11967
11968         * class.c: Add missing setup_... calls.
11969
11970         * class.c (mono_class_init): Switch on lazy initialization of 
11971         the generic vtable.
11972         
11973         * class.c (mono_class_init): Fix generics broken by the recent changes.
11974
11975         * monodiet.c (handle_type): Add missing setup_... calls.
11976
11977         * class.c: Back out garbage in previous patch.
11978         
11979         * class.c: Add missing setup_... calls.
11980
11981         * class.c (mono_class_get_method_from_name_flags): Avoid calling
11982         mono_class_setup_methods () if possible.
11983
11984         * class-internals.h (MonoClass): Add 'has_cctor' flag.
11985
11986         * class-internals.h (MonoCachedClassInfo): New structure.
11987
11988         * class.c: Initialize properties and events fields of MonoClass lazily.
11989
11990         * class.c: Add infrastructure for lazily initializing the methods and
11991         vtable fields of MonoClass. Not yet used.
11992
11993         * class.c (mono_class_get_finalizer): New helper function.
11994
11995         * class.c: Add infrastructure for loading some class related data from
11996         an AOT file.
11997
11998         * object.c: Add infrastructure for initializing the vtable from data
11999         in the AOT file.
12000
12001         * gc.c (run_finalize): Use mono_class_get_finalizer ().
12002
12003         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
12004         appropriate initialization function before accessing parts of the
12005         MonoClass structure.
12006
12007         * marshal.c: Fix warnings.
12008         
12009         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
12010
12011         * mono-debug-debugger.c (get_exception_message): Use 
12012         mono_class_get_method_from_name_flags ().
12013
12014 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
12015
12016         * reflection.c, appdomain.c: Replace a few manual searches that
12017         Zoltan missed. (Paolo approved this part of my initial patch).
12018
12019 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
12020
12021         * profiler.c: disable recording statistical events at report time.
12022
12023 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
12024
12025         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
12026         to byteswap arrays of enum values, too (bug #72080).
12027
12028 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
12029
12030         * appdomain.c (set_domain_search_path): Allow this to be called if
12031         domain->setup is not yet set.
12032
12033         * loader.c (mono_method_get_index): New helper function.
12034
12035         * loader.c reflection.c: Use mono_method_get_index ().
12036
12037         * class.c (mono_class_get_method_from_name_flags): New helper method.
12038
12039         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
12040         this.
12041
12042         * class.c (mono_class_get_cctor): New helper method.
12043
12044         * string-icalls.c object.c class.c marshal.c reflection.c: Use
12045         mono_class_get_method () to look up methods.
12046
12047 2005-02-01  Miguel de Icaza  <miguel@novell.com>
12048
12049         * console-io.c: Fix the build, this should work on Windows.
12050
12051 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
12052
12053         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
12054         be set to null to keep things valid
12055
12056 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12057
12058         * icall.c: added Console 2.0 icalls.
12059         * Makefile.am: added console-io.[ch]
12060         * console-io.[ch]: internal calls for Console 2.0 API.
12061
12062 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
12063
12064         * class.c: make sure we consider all the interfaces
12065         when calculating max_interface_id (bug found by
12066         Jeroen Frijters running ikvm).
12067
12068 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
12069
12070         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
12071         valuetype fields to null.
12072
12073         * object.c (set_value): Ditto. Fixes #71669.    
12074
12075 2005-01-31  Martin Baulig  <martin@ximian.com>
12076
12077         * metadata.c (mono_metadata_has_generic_params): New public
12078         function; checks whether something is a generic method.
12079
12080 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
12081
12082         * appdomain.c: fix infinite recursion when adding assemblies.
12083
12084 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
12085
12086         * object.c: Fix small typo to return all items for Environment.
12087         GetCommandLineArgs.
12088
12089 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
12090
12091         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
12092         reflection.c: more domain and assembly-unload related fixes
12093         and memory leaks plugs.
12094
12095 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
12096
12097         * 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.
12098
12099 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
12100
12101         * loader.c (mono_method_signature): Make this method lazy
12102         (mono_get_method_from_token): Don't computate the signature here.
12103
12104         Doing this saves quite a bit of memory. I got 90 kb on starting up
12105         monodoc. It should also save some disk reads on startup.
12106
12107         * *: MonoMethod->signature might be NULL now. You *MUST* use
12108         mono_method_signature.
12109
12110 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
12111
12112         * object.c (mono_runtime_get_main_args): Return an array from the
12113         current domain here. Fixes #71938.
12114
12115 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
12116
12117         * monitor.c: formatting changes to comply with the
12118         mono coding style and remove #ifdefs from the code.
12119
12120 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
12121
12122         * metadata.c, private.h: remove some unneeded data
12123         and use a more compact representation for table schemas.
12124
12125 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
12126
12127         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
12128         to get a better distribution in hash tables.
12129         * *.c: use mono_aligned_addr_hash() where appropriate.
12130         * assembly.c: make var static.
12131
12132 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
12133
12134         * domain-internals.h: Put MonoJitInfo on a diet.
12135
12136         * domain.c: Fix a warning.
12137
12138 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12139
12140         * gc.c: rework the gc handles code to reuse handles
12141         when freed.
12142
12143 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
12144
12145         * domain.c: fixed long standing bug in mono_string_equal() which
12146         was brought to light with the ldstr changes.
12147
12148 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
12149
12150         * reflection.c: Remove warning by adding missing include for marshal.h
12151
12152 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
12153
12154         * domain.c, object.c: change the ldstr_table to hold
12155         MonoString* as keys: makes the runtime isinterned lookup
12156         faster and simplifies memory management.
12157
12158 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
12159  
12160         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
12161         possible to add imperative security checks before calling the icall.
12162         * reflection.c: Return security attributes on the original MonoMethod
12163         (and not the wrapped one). This fix permissions on icalls.
12164
12165 2005-01-25  Dick Porter  <dick@ximian.com>
12166
12167         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
12168         the check for mktime() support actually test the mktime() return
12169         value.  "Fixes" bug 71682, though the output is still different to
12170         MS.
12171
12172 2005-01-25  Martin Baulig  <martin@ximian.com>
12173
12174         * class.c (mono_class_is_assignable_from): Make this work for
12175         generic instances.
12176
12177 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
12178
12179         * marshal.c (mono_string_utf8_to_builder)
12180         (mono_string_builder_to_utf16): We might not have ownership of the
12181         string. In thise case, we need to create a new buffer.
12182
12183         * object-internals.h (mono_stringbuilder_capacity): sb->str might
12184         be null, in which case, use the default capacity.
12185
12186 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
12187
12188         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
12189         GC events to the profiler.
12190
12191 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
12192
12193         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
12194         if you don't want the GC to run.
12195
12196 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
12197
12198         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
12199         start providing a GC API and keeping different implementations in
12200         their own file.
12201         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
12202
12203 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
12204
12205         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
12206         mmap rather than allocating a huge buffer.
12207         (mono_debug_close_mono_symbol_file): Free the buffer allocated
12208         above.
12209
12210 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
12211
12212         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
12213         and CheckExecutionRights.
12214         * reflection.c|h: Keep the index of the declarative security to be 
12215         used, instead of the pointer, when AOT compiler is used. Also add 
12216         class initialization when requesting demands.
12217         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
12218         CheckExecutionRights. Both properties are now FALSE by default, and
12219         unmodifiable, unless the --security option is used.
12220
12221 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
12222
12223         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
12224         reflection.c: properly refcount images and assemblies, many leaks fixed.
12225
12226 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12227
12228         * threadpool.c: increase the timeout for threads in the thread pool to
12229         10s.  Fixes bug #67159.
12230
12231 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12232
12233         * class-internals.h: Sun's compiler insists on explicit
12234         signed on bit fields to handle then correctly.
12235
12236 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
12237
12238         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
12239         Make the size of the array fit only the number of invalid path
12240         chars that we have.
12241
12242         * class.c (_mono_class_get): Improve the error reporting when a
12243         class referenced is not found, to assist debugging. 
12244
12245 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
12246
12247         * threads.c: fix off-by-one error.
12248         * domain.c: free data allocated in the domain.
12249
12250 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
12251
12252         * reflection.c (mono_method_body_get_object): Fill out exception info
12253         as well.
12254
12255         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
12256         structure.
12257         
12258 2005-01-19  Martin Baulig  <martin@ximian.com>
12259
12260         * loader.c (mono_get_method_constrained): Make this work again.
12261
12262 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
12263
12264         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
12265         guint16 to match the managed side.
12266
12267         * reflection.c (mono_reflection_body_get_object): Fill out local
12268         variables array.
12269
12270         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
12271         as well.
12272
12273         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
12274         'local_var_sig_token'.
12275
12276 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
12277
12278         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
12279         System.Drawing.
12280
12281         * reflection.c (mono_method_body_get_object): Handle abstract and
12282         runtime methods.
12283
12284 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
12285
12286         * marshal.c, loader.c, class-internals.h, reflection.c:
12287         store the emthod data for a wrapper in an array instead of a list.
12288
12289 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
12290
12291         * marshal.c: change the code to allocate memory more
12292         conservatively for method wrappers.
12293
12294 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
12295
12296         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
12297         fields from MonoClass to the marshal info structure where they belong.
12298
12299 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12300
12301         * class.c, object.c, class-internals.h, marshal.c: rearrange
12302         some fields and tweak some types to lower memory usage.
12303
12304 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
12305
12306         * threads.c (signal_thread_state_change): Handle the case when the
12307         target thread is the current thread.
12308
12309         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
12310
12311         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
12312         emit_ptr_to_object_conv. 
12313
12314         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
12315         marshalling. Fixes #71352.
12316
12317 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
12318
12319         * metadata.h, blob.h: move table enum to blob.h so it can be included
12320         in any header.
12321         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
12322         cut the size of MonoImage/MonoDynamicImage.
12323
12324 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
12325
12326         * profiler.c (mono_profiler_install_simple): Fix default arguments.
12327
12328 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
12329
12330         * reflection.c, reflection.h, icall.c: add a function to check
12331         if an attribute type is defined for a metadata object.
12332
12333 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
12334
12335         * object-internals.h: Added some needed fields from StringBuilder class.
12336         * marshal.c: Set the maxCapacity when creating a StringBuilder.
12337
12338 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
12339
12340         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
12341         threads before shutting down the runtime.
12342
12343         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
12344
12345 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
12346
12347         * object-internal.h, threads.c: implement stacksize and 
12348         parameterized thread start functionality (requires
12349         matching corlib). Marked broken code for later removal.
12350
12351 2005-01-12  Martin Baulig  <martin@ximian.com>
12352
12353         * class-internals.h (MonoGenericClass): Moved the `initialized'
12354         flag to MonoDynamicGenericClass, removed `init_pending'.
12355         (MonoGenericInst): Added `is_reference' flag.
12356
12357 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
12358
12359         * reflection.c (mono_image_create_pefile): Only set the pe_offset
12360         inside the MSDOS header. Fixes #71201.
12361
12362         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
12363         gc thread.
12364         (mono_domain_finalize): Ditto.
12365
12366 2005-01-12  Martin Baulig  <martin@ximian.com>
12367
12368         * class.c (mono_get_shared_generic_class): Use the cache for
12369         non-dynamic generic classes.
12370
12371         * class-internals.h (mono_class_create_generic_2): Removed
12372         function prototype, this function is now static inside class.c.
12373
12374         * class.c (mono_class_create_generic_2): Made this static, only
12375         call it from mono_class_init() and mono_class_setup_parent().
12376         (collect_implemented_interfaces_aux): Call mono_class_init() on
12377         the interfaces we collect.
12378         (mono_class_setup_vtable): Call mono_class_init (class->parent).
12379
12380 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
12381
12382         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
12383         it a real thread handle.
12384
12385         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
12386         MonoJitExceptionInfo, since each catch clause needs its own variable.
12387         
12388 2005-01-11  Dick Porter  <dick@ximian.com>
12389
12390         * image.c (mono_pe_file_open): New variant on mono_image_open()
12391         that does not set up the CLI metadata; used for FileVersionInfo so
12392         it can get the data for windows binaries too.
12393         
12394         * process.c (process_read_string_block): Don't read off the end of
12395         the StringTable block.
12396
12397         These both fix bug 70766.
12398
12399 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
12400
12401         * gc.c: set some fields to NULL at GC cleanup time.
12402         * threads.c: if we quit the main thread, call exit ().
12403
12404 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
12405
12406         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
12407
12408 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
12409
12410         * threads.h, threads.c, object.c: added accessor and settor for
12411         main_thread. Handle it specially when exiting from it: wait
12412         for other foreground threads to exit.
12413
12414 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
12415
12416         * process.c, verify.c: remove some bloat.
12417
12418 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
12419
12420         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
12421         the calling convention to cdecl under win32.
12422
12423 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
12424
12425         * object.c (mono_object_get_size): New function to get the size of
12426         an object instance.
12427
12428         * profiler.c (simple_allocation): Use above.
12429
12430 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
12431
12432         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
12433         ves_icall_System_AppDomain_getRootDomain (as it's not required to
12434         get an appdomain by it's id and we can't assume the root's id is 0).
12435         * domain-internals.h: Change the function prototype to match.
12436         * icall.c: Change the icall table for AppDomain.
12437
12438 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
12439
12440         * locales.c (string_invariant_compare_char): Only compute
12441         GUnicodeTypes in the case where we need them.  Test for ordinality
12442         first and return if so.
12443
12444         From the commit:
12445
12446                 /*
12447                  * FIXME: here we must use the information from c1type and c2type
12448                  * to find out the proper collation, even on the InvariantCulture, the
12449                  * sorting is not done by computing the unicode values, but their
12450                  * actual sort order.
12451                  */
12452
12453 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
12454
12455         * loader.c: for P/Invoke methods, allow the "Internal" shared
12456         library name to refer to the calling process symbol namespace.
12457
12458 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
12459
12460         * Makefile.am: Add the security manager to the build.
12461         * security-manager.c|h: New. Initialization of the security manager.
12462
12463 2005-01-07  Dick Porter  <dick@ximian.com>
12464
12465         * threads.c: 
12466         * monitor.c: Update thread state during Monitor and WaitHandle
12467         waits.  Fixes bug 71031.
12468
12469 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
12470
12471         * reflection.c (property_encode_signature): Correctly handle when the
12472         property has no methods.
12473
12474 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
12475
12476         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
12477         
12478         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
12479         fields from mb, not rmb. Fixes #71017.
12480
12481         * marshal.c (emit_ptr_to_str_conv): Add support for 
12482         ByValTStr -> string conversion. Fixes #71015.
12483
12484         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
12485
12486         * mempool.c (mono_mempool_contains_addr): New helper function.
12487
12488 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
12489
12490         * metadata.c (mono_metadata_compute_size): Fix size calculation of
12491         HasSematics encoded fields.
12492         
12493         * metadata.c (mono_type_to_unmanaged): Improve error message for 
12494         invalid string marshalling.
12495
12496         * metadata.c: Fix warnings.
12497         
12498 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
12499
12500         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
12501         profiler support.
12502
12503 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
12504
12505         * domain.c object.c domain-internals.h: Revert part of r38077 since the
12506         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
12507         tests.
12508
12509 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
12510
12511         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
12512         so methods containing these can be AOTed.
12513
12514 2005-01-03  Martin Baulig  <martin@ximian.com>
12515
12516         * loader.c (find_method): Removed the hack for generic instances.
12517         (method_from_memberref): If our parent is a generic instance, pass
12518         its generic type definition to find_method() and then inflate the
12519         method.
12520         (mono_get_method_constrained): Pass the generic type definition to
12521         find_method() and inflate the method later.
12522
12523         * class-internals.h (MonoStats): Added `generic_class_count'.
12524
12525         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
12526         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
12527
12528         * reflection.c (mono_custom_attrs_from_params): Don't ignore
12529         generic type definitions.
12530
12531 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
12532
12533         * loader.c icall.c: Fix warnings.
12534
12535 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
12536
12537         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
12538         blittable types. Fixes #70864.
12539
12540 2004-12-29  Martin Baulig  <martin@ximian.com>
12541
12542         * icall.c
12543         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
12544
12545         * reflection.c (mono_method_get_object): Create a
12546         "System.Reflection.MonoGenericMethod" for inflated methods; don't
12547         call mono_get_inflated_method().
12548
12549         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
12550
12551 2004-12-27  Martin Baulig  <martin@ximian.com>
12552
12553         * class-internals.h (MonoMethod): Added `is_inflated' flag.
12554         (MonoMethodInflated): Added `inflated' field.
12555
12556         * class.c (mono_class_inflate_generic_method): Don't really
12557         inflate the method here; just set the `is_inflated' flag in the
12558         MonoMethod.
12559         (mono_class_get_inflated_method): Actually inflate the method here
12560         if it's not already inflated; we use the MonoMethodInflated's new
12561         `inflated' field as a cache.
12562
12563 2004-12-26  Martin Baulig  <martin@ximian.com>
12564
12565         * class.c
12566         (inflate_generic_class): Moved some code out of inflate_generic_type().
12567         (mono_class_inflate_generic_method): If we're already inflated,
12568         inflate the context and use the declaring method; ie. make sure
12569         the declaring method of an inflated method is always the generic
12570         method definition.
12571         (mono_class_create_from_typedef): Create
12572         `class->generic_container->context->gclass'.
12573
12574 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
12575
12576         * metadata-internals.h, marshal.c, reflection.c: More
12577         MonoGHashTable->GHashTable.
12578
12579         * domain-internals.h, class.c: Change MonoGHashTable's into
12580         GHashTables for some cases where no gc stuff is used
12581
12582         All users: update apis
12583
12584 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
12585
12586         * metadata.c (builtin_types): Make this `const'. Makes this get
12587         put into the shareable section.
12588         (mono_metadata_init): Casts to make gcc happy.
12589
12590 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
12591
12592         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
12593
12594 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
12595
12596         * icall.c: Added an internal call to retrieve the position and length
12597         of assembly-level declarative security attributes (RequestMinimum, 
12598         RequestOptional and RequestRefuse). This is used by the Assembly class
12599         to re-create the corresponding permission sets.
12600
12601 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
12602
12603         * marshal.c: fix the stelemref wrapper to be type correct
12604         (and faster).
12605
12606 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
12607
12608         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
12609         to do key & 0x7fffffff. Hashtable already does this. It just
12610         results in longer code.
12611
12612 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
12613
12614         * appdomain.c: Bump corlib version.
12615         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
12616         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
12617         * reflection.c|h: Add functions to get declarative security infos
12618         (blob position and length) for assemblies, classes and methods.
12619
12620 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
12621
12622         * reflection.c: sort the constant table (bug #70693).
12623
12624 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
12625
12626         * object-internals.h, threads.c, domain.c: add accessors for
12627         the MonoThread and MonoDomain tls keys.
12628
12629 2004-12-18  Martin Baulig  <martin@ximian.com>
12630
12631         * class.c (inflate_generic_type): If we're inflating a generic
12632         instance, set `ngclass->context->container = context->container';
12633         ie. the container we inflated into.
12634
12635         * metadata.c (mono_metadata_parse_generic_param): Reflect above
12636         inflate_generic_type() changes.
12637
12638 2004-12-17  Martin Baulig  <martin@ximian.com>
12639
12640         * class-internals.h
12641         (MonoGenericClass): Replaced `MonoType *generic_type' with
12642         `MonoClass *generic_class'.  Removed `dynamic_info'; if
12643         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
12644         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
12645
12646 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
12647
12648         * exception.c (mono_exception_from_token): New helper function.
12649
12650 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
12651
12652         * assembly.c (mono_assembly_load_with_partial_name): Call 
12653         mono_assembly_loaded before invoking the preload hooks. Fixes
12654         #70564.
12655
12656         * object-internals.h (MonoThread): Change culture_info and 
12657         ui_culture_info into an array.
12658
12659         * threads.c: Cache culture info objects from more than one appdomain.
12660
12661         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
12662         current UI culture.
12663
12664 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
12665
12666         * threads.h threads.c appdomain.c: Clear the culture_info field of
12667         all threads during unloading if they point to an object in the dying
12668         appdomain.
12669
12670 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
12671
12672         * culture-info.h (TextInfoEntry): New struct
12673         * object-internals.h: sync with managed
12674         * locales.c: fill the `text_info_data' field
12675         * culture-info-tables.h: update
12676
12677 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
12678
12679         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
12680         collector.
12681
12682 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
12683
12684         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
12685         (ves_icall_ModuleBuilder_getMethodToken): Ditto
12686
12687 2004-12-12  Martin Baulig  <martin@ximian.com>
12688
12689         * mono-debug-debugger.c (write_type): If we're an enum and the
12690         builtin types have already been initialized, call mono_class_init().
12691
12692 2004-12-11  Martin Baulig  <martin@ximian.com>
12693
12694         * metadata.c (mono_metadata_load_generic_params): Added
12695         `MonoGenericContainer *parent_container' argument; automatically
12696         compute `container->is_method'; pass the correct owner to
12697         get_constraints().      
12698
12699         * reflection.c (compare_genericparam): Sort the GenericParam table
12700         according to increasing owners. 
12701
12702 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
12703
12704         * profiler.c: allow disabling the default profiler.
12705
12706 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
12707
12708         * decimal.c, icall.c: allow disabling System.Decimal support.
12709
12710 2004-12-09  Marek Safar <marek.safar@seznam.cz>
12711
12712         * reflection.c: Add support for null attribute arguments.
12713
12714 2004-12-09  Martin Baulig  <martin@ximian.com>
12715
12716         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
12717         names to get rid of compiler warnings.
12718
12719 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
12720
12721         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
12722         mono_marshal_load_type_info (). Fixes #69625.
12723         (mono_marshal_get_ptr_to_struct): Likewise.
12724
12725 2004-12-08  Martin Baulig  <martin@ximian.com>
12726
12727         * mono-debug.h: Bumped version number to 47.
12728
12729         * mono-debug-debugger.c
12730         (mono_debugger_event_handler, mono_debugger_event): Take two
12731         guint64 arguments insteed of a gpointer and a guint32.  
12732
12733 2004-12-08  Martin Baulig  <martin@ximian.com>
12734
12735         * debug-mono-symfile.h
12736         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
12737         `address' to `native_offset'.
12738
12739 2004-12-08  Martin Baulig  <martin@ximian.com>
12740
12741         * class.c (mono_class_create_from_typespec): Only inflate if we
12742         either have `context->gclass' or `context->gmethod'.
12743
12744 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
12745
12746         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
12747
12748         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
12749
12750         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
12751
12752         * reflection.c (mono_assembly_get_object): Remove the workaround put
12753         in for the release.
12754         
12755         * appdomain.c: Use the corlib_internal field from MonoAssembly.
12756
12757         * appdomain.c: Bump corlib version.
12758
12759         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
12760         be visible in other appdomains.
12761
12762 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
12763
12764         * threads.c: Interlocked inc and dec for longs were messed up,
12765         use a KISS based impl for this. Fixes 70234
12766
12767 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
12768
12769         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
12770
12771 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12772
12773         * icall.c: fix to follow policy not to allow struct
12774         arguments in icalls.
12775
12776 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12777
12778         * process.c: make the patch that handles spaces in file paths work
12779         on mono/windows too.
12780
12781 2004-12-06  Martin Baulig  <martin@ximian.com>
12782
12783         * class.c (mono_class_create_generic): Call
12784         mono_class_setup_supertypes() if we're dynamic.
12785         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
12786
12787 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
12788
12789         * object-internals.h: Add new fields to MonoThread.
12790
12791         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12792
12793         * icall.c threads-types.h threads.c: Add new icalls.
12794
12795         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
12796
12797         * object-internals.h (MonoReflectionAssembly): Sync object layout with
12798         managed side.
12799
12800         * appdomain.c: Bump corlib version.
12801
12802         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
12803         internal assemblies. Fixes #69181.
12804
12805 2004-12-05  Martin Baulig  <martin@ximian.com>
12806
12807         * class.c (mono_class_inflate_generic_signature): Make this a
12808         no-op if `context' is NULL or we don't have any type parameters;
12809         also copy `sentinelpos'.        
12810
12811 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
12812
12813         * image.c: Add unbox_wrapper_cache.
12814
12815         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
12816
12817         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
12818         function generator.
12819         
12820         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
12821         Fixes #70173.
12822
12823         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
12824         
12825 2004-12-04  Martin Baulig  <martin@ximian.com>
12826
12827         * loader.c (mono_method_get_signature_full): New public function;
12828         like mono_method_get_signature(), but with an additional
12829         `MonoGenericContext *' argument.
12830
12831         * class.c (mono_class_inflate_generic_signature): Formerly known
12832         as inflate_generic_signature(); make this public.
12833
12834 2004-12-04  Martin Baulig  <martin@ximian.com>
12835
12836         * metadata.c
12837         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
12838         instead of a `MonoGenericContainer *'.  
12839         (mono_metadata_parse_array_full): Likewise.
12840         (mono_metadata_parse_signature_full): Likewise.
12841         (mono_metadata_parse_method_signature_full): Likewise.
12842         (mono_metadata_parse_generic_inst): Likewise.
12843         (mono_metadata_parse_generic_param): Likewise.
12844         (mono_metadata_parse_mh_full): Likewise.
12845         (mono_type_create_from_typespec_full): Likewise.
12846
12847 2004-12-03  Martin Baulig  <martin@ximian.com>
12848
12849         * class-internals.h (MonoGenericContainer): Replaced the
12850         `MonoGenericContext * pointer with a `MonoGenericContext'
12851         structure and made it the first element.
12852
12853 2004-12-03  Martin Baulig  <martin@ximian.com>
12854
12855         * class.c
12856         (inflate_generic_type): Set the `context->container' when creating
12857         a new MonoGenericContext.
12858         (mono_class_inflate_generic_method): Likewise.
12859         (mono_class_create_from_typespec): Just use `context->container'
12860         to get the container.
12861
12862         * loader.c (method_from_methodspec): Set `context->parent' from
12863         `context->container' - and if that's a method container, use its
12864         parent.  Also set the `context->container' when creating a new
12865         MonoGenericContext.
12866         (mono_get_method_from_token): Use just `context->container' to get
12867         the container.
12868
12869         * metadata.c (do_mono_metadata_parse_generic_class): Also set
12870         `gclass->context->container'.
12871
12872         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
12873         the `context->container' when creating a new MonoGenericContext.
12874
12875 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
12876
12877         * reflection.c (compare_genericparam): Sort params with identical
12878         owner by their number. Fixes gen-111 on sparc.
12879
12880 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
12881
12882         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
12883         around the domain changes.
12884
12885         * appdomain.c (mono_domain_unload): Handle the case when the thread
12886         calling Unload is itself being aborted during unloading. Fixes #70022.
12887
12888         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
12889
12890         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
12891         checkpoint_func as an icall so it gets a wrapper.
12892         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
12893         in the cross-appdomain wrappers too.
12894
12895         * threads.c (mono_thread_has_appdomain_ref): Make this public.
12896
12897         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
12898
12899         * reflection.c: Fix some memory leaks.
12900         
12901 2004-12-02  Martin Baulig  <martin@ximian.com>
12902
12903         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
12904
12905         * metadata.c (generic_class_cache): New static hashtable.
12906         (mono_metadata_lookup_generic_class): New public method.
12907
12908 2004-12-02  Martin Baulig  <martin@ximian.com>
12909
12910         * class.c (mono_class_create_from_typedef): Call
12911         mono_class_setup_parent() and mono_class_create_mono_type() before
12912         parsing the interfaces.
12913
12914 2004-12-02  Martin Baulig  <martin@ximian.com>
12915
12916         * metadata.c (generic_inst_cache): New static hashtable.
12917         (mono_metadata_lookup_generic_inst): New public function.
12918         (mono_metadata_inflate_generic_inst): New public function.
12919         (mono_metadata_parse_generic_inst): New public function.
12920         (do_mono_metadata_parse_generic_class): Use the new
12921         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
12922         since this'll also use the cache.
12923
12924         * reflection.c (mono_reflection_bind_generic_method_parameters):
12925         Use mono_metadata_lookup_generic_inst() to use the new cache.
12926
12927         * class.c (inflate_mono_type): Use
12928         mono_metadata_inflate_generic_inst() to inflate a generic
12929         instance; this'll also use the new cache.
12930
12931         * loader.c (method_from_methodspec): Use
12932         mono_metadata_parse_generic_inst() and
12933         mono_metadata_inflate_generic_inst() rather than parsing it
12934         manually, so we can use the new cache.
12935
12936 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
12937
12938         * threads.c (wait_for_tids): Do not incorrectly free threads when 
12939         the wait times out.
12940
12941 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
12942
12943         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
12944         iter->args based on whether parameters are passed in registers (i.e.
12945         MONO_ARCH_REGPARMS is defined)
12946
12947 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
12948
12949         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
12950         the exception message. Fixes #70070.
12951         (method_from_methodspec): Fix warnings.
12952
12953 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12954
12955         * process.c: (complete_path) return the path quoted
12956
12957 2004-12-01  Martin Baulig  <martin@ximian.com>
12958
12959         * class-internals.h (MonoGenericInst): New structure.
12960         (MonoGenericClass): Replaced `type_argc', `type_argv' and
12961         `is_open' with `MonoGenericInst *inst'.
12962         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
12963         `is_open' with `MonoGenericInst *inst'.
12964
12965 2004-11-30  Martin Baulig  <martin@ximian.com>
12966
12967         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
12968
12969         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
12970         to `generic_class_cache'.
12971
12972         * metadata.c
12973         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
12974         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
12975         (mono_generic_inst_is_valuetype): Renamed to
12976         mono_generic_class_is_valuetype().
12977
12978         * class-internals.h
12979         (MonoGenericInst): Renamed to MonoGenericClass.
12980         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
12981         (MonoClass): Renamed `generic_inst' to `generic_class'.
12982         (MonoGenericContext): Renamed `ginst' to `gclass'.
12983
12984         * object-internals.h
12985         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
12986
12987         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
12988         mono_reflection_generic_class_initialize().
12989
12990         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
12991         now known as "System.Reflection.MonoGenericClass".
12992         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
12993
12994 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
12995
12996         * class-internals.h: Added a flag field to MonoClass to cache the
12997         declarative security attributes actions associated with the class.
12998         * domain-internals.h: Added booleans to MonoJitInfo to cache the
12999         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
13000         applicable to the JITted method.
13001         * reflection.c|h: Added functions to extract (as flags) which security
13002         actions are available (declaratively) for a method, class or assembly.
13003         * metadata.c|h: Added functions to search the declarative security
13004         table in the metadata.
13005         
13006 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
13007
13008         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
13009         EXPORTEDTYPES are already in the class name cache, so there is no
13010         need to add extra code here to look at them. Just removes a bit of
13011         cruft.
13012
13013         (ves_icall_System_Environment_get_TickCount): No need for #if
13014         WINDOWS. We already have the code in io-layer.
13015
13016 2004-11-28  Martin Baulig  <martin@ximian.com>
13017
13018         * loader.c
13019         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
13020         Fixes gen-112.cs.
13021
13022 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
13023
13024         * assembly.c (do_mono_assembly_open): Instead of having a
13025         conditional WITH_BUNDLE, incorporate support for bundles here, by
13026         having a global `bundles' variable holding a pointer to the actual
13027         bundles. 
13028
13029         (mono_register_bundled_assemblies): New API call used by the
13030         bundle code. 
13031
13032         See mkbundle.1 for details.
13033         
13034 2004-11-27  Martin Baulig  <martin@ximian.com>
13035
13036         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
13037         the vtable for generic methods.
13038
13039 2004-11-26  Martin Baulig  <martin@ximian.com>
13040
13041         * metadata.c
13042         (mono_metadata_generic_method_hash): New public function.
13043         (mono_metadata_generic_method_equal): Likewise.
13044
13045         * class-internals.h
13046         (MonoGenericContainer): Added `GHashTable *method_hash'.
13047
13048         * reflection.c (ReflectionMethodBuilder): Added
13049         `MonoGenericContainer *generic_container'.
13050         (reflection_methodbuilder_to_mono_method): Don't create a new
13051         MonoGenericContainer each time we're called.
13052         (mono_reflection_bind_generic_method_parameters): Use
13053         `container->method_hash' to cache the results so we don't create a
13054         different method if we're called several times with the same
13055         arguments.
13056
13057         * loader.c (method_from_methodspec): Use the new
13058         `container->method_hash' here, too.
13059
13060 2004-11-26  Martin Baulig  <martin@ximian.com>
13061
13062         * class.c (inflate_generic_signature): Correctly compute
13063         `res->has_type_parameters'.
13064         (mono_class_vtable): Use the `has_type_parameters' flag to
13065         determine whether we're a generic method.
13066
13067         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
13068
13069 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
13070
13071         * object.c (mono_runtime_run_main): Fix a small memory leak.
13072
13073 2004-11-25  Martin Baulig  <martin@ximian.com>
13074
13075         * class.c (set_generic_param_owner): Fixed the loop.
13076
13077 2004-11-25  Martin Baulig  <martin@ximian.com>
13078
13079         * object.c (mono_class_vtable): Don't create any JIT wrappers for
13080         generic methods.
13081
13082 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
13083
13084         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
13085         names. Fixes #69787.
13086
13087 2004-11-24  Martin Baulig  <martin@ximian.com>
13088
13089         * class.c (mono_class_create_generic_2): If we don't have a
13090         `ginst->parent', inflate `gklass->parent' to get our parent.
13091
13092 2004-11-24  Martin Baulig  <martin@ximian.com>
13093
13094         * reflection.c (compare_genericparam): Correctly sort the
13095         GenericParam table; fixes #69779.
13096
13097 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
13098
13099         * reflection.c: When writing a PE file, don't create a huge
13100         buffer in memory. Just write the arrays we have to the file.
13101         This reduces memory usage.
13102
13103         * metadata-internals.h: MonoDynamicStream pefile is no longer used
13104         globally.
13105
13106 2004-11-17  Martin Baulig  <martin@ximian.com>
13107
13108         * class.c (mono_class_init): Don't setup `class->parent' for
13109         dynamic instances; moved this to mono_class_generic_2().
13110         (mono_class_create_generic): Also set `klass->inited' for dynamic
13111         generic instances.
13112         (mono_class_create_generic_2): Don't do anything for dynamic
13113         generic instances.  Set `klass->parent' here and also call
13114         mono_class_setup_parent() here. 
13115
13116         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
13117         `MonoType *parent' argument; set `ginst->parent' before calling
13118         mono_class_create_generic_2(), so we set the correct parent.
13119
13120 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
13121
13122         * reflection.c: allow getting attributes from ModuleBuilder
13123         (used by ikvm).
13124
13125 2004-11-17  Martin Baulig  <martin@ximian.com>
13126
13127         * class.c (mono_class_create_from_typedef): If a type parameter is
13128         inherited from an outer class, set its owner to that class.
13129
13130 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
13131
13132         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
13133           for (int*) written size. This fixes bug #69592.
13134
13135 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
13136
13137         * icall.c: Added IsAuthenticodePresnet internal call.
13138         * image.c|h: New function that check a MonoImage for an Authenticode
13139         signature in the certificate PE data directory.
13140         * security.c|h: New internal call to ask the runtime if an 
13141         Authenticode signature seems referenced in the PE header.
13142
13143 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
13144
13145         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
13146
13147         * reflection.c (mono_image_create_pefile): Free the assembly streams
13148         after writing out the assembly file.
13149
13150         * object.c (mono_runtime_run_main): Fix small memory leak.
13151
13152         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
13153         property access modifiers. Fixes #69389.
13154
13155 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
13156
13157         * domain.c, object.c, object-internals.h, domain-internals.h,
13158         object.h, marshal.c: keep dynamic code info per domain.
13159
13160 2004-11-15  Martin Baulig  <martin@ximian.com>
13161
13162         * class.c (mono_type_get_name_recurse): Put type arguments in
13163         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
13164         see bug #68387.
13165
13166 2004-11-15  Martin Baulig  <martin@ximian.com>
13167
13168         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
13169         (mono_class_setup_vtable): When computing `the_cname' for a
13170         generic instance, don't include the namespace since we'd otherwise
13171         add it twice.
13172
13173 2004-11-15  Martin Baulig  <martin@ximian.com>
13174
13175         * class.c (mono_class_create_generic): Changed return type to void.
13176         (mono_class_create_generic_2): New public function; setup
13177         `class->method', `class->field' and `class->interfaces' here
13178         instead of in mono_class_init().
13179
13180         * class.h (mono_class_create_generic): Moved to class-internals.h.
13181
13182 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
13183
13184         * reflection.c (mono_image_create_pefile): take a file HANDLE.
13185         rather than writing to memory, write to this file. Right now,
13186         we are just writting into a buffer, and copying that. However
13187         we can avoid the buffer later.
13188
13189         (mono_dynamic_stream_reset): new function
13190
13191         * icall.c, object-internals.h: update for the above.
13192
13193 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
13194
13195         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
13196         have been using gc'd memory. First it is slower, unlikely
13197         the comment in the source code said, secondly, it increases
13198         our footprint to do it in the gc.
13199
13200         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
13201         the method so that it does not have to copy to managed code.
13202
13203 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
13204
13205         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
13206
13207 2004-11-12  Martin Baulig  <martin@localhost>
13208
13209         * reflection.c (mono_image_create_token): Allow generic method
13210         definitions here, since they may appear in an `.override'; see
13211         gen-98/gen-99 for an example.
13212
13213 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
13214
13215         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
13216         #69365.
13217
13218         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
13219         descriptive.
13220
13221 2004-11-11  Martin Baulig  <martin@ximian.com>
13222
13223         * class.c (mono_class_setup_vtable): In an explicit interface
13224         implementation, the method name now includes the arity.
13225
13226 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
13227
13228         * object.c (mono_array_full_copy): Fix warning.
13229
13230 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
13231
13232         * appdomain.c: Removed look_for_method_by_name(). Use the new method
13233         mono_class_get_method_from_name() instead.
13234         
13235         * class-internals.h: Added two new types of wrappers. 
13236         Added MonoRemotingTarget enum. Added new trampoline function type, which
13237         takes an additional MonoRemotingTarget value as parameter, so it is
13238         possible to request a trampoline for a specific target.
13239         
13240         * class.c: Added new mono_class_get_method_from_name() method.
13241         
13242         * class.h: In MonoRemoteClass, we can have now to vtables, one for
13243         general remoting sinks and one specific for cross domain calls.
13244         
13245         * debug-helpers.c: Added new wrapper names.
13246         
13247         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
13248         of a remote class.
13249         
13250         * image.c: Porperly delete value objects form the remoting invoke hashtable.
13251         
13252         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
13253         with several other methods (mono_marshal_get_xappdomain_dispatch,
13254         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
13255         and others) can generate a fast remoting wrapper for cross domain calls.
13256         More information can be found in docs/remoting.
13257         Other changes: Removed mono_find_method_by_name, and used
13258         mono_class_get_method_from_name instead.
13259         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
13260         is stored in the remoting invoke hashtable.
13261         
13262         * marshal.h: published the new method for getting the xdomain wrapper,
13263         and also added a method for getting the adequate wrapper for a given
13264         method and target.
13265         
13266         * object-internals.h, object.c: Added a couple of methods for capying and
13267         cloning arrays.
13268         Modified mono_install_remoting_trampoline, which takes the new remoting
13269         trampoline that has a remoting target as parameter.
13270         mono_class_proxy_vtable now also takes a remoting target as parameter, and
13271         will return the most suitable vtable for the target.
13272         Added mono_remote_class_vtable, which returns the vtable of a remote class
13273         (which can be the normal remoting vtable or the xdomain vtable).
13274         
13275         * threads.c: the xdomain invoke and dispatch wrappers must also be
13276         protected against interruptions.
13277
13278 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13279
13280         * icall.c: use memmove in BlockCopyInternal when the source and
13281         destination arrays are the same.
13282
13283 2004-11-09  Martin Baulig  <martin@ximian.com>
13284
13285         * class-internals.h (MonoGenericContainer): Removed `method' and
13286         `signature', replaced them with `is_method' and `is_signature'
13287         flags.  Added `context'.
13288
13289         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
13290         instead of a `MonoGenericContainer *'.
13291
13292         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
13293         for dynamic type parameters.
13294         (mono_metadata_load_generic_params): Setup `container->context'.
13295
13296         * reflection.c (mono_reflection_setup_generic_class): Setup
13297         `tb->generic_container->context'.
13298         (do_mono_reflection_bind_generic_parameters): Use
13299         mono_class_inflate_generic_type() to correctly inflate types,
13300         rather than using our own hack just for MONO_TYPE_VAR.
13301
13302 2004-11-09  Martin Baulig  <martin@ximian.com>
13303
13304         * class.c (mono_class_inflate_generic_method): Small fix; don't
13305         crash here.
13306
13307         * icall.c
13308         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
13309         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
13310         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
13311         (ves_icall_Type_BindGenericParameters): Likewise.
13312         (ves_icall_Type_get_IsGenericInstance): Likewise.
13313         (ves_icall_Type_GetGenericParameterPosition): Likewise.
13314         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
13315         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
13316         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
13317
13318 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
13319
13320         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
13321         assembly versions and public key tokens. Fixes #69113.
13322
13323 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
13324
13325         * metadata.c: fix bug introduced with the type cache changes
13326         on 2004-11-06.
13327
13328 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
13329
13330         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
13331         the MonoClass pointer instead of the token in exception clauses.
13332         * reflection.c: updates for the above and make the code not depend
13333         on the structure of MonoExceptionClause.
13334
13335 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
13336
13337         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13338         Add support for dynamic assemblies. Fixes #69114.
13339
13340         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
13341
13342 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
13343
13344         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
13345         since most only those methods use it. the code member of
13346         MonoMethodPInvoke was dead, so that can be removed too. Also,
13347         remove inline_count (again, not used), and move slot so that it
13348         can share bits with some other flags. This saves 8 bytes in the
13349         structure and gives us about 50 kb back for mcs helloworld.cs
13350
13351         * *.[ch]: Do naming changes for the above.
13352
13353         * loader.c (mono_method_get_header): Lazily init the header
13354         on first access.
13355         (mono_get_method_from_token): don't init the header here
13356         (mono_free_method): the header may never be allocated
13357
13358         Overall, this saves 150 kb of unmanaged allocations
13359         for mcs helloworld.cs. That accounts for 10% of the unmanaged
13360         memory at runtime.
13361         
13362         * loader.c, loader.h (mono_method_get_header): new accessor.
13363
13364         * *.[ch]: use the above method. Prepares us to lazily load
13365         the header.
13366
13367         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
13368         three warnings, which are actual bugs (see 69206).
13369
13370         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
13371         unused. Saves a cool 4 bytes / method.
13372
13373 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
13374
13375         * metadata.c (builtin_types): Add types for System.Object here.
13376         (mono_metadata_parse_type_full): Cache MonoType*'s that are
13377         for a class or valuetype from klass->this_arg or klass->byval_arg.
13378
13379         On mcs for a hello world, this gets us down from 21836 MonoType's
13380         to 14560.
13381
13382         (mono_metadata_free_type): Account for the above change.
13383
13384 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
13385
13386         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
13387         exception instead of asserting if name is null.
13388         (ves_icall_System_AppDomain_GetData): Ditto.
13389
13390 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
13391
13392         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
13393         EnumBuilder.
13394
13395         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
13396         Return NULL when the domain does not have entry_assembly set.
13397
13398         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
13399         Add a 'resource_modules' argument.
13400         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
13401
13402         * reflection.c (mono_reflection_create_runtime_class): Move setting
13403         of wastypebuilder here, so mono_get_type_object () returns a MonoType
13404         for enums too.
13405
13406         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
13407         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
13408         Throw an ArgumentNullException if 'ptr' is null.
13409
13410         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
13411         assemblies here. Fixes #69020.
13412
13413 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
13414
13415         * reflection.c (build_compressed_metadata): Fix the previous patch for
13416         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
13417         the stack.
13418
13419 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
13420
13421         * assembly.c (mono_assembly_names_equal): Allow a match if one of
13422         the cultures is false. Fixes #69090.
13423
13424         * reflection.c (build_compressed_metadata): Fix invalid memory read 
13425         detected by valgrind.
13426         
13427         * reflection.c (mono_reflection_get_type): Avoid triggering a 
13428         TypeResolve multiple times for the same type. Fixes #65577.
13429
13430 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
13431
13432         * marshal.c: Avoid using ldftn to call managed functions. It is
13433         much slower than just a call.
13434
13435         * reflection.c (mono_module_get_object): free the basename we
13436         allocate here from glib.
13437         
13438         * reflection.c (ensure_runtime_vtable): make sure to free
13439         overrides.  Also, we were allocating an array of MonoMethod not an
13440         array of MonoMethod*.
13441
13442         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
13443
13444         * image.c (mono_image_close): free image->guid here.
13445
13446 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
13447
13448         * reflection.c: Fix some spec conformance issues with the PE file
13449         structures so mcs compiled apps run on the Net 2.0 beta.
13450
13451 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
13452
13453         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
13454         Implement this. Fixes #67264.
13455
13456         * debug-helpers.h debug-helpers.c marshal.c: Move 
13457         mono_find_method_by_name to debug-helpers.c.
13458
13459 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
13460
13461         * object.c (mono_release_type_locks): type_initialization_hash is
13462         a GHashTable.
13463
13464         * reflection.c object.c object-internals.h: Fix warnings.
13465
13466         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
13467         without accessors. Fixes #61561.
13468
13469         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
13470         application base from the root domain if not set. Fixes #65641.
13471         (mono_runtime_init): Fix warning.
13472
13473 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13474
13475         * appdomain.c: call mono_thread_pool_init.
13476         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
13477         of worker threads based on the number of CPUs and the environment
13478         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
13479         for non-windows (windows) systems.
13480
13481 2004-10-27  Chris Toshok  <toshok@ximian.com>
13482
13483         * mono-debug-debugger.c (write_class): don't call mono_class_init
13484         here, as even with the check for (!klass->init_pending), we get
13485         into a situation where we're hitting cycles in class
13486         initialization.  Fixes #68816.
13487
13488 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
13489
13490         * image.c: Avoid overwriting values in the loaded_images_hash when an
13491         assembly is loaded multiple times. Fixes #61152.
13492
13493         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
13494         so multiple satellite assemblies for the same name can be loaded.
13495         Fixes #68259.
13496
13497         * mono_domain_assembly_preload: Actually return the loaded assembly, 
13498         not NULL.
13499
13500         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
13501         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
13502
13503         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
13504         pending finalizers are not invoked after the appdomain has been 
13505         unloaded. Fixes #67862.
13506
13507 2004-10-22  Martin Baulig  <martin@ximian.com>
13508
13509         * mono-debug-debugger.c
13510         (mono_debugger_runtime_invoke): Don't box valuetypes.
13511
13512 2004-10-22  Chris Toshok  <toshok@ximian.com>
13513
13514         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
13515         don't hide private methods.
13516
13517 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
13518
13519         * icall.c: Allows the runtime to "share" (when known) the public key
13520         token of an assembly. This avoid the need to recalculate the token 
13521         (from the public key) in managed code.
13522
13523 2004-10-21  Chris Toshok  <toshok@ximian.com>
13524
13525         * debug-helpers.c (append_class_name): argh, revert last patch.
13526         
13527 2004-10-21  Chris Toshok  <toshok@ximian.com>
13528
13529         * debug-helpers.c (append_class_name): use '+' as the delimiter,
13530         not '/', so that it matches what the debugger uses to look up
13531         methods.
13532
13533 2004-10-21  Martin Baulig  <martin@ximian.com>
13534
13535         * mono-debug-debugger.c (mono_debugger_throw_exception): New
13536         public method; this is called each time an exception is thrown and
13537         allows the debugger to use exception catch points.
13538
13539 2004-10-21  Martin Baulig  <martin@ximian.com>
13540
13541         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
13542         the stack pointer and the exception object in some struct and pass
13543         that to the debugger.
13544
13545 2004-10-21  Chris Toshok  <toshok@ximian.com>
13546
13547         * mono-debug-debugger.c (do_write_class): add instance/static
13548         event support.  We don't expose "raise" or "other" yet.
13549         (event_is_static): new method.
13550
13551 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
13552
13553         * mono-debug-debugger.c
13554         (mono_debugger_handle_exception): Remove
13555         bogus return value for fussy compilers.
13556
13557 2004-10-20  Martin Baulig  <martin@ximian.com>
13558
13559         * mono-debug-debugger.c
13560         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
13561         (mono_debugger_handled_exception): Likewise.
13562
13563 2004-10-20  Martin Baulig  <martin@ximian.com>
13564
13565         * mono-debug-debugger.h (MonoDebuggerEvent): Added
13566         MONO_DEBUGGER_EVENT_EXCEPTION.
13567
13568         * mono-debug-debugger.c (mono_debugger_handle_exception): New
13569         public function to send the debugger a notification for an
13570         exception and inform it about a catch/finally clause.
13571
13572 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
13573
13574         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
13575         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
13576         fix 2.95 build. 
13577
13578         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
13579
13580 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
13581
13582         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
13583         marshalled as [In,Out]. Fixes #58325.
13584
13585 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
13586
13587         * reflection.c (mono_method_body_get_object): Implement some fields.
13588
13589 2004-10-12  Martin Baulig  <martin@ximian.com>
13590
13591         * reflection.c (mono_reflection_bind_generic_parameters): Small
13592         fix, correctly retrieve our parent from a generic instance.
13593
13594 2004-10-12  Martin Baulig  <martin@ximian.com>
13595
13596         * metadata.c (mono_metadata_generic_param_equal): We always have
13597         an owner.
13598
13599         * class.c
13600         (mono_class_from_generic_parameter): We need to have an owner.
13601         (my_mono_class_from_generic_parameter): Likewise.
13602
13603         * reflection.c (mono_reflection_setup_generic_class): Renamed to
13604         mono_reflection_create_generic_class() and added a new
13605         mono_reflection_setup_generic_class().  
13606         (mono_reflection_initialize_generic_param): If we're a nested
13607         generic type and inherited from the containing class, set our
13608         owner to the outer class.
13609
13610 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
13611
13612         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
13613
13614         * reflection.c (mono_method_body_get_object): New function to create
13615         a MethodBody object.
13616
13617         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
13618
13619 2004-10-11  Martin Baulig  <martin@ximian.com>
13620
13621         * metadata.c (_mono_metadata_type_equal): Renamed to
13622         do_mono_metadata_type_equal() and made static.
13623
13624 2004-10-11  Martin Baulig  <martin@ximian.com>
13625
13626         * appdomain.c: Bump corlib version number to 28.
13627
13628 2004-10-10  Martin Baulig  <martin@ximian.com>
13629
13630         * class-internals.h
13631         (MonoGenericInst): Added `MonoGenericContainer *container'.
13632         (MonoGenericMethod): Likewise.
13633         (MonoGenericContext): Likewise.
13634         (MonoGenericParam): Added `MonoGenericContainer *owner'.
13635
13636         * metadata.c
13637         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
13638         (do_mono_metadata_parse_generic_inst): Likewise.
13639         (mono_metadata_parse_type_full): New public method.  This is the actual
13640         mono_metadata_parse_type() implementation - with an additional
13641         `MonoGenericContainer *' argument.
13642         (mono_metadata_parse_array_full): Likewise.
13643         (mono_metadata_parse_signature_full): Likewise.
13644         (mono_metadata_parse_method_signature_full): Likewise.
13645         (mono_metadata_parse_mh_full): Likewise.
13646         (mono_type_create_from_typespec): Likewise.
13647         (mono_metadata_interfaces_from_typedef_full): New public method;
13648         this is similar to the other _full() methods, but we take a
13649         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
13650         (mono_metadata_parse_generic_param): Take an additional
13651         `MonoGenericContainer *' argument and lookup the MonoGenericParam
13652         from that container.
13653         (mono_metadata_generic_param_equal): New static method to compare
13654         two type parameters.
13655         (_mono_metadata_type_equal): New static method; takes an
13656         additional `gboolean signature_only' argument - if true, we don't
13657         compare the owners of generic parameters.
13658         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
13659         with a TRUE argument - do a signature-only comparision.
13660
13661         * loader.c: Use the new _full() methods and pass the
13662         MonoGenericContainer to them.
13663
13664         * object-internals.h (MonoReflectionTypeBuilder): Added
13665         `MonoGenericContainer *generic_container' field.
13666         (MonoReflectionMethodBuilder): Likewise.
13667
13668 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
13669
13670         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
13671         case initial images of dynamic assemblies.
13672
13673         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
13674
13675         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
13676
13677         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
13678         length of event->other array.
13679         (typebuilder_setup_events): Ditto.
13680
13681         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
13682         'assembly_by_name' and add an 'assemblies' list.
13683
13684         * assembly.h assembly.c: Add a new search hook for determining whenever
13685         an assembly is already loaded. Use this instead of searching in the
13686         loaded_assemblies list.
13687
13688         * domain.c appdomain.c: Implement the new search hook so loaded 
13689         assemblies are now scoped by appdomain. Fixes #67727.
13690
13691 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
13692
13693         * threads.c (mono_thread_attach): Initialize synch_lock field so
13694         mono_thread_detach works again.
13695
13696         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
13697         'lib' too. Fixes #63130.
13698
13699 2004-10-06  Jackson Harper  <jackson@ximian.com>
13700
13701         * culture-info-tables.h: regenerated.
13702
13703 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
13704
13705         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
13706         implemented by other interfaces in the result. Fixes #65764.
13707         
13708         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13709         Handle unloadable modules without crashing.
13710
13711         * image.c (load_modules): Revert the previous patch since modules must
13712         have a fixed index inside the array.
13713         
13714         * image.c (load_modules): Don't include native modules in the modules
13715         array.
13716
13717 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
13718
13719         * reflection.h: Add param_defaults field.
13720
13721         * reflection.c: Add support for parameter defaults in dynamic methods.
13722         Fixes #64595.
13723
13724         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
13725         an empty string when a type has no namespace. Fixes #64230.
13726
13727 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
13728
13729         * tabledefs.h: Added "internal" security actions to support non-CAS
13730         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
13731         Note: they do not seems to be used anymore in 2.0 (new metadata format)
13732
13733 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
13734
13735         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
13736         constructor of abstract class. Fixes #61689.
13737
13738 2004-10-04  Martin Baulig  <martin@ximian.com>
13739
13740         * class-internals.h (MonoGenericContainer): New type.
13741         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
13742         `MonoGenericContainer *generic_container'.
13743         (MonoClass): Replaced `gen_params' and `num_gen_params' with
13744         `MonoGenericContainer *generic_container'.
13745
13746         * metadata.c (mono_metadata_load_generic_params): Return a
13747         `MonoGenericContainer *' instead of a `MonoGenericParam *';
13748         removed the `num' argument.
13749
13750 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
13751
13752         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
13753         for dynamic images.
13754
13755         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
13756         machine fields.
13757
13758         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
13759
13760         * reflection.c: Save pe_kind and machine values into the generated
13761         image file.
13762
13763         * appdomain.c: Bump corlib version number.
13764
13765         * object-internals.h: Reorganize layout of LocalBuilder.
13766
13767         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
13768         New helper function.
13769
13770         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
13771         created MonoType for dynamic types. Fixes #66180.
13772
13773 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
13774
13775         * threadpool.c: the ares hashtable needs a critical section around it.
13776         this prevents some nasty segfaults
13777
13778 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
13779
13780         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
13781         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
13782         bug 67324).
13783         
13784 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
13785
13786         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
13787         
13788 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
13789
13790         * image.c: Always canonicalize image file names, to avoid loading
13791         the same assembly twice when referenced using a relative path.
13792
13793 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
13794
13795         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
13796
13797         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
13798
13799         * marshal.c: Fix warnings.
13800
13801 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
13802
13803         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
13804         attempting to marshal the delegate_trampoline as the method_addr.
13805         This patch has a static hashtable of marshalled delegates so that 
13806         we can map delegate_trampoline addresses back to delegates.  This
13807         allows a delegate passed to managed code to be passed back into native
13808         code.  Fixes #67039
13809
13810 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
13811
13812         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
13813
13814         * reflection.c (method_encode_code): Align method headers properly.
13815         Fixes #66025.
13816
13817 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
13818
13819         * marshal.c: In the runtime invoke wrapper, reset the abort
13820         exception if it is cached. This avoids the automatic rethrowal of 
13821         the exception after the catch of the wrapper. Also check for pending
13822         interruptions before calling the managed method. This is done using
13823         the new method emit_thread_force_interrupt_checkpoint, since the
13824         normal checkpoint method is ignored when running the invoke wrapper.
13825         * object.c: If the abort exception is rethrown, set the abort_exc
13826         field of the thread, so it will be rethrown aftere every catch.
13827         * threadpool.c: Only run an interruption checkpoint if what has been
13828         requested is a stop of the thread (aborts will be ignored).
13829         * threads.c: By default, a thread will now never be interrumped while
13830         running the runtime invoke wrapper (this ensures that runtime_invoke
13831         will always return to the caller if an exception pointer is provided).
13832         There is a new special method mono_thread_force_interruption_checkpoint()
13833         to force an interruption checkpoint even if running a protected
13834         wrapper, which is used by the same runtime invoke wrapper to do a check
13835         at a safe point.
13836
13837 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
13838
13839         * object.c, object-internals.h: Implemented mono_release_type_locks,
13840         which releases the cctor locks held by a thread.
13841         * threads.c, threads.h: In thread_cleanup, release cctor locks held
13842         by a thread. Added mono_thread_exit() method to be used to safely stop
13843         a thread.
13844
13845 2004-09-28  Raja R Harinath  <rharinath@novell.com>
13846
13847         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13848         Move null check before dereference.  Avoid indexing beyond the end
13849         of the 'modules' array.
13850
13851 2004-09-28  Raja R Harinath  <rharinath@novell.com>
13852
13853         * metadata-internals.h (MonoImage): Add module_count field.
13854         * image.c (load_modules): Set image->module_count.
13855         (mono_image_load_file_for_image): Use image->module_count.
13856         * reflection.c (mono_image_load_module): Append to image->modules array 
13857         of dynamic assembly.
13858         (mono_module_get_object): Fix loop to actually increment index.
13859         Use image->module_count.
13860         * assembly.c (mono_assembly_load_references): Use image->module_count.
13861         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13862         Likewise.
13863
13864 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
13865
13866         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
13867         Avoid assert on generic types.
13868
13869 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
13870
13871         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
13872
13873         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
13874
13875         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
13876         function to convert a MarshalSpec structure to its managed counterpart.
13877
13878         * reflection.c: Fix warnings.
13879         
13880         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
13881         field.
13882
13883         * icall.c (mono_create_icall_signature): Fix build.
13884
13885 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
13886
13887         * icall.c: Add MakePointType icall.
13888
13889         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
13890         warnings.
13891
13892 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13893
13894         * threadpool.c: reuse allocated slots in the queue.
13895
13896 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
13897
13898         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
13899
13900         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
13901
13902         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
13903         previous change.
13904
13905         * tabledefs.h: Add constants for pinvoke attributes BestFit and
13906         ThrowOnUnmappableChar.
13907
13908         * icall.c (ves_icall_Type_GetPacking): New icall.
13909
13910 2004-09-24  Martin Baulig  <martin@ximian.com>
13911
13912         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
13913
13914 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13915
13916         * appdomain.c:
13917         (mono_domain_set): allow setting a domain that is being unloaded.
13918         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
13919         being unloaded.
13920
13921 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
13922
13923         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
13924         the GetCustomAttributes icall.
13925
13926 2004-09-23  Martin Baulig  <martin@ximian.com>
13927
13928         * object-internals.h (MonoReflectionGenericParam): Replaced
13929         'has_ctor_constraint', `has_reference_type' and `has_value_type'
13930         with `guint32 attrs'.
13931
13932 2004-09-23  Martin Baulig  <martin@ximian.com>
13933
13934         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
13935
13936 2004-09-23  Martin Baulig  <martin@ximian.com>
13937
13938         * object-internals.h (GenericParameterAttributes): New enum.
13939
13940 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
13941
13942         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
13943         
13944         * class.c (init_events): Fill out event->other field.
13945
13946         * class.c: Fix warnings.
13947
13948         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
13949
13950 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
13951
13952         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
13953         walk which doesn't supply the IL offset.
13954
13955 2004-09-22  Martin Baulig  <martin@ximian.com>
13956
13957         * reflection.c (mono_reflection_setup_internal_class): If we're
13958         System.ValueType, System.Object or System.Enum, set
13959         `klass->instance_size' and create the vtable.
13960         (mono_reflection_create_internal_class): If we're an enum type,
13961         get the base class from our current corlib.
13962
13963 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
13964
13965         * reflection.h (MonoResolveTokenError): New type.
13966
13967         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
13968         icall.
13969
13970         * icall.c: Add an 'error' argument to the ResolveToken icalls.
13971
13972 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
13973
13974         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
13975         Support also calling constructors, but only for already allocated objects.
13976
13977 2004-09-17  Geoff Norton <gnorton@customerdna.com>
13978
13979         * reflection.c (type_get_qualified_name): If the klass is null
13980         return the typename to avoid a NullRefEx.
13981         (encode_cattr_value): Get the qualified name of the boxed type,
13982         not the underlying enumtype.  Fixes #62984.
13983
13984 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
13985
13986         * marshal.c: Fix problems with previous checkin.
13987
13988 2004-09-21    <vargaz@freemail.hu>
13989
13990         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
13991         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
13992
13993         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
13994
13995 2004-09-21  Geoff Norton <gnorton@customerdna.com>
13996
13997         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
13998         should only return a type for pointers, arrays, and passbyref types.
13999         Fixes bug #63841.
14000
14001 2004-09-21  Martin Baulig  <martin@ximian.com>
14002
14003         * domain.c (mono_debugger_check_runtime_version): New public
14004         function.
14005
14006         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
14007
14008 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
14009
14010         * reflection.c: Added missing sort to the declarative security 
14011         attributes table. MS implementation stops seeing the attributes if the
14012         token number regress in the table (as shown by ildasm and permview).
14013
14014 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
14015
14016         * object-internals.h (MonoReflectionModule): Add 'token' field.
14017         
14018         * reflection.c (mono_reflection_get_token): Add support for Module
14019         and Assembly.
14020         (mono_module_get_object): Set 'token' field.
14021         (mono_module_file_get_object): Set 'token' field.
14022
14023         * icall.c: Add new Assembly and Module icalls.
14024
14025         * appdomain.c: Bump corlib version.
14026
14027 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
14028
14029         * loader.h loader.c class.h class.c: Add helper functions for obtaining
14030         tokens of metadata objects.
14031
14032         * reflection.h reflection.c (mono_reflection_get_token): New function
14033         to obtain the token of a metadata object.
14034
14035         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
14036
14037 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
14038
14039         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
14040         
14041         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
14042
14043 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
14044
14045         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
14046         * object-internals.h: Added 3 MonoArray* members to MonoReflection
14047         AssemblyBuilder to access the permissions set in the class lib.
14048         * reflection.c: Added security attributes encoding step in 
14049         mono_image_build_metadata.
14050         * tabledefs.h: Added new security actions defined in 2.0:
14051         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
14052
14053 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
14054
14055         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
14056         macro parameter.
14057
14058 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
14059  
14060         * locales.c: nullify the ICU_collator member of CompareInfo when it is
14061           finalized. There where random SIGSEVs at program termination, when
14062           an object being finalized was trying to do a string comparison and
14063           the current culture was already finalized.
14064  
14065 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14066
14067         * threads.c: call thread_cleanup before finishing the thread if we get
14068         there.
14069
14070 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
14071
14072         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
14073         assemblies from the parent. Fixes #65665.
14074
14075 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
14076
14077         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
14078         modifiers.
14079
14080 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
14081
14082         * reflection.h: add prototype for mono_get_dbnull_object
14083         * reflection.c: add prototypes for get_default_param_value_blobs 
14084         and mono_get_object_from_blob for fussier compilers
14085
14086 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
14087  
14088         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
14089         false deadlock checks in class initialization.
14090  
14091 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
14092
14093         * image.c (mono_image_addref): Fix comment.
14094
14095         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
14096         possible.
14097
14098 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
14099
14100         * reflection.c (mono_param_get_objects): Modified to return
14101         ParameterInfo.DefaultValue object.
14102
14103         (get_default_param_value_blobs):
14104         (mono_get_object_from_blob):
14105         (mono_get_dbnull_object): New helper routines. 
14106
14107         * object.c (mono_get_constant_value_from_blob): New helper routine
14108         carved out from get_default_field_value ()
14109
14110         * object-internals.h (mono_get_constant_value_from_blob): Added
14111         function declaration.
14112
14113 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
14114
14115         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
14116         referenced assemblies. Fixes #62135.
14117
14118         * exception.h exception.c (mono_get_exception_file_not_found2): New
14119         helper function.
14120
14121 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
14122
14123         * class.h class.c: Add mono_type_get_underlying_type ().
14124
14125 2004-09-09  Geoff Norton <gnorton@customerndna.com>
14126
14127         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
14128         Fix GetTypes() to support dynamically created assemblies.
14129
14130 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
14131
14132         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
14133         
14134         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
14135         previous patch.
14136
14137         * reflection.h reflection.c loader.c: Allow dynamic construction of
14138         pinvoke methods. Fixes #65571.
14139         
14140         * reflection.c (mono_reflection_get_type): Revert previous change since
14141         it causes regressions.
14142
14143 2004-09-08  Martin Baulig  <martin@ximian.com>
14144
14145         * class.c (class_compute_field_layout): Don't call
14146         mono_class_layout_fields() for open generic instances.
14147
14148 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
14149         * threads.c appdomain.c: fix typo in GC macro
14150
14151 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14152
14153         * threads.c: don't call mono_thread_detach() in start_wrapper(),
14154         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
14155
14156 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
14157
14158         * image.c (mono_image_close): Applied patch from 
14159         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
14160         assembly is loaded multiple times from data.
14161         
14162         * image.c (mono_image_open): Fix warning.
14163
14164 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
14165
14166         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
14167         once. Fixes #58334.
14168         
14169         * reflection.c (mono_reflection_create_runtime_class): Initialize
14170         klass->nested_classes. Fixes #61224.
14171
14172 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
14173
14174         * threads.c: sched_yield() on exit, to allow threads to quit.
14175
14176 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
14177
14178         * object.c (mono_unhandled_exception): Remove leftover debug code.
14179
14180 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
14181
14182         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
14183
14184 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
14185
14186         * marshal.c (emit_marshal_array): Really null terminate string arrays.
14187         
14188         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
14189
14190 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
14191
14192         * marshal.c (emit_marshal_array): Null terminate string arrays.
14193         
14194         * marshal.c (raise_auto_layout_exception): Fix warning.
14195
14196         * reflection.c (mono_param_get_objects): Initialize the default value
14197         with DBNull.Value, not null. Fixes #62123.
14198
14199 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
14200
14201         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
14202         throw an exception with a cute explanation.
14203
14204 2004-09-06  Dick Porter  <dick@ximian.com>
14205
14206         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
14207         Close the new process's thread handle, as we don't use it.  The
14208         handle stays around forever otherwise.
14209
14210 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
14211
14212         * object.c (arith_overflow): Fix warning.
14213
14214         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
14215         calling conventions in method refs. Fixes #65352.
14216
14217         * reflection.c: Fix warnings.
14218
14219 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
14220
14221         * icall.c: Add a new icall for Array.Clear
14222
14223 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
14224
14225         * object.c: When allocating an array, we have to throw
14226         an overflow exception if any of the lengths are < 0.
14227
14228 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
14229
14230         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
14231         properly. Also move implementation of string array marshalling to 
14232         managed code. Fixes #42316.
14233
14234 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14235
14236         * assembly.c: provide more information when loading an assembly fails.
14237
14238 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14239
14240         * filewatcher.c: don't expect the development fam package to be
14241         installed.
14242
14243 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
14244
14245         * marshal.c: Make a copy of the signature cookie since it will be
14246         freed by the caller.
14247         
14248         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
14249
14250         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
14251
14252         * metadata.c (mono_metadata_free_marshal_spec): New function to free
14253         marshal specs.
14254
14255         * marshal.c: More refactoring.
14256         
14257         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
14258         smaller functions.
14259
14260 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
14261
14262         * object.c: In mono_message_invoke, fill the output parameter array after
14263           calling the managed method (it was done before the call). This fixes
14264           bug #59299.
14265
14266 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
14267
14268         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
14269         as well.
14270
14271 2004-09-02  Martin Baulig  <martin@ximian.com>
14272
14273         * class.c (mono_class_instance_size): Don't allow generic type
14274         definitions or open generic instances.
14275         (mono_class_array_element_size): If we're a value type, call
14276         mono_class_instance_size() on the original class.
14277
14278         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
14279         handle generic instances.
14280
14281         * mono-debug-debugger.c (write_type): Handle generic instances
14282         like classes.
14283
14284 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
14285
14286         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
14287         the allocation request fails. Fixes #65089.
14288
14289         * object.c (mono_runtime_free_method): Do not call mono_free_method.
14290         
14291         * object.c (mono_runtime_free_method): New function to free a dynamic
14292         method.
14293
14294         * marshal.c (mono_delegate_free_ftnptr): New function to free the
14295         delegate trampoline.
14296
14297         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
14298         with hasthis as dynamic,
14299
14300         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
14301
14302         * domain.c (mono_jit_info_table_remove): New function to remove an
14303         entry from the jit info table.
14304
14305         * class-internals.h (MonoMethod): Add 'dynamic' field.
14306
14307         * loader.c: Fix warnings.
14308
14309 2004-09-01  Martin Baulig  <martin@ximian.com>
14310
14311         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
14312         instead of mono_debugger_lock() because the latter one is a no-op
14313         unless running in the debugger.
14314
14315 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
14316
14317         * class.c (class_compute_field_layout): Classes with auto-layout or
14318         reference fields are not blittable.
14319         
14320 2004-09-01  Dick Porter  <dick@ximian.com>
14321
14322         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
14323         mono_image_get_filename() to get the assembly location.
14324
14325         * icall.c:
14326         * metadata.h: Fix compile warnings
14327
14328 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
14329
14330         * class.c (class_compute_field_layout): System.Object is blittable.
14331
14332         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
14333         as in/out. Fixes #59909.
14334
14335 2004-09-01  Martin Baulig  <martin@ximian.com>
14336
14337         * metadata.h (MONO_TYPE_ISREFERENCE): Call
14338         mono_metadata_generic_inst_is_valuetype() if we're a generic
14339         instance to check whether our underlying type is a reference type.
14340
14341 2004-09-01  Martin Baulig  <martin@ximian.com>
14342
14343         * metadata.c (mono_type_size): If we're a generic instance, call
14344         mono_class_value_size() for value types.
14345
14346 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
14347
14348         * marshal.c: Implement more custom marshalling functionality. Fixes
14349         #64915.
14350
14351 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
14352
14353         * mono-debug.c, debug-mono-symfile.c: add some locking love.
14354
14355 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
14356
14357         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
14358
14359         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
14360
14361         * icall.c: Fix some warnings.
14362
14363         * threads.c (abort_appdomain_thread): Fix unref errors.
14364         (mono_thread_current): Fix THREAD_DEBUG define.
14365
14366 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
14367
14368         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
14369
14370         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
14371
14372 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
14373
14374         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
14375         string arrays.
14376
14377 2004-08-28  Martin Baulig  <martin@ximian.com>
14378
14379         * metadata.c
14380         (mono_metadata_generic_inst_is_valuetype): New public function.
14381
14382         * metadata.h (MONO_TYPE_ISSTRUCT): Call
14383         mono_metadata_generic_inst_is_valuetype() if we're a generic
14384         instance to check whether our underlying type is a valuetype.
14385
14386 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
14387
14388         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
14389         #63768.
14390
14391 2004-08-25  Martin Baulig  <martin@ximian.com>
14392
14393         * loader.c (mono_get_method_from_token): Abstract methods can also
14394         be generic and thus have type parameters.
14395
14396         * metadata-internals.h
14397         (MonoDynamicImage): Added `GPtrArray *gen_params'.
14398
14399         * reflection.c (mono_image_get_generic_param_info): Don't create a
14400         metadata row, just add an entry to the `gen_params' array.
14401         (build_compressed_metadata): Sort the `gen_params' array and then
14402         actually create the metadata.
14403
14404 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14405
14406         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
14407
14408 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
14409
14410         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
14411
14412 2004-08-24  Martin Baulig  <martin@ximian.com>
14413
14414         * class.cs (mono_class_is_subclass_of): Like an interface, a
14415         generic instance also derives from System.Object.
14416
14417 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
14418
14419         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
14420         custom modifiers to be in any order. Fixes #61990.
14421
14422 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
14423
14424         * object.c: Register mono_object_new_fast icall.
14425         
14426         * object.c (mono_class_get_allocation_ftn): Return to calling
14427         mono_object_new_fast, since it seems faster to compute the object 
14428         size in unmanaged code than passing it as a parameter.
14429
14430         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
14431
14432         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
14433         this function with Boehm as the oom handler, so we don't have to check
14434         the result of GC_malloc.
14435
14436         * object.c: Remove checks for oom.
14437
14438         * object.h object.c (mono_class_get_allocation_ftn): New function to
14439         return the icall which can be used to allocate an instance of a given
14440         class. 
14441
14442         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
14443
14444         * class-internals.h: Add 'enabled' field.
14445
14446 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
14447
14448         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
14449
14450 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
14451         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
14452         value 0x0010.
14453
14454 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
14455
14456         * appdomain.c: use the Tls function for appdomain too,
14457         at Zoltan's request. Actually return in mono_context_get
14458
14459         * appdomain.c, profiler.c, threads.c: use __thread
14460
14461 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
14462
14463         * appdomain.c threads.c: Call GC_CreateThread on windows.
14464
14465         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
14466         multiple libraries since this don't work on windows.
14467
14468 2004-08-18  Martin Baulig  <martin@ximian.com>
14469
14470         * class-internals.h
14471         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
14472         MonoMethodHeader.
14473
14474         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
14475         MonoMethodNormal since we also need it for abstract and interface
14476         methods.
14477
14478         * reflection.c
14479         (build_compressed_metadata): Sort the GenericParam table.
14480         (mono_image_create_token): Added `gboolean create_methodspec'
14481         argument; this is false when generating a MethodImpl token.
14482         (reflection_methodbuilder_to_mono_method): Abstract and interface
14483         methods may also have generic parameters.
14484
14485 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
14486
14487         * appdomain.c: thread local alloc
14488
14489 2004-08-17  Martin Baulig  <martin@ximian.com>
14490
14491         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
14492
14493         * icall.c
14494         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
14495         argument.
14496
14497         * class.c (mono_type_get_full_name): New public function.
14498         (mono_type_get_name): Don't include the type arguments.
14499
14500 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
14501
14502         * Makefile.am: Build static versions of libmetadata and libmonoruntime
14503         for inclusion into the mono executable.
14504
14505 2004-08-16  Martin Baulig  <martin@ximian.com>
14506
14507         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
14508         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
14509
14510 2004-08-14  Martin Baulig  <martin@ximian.com>
14511
14512         * class.c (dup_type): Also copy the `byref' field.
14513
14514 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
14515
14516         * reflection.c (create_dynamic_mono_image): Revert the last change 
14517         since it breaks bootstrap.
14518
14519 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
14520
14521         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
14522
14523         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
14524         not free them with g_free.
14525
14526 2004-08-11  Martin Baulig  <martin@ximian.com>
14527
14528         * reflection.c (mono_reflection_setup_internal_class): Also call
14529         mono_class_setup_mono_type() if we already have a `tb->type.type'.
14530
14531 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
14532
14533         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
14534         called during default (first) AppDomain creation. Keep track of
14535         Evidence when loading assemblies.
14536
14537 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
14538
14539         * opcodes.c, opcodes.h: reduce runtime relocations.
14540
14541 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
14542
14543         * culture-info.h, locales.c: fixes and chages to sue the new
14544         optimized format of the locale data.
14545         * culture-info-tables.h: regenerated.
14546
14547 2004-08-06  Geoff Norton <gnorton@customerdna.com>
14548         
14549         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
14550
14551 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
14552
14553         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
14554         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
14555         * domain-internals.h: icall declaration.
14556         * icall.c: icall registration.
14557         * object-internals.h: New fields in MonoAssembly for CAS.
14558
14559 2004-08-05  Duncan Mak  <duncan@ximian.com>
14560
14561         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
14562         CEE_LDELEM_ANY.
14563
14564 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
14565
14566         * reflection.c: fix to deal with object[] arrays in custom ctors
14567         (bug #62550).
14568
14569 2004-08-05  Martin Baulig  <martin@ximian.com>
14570
14571         * class.c (mono_class_array_element_size): Added support for
14572         generic instances and correctly handle "recursive" types.
14573
14574 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
14575
14576         * assembly.c: Fix warnings.
14577
14578 2004-08-04  Martin Baulig  <martin@ximian.com>
14579
14580         * class.c
14581         (mono_type_get_name_recurse): Added `gboolean include_arity'
14582         argument specifying whether or not we should include the generic
14583         arity in the type name.
14584         (_mono_type_get_name): New static function.
14585         (mono_class_setup_vtable): If we're a generic instance, don't
14586         include the generic arity in the names of explicit method
14587         implementations.        
14588
14589 2004-08-03  Martin Baulig  <martin@ximian.com>
14590
14591         * class.c (mono_type_get_name_recurse): Enclose the generic type
14592         arguments in `<', '>'.
14593
14594 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14595
14596         * gc.c: make GC warning messages use the trace API, they are just
14597         noise to most of the users.
14598
14599 2004-08-03  Martin Baulig  <martin@ximian.com>
14600
14601         * debug-mono-symfile.c (read_string): Correctly read the string.
14602
14603 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
14604
14605         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
14606         
14607         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
14608         icalls.
14609         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
14610
14611 2004-07-30  Martin Baulig  <martin@ximian.com>
14612
14613         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
14614         Reflect latest symbol writer changes.   
14615
14616 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
14617
14618         * object.c: always create an object if null is passed
14619         to Invoke() where a valuetype is expected.
14620
14621 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
14622
14623         * marshal.c (mono_marshal_init): make managed
14624         signatures match native ones better for 64bits.
14625
14626 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14627
14628         * appdomain.c: hack to build correctly the private bin path on windows.
14629         Fixes bug #61991.
14630
14631 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
14632
14633         * assembly.c: Load mscorlib from the correct framework directory
14634           (mono/<version>/mscorlib.dll).
14635         * appdomain.h: Added prototypes for new functions.
14636         * internals.h: Added some prototypes.
14637         * domain.c: When initializing the runtime, get from the executable and
14638           the configuration files the runtime version that the app supports.
14639           Added support methods for reading app.exe.config. Added list of versions
14640           supported by the JIT. Added two new methods: mono_init_from_assembly,
14641           which initializes the runtime and determines the required version from
14642           the provided exe file, and mono_init_version, which initializes
14643           the runtime using the provided version.
14644         * icall.c: Get machine.config from version-specific directory.
14645         * reflection.c: When generating an image, embed the version number
14646           of the current runtime.
14647
14648 2004-07-28  Dick Porter  <dick@ximian.com>
14649
14650         * socket-io.c
14651         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
14652         returned sockaddr size before creating the remote address object.
14653         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
14654         61608.
14655
14656 2004-07-28  Dick Porter  <dick@ximian.com>
14657
14658         * locales.c (string_invariant_compare_char): Fix invariant char
14659         compares between upper and lower cases.  Fixes bug 61458.
14660
14661 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
14662         
14663         * marshal.c: actually cache stelem.ref wrappers.
14664         
14665 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
14666
14667         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
14668         sections and remove the mono_cli_rva_map () function.
14669
14670 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14671
14672         * debug-mono-symfile.c: fix one more endianess issue, from a patch
14673         by Geoff Norton (<gnorton@customerdna.com>).
14674
14675 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14676
14677         * class.c: fix class loads for pointer types (typeof(int) !=
14678         typeof(int*)).
14679
14680 2004-07-27  Martin Baulig  <martin@ximian.com>
14681
14682         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
14683         reading the debugging information from an external ".mdb" file.
14684
14685 2004-07-24  Martin Baulig  <martin@ximian.com>
14686
14687         * reflection.c (mono_image_get_type_info): Only write a class
14688         layout entry if we actually have a size or a packing size.
14689
14690 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
14691
14692         * reflection.c (type_get_fully_qualified_name): 
14693         insert cast to get type checking of ?: with non-gcc compilers
14694
14695 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
14696
14697         * rand.c: use g_getenv for both lookups of
14698         MONO_EGD_SOCKET
14699
14700 2004-07-17  Martin Baulig  <martin@ximian.com>
14701
14702         * reflection.c (mono_reflection_bind_generic_method_parameters):
14703         Set `gmethod->reflection_info'.
14704
14705 2004-07-17  Martin Baulig  <martin@ximian.com>
14706
14707         * class.c (mono_class_create_from_typedef): Insert the newly
14708         created class into the hash table before computing the interfaces
14709         since we could be called recursively.
14710
14711 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
14712
14713         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
14714         function to implement stelem.ref in managed code
14715         * class-internals.h, debug-helpers.c: a new wrapper type
14716         for the above.
14717
14718 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
14719
14720         * gc.c: allow GC handles to work even when no GC is compiled in.
14721         Fix part of bug #61134 (GetAddrOfPinnedObject).
14722
14723 2004-07-13  Peter Williams  <peter@newton.cx>
14724  
14725         * process.c (complete_path): Make sure we don't attempt to execute
14726         directories.
14727  
14728 2004-07-12  Geoff Norton <gnorton@customerdna.com>
14729
14730         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
14731           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
14732           and will add/subtract the hour if needed
14733
14734 2004-07-12  Martin Baulig  <martin@ximian.com>
14735
14736         * reflection.c (mono_field_get_object): If we have
14737         `field->generic_info', take the attributes from
14738         `field->generic_info->generic_type'.    
14739
14740 2004-07-12  Martin Baulig  <martin@ximian.com>
14741
14742         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
14743         This function must be called before initializing the runtime.
14744         (mono_debug_init_1): New function; call this after initializing
14745         the runtime, but before loading the assembly.  It tells the
14746         debugger to load corlib and the builtin types.
14747
14748         * mono-debug-debugger.c: Did some larger changes in the debugging
14749         code; support recursive class declarations, make sure we actually
14750         add all classes.
14751
14752 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14753
14754         * debug-helpers.c: undo my previous patch and fixed the real issue in
14755         ../mini/exceptions-x86.c
14756
14757 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14758
14759         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
14760         when no HOME env. variable was set and a NullRef was thrown in a .cctor
14761         called from other .cctors.
14762
14763 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
14764
14765         * loader.c: Removed the mono_loader_wine_init hack now that we are
14766         doing a managed version of Windows.Forms.
14767
14768 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
14769
14770         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
14771         threadpool.c, threads.c: remove static data from rootset.
14772
14773 2004-07-09  Dick Porter  <dick@ximian.com>
14774
14775         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
14776         Don't do any more processing if the matched length was 0.  It was
14777         increasing the size of the string before.  Fixes bug 61167.
14778
14779 2004-07-09  Dick Porter  <dick@ximian.com>
14780
14781         * socket-io.h:
14782         * socket-io.c
14783         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
14784         Add support for SO_PEERCRED if its available.
14785
14786 2004-07-09  Peter Bartok <pbartok@novell.com>
14787         * loader.c: winelib.exe.so error message is now only displayed if
14788         MONO_DEBUG is set. To help us avoid questions when people are trying
14789         out the new Managed.Windows.Forms.
14790
14791 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
14792
14793         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
14794         for isinst and castclass wrappers.
14795
14796         * class-internals.h icall.c: Move registration and lookup of JIT icalls
14797         to libmetadata from the JIT, so they could be used by the marshalling
14798         code and the interpreter.
14799
14800         * marshal.c: Register marshalling related JIT icalls here instead of
14801         in mini.c. Use CEE_MONO_ICALL instead of the family of 
14802         CEE_MONO_PROC<x> opcodes to call marshalling functions.
14803
14804         * metadata.h: Remove unneeded marshalling conversions.
14805
14806         * opcodes.c: Update for new opcodes.
14807         
14808 2004-07-08  Martin Baulig  <martin@ximian.com>
14809
14810         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
14811         (mono_debug_get_domain_data): Make this function static.
14812
14813 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14814
14815         * gc.c, object.h: add nice GC handle API for embedders.
14816
14817 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
14818
14819         * reflection.c: more changes for the new api
14820
14821         * object.c: When we reflect on a field w/ a constant value, it
14822         will not have a memory location, so we must access metadata. Also,
14823         allow easier reading of strings so that we can read them from
14824         the constant data.
14825
14826         * class.c (mono_class_layout_fields): no need for literal fields here.
14827
14828         * class-internals.h: api changes for const fields
14829
14830         * icall.c (ves_icall_get_enum_info): use new apis for const fields
14831
14832 2004-07-06  Martin Baulig  <martin@ximian.com>
14833
14834         * mono-debug.h: Increment version number to 44.
14835
14836         * mono-debug.c (mono_debug_add_wrapper): The second argument is
14837         now a gpointer, rewrote this whole method.
14838
14839         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
14840         function.  Add information about the wrapper in a new "misc table".
14841
14842         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
14843         for the new misc table.
14844
14845 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
14846
14847         * metadata-internals.h image.c: Add a cache for helper signatures.
14848
14849         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
14850
14851 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
14852
14853         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
14854         delegates from a delegate. Fixes #61033.
14855         
14856         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
14857         marshalling of stringbuilder arrays. Fixes #59900.
14858
14859 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
14860
14861         * icall.c: Add EnumBuilder:setup_enum_type icall.
14862
14863 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
14864
14865         * icall.c: Added a new icall for the property version of
14866         OffsetOfStringData.
14867
14868 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
14869
14870         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
14871         it has a constant size across platforms.
14872
14873         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
14874         stack trace.
14875
14876 2004-06-29  Martin Baulig  <martin@ximian.com>
14877
14878         * mono-debug.c (mono_debug_add_method): Protect the whole function
14879         in mono_debugger_lock(), not just parts of it.
14880
14881 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
14882
14883         * reflection.c: make sure padding bytes in heaps are zeroed.
14884
14885 2004-06-24  David Waite  <mass@akuma.org>
14886
14887         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
14888         image.c, loader.c, locales.c, marshal.c, metadata.c,
14889         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
14890         string-icalls.c, threads.c: change to C90-style comments from C99 /
14891         C++ -style
14892
14893 2004-06-24  Dick Porter  <dick@ximian.com>
14894
14895         * threads.c
14896         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
14897         return createdNew.  Fixes bug 60412.
14898
14899         * threads-types.h: 
14900         * icall.c: Add createdNew parameter to CreateMutex icall
14901
14902 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14903
14904         * reflection.c, object-internals.h: save default value in params.
14905
14906 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14907
14908         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
14909         no need to build a new path combining that with the application base.
14910         Fixes bug #60442.
14911
14912 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
14913
14914         * reflection.c: fixed minor standard compliance issues.
14915
14916 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14917
14918         * reflection.c: fixed issue with encoding some custom attributes
14919         (arrays in properties and fields, bug #60411).
14920
14921 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14922
14923         * reflection.c: fix start address when copying the public key token.
14924
14925 2004-06-23  Martin Baulig  <martin@ximian.com>
14926
14927         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
14928         the `exc' object in a static object to put it into the GC's root set.
14929
14930 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
14931
14932         * reflection.c: make mono_reflection_setup_internal_class ()
14933         callable a second time to setup a new parent class.
14934
14935 2004-06-23  Dick Porter  <dick@ximian.com>
14936
14937         * threads.c: Check for WAIT_IO_COMPLETION return values.
14938
14939 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
14940
14941         * appdomain.c: Removed the g_free on the public key token. Now copy 
14942         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
14943         * assembly.c: Added public key token string value when loading 
14944         assemblies. Fix bug #60439.
14945         * icall.c: Added missing informations (like public key) in 
14946         GetReferencedAssemblies. Fix #60519.
14947         * image.h: Changed definition for public key token from const char*
14948         public_tok_value to guchar public_key_token [17];
14949         * reflection.c: Updated for changes to public key token.
14950
14951 2004-06-22  Lluis Sanchez Gual
14952
14953         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
14954         for the field in base classes.
14955
14956 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14957
14958         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
14959         mark headers as not supported, they are installed only for use by the
14960         debugger.
14961
14962 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
14963
14964         * *.c, *.h: avoid namespace pollution in public headers.
14965
14966 2004-06-21  Martin Baulig  <martin@ximian.com>
14967
14968         * exception.c (mono_get_exception_security): It's in
14969         "System.Security", not in "System".
14970
14971         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
14972         the exception classes.
14973
14974 2004-06-21  Martin Baulig  <martin@ximian.com>
14975
14976         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
14977         Protect the exception object from being finalized.
14978
14979 2004-06-21  Martin Baulig  <martin@ximian.com>
14980
14981         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
14982         public function.
14983
14984 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
14985
14986         * reflection.c: Load the assembly in mono_reflection_type_from_name,
14987         if it was not loaded before. Fix parts of #60439.
14988
14989 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
14990
14991         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
14992         code that was broken since Ben's change: wrappers are now
14993         dependent on the method signature only again.
14994
14995 2004-06-21  Martin Baulig  <martin@ximian.com>
14996
14997         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
14998         added interface support.
14999
15000 2004-06-21  Martin Baulig  <martin@ximian.com>
15001
15002         * class.c (mono_vtable_get_static_field_data): New public method.
15003
15004 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
15005
15006         * filewatcher.c : Windows build fix to be compliant with API changes.
15007
15008 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
15009
15010         * class.h, class.c: more accessors.
15011         * metadata.h, metadata.c: prepare for hiding MonoType and
15012         MonoMethodSignature: people should use the accessors from now on
15013         outside of the tree.
15014
15015 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
15016
15017         * *.c, *.h: more API cleanups.
15018
15019 2004-06-18  Jackson Harper  <jackson@ximian.com>
15020
15021         * assembly.c: Trace loading assemblies.
15022         * loader.c: Trace loading native libraries.
15023         * mono-config.c: Trace loading config files.
15024         
15025 2004-06-18  Dick Porter  <dick@ximian.com>
15026
15027         * locales.c: Tell ICU the lengths of strings, it can cope with
15028         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
15029
15030 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
15031
15032         * image.c: swapped name/filename;
15033
15034 2004-06-18  Martin Baulig  <martin@ximian.com>
15035
15036         * mono-debug-debugger.c (write_class): Write the parent class at
15037         the end of the header.
15038
15039 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
15040
15041         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
15042
15043 2004-06-17  Raja R Harinath  <rharinath@novell.com>
15044
15045         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
15046         (bundle_obj): New conditional define.
15047         (BUILT_SOURCES): Remove.
15048         ($(bundle_srcs)): Make parallel-make safe.
15049         (libmonoruntime_la_LIBADD): Make unconditional.
15050         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
15051         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
15052
15053 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
15054
15055         * culture-info-tables.h: It was inconsistent with the latest
15056           supp info files.
15057
15058 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
15059
15060         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
15061         be loaded.
15062
15063         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
15064         with gcc 2.95.
15065
15066 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
15067
15068         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
15069         cleaned up public header threads.h.
15070
15071 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
15072
15073         * Makefile.am, *.c, *.h: more API cleanups.
15074
15075 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
15076
15077         * Makefile.am: removed monosn from compilation.
15078         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
15079         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
15080         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
15081         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
15082         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
15083         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
15084
15085 2004-06-15  Jackson Harper  <jackson@ximian.com>
15086
15087         * assembly.c: Make locales lower case when searching the GAC for
15088         assemblies. gacutil will always make locales lowercase when
15089         installing so this effectively makes them case insensitive.
15090         
15091 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
15092
15093         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
15094         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
15095           parameter which allows to choose whether the wait can be interrupted or 
15096           not. Also added the method mono_monitor_enter(), which locks the monitor
15097           using an infinite wait and without allowing interruption.
15098           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
15099           interrupted.
15100         * object.h: Added new fields in MonoThread. suspend_event holds the event
15101           used to susped/resume the thread. synch_lock is the lock object to use for
15102           modifying the thread state.
15103         * threads.c: Use the new synch_lock object for locking, instead of "this",
15104           which can generate deadlocks.
15105           Moved thread state change in Thread.Sleep and Thread.Join from managed
15106           to unmanaged code. This avoids a deadlock when the thread was suspended
15107           just after acquiring the thread lock.
15108           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
15109           Implemented Thread.Suspend using an event instead of ThreadSuspend,
15110           which is not fully implemented in the io-layer.
15111         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
15112
15113 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
15114
15115         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
15116         threads-types.h: more API cleanups.
15117
15118 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
15119
15120         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
15121         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
15122         threadpool.c, threads.c: first pass at the exported API cleanup.
15123
15124 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
15125
15126         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
15127
15128 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15129
15130         * icall.c: added internalGetHome.
15131
15132 2004-06-14  Dick Porter  <dick@ximian.com>
15133
15134         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
15135         possible to return successfully when '.' or '..' were the only
15136         entries in a directory, but were skipped.  The MonoIOStat was not
15137         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
15138         Fixes bug 59574.
15139
15140 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
15141
15142         * reflection.c: make binaries run on .Net 1.1 by default.
15143
15144 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
15145
15146         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
15147
15148 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
15149
15150         * marshal.c: keep track of struct size with explicit layout
15151         (bug #59979).
15152
15153 2004-06-12  Martin Baulig  <martin@ximian.com>
15154
15155         * mono-debug-debugger.c: Comment out a debugging g_message().
15156
15157 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
15158
15159         * reflection.c, reflection.h: do not free custom attrs that are cached.
15160         * icall.c: use braces to make code clearer.
15161
15162 2004-06-11  Martin Baulig  <martin@ximian.com>
15163
15164         * class.h (MonoInflatedField): New type.
15165         (MonoClassField): Replaced `MonoType *generic_type' with
15166         `MonoInflatedField *generic_info'.
15167
15168         * icall.c
15169         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
15170
15171 2004-06-11  Martin Baulig  <martin@ximian.com>
15172
15173         * reflection.c (mono_image_create_method_token): Correctly encode
15174         varargs methods.
15175
15176 2004-06-11  Martin Baulig  <martin@ximian.com>
15177
15178         * metadata.c (mono_metadata_parse_method_signature): When parsing
15179         a MethodDef which has VarArgs, also set sentinelpos if we don't
15180         have any parameters.
15181
15182 2004-06-11  Martin Baulig  <martin@ximian.com>
15183
15184         * verify.c (mono_method_verify): In CEE_CALL, use
15185         mono_method_get_signature() to get the method's signature, unless
15186         we're a PInvoke method.
15187
15188 2004-06-10  Jackson Harper  <jackson@ximian.com>
15189
15190         * assembly.c: Use <path>/lib/mono/gac for the extra paths
15191         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
15192         logical name as the supplied path is just a prefix to the gac not
15193         the direct path to it.
15194         
15195 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
15196
15197         * reflection.c: make the token for a created method match
15198         the token of the MethodBuilder it was created from
15199         (IKVM requires this behaviour now).
15200
15201 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
15202
15203         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
15204         reflection.c, socket-io.c: leak fixes.
15205
15206 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
15207
15208         * icall.c: handle sentinel pos in vararg methods in position different
15209         from 0.
15210
15211 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15212
15213         * culture-info-tables.h: freshly generated.
15214
15215 2004-06-09  Martin Baulig  <martin@ximian.com>
15216
15217         * loader.c (mono_get_method_constrained): Call `mono_class_init
15218         (constrained_class)'.   
15219
15220 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
15221
15222         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
15223         any methods. Fixes #59629.
15224
15225 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
15226
15227         * culture-info-tables.h: reflecting locale-builder updates.
15228
15229 2004-06-08  Dick Porter  <dick@ximian.com>
15230
15231         * object.h:
15232         * locales.c: Fixed compile warnings, including a real bug in
15233         CompareInfo_internal_compare.
15234         
15235 2004-06-08  Dick Porter  <dick@ximian.com>
15236
15237         * locales.c
15238         (ves_icall_System_Globalization_CompareInfo_internal_index):
15239         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
15240         Double-check the resuls of usearches, because ICU currently
15241         ignores most of the collator settings here.  Fixes bug 59720.
15242         
15243 2004-06-08  Dick Porter  <dick@ximian.com>
15244
15245         * locales.c
15246         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
15247         Fix memory leak and segfault-causing typo.  No idea how this one
15248         lasted so long without being noticed.
15249
15250 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
15251
15252         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
15253         any methods. Fixes #59629.
15254
15255 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15256
15257         * assembly.c:
15258         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
15259         own the critical section before). Removed dead code (that's done
15260         in the preload hook).
15261
15262         (mono_assembly_load_with_partial_name): call the preload hook.
15263
15264 2004-06-08  Martin Baulig  <martin@ximian.com>
15265
15266         * metadata.c (mono_metadata_signature_alloc): Default
15267         `sentinelpos' to -1.
15268
15269         * reflection.c (mono_image_get_array_token): Likewise.
15270
15271 2004-06-08  Martin Baulig  <martin@ximian.com>
15272
15273         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
15274
15275         * metadata.c (mono_metadata_parse_method_signature): When parsing
15276         a MethodDef which has VarArgs, set sentinelpos.
15277
15278         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
15279         `gint16' since we're using -1 for non-varargs methods.
15280
15281         * reflection.c
15282         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
15283         (method_encode_signature): Added varargs support.
15284         (method_builder_encode_signature): Likewise.
15285         (mono_image_get_varargs_method_token): New static method.
15286         (mono_image_create_method_token): New public method; this is
15287         called via an icall instead of mono_image_create_token() when
15288         calling a varargs method.       
15289
15290 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
15291
15292         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
15293
15294 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
15295
15296         * culture-info-tables.h : Reflecting the latest locale-builder that
15297           fixed empty array representation ({} to {0}).
15298
15299 2004-06-07  Jackson Harper  <jackson@ximian.com>
15300
15301         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
15302         looking up extra gac paths. This allows MONO_GAC_PATH to act
15303         exactly like a prefix.
15304         
15305 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
15306
15307         * reflection.c (mono_reflection_type_from_name): Make a copy of the
15308         type name before modifying it. Fixes #59405.
15309
15310 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
15311
15312         * culture-info.h: added fields for "all datetime patterns".
15313         * locales.c: (  ves_icall_System_Globalization_CultureInfo
15314           _construct_datetime_format ()): fill xxx_patterns fields.
15315         * object.h: added fields for "all datetime patterns" to
15316           MonoDateTimeFormatInfo.
15317         * culture-info-tables.h: reflecting locale-builder updates.
15318
15319 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
15320
15321         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
15322         the event has no add and remove methods. Fixes #59629.
15323
15324 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
15325
15326         * object.c: Fixed possible integer overflow when allocating large
15327         strings.
15328
15329 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
15330
15331         * culture-info-tables.h: reflecting locale-builder updates.
15332
15333 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
15334
15335         * culture-info-tables.h: reflecting locale-builder updates.
15336
15337 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
15338
15339         * culture-info-tables.h: reflecting locale-builder updates.
15340
15341 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
15342
15343         * threads.c: Made Thread.Sleep abortable.
15344
15345 2004-06-02  Martin Baulig  <martin@ximian.com>
15346
15347         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
15348
15349         * debug-mono-symfile.h: Bumped symbol file version number to 37.
15350
15351 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
15352
15353         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
15354
15355 2004-05-30  Jackson Harper  <jackson@ximian.com>
15356
15357         * reflection.c: Do not hardcode assembly versions or public key
15358         tokens anymore. All of this except the corlib section was dead
15359         code anyways.
15360         
15361 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
15362
15363         * object.c (mono_runtime_invoke_array): Automatically create boxed
15364         objects for byref valuetypes if needed. Fixes #59300.
15365         
15366         * object.c (mono_method_return_message_restore): Handle 
15367         MONO_TYPE_OBJECT as well.
15368
15369 2004-05-28  Jackson Harper  <jackson@ximian.com>
15370
15371         * reflection.c: The modified type encoding was causing build
15372         problems. Reverted for now.
15373         
15374 2004-05-28  Jackson Harper  <jackson@ximian.com>
15375
15376         * reflection.c/h: Take an assembly ref so that we dont create
15377         fully qualified names when encoding types in the same assembly as
15378         the custom attribute being emitted.
15379         * appdomain.c: Increment version number.
15380         
15381 2004-05-26  Duncan Mak  <duncan@ximian.com>
15382
15383         * icall.c
15384         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15385         Set the full version number (major, minor, build, revision).
15386
15387 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
15388
15389         * marshal.c (emit_struct_conv): increment src/dst after blit
15390         (mono_marshal_get_managed_wrapper,
15391         mono_marshal_get_native_wrapper): make sure we have marshalling
15392         info before marshalling params (info computation affects
15393         blittable)
15394
15395         * class.c (class_compute_field_layout): correctly deal with
15396         blittable
15397         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
15398         value types (as per what windows dows by default)
15399         (mono_class_setup_mono_type): System.ValueType is blittable
15400         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
15401         blittable
15402
15403         * marshal.c (mono_marshal_load_type_info): flag types  as
15404         non-blittable if the native layout doesn't match the managed
15405         layout
15406
15407 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15408
15409         * appdomain.c: don't add stuff in the private search path that is
15410         above the application base. If application base is not set, there's
15411         no private search path.
15412
15413 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
15414
15415         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
15416         byref struct arguments in native->managed marshalling.
15417
15418 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
15419
15420         * marshal.c (mono_marshal_get_runtime_invoke): correctly
15421         cache methods using signature (special case for methods
15422         that are value type or string class)
15423         
15424         * image.c (mono_image_close): clean up allocated GSList's
15425         in runtime_invoke_cache.
15426
15427 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15428
15429         * mono-config.c: set the correct path for mono_cfg_dir on windows when
15430         there's no MONO_CFG_DIR environment variable defined.
15431
15432 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15433
15434         * threads.c: windows version must be >= 0x0500 to include OpenThread.
15435
15436 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
15437
15438         * threadpool.c: Really wait for 500ms after the async call, even if the wait
15439           is interrumped.
15440         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
15441           before waiting for it, and call CloseHandle after the wait to unref it.
15442           This will make sure that handles are not disposed too early.
15443
15444 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15445
15446         * appdomain.c:
15447         * appdomain.h:
15448         * icall.c: removed
15449         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
15450         needed now.
15451
15452         * object.c: se the application_base only for the domain that runs
15453         Main. Fixes bug #59216,
15454
15455 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15456
15457         * appdomain.c:
15458         * object.c: only the domain in which Main is run have
15459         SetupInformation.ConfigurationFile set, so moved a few lines from
15460         appdomain.c to object.c.
15461
15462 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15463
15464         * appdomain.c: we tried to load [name].(dll|exe), but according
15465         to bug #57710, we must also try [culture]/[name].(dll|exe) and
15466         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
15467         There's a test case attached to bug #58922.
15468
15469 2004-05-27  Dick Porter  <dick@ximian.com>
15470
15471         * icall.c:
15472         * file-io.c: Implemented icalls for locking and unlocking regions
15473         in a file.
15474         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
15475         FALSE on error (fixes both compiler warning and real bug.)
15476
15477 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
15478
15479         * culture-info-tables.h: reflecting locale-builder updates.
15480
15481           (Added missing ChangeLog entry for 05/26)
15482
15483 2004-05-27  Jackson Harper  <jackson@ximian.com>
15484
15485         * locales.c: Fix some cut and paste errors.
15486         
15487 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15488
15489         * mono-config.c: set the correct path for config. directory on windows.
15490
15491 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
15492
15493         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
15494           on win32.
15495
15496 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
15497
15498         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
15499         from pinvoke functions.
15500         
15501         * marshal.c (mono_ftnptr_to_delegate): Implement this.
15502
15503 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
15504
15505         * culture-info-tables.h: reflecting locale-builder updates.
15506
15507 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
15508
15509         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
15510         #59086.
15511
15512 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
15513
15514         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
15515         * icall.c: Modified icalls for RNG.
15516         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
15517         Windows (CryptoAPI).
15518
15519 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
15520
15521         * locales.c: Fix build.
15522
15523 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
15524
15525         * culture-info-tables.h: reflecting locale-builder updates.
15526
15527 2004-05-25  Jackson Harper  <jackson@ximian.com>
15528
15529         * locales.c: When creating the current culture use the $LANGs
15530         specific culture. So DateTimeFormat and NumberFormat entries are created.
15531         
15532 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
15533
15534         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
15535         a char array as parameter.
15536
15537 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
15538
15539         * image.c: In mono_image_open(), always use an absolute path name to
15540           look for already loaded images.
15541
15542 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
15543
15544         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
15545         missing in the windows build (like older cygwin include files).
15546
15547 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
15548
15549         * icall.c: Fixed check for possible integer overflow in Buffer_
15550         BlockCopy icall. Replaced comments style // by /* */.
15551
15552 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
15553
15554         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
15555         
15556         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
15557         check after MONO_VTADDR. Fixes pinvoke2.exe.
15558
15559         * marshal.h marshal.c metadata.h: Add beginnings of support for
15560         ftnptr -> delegate marshalling.
15561
15562 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
15563
15564         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
15565         * threads.c: Fix warnings.
15566
15567 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
15568
15569         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
15570         * icall.c: Registered icalls for Suspend and Resume.
15571         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
15572           Thread.Abort.
15573         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
15574         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
15575         * process.c: Use WaitForSingleObjectEx.
15576         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
15577           checkpoints.
15578         * threads.c, threads.h: Make use of new Ex wait methods. Improved
15579           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
15580           for Suspend and Resume. Added new mono_thread_stop, used for stoping
15581           background threads. Added basic support for Abort in Windows.
15582           Start new threads using a managed delegate invoke wrapper. This wrapper
15583           has an interruption checkpoint that is needed since an interruption
15584           can be requested before the thread leaves the unmanaged code that starts 
15585           the thread.
15586         * marshal.c: Added interruption checkpoint after every native call, and
15587           also before managed calls for wrappers called from unmanaged code to
15588           go into managed code.
15589         * object.h: Added new field in MonoThread to keep track of interruption
15590           requests.
15591
15592 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
15593
15594         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
15595         calls.
15596
15597 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15598
15599         * appdomain.c:
15600         * assembly.c:
15601         * gc.c:
15602         * locales.c:
15603         * mono-config.c:
15604         * rand.c: getenv -> g_getenv (windows!)
15605
15606         * process.c: complete_path is also used on non-windows platforms.
15607
15608 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15609
15610         * icall.c: new signature for Process_Start.
15611
15612         * process.[ch]: new signature for Process_Start. If we're on windows
15613         and UseShellExecute is false, we have to search for the program by
15614         ourselves if we don't get a full path.
15615
15616 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
15617
15618         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
15619         marshalling and call CleanUpNativeData if needed. Fixes #58646.
15620
15621 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15622
15623         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
15624         Fixes bug #58373.
15625
15626 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15627
15628         * process.c: use double quotes to quote program name and arguments on
15629         windows. Fixes bug #58575.
15630
15631 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15632
15633         * file-io.c: don't return "." and ".." when using windows Find*File.
15634
15635 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
15636
15637         * marshal.c: Don't pass wrappers to message init because method 
15638         addressed used to lookup metadata. part of remoting[2|3] fix.
15639
15640 2004-05-15  Jackson Harper  <jackson@ximian.com>
15641
15642         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
15643         path is essentially the same as MONO_PATH except that it points to
15644         GACs instead of lib directories.
15645         * loader.h: The user gac is gone so we dont need function to
15646         enable/disable it.
15647         * mono-config.c: user gac option is now gone.
15648         
15649 2004-05-15  Jackson Harper  <jackson@ximian.com>
15650
15651         * culture-info.h: Make defines more consistent, add calendar data
15652         to the culture info table.
15653         * culture-info-tables.h: Add basic calendar data. Basically
15654         everyone gets default gregorian until all the data is
15655         updated.
15656         * locales.c: Use the new consistent defines. Set calendar data for
15657         culture info objects.
15658         * object.h: add a field for calendar data to CultureInfo
15659         
15660 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
15661
15662         * image.c: image->runtime_invoke_cache is keyed on signatures now.
15663         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
15664         a signature.
15665         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
15666         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
15667         an extra param that is the pointer of the method to invoke. The IL for
15668         the invoke method is no longer specific to the method, but to the
15669         signature of the method. Thus, we can share the same code for multiple
15670         methods. This reduces the number of methods that have to be compiled.
15671
15672 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
15673
15674         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
15675
15676         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15677
15678         * icall.c: Optimize Buffer.BlockCopy.
15679
15680 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15681
15682         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
15683         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
15684         quote). Changed them to "MMMM yyyy".
15685
15686 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
15687
15688         * rand.c
15689         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
15690
15691 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
15692
15693         * reflection.h: Updated after changes to managed structures.
15694
15695         * appdomain.c: Bump corlib version.
15696
15697 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15698
15699         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
15700         windows.
15701
15702 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15703
15704         * Makefile.am: link to ../os/libmonoos.la on windows.
15705
15706         * assembly.c:
15707                 -If MONO_DEBUG, warn about non-existing directories in
15708                 MONO_PATH.
15709                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
15710                 compile time variable.
15711                 -Removed init_default_path and call mono_set_rootdir from
15712                 libmonoos.a instead (windows only).
15713
15714         * assembly.h: declare mono_assembly_getrootdir().
15715
15716         * domain.c:
15717         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
15718
15719         * loader.c: s/getenv/g_getenv/
15720
15721 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
15722
15723         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
15724
15725         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
15726
15727         * metadata.h: Add new marshalling conversions.
15728
15729         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
15730         function.
15731
15732         * reflection.c (mono_reflection_get_type): Lookup the type in all
15733         modules of a multi-module assembly. Fixes #58291.
15734
15735 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
15736
15737         * threads.c: Before aborting a background, set the StopRequested
15738         state.  This avoids throwing the Abort exception.
15739         In mono_thread_manage, don't continue with the shutdown until all
15740         aborted threads have actually stopped.
15741
15742 2004-05-10  Jackson Harper  <jackson@ximian.com>
15743
15744         * locales.c: Remove the modifier from culture names.
15745         
15746 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15747
15748         * Makefile.am: monosn is not installed any more. It has been deprecated
15749         in favor of sn.
15750
15751 2004-05-07  Jackson Harper  <jackson@ximian.com>
15752
15753         * locales.c
15754         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
15755         Fix array construction, add bailout if the length is 0.
15756
15757 2004-05-07  Dick Porter  <dick@ximian.com>
15758
15759         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
15760         machine doesn't have a DNS entry.  Patch by Urs Muff
15761         (umuff@quark.com), fixes bug 57928.
15762
15763 2004-05-06  Jackson Harper  <jackson@ximian.com>
15764
15765         * reflection.c: Handle null PublicTokens properly. alloc mem for
15766         assembly names culture so we dont crash when freeing it.
15767         
15768 2004-05-06  Jackson Harper  <jackson@ximian.com>
15769
15770         * assembly.c: Check the usergac when loading with partial names.
15771         
15772 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
15773
15774         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
15775         does nothing for now (not required for Linux/Windows) but the class
15776         library can call it (and a newer or modified runtime could need it).
15777         * icall.c: Registred icall.
15778
15779 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15780
15781         * loader.c: prints a message on module loading error we set MONO_DEBUG
15782         environment variable.
15783
15784 2004-05-05  Jackson Harper  <jackson@ximian.com>
15785
15786         * appdomain.c: Handle PublicKeyToken=null properly.
15787         
15788 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
15789
15790         * environment.c|h: Added icall ves_icall_System_Environment_
15791         GetOSVersionString to get the current OS version as a string.
15792         * icall.c: Registred icall.
15793
15794 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
15795
15796         * object.c: in mono_object_get_virtual_method(), take into account that
15797         non-virtual methods don't have a slot in the vtable. Check needed when
15798         the object is a proxy.
15799
15800 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
15801
15802         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
15803         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
15804
15805         * object.c (mono_class_compute_gc_descriptor): Fix warning.
15806
15807         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
15808         passed when a valuetype is expected.
15809
15810         * object.c (mono_unhandled_exception): Only set the exit code if the
15811         exception happens in the main thread. Fixes thread5.exe.
15812
15813         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
15814         invalid names. Fixes #58047.
15815
15816 2004-05-03  Jackson Harper  <jackson@ximian.com>
15817
15818         * assembly.c: This line was committed accidently and is unneeded.
15819         
15820 2004-05-03  Jackson Harper  <jackson@ximian.com>
15821
15822         * icall.c: Add new icall for Assembly::LoadWithPartialName
15823         * assembly.c/.h: new function that probes the GAC to load partial
15824         assembly names by Paolo Molaro.
15825         
15826 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15827
15828         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
15829         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
15830         (type_get_fully_qualified_name): Added PublicKeyToken when building a
15831         full type name.
15832
15833 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15834
15835         * appdomain.c: fixed check for 'neutral' culture and removed warning.
15836         * reflection.c: fix bug when parsing a full type name and Version is not
15837         the last thing in the string.
15838
15839 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
15840
15841         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
15842         crashes when it is freed.
15843
15844 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15845
15846         * assembly.c: print the compat warning to stderr.
15847
15848 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
15849
15850         * assembly.c (mono_assembly_load_references): Add a compatibility
15851         hack to run old applications that might be still referencing the
15852         3300-based assemblies, only do this for System.xxx.
15853
15854 2004-05-01  Jackson Harper  <jackson@ximian.com>
15855
15856         * appdomain.c: If the culture is neutral we set it to "".
15857         
15858 2004-04-29  Jackson Harper  <jackson@ximian.com>
15859
15860         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
15861
15862 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
15863  
15864         * string-icalls.c: added low overhead function for copying chars
15865         * icall.c: added needed icall for the above function
15866  
15867 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15868
15869         * icall.c: fix return value of get_global_assembly_cache.  Implemented
15870         Environment.GetLogicalDrives.
15871
15872 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
15873
15874         * rand.c: try and talk to egd or prngd
15875         for random bytes if opening devices fail.
15876
15877 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
15878
15879         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
15880         alignment for the type using the native alignment of its members 
15881         instead of using klass->min_align.
15882
15883         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
15884
15885 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15886
15887         * file-io.c:
15888         * socket-io.c: added check for sys/aio.h.
15889
15890 2004-04-28  Dick Porter  <dick@ximian.com>
15891
15892         * threads.c: Don't abort a thread thats already aborting, when
15893         terminating everything.
15894
15895 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15896
15897         * icall.c: added 2 new async calls for Socket.
15898
15899         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
15900         IO on *nix systems.
15901
15902         * threadpool.c: removed unused variable.
15903
15904 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
15905
15906         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
15907
15908 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15909
15910         * locales.c: put back string_invariant_tolower () and
15911         string_invariant_toupper ().
15912
15913 2004-04-26 David Waite <mass@akuma.org>
15914
15915         * file-io.h:
15916         * socket-io.h:
15917         * threads.h:
15918         * unicode.h: remove comma from end of enumeration declarations
15919
15920 2004-04-26 David Waite <mass@akuma.org>
15921
15922         * debug-mono-symfile.h:
15923         * decimal.c:
15924         * mono_debug.h:
15925         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
15926
15927
15928 2004-04-26  Jackson Harper  <jackson@ximian.com>
15929
15930         * appdomain.c: Increment version number.
15931         
15932 2004-04-26  Jackson Harper  <jackson@ximian.com>
15933
15934         * appdomain.c: Set assembly references public token value when
15935         PublicKeyToken is specified, not the hash_value. Free public token
15936         values when free assembly name data. Previously the public key
15937         token was hex decoded, however we are using hex encoded public key
15938         tokens, so this is not neccasary.
15939         * assembly.c: Lookup assemblies in the gac if their public token
15940         value is set. Add function to allow enabling user gac
15941         lookups. Specify whether or not the assembly was loaded from the
15942         GAC. Compare full assembly names when checking the cache for
15943         assemblies (Temporarily disabled see comment in code). Remove
15944         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
15945         specifies trace-loader they get extra info to stdout on the
15946         loading of assemblies.
15947         * image.h: Add a field for an assembly references public token
15948         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
15949         whether an assembly has been loaded from the GAC.
15950         * image.c: Remove a corlib -> mscorlib name mapping.
15951         * loader.h: Add function to enable/disable the user gac.
15952         * mono-config.c: Check if the usergac is enabled in the config
15953         file.
15954         * icall.c: New icall to determine whether or not an assembly has
15955         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
15956         * tabldefs.h: Add constant for assemblyref flag that specifies a
15957         full public key is used instead of a public token.
15958         * reflection.c: Remove mscorlib -> corlib mappings. Set
15959         PublicTokenValue instead of hash value. This value is a hex
15960         string so it does not need to be expanded.
15961
15962 2004-04-26  Martin Baulig  <martin@ximian.com>
15963
15964         * mono-debug-debugger.c (mono_debugger_initialize): Set
15965         `mono_debugger_initialized' before calling mono_debug_lock().
15966
15967 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
15968
15969         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
15970           InternalToUpper/InternalToLower.
15971         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
15972           removed invariant culture shortcut.  This is now done in managed code.
15973         * locales.c: (string_invariant_toupper/tolower) removed.
15974
15975 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15976
15977         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
15978         Added Poll internal call.
15979
15980         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
15981         call for Poll. Select was too heavy for polling a single socket.
15982
15983         * threadpool.[ch]: added mono_threadpool_cleanup.
15984         * threads.c: use it. Don't use Thread_Abort on windows.
15985
15986 2004-04-23  Martin Baulig  <martin@ximian.com>
15987
15988         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
15989
15990 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
15991
15992         * icall.c: Registred new icalls for key pair protection and added an
15993         icall for Environment.GetFolderPath on Windows.
15994         * security.c|h: Added new icalls for key pair protection.
15995
15996 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15997
15998         * socket-io.c: don't display the non-supported family warning for known
15999         families. Now this is not displayed on windows when checking support
16000         for IPv4/IPv6.
16001
16002 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16003
16004         * class.c: don't display the layout warning for static fields.
16005
16006 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
16007
16008         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
16009         * locales.c, locales.h: Added new icalls for culture-specific
16010         Char.ToLower and Char.ToUpper.
16011
16012 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16013
16014         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
16015         by David Waite.
16016
16017 2004-04-20  Martin Baulig  <martin@ximian.com>
16018
16019         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
16020         of the type name before passing it to mono_reflection_type_from_name().
16021
16022 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
16023
16024         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
16025         encodings here. Fixes #56965.
16026
16027 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
16028
16029         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
16030         fix test on strstr result not that I can see anything that
16031         relies on the result.
16032
16033 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
16034
16035         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
16036         Fixes #57081.
16037
16038         * marshal.c (mono_marshal_get_string_encoding): New helper function.
16039
16040         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
16041         function to determine which marshalling to use for strings. Fixes
16042         #56965.
16043
16044         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
16045
16046         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
16047
16048 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
16049
16050         * icall.c: #include mono-config.h
16051
16052 2004-04-15  Jackson Harper  <jackson@ximian.com>
16053
16054         * culture-info-tables.h: Fix date formats for en-US culture.
16055         
16056 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
16057
16058         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
16059         ThreadPool.SetMinThreads.
16060         * threadpool.c: Implemented ThreadPool.GetMinThreads and
16061         ThreadPool.SetMinThreads.
16062
16063 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
16064
16065         * mono-config.c: also load the .config file in the directory
16066         where the assembly was found.
16067
16068 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
16069
16070         * assembly.c: load per-assembly config files.
16071         * icall.c: decrapified code to get the config dir and moved to
16072         mono-config.c.
16073         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
16074         per-assembly config files. When doing a dll map lookup give precedence
16075         to the per-assembly data.
16076
16077 2004-04-14  Martin Baulig  <martin@ximian.com>
16078
16079         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
16080         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
16081         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
16082
16083         * mono-debugger-debugger.c: While the debugger is locked, remember
16084         whether the symbol tables have changes and send one single
16085         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
16086
16087 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
16088
16089         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
16090
16091         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
16092         function.
16093
16094         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
16095         account when marshalling string arrays. Fixes #56965.
16096
16097 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
16098
16099         * icall.c: Add new icalls mapping for security.
16100         * security.c|h: Add internal calls for WindowsIdentity,
16101         WindowsImpersonationContext and WindowsPrincipal.
16102
16103 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
16104
16105         * class.c: Added comment to ensure the System.MonoDummy class
16106         is removed when no longer necessary
16107
16108 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
16109
16110         * appdomain.c: Pass arguments to the bootstraping exceptions to
16111         minimize JITed methods at boot
16112
16113         * metadata.c (mono_exception_from_name_two_strings): Allow for the
16114         second string to be null.
16115
16116         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
16117         Change the protocol to minimize the JIT methods at startup.  Now
16118         it Returns the internal codepage, if the value of "int_code_page"
16119         is 1 at entry, and we can not compute a suitable code page
16120         number, returns the code page as a string.
16121
16122 2004-04-13  Jackson Harper  <jackson@ximian.com>
16123
16124         * culture-info-tables.h: Fix number of decimal digits for all
16125         english locales.
16126
16127 2004-04-13  Jackson Harper  <jackson@ximian.com>
16128
16129         * icall.c: Clairfy out of sync error message. It is not always
16130         your corlib that is out of sync.
16131
16132 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
16133
16134         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
16135         properties when only the set accessor is overriden. Fixes #55874.
16136
16137 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
16138
16139         * assembly.c (mono_assembly_load_references): Make this thread safe.
16140         Fixes #56327.
16141
16142 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
16143
16144         * monosn.c: Add missing initialization calls.
16145
16146 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
16147
16148         * locales.c:
16149         ves_icall_System_Globalization_CultureInfo_construct_number_format
16150         Fix g_assert so it compiles on fussier compilers re int/ptr
16151         mismatch
16152
16153 2004-04-08  Dick Porter  <dick@ximian.com>
16154
16155         * socket-io.h:
16156         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
16157         53992.  Also rearrange the code so that the internal calls return
16158         an error value and exceptions are thrown from managed code.
16159
16160         * icall.c: Add type info to the socket icalls.
16161
16162 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16163
16164         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
16165         owes me a beer.
16166
16167 2004-04-07  Martin Baulig  <martin@ximian.com>
16168
16169         * class.c (mono_class_from_generic_parameter): Don't default
16170         `klass->parent' to `mono_defaults.object_type'.
16171
16172 2004-04-07  Martin Baulig  <martin@ximian.com>
16173
16174         * reflection.c (mono_reflection_initialize_generic_parameter): Set
16175         `param->pklass->reflection_info'.       
16176
16177 2004-04-07  Jackson Harper  <jackson@ximian.com>
16178
16179         * culture-info-tables.h: Fix date separator symbol.
16180         
16181 2004-04-07  Martin Baulig  <martin@ximian.com>
16182
16183         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
16184         from System.Type to System.MonoType.
16185
16186 2004-04-07  Martin Baulig  <martin@ximian.com>
16187
16188         * reflection.h
16189         (MonoReflectionGenericParam): Added `has_reference_type' and
16190         `has_value_type' fields.
16191
16192         * reflection.c (mono_image_get_generic_param_info): Encode the
16193         correct flags if we have the `class' or `struct' constraint.
16194
16195 2004-04-07  Martin Baulig  <martin@ximian.com>
16196
16197         * reflection.h
16198         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
16199
16200 2004-04-07  Jackson Harper  <jackson@ximian.com>
16201
16202         * appdomain.c: Revert extra patches, just wanted to bump the
16203         version number.
16204         
16205 2004-04-07  Jackson Harper  <jackson@ximian.com>
16206
16207         * Makefile.am: Add culture-info private headers.
16208         * icall.c: Add new icalls for contructing locales.
16209         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
16210         * locales.h: Declare new culture info construction methods.
16211         * object.h: Add new fields used to avoid the CultureMap to
16212         MonoCultureInfo.
16213         * culture-info.h: Definition of structs used in the culture info
16214         tables.
16215         * culture-info-tables.h: Autogenerated tables that contain culture
16216         info data. This file was generated with the locale-builder tool.
16217         * appdomain.c: Incement corlib version number.
16218         
16219 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
16220
16221         * appdomain.c: (mono_runtime_init) move mono_thread_init
16222         to before mono_object_new calls so critical sections
16223         are initialized before use.
16224
16225 2004-04-07  Martin Baulig  <martin@ximian.com>
16226
16227         * icall.c
16228         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
16229         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
16230         (ves_icall_MonoGenericParam_initialize): Removed.
16231         (monogenericparam_icalls): Removed.
16232         (generictypeparambuilder_icalls): Added new table for
16233         System.Reflection.Emit.GenericTypeParameterBuilder.
16234
16235         * reflection.c
16236         (mono_reflection_define_generic_parameter): Removed.
16237         (mono_reflection_initialize_generic_parameter): This is now called
16238         from GenericTypeParameterBuilder's .ctor.
16239
16240 2004-04-06  Martin Baulig  <martin@ximian.com>
16241
16242         * class.c (mono_class_init): Don't inflate nested classes in a
16243         generic instance.
16244         (mono_type_get_name_recurse): Include the generic arguments for
16245         generic instances and generic type declarations.
16246         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
16247         (_mono_class_get_instantiation_name): Removed.
16248         (mono_class_create_generic): Always use `gklass->name' as our name.
16249
16250         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
16251
16252         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
16253         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
16254         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
16255         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
16256         closed generic methods here.
16257
16258         * reflection.c
16259         (mono_reflection_generic_inst_get_nested_types): Removed.
16260         (inflate_mono_method): Copy the generic parameters from the
16261         MonoMethodHeader into out MonoGenericMethod.
16262
16263 2004-04-06  Martin Baulig  <martin@ximian.com>
16264
16265         * row-indexes.h
16266         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
16267
16268         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
16269
16270         * reflection.c (build_compressed_metadata): If we have any entries
16271         in the GenericParam, MethodSpec or GenericParamConstraint tables,
16272         set the header version to 1.1.
16273
16274 2004-04-06  Martin Baulig  <martin@ximian.com>
16275
16276         * class.c (mono_class_init): If we're a generic instance,
16277         initialize our nested classes, too.
16278         (_mono_class_get_instantiation_name): Deal with the new `!%d'
16279         suffix. 
16280
16281 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16282
16283         * process.c: quote the argument passed to the shell on windows.
16284
16285 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
16286
16287         * threads.c (mono_alloc_special_static_data): Allow this to be
16288         called during startup.
16289
16290 2004-04-02  Martin Baulig  <martin@ximian.com>
16291
16292         * icall.c
16293         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
16294
16295 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
16296
16297         * icall.c: Fix build.
16298
16299 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
16300
16301         * Makefile.am: Added security.c|h.
16302         * icall.c: Added icall for get_UserName;
16303         * security.c: New file for security related icalls. Added function
16304         get_UserName for System.Environment (fix #56144).
16305         * security.h: New. Header file for security.c
16306
16307 2004-04-02  Dick Porter  <dick@ximian.com>
16308
16309         * icall.c: Deleted the icalls that were obsoleted some time ago
16310         by the ICU string code, and which were mixed into the icall
16311         rearranging.  Fixes bug 55969.
16312
16313         * string-icalls.h: 
16314         * string-icalls.c: Deleted the code that those icalls reference.
16315
16316 2004-04-01  Martin Baulig  <martin@ximian.com>
16317
16318         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
16319
16320         * class.c (mono_class_from_generic_parameter): Don't set 
16321         TYPE_ATTRIBUTE_INTERFACE.
16322         (my_mono_class_from_generic_parameter): Likewise.
16323
16324 2004-04-01  Martin Baulig  <martin@ximian.com>
16325
16326         * loader.c (find_method): Added an optional `MonoClass *ic'
16327         argument to search in a specific interface.
16328         (mono_get_method_constrained): New public function.
16329
16330 2004-04-01  Martin Baulig  <martin@ximian.com>
16331
16332         * reflection.c (mono_image_get_generic_field_token): Use the
16333         `handleref' cache here.
16334
16335 2004-04-01  Martin Baulig  <martin@ximian.com>
16336
16337         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
16338
16339         * reflection.c (create_generic_typespec): Use the `typespec' hash
16340         here, not the `typeref' one.    
16341
16342 2004-04-01  Martin Baulig  <martin@ximian.com>
16343
16344         * class.c (mono_class_inflate_generic_type): Moved the
16345         functionality into a new static inflate_generic_type() which
16346         returns NULL if it didn't do anything.  Only increment the
16347         `mono_stats.inflated_type_count' if we actually inflated
16348         something.
16349         (mono_class_get_full): Check the classes type to see whether we
16350         need to inflate it; also inflate MONO_TYPE_(M)VAR.
16351
16352 2004-04-01  Jackson Harper  <jackson@ximian.com>
16353
16354         * reflection.c: Set culture for assembly references.
16355         
16356 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
16357
16358         * reflection.[ch], icall.[ch], Fix support for pinning variables.
16359
16360 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16361
16362         * assembly.c:
16363         (do_mono_assembly_open): the critical section also covers
16364         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
16365
16366 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16367
16368         * threads.c:
16369         (mono_manage_threads): abort the background threads when finishing.
16370         Fixes bug #47232.
16371
16372 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16373
16374         * gc.c: only close the done_event handle if there was no timeout.
16375         C-ified comments.
16376
16377 2004-03-30  Martin Baulig  <martin@ximian.com>
16378
16379         * icall.c (icall_entries): It's called "System.Activator", not
16380         "System.Activation".    
16381
16382 2004-03-30  Martin Baulig  <martin@ximian.com>
16383
16384         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
16385         (mono_class_create_from_typespec): Likewise.
16386
16387 2004-03-30  Martin Baulig  <martin@ximian.com>
16388
16389         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
16390         `has_ctor_constraint' and `initialized'.
16391
16392 2004-03-30  Martin Baulig  <martin@ximian.com>
16393
16394         * reflection.c (encode_new_constraint): New static function to add
16395         the constructor constraint attribute to a type parameter.
16396         (encode_constraints): Call encode_new_constraint() if necessary.
16397
16398         * reflection.h
16399         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
16400
16401         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
16402         
16403 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
16404
16405         * reflection.c, icall.c: add support for pinning variables. 
16406
16407 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
16408
16409         * marshal.c (mono_marshal_get_managed_wrapper):
16410         init bool local with zero rather than null.
16411
16412 2004-03-29  Martin Baulig  <martin@ximian.com>
16413
16414         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
16415         the "official" behavior here.
16416         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
16417
16418 2004-03-29  Martin Baulig  <martin@ximian.com>
16419
16420         * icall.c: Reflect latest API changes.
16421
16422 2004-03-29  Martin Baulig  <martin@ximian.com>
16423
16424         * loader.c (mono_get_method_from_token): Also call
16425         mono_metadata_load_generic_params () for abstract and interface
16426         methods; replace the type arguments in the method signature with
16427         the ones which are loaded from the metadata.
16428
16429 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
16430
16431         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
16432         of the lock is not the current thread. MS.NET don't do it, in spite of
16433         what the documentation says. See bug #56157.
16434
16435 2004-03-28  Martin Baulig  <martin@ximian.com>
16436
16437         * class.c (mono_class_init): Don't call init_properties() and
16438         init_events() for generic instances; set `prop->parent' when
16439         inflating properties.
16440
16441         * reflection.c (mono_generic_inst_get_object): Call
16442         `mono_class_init (ginst->klass)'.
16443         (mono_type_get_object): Only create a MonoGenericInst if your
16444         generic type is a TypeBuilder.
16445         (do_mono_reflection_bind_generic_parameters): Only set
16446         `ginst->is_dynamic' if our generic type is a TypeBuilder.
16447
16448 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
16449
16450         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
16451         Fixes #56091.
16452
16453 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16454
16455         * icall.c: added Kill_internal icall.
16456         * process.[ch]: added Kill_internal icall.
16457
16458 2004-03-25  Martin Baulig  <martin@ximian.com>
16459
16460         * class.h (MonoStats): Added `generic_instance_count',
16461         `inflated_method_count', `inflated_type_count' and
16462         `generics_metadata_size'.       
16463
16464 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16465
16466         * reflection.c: no warnings now.
16467
16468 2004-03-25  Martin Baulig  <martin@ximian.com>
16469
16470         * class.c (mono_class_get_full): New public function; does a
16471         mono_class_get(), but also takes a `MonoGenericContext *'.
16472
16473         * loader.c (mono_field_from_memberref): Renamed to
16474         `field_from_memberref', made static and added `MonoGenericContext *'
16475         argument.
16476         (mono_field_from_token): Added `MonoGenericInst *' argument.
16477         (method_from_memberef): Likewise.
16478         (mono_get_method_from_token): Likewise.
16479         (mono_get_method_full): New public function; does a
16480         mono_get_method(), but also takes a `MonoGenericContext *'.
16481
16482         * verify.c (mono_method_verify): Get the method's generic context
16483         and pass it to mono_field_from_token(), mono_get_method_full() and
16484         mono_class_get_full().
16485
16486 2004-03-25  Martin Baulig  <martin@ximian.com>
16487
16488         * class.c (mono_class_inflate_generic_type): Take a
16489         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
16490         `MonoGenericMethod *'.
16491
16492 2004-03-25  Martin Baulig  <martin@ximian.com>
16493
16494         * loader.h (MonoMethodInflated): Store the MonoGenericContext
16495         instead of the MonoGenericMethod here.
16496
16497 2004-03-25  Martin Baulig  <martin@ximian.com>
16498
16499         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
16500         each time we create a new MonoGenericInst, we also create a new
16501         context which points back to us.
16502
16503         * class.c (inflate_method): Use `ginst->context' instead of
16504         creating a new context.
16505
16506         * loader.c (method_from_memberref): Use
16507         `klass->generic_inst->context' instead of creating a new context.
16508
16509 2004-03-25  Martin Baulig  <martin@ximian.com>
16510
16511         * class.h (MonoGenericContext): New struct.
16512         (MonoGenericMethod): Removed `generic_inst'.
16513
16514         * class.c (mono_class_inflate_generic_method): Take a
16515         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
16516
16517 2004-03-25  Martin Baulig  <martin@ximian.com>
16518
16519         * loader.h (MonoMethodInflated): New typedef.
16520
16521         * metadata.h (MonoMethodSignature): Removed `gen_method', make
16522         `generic_param_count' consume just 30 bits, added `is_inflated'
16523         and `has_type_parameters' flags (one bit each).
16524
16525         * class.c (mono_class_inflate_generic_method): Create a
16526         MonoMethodInflated instead of a MonoMethodNormal and set
16527         `is_inflated' in the method signature.
16528
16529         * class.h (MonoGenericMethod): Removed `generic_method'.
16530
16531 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
16532
16533         * image.c: Make sure the name of a MonoImage is always an absolute path.
16534           This fixes bug #54415.
16535
16536 2004-03-24  Martin Baulig  <martin@ximian.com>
16537
16538         * class.c (mono_class_setup_vtable): If we're a generic instance,
16539         use our generic type's vtable size.
16540
16541 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
16542
16543         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
16544         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
16545         problems.
16546
16547 2004-03-23  Martin Baulig  <martin@ximian.com>
16548
16549         * class.h (MonoDynamicGenericInst): Added `int count_events' and
16550         `MonoEvent *events'.
16551
16552         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
16553         (typebuilder_icalls): Added "get_event_info"; calls
16554         mono_reflection_event_builder_get_event_info(). 
16555
16556         * reflection.c (mono_reflection_generic_inst_initialize): Added
16557         `MonoArray *events'.
16558         (mono_reflection_event_builder_get_event_info): New function.
16559
16560 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
16561
16562         * object.h: add mono_type_initialization_init
16563
16564         * object.c (mono_runtime_class_init): 
16565         implement class constructor synchronization rules
16566         to cope with threading issues.  
16567         add mono_type_initialization_init
16568
16569         * appdomain.c (mono_runtime_init): call 
16570         mono_type_initialization_init
16571
16572         * class.h: removing initializing field from MonoVTable
16573
16574 2004-03-23  Martin Baulig  <martin@ximian.com>
16575
16576         * class.c (my_mono_class_from_generic_parameter): Use
16577         `param->name' if it's not NULL. 
16578
16579 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
16580
16581         * class.c: do not insert non-virtual methods in the vtable.
16582         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
16583         that means the method is non-virtual. This never would have
16584         happened before.
16585
16586 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
16587
16588         * profiler.c: Added lock for accessing coverage_hash.
16589
16590 2004-03-22  Martin Baulig  <martin@ximian.com>
16591
16592         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
16593         `method->method->signature->generic_param_count != 0' to make it
16594         work for interface methods.
16595
16596 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16597
16598         * process.c: quote the string passed to the shell using g_shell_quote.
16599
16600 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16601
16602         * threads.c:
16603         (mono_threads_manage): don't remove the finalizer thread and self
16604         from the threads hash table so that mono_thread_manage can be called
16605         more than once.
16606
16607 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16608
16609         * process.c: quote the arguments when UseShellExecute is true. Fixes
16610         bug #55790.
16611
16612 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16613
16614         * threads.c: set mono_thread_detach as a cleanup routine for every
16615         thread. This way it's always executed upon thread termination, either
16616         aborted or finished normally. No more xsp hangs!
16617
16618 2004-03-17  Martin Baulig  <martin@ximian.com>
16619
16620         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
16621         `int count_nested' and a `MonoType **nested'.
16622
16623         * reflection.c (mono_reflection_bind_generic_parameters): Moved
16624         most of the functionality into a new static
16625         do_mono_reflection_bind_generic_parameters() and don't take a
16626         `MonoType *nested_in' argument any more.  Don't compute nested
16627         types here.
16628         (mono_reflection_generic_inst_get_nested_types): New public method
16629         to get nested types.
16630
16631         * class.c (mono_class_create_generic): Set `klass->nested_in' if
16632         we're a nested class.
16633
16634         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
16635         mono_reflection_generic_inst_get_nested_types() to compute the
16636         nested types.
16637
16638 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
16639
16640         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
16641         descriptive error message under windows.
16642         
16643 2004-03-17  Martin Baulig  <martin@ximian.com>
16644
16645         * class.c (dup_type): Added `const MonoType *original' argument;
16646         copy the attrs from the original type.
16647
16648 2004-03-17  Martin Baulig  <martin@ximian.com>
16649
16650         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
16651         `m->generic_inst_cache' here.
16652
16653 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
16654
16655         * exception.h exception.c: Add stack_overflow_exception.
16656
16657 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16658
16659         * threadpool.c:
16660         (overlapped_callback): call SetEvent *after* invoking the callback.
16661         No need to call CloseHandle.
16662
16663 2004-03-16  Martin Baulig  <martin@ximian.com>
16664
16665         * reflection.c (mono_image_get_fieldref_token): Take a
16666         `MonoReflectionField *' instead of a `MonoClassField *' and a
16667         `MonoClass *'; store the `MonoReflectionField *' in the hash.
16668
16669 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16670
16671         * appdomain.c: don't add the culture to the filename we're looking for
16672         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
16673
16674 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16675
16676         * locales.c: don't ignore symbols when doing case insensitive compares.
16677         Thanks Dick! Fixes bug #54046.
16678
16679         * threads.c: surround 'threads' usage with enter/leave in
16680         mono_thread_manage.
16681
16682 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
16683
16684         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
16685         implicitly marshalled as [Out]. Fixes #55450.
16686
16687         (mono_marshal_get_runtime_invoke): Zero out the result if there is
16688         an exception.
16689
16690 2004-03-16  Martin Baulig  <martin@ximian.com>
16691
16692         * class.c (mono_class_from_generic_parameter): Use the actual
16693         parameter name. 
16694
16695 2004-03-16  Martin Baulig  <martin@ximian.com>
16696
16697         * reflection.c (type_get_signature_size): New static function.
16698         Compues the size of the type in a method signature.
16699         (method_get_signature_size): New static function; calls
16700         type_get_signature_size() to compute the actual size of the
16701         method's signature.
16702         (method_encode_signature): Use method_get_signature_size() to get
16703         the signature's size rather than using `nparams * 10'.
16704
16705 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16706
16707         * file-io.h: define here WapiOverlapped on windows. I don't want the
16708         regular OVERLAPPED one.
16709
16710         * file-io.c:
16711         * threadpool.c: somehow, BindIoCompletionCallback is not found.
16712         Disabling AIO on windows.
16713
16714 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16715
16716         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
16717         bug #55385.
16718
16719 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16720
16721         * appdomain.c: upgraded corlib version.
16722
16723         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
16724         and BeginWrite. Allow opening files for asynchrnous operations.
16725
16726         * file-io.h: new struct that maps FileStreamAsyncResult.
16727         * icall.c: added new icalls.
16728         * process.[ch]: support setting child process environment variables
16729         and use the SHELL or COMSPEC when UseShellExecute is true.
16730
16731         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
16732         callback for async. IO is here and also BindHandle.
16733
16734         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
16735         from here.
16736
16737 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
16738
16739         * reflection.c (create_custom_attr): Allow len == 0.
16740
16741         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
16742         computation on big-endian machines.
16743
16744 2004-03-13  Martin Baulig  <martin@ximian.com>
16745
16746         * class.h (MonoGenericInst): Added `int count_ifaces'.
16747
16748         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
16749         `ginst->count_ifaces' instead `klass->interface_count' since we
16750         may get called before the vtable is created.
16751
16752         * loader.c (mono_method_get_param_names): If we're a generic
16753         instance, return and don't initialize the class.
16754
16755         * reflection.c (mono_reflection_setup_generic_class): Don't call
16756         ensure_runtime_vtable().
16757         (mono_reflection_bind_generic_parameters): Set
16758         `ginst->count_ifaces'.
16759
16760 2004-03-11  Jackson Harper <jackson@ximian.com>
16761
16762         * icall.c:
16763         * unicode.c:
16764         * unicode.h: Remove unused System.Char icalls.
16765         
16766 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
16767
16768         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
16769         code when we P/Invoke the first library in Windows.Forms, instead
16770         of when we first open the assembly.
16771
16772         * assembly.c: Drop the lookup from here.
16773
16774 2004-03-10  Martin Baulig  <martin@ximian.com>
16775
16776         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
16777         class for properties, fields and events.  Finally fixes #54945.
16778
16779 2004-03-10  Martin Baulig  <martin@ximian.com>
16780
16781         * metadata.c (mono_metadata_class_equal): New static function;
16782         checks whether two generic instances or two generic parameters are
16783         equal.
16784         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
16785         compare classes.        
16786
16787 2004-03-10  Martin Baulig  <martin@ximian.com>
16788
16789         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
16790
16791         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
16792         argument and write it into the `reflection_info' field.
16793
16794         * icall.c
16795         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
16796         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
16797
16798 2004-03-09  Jackson Harper  <jackson@ximian.com>
16799
16800         * char-conversions.h: use 8 bits for numeric data its all we need
16801         * icall.c: numeric data is only 8 bits now.
16802
16803 2004-03-09  Martin Baulig  <martin@ximian.com>
16804
16805         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
16806
16807         * class.c (init_properties, init_events): Initialize the new
16808         `parent' field.
16809
16810         * reflection.c (typebuilder_setup_properties): Likewise.
16811         (typebuilder_setup_events): Likewise.
16812
16813         * reflection.h (MonoEventInfo): Replaced `parent with
16814         `declaring_type' and `reflected_type'.
16815
16816         * icall.c (ves_icall_get_property_info): Distinguish between
16817         declaring and reflected type.
16818         (ves_icall_get_event_info): Likewise.
16819
16820 2004-03-09  Martin Baulig  <martin@ximian.com>
16821
16822         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
16823         (ves_icall_Type_GetField): Correctly set field->klass.
16824
16825 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
16826
16827         * loader.h: Fix warning.
16828
16829 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
16830
16831         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
16832         library routine if present.  Notice that it will still continue
16833         executing even if its missing, for those working on the Gtk#
16834         edition of Windows.Forms.
16835
16836         * assembly.c (do_mono_assembly_open): If loading the
16837         System.Windows.Forms call mono_loader_wini_init.
16838
16839 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
16840
16841         * class.h: Added MonoRemoteClass struct.
16842         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
16843         function for MonoStrings.
16844         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
16845         Added internal call for getting the proxy type.
16846         * marshal.c: Get the type of transparent proxies from its remote_class.
16847         Added methods that generate the IL for type checks and casts:
16848         mono_marshal_get_isinst, mono_marshal_get_castclass, 
16849         mono_marshal_get_proxy_cancast.
16850         * marshal.h: Declaration of the previous new methods.
16851         * object.c: Added new moethods for creating and updating MonoRemoteClass
16852         instances: mono_remote_class, mono_upgrade_remote_class, 
16853         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
16854         * verify.c: FIx transparent_proxy_fields layout.
16855         * appdomain.c: Bump corlib version.
16856
16857 2004-03-04  Jackson Harper  <jackson@ximian.com>
16858
16859         * icall.c: Add icall to access char conversion tables.
16860         * char-conversions.h: Character conversion tables.
16861         * Makefile.am: Add char-conversions.h private header file.
16862         
16863 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
16864
16865         * appdomain.c (unload_thread_main): Increase unloading timeout to
16866         10 sec as a temporary workaround for Nant problems.
16867
16868 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
16869
16870         * gc.c: Add checks for GC_enable and GC_disable.
16871
16872         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
16873         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
16874         (bug #54988).
16875         
16876 2004-02-27  Martin Baulig  <martin@ximian.com>
16877
16878         * reflection.c (mono_reflection_bind_generic_parameters): Take a
16879         `MonoReflectionType *' instead of a `MonoType *'.
16880
16881 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
16882
16883         * gc.c (run_finalize): Avoid finalizing the object representing the
16884         finalizer thread.
16885         (finalizer_thread): Fix warning.
16886
16887 2004-02-25  Martin Baulig  <martin@ximian.com>
16888
16889         * class.c (_mono_class_get_instantiation_name): Added `int offset'
16890         argument for nested types.
16891         (mono_class_create_generic): Added support for nested generictypes.
16892
16893         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
16894         `GList *nested'.
16895
16896         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
16897
16898         * reflection.c (method_encode_signature): Increase the minimum
16899         value of `size' from 10 to 11.
16900         (mono_reflection_bind_generic_parameters): Take `int type_argc'
16901         and `MonoType **types' arguments instead of the `MonoArray
16902         *types'; added `MonoType *nested_in'.  Recursively instantiate
16903         nested classes. 
16904
16905 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
16906
16907         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
16908         stack_overflow_ex members which are used by exception handling.
16909
16910         * appdomain.c (mono_runtime_init): Initialize the new members.
16911
16912         * gc.c (mono_gc_enable): New helper function.
16913         * gc.c (mono_gc_disable): New helper function.
16914
16915 2004-02-23  Martin Baulig  <martin@ximian.com>
16916
16917         * icall.c: I must have been really stupid - make it actually work
16918         this time ;-)
16919
16920 2004-02-23  Martin Baulig  <martin@ximian.com>
16921
16922         * loader.c (method_from_memberref): Only inflate the method if
16923         it's in another klass.
16924
16925 2004-02-23  Martin Baulig  <martin@ximian.com>
16926
16927         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
16928         (mono_class_init): If we're a generic instance and an interface,
16929         compute `class->interface_id'; also create `class->interfaces'
16930         here and inflate them.
16931
16932         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
16933         `ginst->is_open'.
16934         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
16935
16936         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
16937
16938 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
16939
16940         * reflection.c (method_encode_code): Improved the error message
16941         generated by the exception.
16942
16943 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16944
16945         * icall.c: Martin did not do what he said in the ChangeLog for
16946         2004-02-18, but put back the changes for properties and events.
16947         Commenting those changes out again and adding comment to bug #54518.
16948         
16949         * process.c: removed warning.
16950
16951 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
16952
16953         * marshal.c (emit_struct_conv): Print an error message instead of
16954         asserting when a type does not have the StructLayout attribute.
16955
16956 2004-02-20  Martin Baulig  <martin@ximian.com>
16957
16958         * reflection.c (mono_type_get_object): Also use the cache for
16959         generic instances.
16960         (mono_reflection_bind_generic_parameters): Always compute
16961         `ginst->ifaces'.        
16962
16963 2004-02-20  Martin Baulig  <martin@ximian.com>
16964
16965         * class.h (MonoGenericMethod): Removed `klass'.
16966
16967         * class.c (mono_class_inflate_generic_method): Added `MonoClass
16968         *klass' argument.
16969
16970 2004-02-20  Martin Baulig  <martin@ximian.com>
16971
16972         * reflection.c (method_encode_methodspec): Actually use the
16973         uninflated signature for the memberref.
16974
16975 2004-02-20  Martin Baulig  <martin@ximian.com>
16976
16977         * class.h (MonoGenericMethod): Removed `declaring'.
16978
16979         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
16980         is NULL, compute it here.
16981
16982 2004-02-20  Martin Baulig  <martin@ximian.com>
16983
16984         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
16985
16986         * metadata.c (mono_metadata_generic_inst_hash): New method.
16987         (mono_metadata_generic_inst_equal): New method.
16988
16989         * reflection.c (mono_reflection_bind_generic_parameters): Use the
16990         `klass->image->generic_inst_cache' cache to avoid creating
16991         duplicate MonoGenericInst's.
16992
16993         * class.c (mono_class_inflate_generic_type): Use the cache.
16994
16995 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
16996
16997         * object.c: fixed gc descriptor calculation for embedded valuetypes.
16998
16999 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17000
17001         * icall.c: added Socket.WSAIoctl icall.
17002
17003         * socket-io.[ch]: implemented
17004         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
17005
17006 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
17007
17008         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
17009
17010 2004-02-18  Urs C Muff  <umuff@quark.com>
17011
17012         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
17013         this work on PPC and other big-endian architectures.
17014
17015         * debug-mono-symfile.h: Prepended the names of all the `guint32'
17016         fields with an underscore to make sure they're only accessed by
17017         the read32() macro.
17018
17019 2004-02-18  Martin Baulig  <martin@ximian.com>
17020
17021         * icall.c: Put the klass->refclass changes back for methods and
17022         fields, but not for properties and events.  We're currently not
17023         distinguishing between DeclaringType and ReflectedType for
17024         properties and events, that's what caused the regressions.
17025
17026 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17027
17028         * object.c:
17029         (mono_async_result_new): the handle can be NULL.
17030
17031         * threadpool.c: Use an event instead of a semaphore, don't initialize
17032         it until needed. This saves quite a few semaphores from being created
17033         when using the threadpool.
17034
17035 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
17036
17037         * object.c (mono_string_is_interned_lookup): Fix interning of long
17038         strings. Fixes #54473.
17039
17040         * domain.c (ldstr_equal): Optimize if the two strings are equal.
17041
17042         * icall.c: Revert the klass->refclass changes since they introduce
17043         regressions (bug #54518).
17044
17045 2004-02-18  Martin Baulig  <martin@ximian.com>
17046
17047         * class.c (mono_class_init): If we're a generic instance and don't
17048         come from a TypeBuilder, inflate our members here.
17049         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
17050         (mono_class_create_generic): New public method.
17051         (mono_class_initialize_generic): Removed.
17052         (get_instantiation_name): Renamed to
17053         _mono_class_get_instantiation_name() and made it public.
17054
17055 2004-02-18  Martin Baulig  <martin@ximian.com>
17056
17057         * class.c (mono_class_inflate_generic_type): Clear the new
17058         instance's `nginst->klass' when inflating a generic instance.
17059         (mono_class_is_subclass_of): Added (basic) support for generic
17060         instances.
17061
17062 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
17063
17064         * appdomain.h, domain.c: use a MonoCodeManager instead of a
17065         MonoMempool to hold compiled native code.
17066
17067 2004-02-17  Martin Baulig  <martin@ximian.com>
17068
17069         * class.h (MonoDynamicGenericInst): Added `count_properties' and
17070         `properties'.
17071
17072         * reflection.c (mono_reflection_generic_inst_initialize): Added
17073         `MonoArray *properties' argument.
17074
17075         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
17076
17077 2004-02-17  Martin Baulig  <martin@ximian.com>
17078
17079         * icall.c (ves_icall_Type_GetFields): Renamed to
17080         ves_icall_Type_GetFields_internal() and added a
17081         `MonoReflectionType *rtype' argument; pass it to
17082         mono_field_get_object() to set the field's "reflected" type.
17083         (ves_icall_Type_GetConstructors): Likewise.
17084         (ves_icall_Type_GetEvents): Likewise.
17085         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
17086         argument; pass it to mono_method_get_object() to set the method's
17087         "reflected" type.       
17088
17089 2004-02-17  Martin Baulig  <martin@ximian.com>
17090
17091         * class.h (MonoDynamicGenericInst): New type.
17092         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
17093
17094         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
17095         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
17096         (ves_icall_MonoGenericInst_GetFields): New interncall.
17097
17098         * class.c (mono_class_from_generic): Don't call
17099         mono_class_initialize_generic() if this is a dynamic instance;
17100         ie. it's being created from a TypeBuilder.
17101         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
17102         `class->byval_arg.type'.
17103
17104         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
17105         to `inflate_method' and made static.
17106         (mono_reflection_inflate_field): Removed.
17107         (mono_reflection_generic_inst_initialize): New public method.
17108
17109         * reflection.h (MonoReflectionGenericInst): Removed `methods',
17110         `ctors' and `fields'; added `initialized'.
17111
17112 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
17113
17114         * debug-helpers.c (mono_method_full_name): Fix output for empty
17115         namespaces.
17116
17117 2004-02-12  Martin Baulig  <martin@ximian.com>
17118
17119         * class.h (MonoClassField): Added `MonoType *generic_type'.
17120
17121         * reflection.c (mono_image_get_fieldref_token): Added support for
17122         instantiated generic types.
17123         (field_encode_inflated_field): Removed.
17124         (mono_image_get_inflated_field_token): Removed.
17125         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
17126
17127         * reflection.h (MonoReflectionInflatedField): Removed.
17128
17129 2004-02-12  Martin Baulig  <martin@ximian.com>
17130
17131         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
17132         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
17133
17134         * reflection.c (mono_image_get_methodspec_token): Take a
17135         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
17136         (mono_image_create_token): Check whether we have a
17137         `method->signature->gen_method' and call
17138         mono_image_get_methodspec_token() if appropriate.
17139         (inflated_method_get_object): Removed.
17140         (mono_reflection_bind_generic_method_parameters): Return a
17141         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
17142         (mono_reflection_inflate_method_or_ctor): Likewise.
17143
17144         * reflection.h (MonoReflectionInflatedMethod): Removed.
17145
17146 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
17147
17148         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
17149         for custom valuetype marshalling.
17150
17151         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
17152
17153 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17154
17155         * icall.c: fixed WSAGetLastError_internal name.
17156
17157 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
17158
17159         * threads.c (mono_thread_attach): Allow this to be called multiple
17160         times for a thread.
17161         
17162         * threads.c (build_wait_tids): Do not wait for ourselves.
17163
17164         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
17165         appdomain list is empty.
17166
17167         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
17168         memory returned by mono_string_builder_to_utf16, since it points into
17169         managed memory. Thanks to Bernie Solomon for noticing this.
17170
17171         * icall.c: Add AppDomainSetup icalls.
17172
17173         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
17174
17175         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
17176         types.
17177
17178         * reflection.c (reflection_methodbuilder_to_mono_method): Save
17179         custom attributes to the method_aux struct. Also fix array indexes etc.
17180
17181         * loader.c (mono_method_get_param_names): Make dynamic case work again.
17182         
17183 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
17184
17185         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
17186         (both static and runtime) and reduce startup time.
17187
17188 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
17189
17190         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
17191         AsAny marshalling conversion instead of crashing.
17192
17193         * marshal.c: Fix warnings.
17194
17195 2004-02-09  Martin Baulig  <martin@ximian.com>
17196
17197         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
17198
17199         * reflection.h (MonoReflectionInflatedMethod): Removed the
17200         `declaring' field, it's now in the unmanaged MonoGenericMethod.
17201
17202         * reflection.c (method_encode_methodspec): Removed the `method'
17203         argument; we get it from `gmethod->declaring'.
17204         (inflated_method_get_object): Removed the `declaring' argument.
17205
17206 2004-02-09  Martin Baulig  <martin@ximian.com>
17207
17208         * class.h (MonoGenericMethod): New type.
17209         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
17210         `generic_method'.
17211
17212         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
17213         a `MonoGenericMethod *gen_method' one.
17214
17215         * class.c (mono_class_inflate_generic_type): Take an additional
17216         `MonoGenericMethod * argument.  This is only non-NULL if we're
17217         inflating types for a generic method.   
17218         (mono_class_inflate_generic_signature): Renamed to
17219         inflate_generic_signature() and made static; take a
17220         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
17221         (inflate_generic_header): Take a `MonoGenericMethod *' argument
17222         instead of a `MonoGenericInst *' one.
17223         (mono_class_inflate_generic_method): Likewise.
17224
17225         * reflection.c (encode_generic_method_sig): Take a
17226         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
17227         (method_encode_methodspec): Likewise.
17228         (inflated_method_get_object): Likewise. 
17229
17230         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
17231         field with a `MonoGenericMethod *gmethod' one.  
17232
17233 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
17234
17235         * class.h (mono_class_has_parent): add parens to expansion
17236         so you can ! this.
17237
17238 2004-02-08  Martin Baulig  <martin@ximian.com>
17239
17240         * image.h (MonoImage): Removed `generics_cache'.
17241
17242         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
17243         instead of a `MonoType *' argument; removed the `inflate_methods'
17244         argument.  Don't inflate methods here.
17245
17246         * loader.c (find_method): If it's a generic instance, call
17247         mono_class_init() on the `sclass->generic_inst->generic_type'.
17248
17249         * metadata.c (mono_type_size): Make this work on uninitialized
17250         generic instances; call it on the `ginst->generic_type's class.
17251
17252         * reflection.c (mono_reflection_bind_generic_parameters): Call
17253         mono_class_from_generic() to create the `ginst->klass'.
17254
17255 2004-02-08  Martin Baulig  <martin@ximian.com>
17256
17257         * class.h (MonoClass): Changed type of `generic_inst' from
17258         `MonoType *' to `MonoGenericInst *'.
17259
17260 2004-02-08  Martin Baulig  <martin@ximian.com>
17261
17262         * icall.c (ves_icall_Type_BindGenericParameters): Just call
17263         mono_type_get_object(), this is now creating a `MonoGenericInst'
17264         for MONO_TYPE_GENERICINST.
17265         (ves_icall_MonoGenericInst_GetParentType): Likewise.
17266         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
17267
17268         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
17269         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
17270         (inflated_method_get_object): Added `MonoClass *refclass' argument.
17271         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
17272         and reflected type.
17273
17274         * reflection.h (MonoReflectionInflatedMethod): Removed
17275         `declaring_type' and `reflected_type'.
17276
17277 2004-02-08  Martin Baulig  <martin@ximian.com>
17278
17279         * class.h (MonoGenericInst): Added `MonoType *parent' and
17280         `MonoType **ifaces'.
17281
17282         * reflection.h (MonoReflectionGenericInst): Removed `klass',
17283         `parent' and `interfaces'.
17284
17285         * reflection.c (mono_reflection_bind_generic_parameters): Take a
17286         `MonoType *' argument and return a `MonoType *'.
17287
17288         * icall.c
17289         (ves_icall_MonoGenericInst_GetParentType): New interncall.
17290         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
17291
17292 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
17293
17294         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
17295         valuetype marshalling.
17296
17297 2004-02-06  Martin Baulig  <martin@ximian.com>
17298
17299         * class.c
17300         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
17301         (my_mono_class_from_generic_parameter): Likewise.
17302
17303 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
17304
17305         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
17306         contents of the symbol files lazily.
17307
17308         * object.h (MonoThread): Add 'name' and 'name_len' fields.
17309
17310         * threads.h threads.c icall.c: New icalls for getting and setting the
17311         threads name.
17312
17313 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
17314
17315         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
17316         Raise an exception when the domain is not found.
17317
17318 2004-02-03  Martin Baulig  <martin@ximian.com>
17319
17320         * reflection.c (mono_image_get_methodspec_token): Use the
17321         uninflated signature; fixes gen-33.
17322
17323 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
17324
17325         * gc.c threads.c: Make the finalizer thread a normal managed thread so
17326         the finalizer code can use thread functionality.
17327
17328         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
17329         the finalizer thread.
17330
17331         * threads.c: Make some functions more robust.
17332
17333         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
17334
17335         * metadata.h: Add new marshalling conventions.
17336
17337         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
17338         stringbuilder marshalling. Fixes #53700.
17339
17340         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
17341
17342         * reflection.c (mono_image_get_type_info): Save declarative security
17343         info.
17344
17345         * reflection.c (mono_image_get_field_info): Handle uninitialized 
17346         unmanaged fields as well.
17347
17348         * appdomain.c: Bump corlib version.
17349
17350 2004-02-01  Martin Baulig  <martin@ximian.com>
17351
17352         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
17353         method type arguments.  
17354
17355 2004-01-30  Duncan Mak  <duncan@ximian.com>
17356
17357         * marshal.h: Add prototype for
17358         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
17359         and
17360         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
17361         fix the build.
17362
17363 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
17364
17365         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
17366         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
17367
17368 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
17369
17370         * marshal.c (mono_marshal_get_native_wrapper): Add support for
17371         custom marshalling of valuetypes.
17372
17373         * marshal.c: Fix some warnings.
17374
17375 2004-01-29  Martin Baulig  <martin@ximian.com>
17376
17377         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
17378         for generic method parameters.
17379
17380         * reflection.c (method_encode_methodspec): Write the uninflated
17381         signature into the methodspec table.
17382         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
17383         is always the uninflated method.
17384         (reflection_methodbuilder_to_mono_method): Copy the generic
17385         parameters from the MethodBuilder into `header->gen_params'.
17386
17387 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
17388
17389         * class.c (mono_class_from_generic_parameter): Fix warning.
17390
17391 2004-01-27  Martin Baulig  <martin@ximian.com>
17392
17393         * class.c (mono_class_from_generic_parameter): Don't create
17394         `klass->methods' here.  
17395
17396 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
17397
17398         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
17399         extension since it does not work with libraries named lib<FOO>.dll.so.
17400
17401 2004-01-25  Martin Baulig  <martin@ximian.com>
17402
17403         * class.c (mono_class_inflate_generic_type): Added support for
17404         MONO_TYPE_GENERICINST.
17405
17406         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
17407         inflate methods on open constructed types.      
17408
17409 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17410
17411         * object.c: fire ProcessExit event in the root AppDomain after running
17412         Main. Fixes bug #53299.
17413
17414 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
17415
17416         * socket-io.c: include the new socket-wrappers.h header.
17417         Use the wrappers instead of the unix socket functions to make the code
17418         more clear.
17419
17420 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
17421
17422         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
17423
17424         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
17425         Fixes #22532.
17426
17427 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
17428
17429         * reflection.c (mono_image_create_pefile): Handle the case when the
17430         entry point is not a MethodBuilder.
17431
17432         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
17433         field to ReflectionMethod since it is not allways a builder.
17434
17435         * reflection.c (type_get_fully_qualified_name): New helper function to
17436         return the fully qualified name of a type.
17437
17438         * reflection.c (encode_marshal_blob): Always emit the fully qualified
17439         type name for custom marshallers.
17440
17441         * reflection.c (mono_marshal_spec_from_builder): Ditto.
17442
17443         * class.c (mono_class_setup_vtable): If a parent class already 
17444         implements an interface, use the implementing methods from that class.
17445         Fixes #53148.
17446
17447 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17448
17449         * threadpool.c: just return instead of ExitThread to allow for thread
17450         clean up earlier.
17451
17452 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
17453
17454         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
17455         when closing resource modules.
17456
17457         * reflection.c (mono_image_create_pefile): Handle the case when the
17458         entry point is not a MethodBuilder.
17459
17460         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
17461         field to ReflectionMethod since it is not allways a builder.
17462
17463 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
17464
17465         * marshal.c (mono_marshal_get_managed_wrapper): 
17466         mono_marshal_alloc takes native int so CONV_I
17467         the arg for 64bits.
17468
17469 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
17470
17471         * reflection.c (fixup_cattrs): New function to fixup the methoddef
17472         tokens in the cattr table. Fixes #53108.
17473
17474 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17475
17476         * loader.c: don't trim ".dll" before looking up in the config file.
17477         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
17478
17479 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
17480
17481         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
17482         Return the module which contains the resource as well.
17483         (ves_icall_System_Reflection_Module_Close): New icall.
17484
17485         * appdomain.c: Bump corlib version number.
17486
17487         * image.c (mono_image_addref): New public function.
17488
17489         * assembly.c: Call mono_image_addref.
17490
17491         * reflection.c (mono_module_get_object): Increase reference count of 
17492         the image.
17493
17494         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
17495         Fixes #22532.
17496
17497         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
17498         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
17499         proper exceptions on DllImport problems.
17500
17501 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
17502
17503         * class.c, metadata.c: eliminate CSIZE macro.
17504
17505 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
17506
17507         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
17508         * object.h: Added async_callback field in MonoAsyncResult.
17509         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
17510         * verify.c: Added async_callback in MonoAsyncResult layout.
17511
17512 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
17513
17514         * reflection.c (mono_reflection_get_custom_attrs): Add support
17515         for Modules.
17516
17517 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
17518
17519         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
17520         marshalling.
17521         (mono_marshal_method_from_wrapper): Add null pointer check.
17522
17523 2004-01-16  Martin Baulig  <martin@ximian.com>
17524
17525         * debug-mono-symfile.h: Set version number to 36 and reflect
17526         latest symbol writer changes.
17527
17528 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
17529
17530         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
17531         multi-dimensional arrays.
17532         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
17533         (mono_class_from_mono_type): Use bounded_array_class_get.
17534         
17535         * class.c (mono_bounded_array_class_get): New function which takes
17536         a 'bounded' bool argument to distinguish vectors from one dimensional
17537         arrays.
17538
17539         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
17540         bounded_array_class_get if the array has bounds.
17541
17542         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17543         Search modules loaded using AssemblyBuilder:AddModule as well.
17544
17545 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17546
17547         * appdomain.c: increased corlib version.
17548         * filewatcher.c: removed g_print.
17549         * icall.c:
17550         (get_property_info): only allocate what is actually requested.
17551         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
17552
17553 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17554
17555         * Makefile.am: added filewatcher.[ch]
17556         * filewatcher.[ch]: FileSystemWatcher runtime support.
17557         * icall.c: added new FSW icalls.
17558
17559 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
17560
17561         * string-icalls.c: fix stringbuilder regression as suggested by
17562         Iain McCoy <iain@mccoy.id.au>.
17563
17564 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
17565
17566         * process.c (process_read_stringtable_block): Recognize '007f' as
17567         a language neutral stringtable block.
17568
17569 2004-01-12  Patrik Torstensson
17570
17571         * object.h (MonoStringBuilder) : Changed layout to support our
17572         new stringbuilder class.
17573         * marshal.c: Change marshalling to support the new layout of 
17574         string builder.
17575         * appdomain.c: increased version number because new layout of
17576         string builder.
17577
17578 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
17579
17580         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
17581         assembly name as an string instead of an AssemblyName, since it is
17582         easier to extract info from it.
17583
17584         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
17585         the culture subdirectories too. Fixes #52231.
17586
17587 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17588
17589         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
17590         It takes 2 new parameters with an optional name for the method to look
17591         for and case ignoring info.
17592
17593         * threadpool.c: removed unused variable.
17594
17595 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17596
17597         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
17598         It takes 2 new parameters with an optional name for the property to look
17599         for and case ignoring info.
17600         Fixes bug #52753.
17601
17602 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
17603
17604         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
17605         Fix #52451.
17606
17607 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17608
17609         * appdomain.c:
17610         * assembly.c: escape the uri before passing it to g_filename_from_uri.
17611         Fixes bug #52630.
17612
17613 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
17614
17615         * reflection.c: Add support for more than one unmanaged resource.
17616
17617         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
17618         in field->def_value, as done in all other cases.
17619
17620         * reflection.c (mono_reflection_get_custom_attrs): Add support for
17621         TypeBuilders.
17622
17623         * reflection.c (mono_reflection_create_runtime_class): Remove 
17624         errorneous assignment to klass->element_class, since it is already
17625         done in mono_reflection_setup_internal_class.
17626
17627 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17628
17629         * gc.c: added missing LeaveCriticalSection.
17630         * icall.c: indented a couple of lines.
17631         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
17632         if we call EndInvoke inside a callback. Fixes bug #52601.
17633
17634 2004-01-07  Martin Baulig  <martin@ximian.com>
17635
17636         * mono-debug-debugger.h
17637         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
17638
17639 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
17640
17641         * appdomain.c: Use messages in NotImplementedException.
17642
17643         * exception.c (mono_get_exception_not_implemented): Now this takes
17644         a message argument.
17645
17646         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
17647         exception instead of g_asserting an aborting when something is not
17648         implemented.
17649
17650         Add some inline docs.
17651
17652 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
17653
17654         * reflection.h: Update after changes to object layout.
17655
17656         * reflection.c: Implement saving of unmanaged aka win32 resources.
17657
17658         * appdomain.c: Bump version number.
17659
17660         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
17661         Handle missing domains gracefully.
17662
17663 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
17664
17665         * file-io.c : On Windows, there are much more invalid_path_chars.
17666
17667 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
17668
17669         * class.h, object.c: prepare for GetType () speedup.
17670
17671 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
17672
17673         * profiler.c: workaround for --profile null reference exception on
17674           cygwin. Patch by Patrik Torstensson.
17675
17676 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
17677
17678         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
17679         make work for unaligned access.
17680
17681 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
17682
17683         * class.c: small cleanup (class->fields [i] -> field).
17684         * image.c: check address of metadata is valid.
17685
17686 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
17687
17688         * assembly.h assembly.c (mono_assembly_loaded): New public function to
17689         search the list of loaded assemblies.
17690
17691         * reflection.c (mono_reflection_type_from_name): Use 
17692         mono_assembly_loaded instead of mono_image_loaded.
17693
17694         * reflection.c: Fix warnings.
17695
17696 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
17697
17698         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
17699         is dynamic. This is needed since an assembly can contain both dynamic and
17700         non-dynamic images.
17701
17702         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
17703         assembly->dynamic.
17704
17705         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
17706
17707         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
17708         to store modules loaded using AddModule.
17709
17710         * reflection.c (mono_image_fill_file_table): Generalize this so it works
17711         on Modules.
17712
17713         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
17714
17715         * reflection.c (mono_image_fill_export_table_from_module): New function to
17716         fill out the EXPORTEDTYPES table from a module.
17717
17718         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
17719         into a separate function. Also handle loaded non-dynamic modules.
17720
17721         * reflection.c (mono_image_basic_init): Fix memory allocation.
17722
17723         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17724
17725         * assembly.c (mono_assembly_load_references): Make this public.
17726
17727 2003-12-19  Martin Baulig  <martin@ximian.com>
17728
17729         * class.c (mono_class_initialize_generic): Made this static, take
17730         a `MonoGenericInst *' instead of a `MonoClass *'.
17731         (mono_class_from_generic): Call mono_class_initialize_generic()
17732         unless we're already initialized or being called from
17733         do_mono_metadata_parse_generic_inst().
17734
17735         * class.h (MonoGenericInst): Added `initialized' and
17736         `init_pending' flags.
17737
17738         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
17739         `mono_class_init (gklass)' or mono_class_initialize_generic()
17740         here; set `generic_inst->init_pending' while parsing the
17741         `type_argv'.
17742
17743 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
17744
17745         * locales.c: include string.h for memxxx prototypes
17746
17747 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
17748
17749         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
17750         constructor when accessing literal fields.
17751
17752 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
17753
17754         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17755
17756         * reflection.c (assembly_add_resource_manifest): New function to fill
17757         the MANIFESTRESOURCE table.
17758
17759         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
17760
17761         * reflection.h: Update to changes in class layout.
17762
17763         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
17764         Reenable call to mono_runtime_is_shutting_down ().
17765
17766         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
17767         determine if the runtime is shutting down.
17768
17769 2003-12-16  Jackson Harper <jackson@ximian.com>
17770
17771         * icall.c: comment out call to mono_runtime_is_shutting_down to
17772         fix build.
17773         
17774 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
17775
17776         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
17777         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
17778
17779 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
17780
17781         * reflection.c: move definition of swap_with_size
17782         to before its first call
17783
17784 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
17785
17786         * appdomain.c (mono_runtime_is_shutting_down): New public function.
17787
17788         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
17789         icall.
17790
17791         * object.c: Fix warnings.
17792
17793         * icall.c (ves_icall_Type_Get...): Only consider inherited static
17794         members if FlattenHierarchy is set.
17795
17796         * reflection.c (mono_image_add_decl_security): New function to emit
17797         declarative security.
17798
17799         * reflection.h reflection.c: Add support for declarative security.
17800
17801         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17802         
17803 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
17804
17805         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17806         
17807         * appdomain.c verify.c: Moved corlib version checking into its own
17808         function in appdomain.c since it needs to create vtables etc.
17809
17810 2003-12-13  Patrik Torstensson <p@rxc.se>
17811
17812         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
17813         instead of unwrapped server.
17814
17815 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
17816
17817         * verify.c (check_corlib): Fix field index.
17818
17819 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
17820
17821         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
17822         GetGacPath icall.
17823
17824 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
17825
17826         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
17827         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
17828         cope with sizeof(size_t) != sizeof(guint32).
17829
17830 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17831
17832         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
17833         in case of failure.
17834
17835 2003-12-10  Mark Crichton <crichton@gimp.org>
17836
17837         * icall.c: removed the GetNonZeroBytes.  We now handle this case
17838         in managed code.
17839
17840         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
17841
17842 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
17843
17844         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
17845         marked as deleted.
17846
17847 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
17848
17849         * verify.c (check_corlib): Handle the case when the version field is 
17850         initialized by a static constructor.
17851
17852 2003-12-08  Patrik Torstensson  <p@rxc.se>
17853
17854     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
17855
17856 2003-12-08  Martin Baulig  <martin@ximian.com>
17857
17858         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
17859         a MonoReflectionGenericParameter, also take the parameter index
17860         and name as arguments.
17861         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
17862         (ves_icall_MonoGenericParam_initialize): New interncall.
17863         (ves_icall_Type_make_byref_type): New interncall.
17864
17865         * reflection.h (MonoReflectionGenericParam): Derive from
17866         MonoReflectionType, not just from MonoObject.  Added `refobj' and
17867         `index' fields.
17868
17869         * reflection.c (mono_reflection_define_generic_parameter): Create
17870         and return a new MonoReflectionGenericParam; don't initialize the
17871         constraints here.
17872         (mono_reflection_initialize_generic_parameter): New public method;
17873         initializes the constraints and creates the `param->pklass'.
17874
17875 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
17876
17877         * reflection.h reflection.c: Use the new fields 'num_types', 
17878         'num_fields' and 'num_methods' to track the number of types etc.
17879
17880         * verify.c (check_corlib): Check corlib version number.
17881
17882 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
17883
17884         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
17885         function works on all methods.
17886
17887 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
17888
17889         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
17890         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
17891         the custom_type_info flag of the transparent proxy.
17892         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
17893         objects that supports IRemotingTypeInfo.
17894         * object.h: Added custom_type_info field in transparent proxy.
17895
17896 2003-12-06  Martin Baulig  <martin@ximian.com>
17897
17898         * class.c (mono_class_create_from_generic): Removed.
17899         (mono_class_from_generic): Check `ginst->klass' before doing
17900         anything else.  This is important to fully support "recursive"
17901         generic types.
17902
17903         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
17904         empty `generic_inst->klass' before doing anything else.
17905
17906 2003-12-06  Dick Porter  <dick@ximian.com>
17907
17908         * verify.c: 
17909         * object.h:
17910         * icall.c:
17911         * locales.c: Use C structs to access class fields.  Don't do a
17912         conversion between MonoString and UChar because both are
17913         platform-endian UTF-16.  Compare now takes startindex and count
17914         parameters.  Add a char overload for IndexOf.  Speed up the
17915         invariant string IndexOf.
17916
17917 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
17918
17919         * Makefile.am (monosn_LDADD): Fix parallel build.
17920
17921 2003-12-04  Martin Baulig  <martin@ximian.com>
17922
17923         * icall.c
17924         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17925         (ves_icall_Type_make_array_type): New interncall.       
17926
17927 2003-12-04  Martin Baulig  <martin@ximian.com>
17928
17929         * locales.c: also change it in the !HAVE_ICU case.
17930
17931 2003-12-04  Dick Porter  <dick@ximian.com>
17932
17933         * icall.c:
17934         * locales.c: construct_compareinfo is now in CompareInfo, not
17935         CultureInfo.
17936
17937 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
17938
17939         * image.c (mono_image_load_file_for_image): Cache loaded images in the
17940         image->files array.
17941
17942         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
17943         table as well.
17944
17945         * assembly.c (mono_assembly_load_references): Only load references
17946         once.
17947
17948         * class.c (mono_class_from_name): Avoid linear search of the 
17949         EXPORTEDTYPE table.
17950
17951         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
17952
17953 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
17954
17955         * image.h (MonoImage): Add 'field_cache' field.
17956
17957         * loader.c (mono_field_from_token): Cache field lookups.
17958         
17959         * reflection.c (mono_module_get_object): Fix name property.
17960
17961         * icall.c (ves_icall_get_enum_info): Update after changes to 
17962         mono_metadata_get_constant_index ().
17963
17964         * icall.c: Get rid of get_type_info icall, use a separate icall for
17965         each type property to avoid needless memory allocations. Fixes #51514.
17966
17967         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
17968         to avoid needless binary searches.
17969
17970         * class.c (class_compute_field_layout): Move the initialization of
17971         field->def_value to mono_class_vtable ().
17972
17973         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
17974         non-corlib types.
17975
17976         * object.c (mono_object_allocate): Make it inline.
17977
17978         * object.c (mono_object_allocate_spec): Make it inline.
17979         
17980 2003-12-02  Dick Porter  <dick@ximian.com>
17981
17982         * locales.c (create_NumberFormat): NumberFormatInfo construction.
17983         Patch by Mohammad DAMT (mdamt@cdl2000.com).
17984
17985 2003-12-01  Dick Porter  <dick@ximian.com>
17986
17987         * threads.c: Fix signature and call in CreateMutex and
17988         CreateEvent.
17989
17990 2003-12-01  Dick Porter  <dick@ximian.com>
17991
17992         * icall.c: 
17993         * locales.c: Implement string compares and searching
17994
17995         * object.h: Add extra Thread field
17996
17997 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
17998
17999         * reflection.c (fixup_method): Add support for MonoCMethod.
18000
18001 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
18002
18003         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
18004
18005         * reflection.c (assembly_name_to_aname): Allow extra characters in
18006         assembly names. Fixes #51468.
18007
18008 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
18009
18010         * exception.c (mono_exception_from_name_domain): New helper function.
18011
18012         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
18013         exception object in the correct domain.
18014
18015         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
18016         formatting + make a copy a the input data.
18017
18018         * loader.c (mono_get_method_from_token): Methods which contain
18019         native code do not have entries in the ImplMap.
18020
18021         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
18022         Thanks to Gonzalo for spotting this.
18023         
18024         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
18025         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
18026
18027         * assembly.h (mono_assembly_load_from): Split the second part of 
18028         assembly loading into a new public function.
18029
18030         * exception.h (mono_get_exception_bad_image_format): New function.
18031
18032 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
18033
18034         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
18035         Enumerate all modules inside a dynamic assembly. Fixes #51293.
18036         
18037         * icall.c: Add new icall for creating dynamic methods.
18038
18039         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
18040
18041         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
18042
18043         * reflection.c (mono_reflection_create_dynamic_method): New icall to
18044         create a dynamic method.
18045
18046         * reflection.c (resolve_object): New helper function.
18047
18048         * reflection.c: Generalize ReflectionMethodBuilder and the functions
18049         which manipulate it so they can also work on dynamic methods.
18050
18051         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
18052         creating the MonoReflectionMethodAux structure if it is not needed.
18053         
18054         * reflection.h verify.c: Update after changes to object layout.
18055
18056         * reflection.c (method_builder_encode_signature): Fix compilation on
18057         gcc 2.95.x.
18058
18059 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
18060
18061         * appdomain.h: Added support for context static fields. Added static_data
18062           field to MonoAppContext and renamed thread_static_fields to a more
18063           generic special_static_fields in MonoAppDomain, since it can now contain
18064           context static fields.
18065         * domain.c: Updated hashtable name.
18066         * object.c: Replaced field_is_thread_static() for a more generic
18067           field_is_special_static() which also checks for context static attribute.
18068           In mono_class_vtable(), added support for static context fields.
18069         * threads.c: Changed methods that manage thread static fields to more
18070           generic methods so they can be reused both for thread and context static
18071           data.
18072         * threads.h: Declared some new methods.
18073
18074 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
18075
18076         * reflection.h: Update after changes to the managed types.
18077
18078         * reflection.c (encode_custom_modifiers): New helper function.
18079
18080         * reflection.c (method_encode_signature): Emit custom modifiers.
18081
18082         * reflection.c (field_encode_signature): Emit custom modifiers.
18083
18084 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
18085
18086         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
18087
18088         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
18089         implementation.
18090
18091         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
18092         icall.
18093
18094         * object.c (mono_field_get_value_object): New function.
18095
18096         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
18097         specific.
18098
18099 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
18100
18101         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
18102         return a preallocated out-of-memory exception instance.
18103
18104         * object.c (out_of_memory): Use the new function.
18105
18106         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
18107         flag is before the custom modifiers. Fixes #49802.
18108
18109 2003-11-16  Martin Baulig  <martin@ximian.com>
18110
18111         * class.c (mono_class_is_open_constructed_type): Implemented the
18112         MONO_TYPE_GENERICINST case.
18113
18114 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
18115
18116         * assembly.c (mono_assembly_fill_assembly_name): New function to
18117         fill out the MonoAssemblyName structure.
18118         (mono_assembly_open): Use the new function.
18119
18120         * icall.c (fill_reflection_assembly_name): New helper function.
18121
18122         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
18123         new function.
18124
18125         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
18126
18127 2003-11-15  Martin Baulig  <martin@ximian.com>
18128
18129         * class.c (mono_class_is_open_constructed_type): New public
18130         function; checks whether a type is an open constructed type,
18131         ie. whether it still contains type parameters.
18132         (mono_class_inflate_generic_type): If we're a type parameter and
18133         the inflated type is also a MONO_TYPE_(M)VAR, return the original
18134         type.
18135
18136         * class.h (MonoGenericInst): Added `guint32 is_open'.
18137
18138         * loader.c (method_from_methodspec): Check whether we're an open
18139         or closed constructed type and set `ginst->is_open'.
18140
18141         * reflection.c (mono_reflection_bind_generic_parameters): Check
18142         whether we're an open or closed constructed type and set
18143         `ginst->is_open'.
18144         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
18145         from open constructed types.
18146
18147 2003-11-15  Martin Baulig  <martin@ximian.com>
18148
18149         * reflection.c (mono_reflection_bind_generic_parameters): If we're
18150         a generic instance (instead of a generic type declaration) with
18151         unbound generic parameters, bind them to our actual types.
18152
18153 2003-11-14  Martin Baulig  <martin@ximian.com>
18154
18155         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
18156
18157         * reflection.c (mono_reflection_bind_generic_parameters): If we're
18158         an interface type, populate `res->interfaces' with instantiated
18159         versions of all the interfaces we inherit.
18160
18161 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
18162
18163         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
18164         when MONO_PATH is set but doesn't contain the install dir.
18165
18166 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18167
18168         * icall.c:
18169         (ves_icall_Type_GetInterfaces): don't return an interface twice when
18170         it's also implemented in base classes. Fixes bug #50927.
18171
18172 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
18173
18174         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
18175         if this method is called from a finalizer. Fixes #50913.
18176
18177 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
18178
18179         * threads.c: Implement VolatileRead/VolatileWrite
18180
18181         * icall.c: Add new icalls for VolatileRead/VolatileWrite
18182
18183 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
18184
18185         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
18186         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
18187         2.95.3.
18188
18189         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
18190         from Peter Ross (pro@missioncriticalit.com).
18191         
18192 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
18193
18194         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
18195
18196 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
18197
18198         * assembly.c (mono_assembly_load_references): Disable check because it
18199         triggers on older corlibs which lots of people have.
18200
18201 2003-11-12  Jackson Harper  <jackson@ximian.com>
18202
18203         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
18204         load corlib.dll if mscorlib.dll is not found.
18205         * assembly.h: Remove corlib name define.
18206         * class.c:
18207         * domain.c:
18208         * image.c: Change corlib name to mscorlib.
18209         
18210 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
18211
18212         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
18213
18214 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
18215
18216         * appdomain.h: Added loader_optimization here to sync with the C#
18217         code, and add disallow_binding_redirects field.
18218
18219 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
18220
18221         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
18222
18223         * reflection.c (mono_image_build_metadata): Fix crash on modules
18224         with no types.
18225
18226         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
18227
18228         * icall.c (ves_icall_get_method_info): Return callingConvention as
18229         well.
18230
18231         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
18232         namespaces from the EXPORTEDTYPE table as well.
18233
18234         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
18235         from all modules inside the assembly.
18236         
18237 2003-11-11  Martin Baulig  <martin@ximian.com>
18238
18239         * reflection.c (mono_reflection_bind_generic_parameters): Make
18240         this work for interfaces.
18241
18242 2003-11-11  Martin Baulig  <martin@ximian.com>
18243
18244         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
18245
18246 2003-11-11  Martin Baulig  <martin@ximian.com>
18247
18248         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
18249         "MonoInflatedMethod" and "MonoInflatedCtor".
18250
18251 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
18252
18253         * reflection.c (resolution_scope_from_image): Use the assembly table
18254         from the manifest module, since other modules don't have it.
18255
18256         * debug-helpers.c (mono_type_full_name): New helper function.
18257
18258         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
18259
18260         * image.c (mono_image_load_file_for_image): New public function which
18261         is a replacement for the load_file_for_image in class.c.
18262
18263         * assembly.c (mono_assembly_load_module): A wrapper for the function
18264         above which does assembly association and reference loading too.
18265
18266         * class.c (mono_class_from_name): Call mono_assembly_load_module.
18267
18268 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18269
18270         * appdomain.c: not all of the attributes for the full assembly name
18271         are required and the order doesn't matter. Fixes bug #50787.
18272
18273 2003-11-10  Dick Porter  <dick@ximian.com>
18274
18275         * locales.c: Use platform-endian UTF16
18276
18277 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
18278
18279         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
18280         
18281 2003-11-10  Martin Baulig  <martin@ximian.com>
18282
18283         * metadata.c
18284         (mono_metadata_load_generic_params): Make this actually work.
18285
18286         * reflection.c (mono_reflection_bind_generic_parameters): If our
18287         parent is a generic instance, pass all the `types' to it, no
18288         matter whether it has the same number of type parameters or not.
18289
18290 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
18291
18292         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
18293
18294         * assembly.c (mono_assembly_load_references): Move the image<->assembly
18295         assignment code to this function so it gets called recursively for all
18296         modules.
18297
18298         * image.c (load_modules): Remove the assembly assignment since it is
18299         now done by mono_assembly_load_references.
18300         
18301         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
18302         Add 'module' argument.
18303         (mono_module_get_types): New helper function.
18304         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
18305
18306 2003-11-08  Martin Baulig  <martin@ximian.com>
18307
18308         * class.c (mono_class_inflate_generic_method): Interface method
18309         don't have a header.
18310
18311         * reflection.c (mono_image_get_methodspec_token): Take an
18312         additional `MonoGenericInst *' argument instead of reading it from
18313         the header; this is necessary to support interfaces.
18314         (mono_image_create_token): Pass the `MonoGenericInst *' from the
18315         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
18316         (inflated_method_get_object): Take an additional `MonoGenericInst *'
18317         argument.
18318
18319         * reflection.h (MonoReflectionInflatedMethod): Added
18320         `MonoGenericInst *ginst'.
18321
18322 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
18323
18324         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
18325
18326 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
18327
18328         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
18329
18330 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
18331
18332         * reflection.c 
18333         (reflection_methodbuilder_from_method_builder):
18334         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
18335         initialize a ReflectionMethodBuilder structure.
18336         (mono_image_get_methodbuilder_token):
18337         (mono_image_get_ctorbuilder_token): New functions to emit memberref
18338         tokens which point to types in another module inside the same assembly.
18339
18340         * reflection.c: Use the new helper functions.
18341         
18342         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
18343
18344         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
18345         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
18346
18347         * reflection.c (resolution_scope_from_image): Emit a moduleref if
18348         neccesary.
18349
18350         * reflection.c (mono_image_build_metadata): Emit metadata only for the
18351         current module. Emit the manifest only for the main module.
18352
18353         * reflection.c (mono_image_create_token): Add assertion when a 
18354         memberref needs to be created.
18355
18356         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
18357
18358         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
18359         larger buffer for the custom attribute blob. Fixes #50637.
18360         
18361 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18362
18363         * threadpool.c: notify listener on async processing handles after
18364         invoking the async callback. Thanks to Zoltan.
18365
18366 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
18367
18368         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
18369         avoid code duplication.
18370
18371         * reflection.h (MonoDynamicImage): New type which is currently unused,
18372         but will be used through the ref.emit code in place of 
18373         MonoDynamicAssembly.
18374
18375         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
18376         object layout.
18377
18378         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
18379         a MonoDynamicImage instead of just a MonoImage.
18380         
18381         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
18382         icalls to ModuleBuilder but keep their semantics, so they will work
18383         with moduleb->assemblyb. This will change later.
18384         
18385 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
18386
18387         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
18388         object layout.
18389
18390         * reflection.c (mono_image_build_metadata): Avoid creation of a default
18391         main module, since it is now done by the managed code.
18392
18393 2003-11-03  Martin Baulig  <martin@ximian.com>
18394
18395         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
18396         `ginst->klass' here.
18397         (method_encode_methodspec): Don't use the `ginst->generic_method's
18398         klass if it's a generic instance, use `ginst->klass' in this case.
18399
18400 2003-11-03  Martin Baulig  <martin@ximian.com>
18401
18402         * reflection.c (mono_image_get_generic_method_param_info):
18403         Removed, use mono_image_get_generic_param_info() instead.
18404         (mono_image_get_type_info): Write the GenericParam table before
18405         the Method table.  This is neccessary because in the GenericParam
18406         table, type parameters of the class (ie. '!0' etc.) must come
18407         before the ones from its generic methods (ie. '!!0' etc).
18408
18409 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
18410
18411         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
18412
18413 2003-11-02  Martin Baulig  <martin@ximian.com>
18414
18415         * reflection.c (create_generic_typespec): Take a
18416         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
18417         the generic parameters from it.
18418
18419 2003-11-02  Martin Baulig  <martin@ximian.com>
18420
18421         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
18422         instead of a `MonoClassField *' since we just need the type.
18423         (create_generic_typespec): New static function.  Creates a
18424         TypeSpec token for a generic type declaration.
18425         (mono_image_get_generic_field_token): New static function.
18426         (mono_image_create_token): If we're a FieldBuilder in a generic
18427         type declaration, call mono_image_get_generic_field_token() to get
18428         the token.
18429
18430 2003-11-02  Martin Baulig  <martin@ximian.com>
18431
18432         * reflection.h
18433         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
18434         `MonoReflectionGenericInst *declaring_type' and
18435         `MonoReflectionGenericInst *reflected_type' fields.
18436
18437         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
18438         `MonoReflectionGenericInst *declaring_type' and a
18439         `MonoReflectionGenericInst *reflected_type' argument instead of a
18440         single `MonoReflectionGenericInst *type' one.  Set
18441         `res->declaring_type' and `res->reflected_type' from them.
18442         (mono_reflection_inflate_field): Likewise.      
18443
18444 2003-11-02  Martin Baulig  <martin@ximian.com>
18445
18446         * class.c (mono_class_setup_vtable): Don't store generic methods
18447         in the vtable.  
18448
18449 2003-11-02  Martin Baulig  <martin@ximian.com>
18450
18451         * reflection.h (MonoReflectionGenericInst): Added
18452         `MonoReflectionType *declaring_type'.
18453
18454         * reflection.c (mono_reflection_bind_generic_parameters): Use
18455         `if (tb->parent)' instead of `klass->parent'.
18456
18457 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
18458
18459         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
18460         with an empty ASSEMBLY table.
18461
18462         * reflection.c (mono_image_build_metadata): Avoid using the same loop
18463         variable in the inner and outer loops.
18464
18465 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
18466
18467         * metadata.h (mono_metadata_make_token): Put parentheses around macro
18468         argument.
18469
18470         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
18471         
18472         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
18473         icalls. Instead, do everything in managed code. This is needed since
18474         it is hard to restore the original domain etc. in unmanaged code in the
18475         presence of undeniable exceptions.
18476
18477         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
18478         New icalls to push and pop appdomain refs.
18479
18480 2003-10-31  Martin Baulig  <martin@ximian.com>
18481
18482         * class.c (inflate_generic_type): Renamed to
18483         mono_class_inflate_generic_type() and made it public.
18484
18485         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
18486         New interncall.
18487
18488         * loader.c (mono_field_from_memberref): Also set the retklass for
18489         typespecs.
18490
18491         * fielder.c (mono_image_get_inflated_field_token): New static
18492         method; creates a metadata token for an inflated field.
18493         (mono_image_create_token, fixup_method): Added support for
18494         "MonoInflatedField".
18495         (fieldbuilder_to_mono_class_field): New static function.
18496         (mono_reflection_inflate_field): New public function.
18497
18498         * reflection.h
18499         (MonoReflectionGenericInst): Added `MonoArray *fields'.
18500         (MonoReflectionInflatedField): New typedef.     
18501
18502 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
18503
18504         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
18505         for Solaris and other platforms without s6_addr16
18506
18507 2003-10-30  Martin Baulig  <martin@ximian.com>
18508
18509         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
18510         argument instead of two.
18511         (mono_class_inflate_generic_signature): Likewise.
18512         (inflate_generic_header): Likewise.
18513         (mono_class_inflate_generic_method): Likewise.  In addition, if
18514         `ginst->klass' is set, it becomes the new `method->klass'.
18515
18516         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
18517         field.
18518
18519         * reflection.c (encode_generic_method_sig): Write a 0xa as the
18520         first byte. [FIXME]
18521         (method_encode_methodspec): If we have generic parameters, create
18522         a MethodSpec instead of a MethodRef.
18523         (fixup_method): Added support for "MonoInflatedMethod" and
18524         "MonoInflatedCtor".
18525         (mono_image_create_token): Added support for "MonoInflatedMethod"
18526         and "MonoInflatedCtor".
18527         (inflated_method_get_object): New static function; returns a
18528         managed "System.Reflection.MonoInflatedMethod" object.
18529         (mono_reflection_bind_generic_method_parameters): Return a
18530         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
18531         (mono_reflection_inflate_method_or_ctor): Likewise.
18532         (mono_image_get_generic_method_param_info): Initialize unused
18533         fields to zero.
18534         (mono_image_get_generic_param_info): Likewise.
18535
18536         * reflection.h (MonoReflectionInflatedMethod): New public
18537         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
18538         "S.R.MonoInflatedCtor" classes.
18539
18540         * loader.c (method_from_memberref): If we're a TypeSpec and it
18541         resolves to a generic instance, inflate the method.
18542
18543 2003-10-28  Dick Porter  <dick@ximian.com>
18544
18545         * object.c (mono_runtime_run_main): Convert command-line arguments
18546         into utf8, falling back to the user's locale encoding to do so.
18547
18548 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
18549
18550         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
18551         at this time.
18552
18553         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
18554
18555         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
18556         up icalls at method definition time. Partially fixes #33569.
18557
18558 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
18559
18560         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
18561         marshalling of arrays. Fixes #50116.
18562
18563         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
18564
18565         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
18566         points to a vtable in the dying appdomain.
18567
18568         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
18569         listeners into unmanaged code inside the lock.
18570
18571         * object.c (mono_class_vtable): Turn off typed allocation in non-root
18572         domains and add some comments.
18573
18574 2003-10-25  Martin Baulig  <martin@ximian.com>
18575
18576         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
18577
18578         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
18579
18580         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
18581         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
18582         currently parsing.  Create the generic class and store it in
18583         `generic_inst->klass' before parsing the type arguments.  This is
18584         required to support "recursive" definitions; see mcs/tests/gen-23.cs
18585         for an example.
18586         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
18587         to support recursive typespec entries.
18588
18589         * class.c (mono_class_setup_parent): If our parent is a generic
18590         instance, we may get called before it has its name set.
18591         (mono_class_from_generic): Splitted into
18592         mono_class_create_from_generic() and mono_class_initialize_generic().
18593
18594 2003-10-25  Martin Baulig  <martin@ximian.com>
18595
18596         * icall.c (ves_icall_Type_BindGenericParameters): Return a
18597         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
18598         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
18599         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
18600
18601         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
18602         (create_typespec): Likewise.
18603         (mono_reflection_bind_generic_parameters): Return a
18604         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
18605         (mono_reflection_inflate_method_or_ctor): New public function.
18606
18607         * reflection.h (MonoReflectionGenericInst): New typedef.        
18608
18609 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
18610
18611         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
18612         inside the domain lock. Fixes #49993.
18613         
18614         * object.c (mono_class_vtable): When typed allocation is used, 
18615         allocate vtables in the GC heap instead of in the mempool, since the
18616         vtables contain GC descriptors which are used by the collector even
18617         after the domain owning the mempool is unloaded.
18618
18619         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
18620
18621         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
18622         reflect what it does. Also invalidate mempools instead of freeing
18623         them if a define is set.
18624
18625         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
18626         of the appdomain.
18627         
18628         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
18629         hold the finalizable objects in this domain.
18630
18631         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
18632         appdomain.
18633
18634         * appdomain.c (mono_domain_set): New function to set the current
18635         appdomain, but only if it is not being unloaded.
18636
18637         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
18638         appdomain which is being unloaded.
18639         
18640         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
18641         unloading of the root appdomain.
18642
18643         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
18644         icall to execute a method in another appdomain. Intended as a 
18645         replacement for InternalSetDomain, which can confuse the code 
18646         generation in the JIT.
18647
18648         * appdomain.c (mono_domain_is_unloading): New function to determine
18649         whenever an appdomain is unloading.
18650
18651         * appdomain.c (mono_domain_unload): New function to correctly unload
18652         an appdomain.
18653
18654         * assembly.c (mono_assembly_load_references): Check that an assembly
18655         does not references itself.
18656
18657         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
18658         domain manually, it asks the finalizer thread to do it, then waits for
18659         the result. Also added a timeout.
18660
18661         * icall.c: Register the new icalls.
18662
18663         * threads.h threads.c: Export the mono_gc_stop_world and 
18664         mono_gc_start_world functions.
18665         
18666         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
18667         function to fill out the mempool with 0x2a.
18668
18669 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
18670
18671         * reflection.h (MonoReflectionMethodAux): New structure to store
18672         information which is rarely used, thus is not in the MonoMethod
18673         structure.
18674
18675         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
18676         store the aux info.
18677
18678         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
18679         and marshalling info into the aux structure.
18680
18681         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
18682         from the aux structure.
18683
18684         * loader.c (mono_method_get_param_names): Retrieve the param names from
18685         the aux structure.
18686         
18687 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
18688
18689         * exception.h exception.c: Add AppDomainUnloadedException && fix 
18690         warning.
18691
18692 2003-10-21  Dick Porter  <dick@ximian.com>
18693
18694         * socket-io.c
18695         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
18696         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
18697
18698 2003-10-21  Martin Baulig  <martin@ximian.com>
18699
18700         * reflection.c (mono_reflection_bind_generic_parameters):
18701         `klass->parent' is NULL for interfaces.
18702
18703 2003-10-21  Martin Baulig  <martin@ximian.com>
18704
18705         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18706
18707 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
18708
18709         * exception.c (mono_exception_from_name_msg): New helper function for
18710         creating exceptions and initializing their message field.
18711
18712         * exception.c: Simplify functions using the new helper.
18713
18714         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
18715         New function.
18716
18717         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
18718         mono_raise_exception, since otherwise gcc doesn't generate the function
18719         epilog for raise_exception, confusing the stack unwinding in the JIT.
18720         Fixes #45043.
18721
18722         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
18723         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
18724         Fixes #49499.
18725
18726 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18727
18728         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
18729         utf8.
18730
18731 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
18732
18733         * icall.c: Removed GetUninitializedObject method because
18734           AllocateUninitializedClassInstance does the same.
18735
18736 2003-10-18  Martin Baulig  <martin@ximian.com>
18737
18738         * class.c (inflate_generic_signature): Renamed to
18739         mono_class_inflate_generic_signature() and made it public.
18740         (my_mono_class_from_generic_parameter): New static function; if we
18741         don't already have the generic parameter's MonoClass, create a
18742         very simple one which is just used internally in the runtime and
18743         not passed back to managed code.
18744
18745         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
18746
18747         * metadata.h (MonoMethodSignature): Moved the
18748         `MonoGenericParam *gen_params' to the MonoMethodHeader.
18749         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
18750
18751         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
18752         ves_icall_MonoMethod_GetGenericArguments(); this is now an
18753         interncall on the MonoMethod class, not on MethodInfo.
18754         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
18755         calling mono_reflection_bind_generic_method_parameters() directly.
18756
18757         * loader.c (mono_method_get_signature): If this is a MethodSpec;
18758         return the already computed `method->signature'.
18759         (method_from_methodspec): New static function to load a method
18760         from a MethodSpec entry.
18761         (mono_get_method_from_token): Call the new method_from_methodspec()
18762         for MethodSpec tokens.  
18763         (mono_get_method_from_token): If we're a generic method, load the
18764         type parameters.
18765
18766         * reflection.c (mono_image_get_memberref_token): Allow
18767         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
18768         table.
18769         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
18770         (mono_image_create_token): First check whether it's a generic
18771         method (so we'd need to create a MethodSpec), then do the other
18772         two alternatives.
18773         (mono_reflection_bind_generic_method_parameters): Return a
18774         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
18775         called directly from the interncall.
18776
18777 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
18778
18779         * reflection.c (load_public_key): Move loading of the public key
18780         into managed code.
18781
18782         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
18783
18784         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
18785         fields.
18786
18787         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
18788         culture, hash_alg and public_key. Fixes #49555.
18789
18790 2003-10-17  Martin Baulig  <martin@ximian.com>
18791
18792         * class.h (MonoGenericInst): Moved this declaration here and added
18793         `MonoMethod *generic_method'.
18794
18795         * icall.c
18796         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
18797         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
18798
18799         * metadata.c (mono_metadata_type_equal): Two types of
18800         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
18801         index; ie. don't compare the address of the `MonoGenericParam'
18802         structure.
18803         (mono_metadata_load_generic_params): Removed the `MonoMethod
18804         *method' argument.
18805
18806         * metadata.h (MonoGenericInst): Moved declaration to class.h.
18807         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
18808
18809         * reflection.c (method_encode_signature): Encode the number of
18810         generic parameters.
18811         (encode_generic_method_sig): New static function.
18812         (method_encode_methodspec): New static function; creates an entry
18813         in the MethodSpec table for a generic method.
18814         (mono_image_get_methodspec_token): New static function.
18815         (mono_image_create_token): Call mono_image_get_methodspec_token()
18816         for generic methods.
18817         (mono_reflection_bind_generic_method_parameters): New public
18818         function.  Instantiates a generic method.
18819
18820 2003-10-16  Martin Baulig  <martin@ximian.com>
18821
18822         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
18823         *gen_params' here from MonoMethodHeader.
18824
18825         * metadata.c (mono_metadata_parse_method_signature): If we have
18826         generic parameters, initialize `method->gen_params' and then set
18827         the correct `type->data.generic_param' in all the parameters.
18828
18829 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
18830
18831         * threads.c (mono_threads_get_default_stacksize): New function to 
18832         return the default stacksize.
18833
18834         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
18835         termination of the finalizer thread, since the previous method had
18836         race conditions. Fixes #49628.
18837
18838         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
18839         as for the other managed threads.
18840
18841 2003-10-16  Martin Baulig  <martin@ximian.com>
18842
18843         * class.c (inflate_generic_signature): Copy `generic_param_count'
18844         and `gen_params'.
18845
18846         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
18847         New interncall.
18848
18849         * metadata.c (mono_metadata_parse_method_signature): Actually set
18850         the `method->generic_param_count' here.
18851         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
18852
18853 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
18854
18855         * object.h: Add a new field to TypedRef to simplify the implementation
18856         of the REFANY opcodes in the JIT.
18857
18858         * icall.c: Make use of the new field.
18859
18860         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
18861         dynamically.
18862
18863 2003-10-15  Martin Baulig  <martin@ximian.com>
18864
18865         * class.c (mono_class_from_gen_param): Renamed to
18866         mono_class_from_generic_parameter() and moved most of the
18867         functionality from mono_reflection_define_generic_parameter()
18868         here; ie. we create a "real" class here.
18869         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
18870         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
18871         previously been called.
18872
18873         * class.h (MonoGenericParam): Moved the declaration of this struct
18874         here from metadata.h and added `MonoMethod *method'.
18875
18876         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
18877         interncall.
18878
18879         * loader.c (mono_get_method_from_token): If we have any generic
18880         parameters, call mono_metadata_load_generic_params() to read them
18881         from the MONO_TABLE_GENERICPAR.
18882
18883         * metadata.c (mono_metadata_load_generic_params): Added
18884         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
18885
18886         * metadata.h (MonoMethodSignature): Replaced
18887         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
18888         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
18889
18890         * reflection.c (mono_reflection_define_generic_parameter): Moved
18891         most of the functionality into the new
18892         mono_class_from_generic_parameter(); set the `method' field if
18893         we're a method parameter.       
18894
18895 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
18896
18897         * marshal.c (emit_struct_conv): if native size is 0
18898         emit no code.
18899
18900 2003-10-14  Martin Baulig  <martin@ximian.com>
18901
18902         * icall.c: The generics API has changed in the spec since it was
18903         added to System.Type; these modifications make it match the spec
18904         again.
18905         (ves_icall_Type_GetGenericParameters): Renamed to
18906         `ves_icall_Type_GetGenericArguments'.
18907         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
18908         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
18909         `ves_icall_MonoType_get_HasGenericArguments'.
18910         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
18911         `ves_icall_MonoType_get_IsGenericParameter'.
18912         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
18913         this is no interncall anymore.
18914         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
18915         `ves_icall_TypeBuilder_get_IsGenericParameter'.
18916
18917 2003-10-14  Martin Baulig  <martin@ximian.com>
18918
18919         * reflection.c (mono_reflection_bind_generic_parameters): Also
18920         inflate generic methods if we're reading the class from IL.
18921
18922 2003-10-13  Martin Baulig  <martin@ximian.com>
18923
18924         * reflection.c (mono_reflection_define_generic_parameter): This
18925         method isn't called directly from the icall anymore; take a
18926         `MonoReflectionAssemblyBuilder *' so we can use this for type and
18927         method generic parameters.
18928         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
18929         (method_builder_encode_signature): Encode generic parameters.
18930         (mono_image_get_method_info): Write generic params to the
18931         MONO_TABLE_GENERICPARAM table.
18932
18933         * reflection.h (MonoReflectionMethodBuilder): Added
18934         `MonoArray *generic_params'.
18935
18936         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
18937
18938         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
18939         wrapper for mono_reflection_define_generic_parameter().
18940         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
18941
18942 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
18943
18944         * marshal.h: Add missing function to fix build.
18945
18946         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
18947         the SetLastError pinvoke attribute.
18948
18949         * marshal.c (mono_marshal_set_last_error): New helper function called
18950         by the generated code.
18951         
18952         * marshal.c (mono_mb_emit_branch): New helper function.
18953
18954         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
18955
18956         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18957         classes as parameters and return values of delegates. Fixes #29256. 
18958
18959 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
18960
18961         * locales.c: use gint32 in non HAVE_ICU case
18962
18963 2003-10-11  Martin Baulig  <martin@ximian.com>
18964
18965         * mono-debug.c (mono_debug_add_method): Added a workaround for
18966         bug #48591.
18967
18968 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
18969
18970         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
18971         delegates passed to native code must use the STDCALL calling 
18972         convention. Fixes #35987.
18973
18974 2003-10-10  Martin Baulig  <martin@ximian.com>
18975
18976         * class.c (inflate_generic_type): If we're inflating for a generic
18977         type instance (and not for a generic method), return
18978         MONO_TYPE_MVAR unchanged.
18979
18980 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18981
18982         * string-icalls.c: Join ignores null strings in the source array.
18983         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
18984         * threads.c: GetAvailableTheads is slightly more accurate.
18985
18986 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
18987
18988         * threads.h threads.c : add mono_threads_set_default_stacksize
18989         and pass default to CreateThread calls.
18990
18991 2003-10-09  Dick Porter  <dick@ximian.com>
18992
18993         * icall.c:
18994         * locales.h:
18995         * locales.c: Internal calls for constructing CultureInfo and
18996         related objects from libicu (if its available.)
18997
18998 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
18999
19000         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
19001
19002 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19003
19004         * threadpool.c: added an argument to async_invoke_thread that is the
19005         item to process, pass the MonoAsyncResult to the thread start function
19006         when creating a new thread. This way we don't need to acquire any lock
19007         when we're creating a new thread. Readded a semaphore for faster
19008         response times (instead of that Sleep i added).
19009
19010 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
19011
19012         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19013         get daylight change dates better on Windows, fix handling
19014         of platforms without tm_gmtoff.
19015
19016 2003-10-06  Martin Baulig  <martin@ximian.com>
19017
19018         * class.c (inflate_generic_method): Renamed to
19019         mono_class_inflate_generic_method() and made public.
19020         (mono_class_init): Don't inflate the generic methods here.
19021         (mono_class_from_generic): Added `gboolean inflate_methods'
19022         argument.  Inflate the methods here.
19023
19024         * loader.c (mono_method_get_param_names): Ignore instances of
19025         generic types for the moment.
19026
19027         * reflection.c (fixup_method): Added support for inflated methods.
19028         (mono_image_create_token): Use mono_image_get_methodref_token()
19029         for inflated methods.
19030         (mono_custom_attrs_from_param): Ignore instances of generic types
19031         for the moment.
19032         (mono_reflection_bind_generic_parameters): New public function.
19033         Moved all the functionality from
19034         ves_icall_Type_BindGenericParameters() here and added support for
19035         dynamic types.
19036         (mono_reflection_define_generic_parameter): Initialize
19037         `klass->methods' here.
19038
19039         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
19040         functionality into mono_reflection_define_generic_parameter().
19041         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
19042         TypeBuilder, return that TypeBuilder.
19043
19044 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19045
19046         * appdomain.c: removed mono_delegate_semaphore.
19047
19048         * threadpool.c:
19049         (mono_thread_pool_add): moved hash table creation inside and the thread 
19050         creation outside of the critical region.
19051         (mono_thread_pool_finish): removed obsolete code.
19052         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
19053         continue or exit the thread depending on the queue.
19054
19055 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
19056
19057         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
19058         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
19059         handle more bool marshalling options
19060
19061 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
19062
19063         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
19064         arrays of structs. Also add a more descriptive error message when
19065         a structure member is marshalled as LPArray.
19066
19067 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
19068
19069         * marshal.c (mono_marshal_get_native_wrapper): Add support for
19070         marshalling arrays of complex types. Fixes #29098. Also remove an
19071         usused and incomplete function.
19072
19073 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
19074
19075         * gc.c: report heap_size - free_bytes as total memory allocated
19076         (bug#49362).
19077
19078 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
19079
19080         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
19081         fix timezone handling problems on Windows.
19082         
19083         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
19084         asserts when the year is outside the range handled by ms the functions.
19085
19086         * class.c (setup_interface_offsets): If the class is an interface,
19087         fill out its interface_offsets slot.
19088
19089 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19090
19091         * threadpool.c: mark threadpool threads as background.
19092
19093 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
19094
19095         * decimal.c - define DECINLINE to nothing if not using GCC
19096
19097 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
19098
19099         * assembly.c: More refcount fixes.
19100
19101 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19102
19103         * string-icalls.c: if we're not trimming, return the same string.
19104         When not splitting, don't create a new string.
19105
19106 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19107
19108         * image.c:
19109         (mono_image_open): increment the ref_count inside the critical section.
19110
19111 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
19112
19113         * image.c (mono_image_open): Fix reference counting bug.
19114
19115 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
19116
19117         * marshal.c (mono_marshal_type_size) struct alignment changed for 
19118         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
19119         64bits. Avoid leak in mono_marshal_get_native_wrapper when
19120         mono_lookup_pinvoke_call throws.        
19121
19122 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
19123
19124         * reflection.c (mono_reflection_parse_type): Fix #49114.
19125
19126         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
19127         temporary workaround for cygwin header problem.
19128
19129         * object.c (mono_object_isinst): Synchronize this with the code
19130         generated by the JIT for casts.
19131
19132 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
19133
19134         * reflection.c (encode_type): Fix #38332.
19135
19136 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
19137
19138         * marshal.c (mono_marshal_method_from_wrapper): New function to return
19139         the original method from the wrapper method.
19140
19141 2003-09-25  Martin Baulig  <martin@ximian.com>
19142
19143         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
19144         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
19145         (ves_icall_Type_get_IsGenericInstance): New interncall.
19146
19147 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
19148
19149         * object.c: fix cast warning in big endian code.
19150
19151 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
19152
19153         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
19154         
19155 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19156
19157         * assembly.c: don't call check_env from mono_assembly_load. It's
19158         already done once in mono_assemblies_init and may cause headaches when
19159         multiple threads are loading assemblies.
19160
19161 2003-09-19  Martin Baulig  <martin@ximian.com>
19162
19163         * reflection.c (mono_reflection_define_generic_parameter): Don't
19164         allocate `klass->methods', set `klass->flags' to
19165         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
19166
19167 2003-09-18  Martin Baulig  <martin@ximian.com>
19168
19169         * class.c (mono_class_init): Don't create `class->methods' if it's
19170         already initialized.
19171
19172         * metadata.c (mono_metadata_load_generic_params): Make this
19173         actually work.
19174
19175         * reflection.c (mono_reflection_define_generic_parameter): Set
19176         parent class and interfaces from the constraints.
19177
19178         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
19179         to keep this struct in sync with the declaration in TypeBuilder.cs.
19180
19181 2003-09-17  Martin Baulig  <martin@ximian.com>
19182
19183         * metadata.h (MonoType): Replaced the data's `int type_param'
19184         field with `MonoGenericParam *generic_param'.
19185         (MonoGenericParam): Added `MonoClass *klass'.
19186
19187         * class.c (mono_class_from_gen_param): Removed the
19188         `MonoImage *image' and `int type_num' arguments.
19189
19190         * metadata.c (mono_metadata_parse_generic_param): New static
19191         method; creates a MonoGenericParam which just contains the index.
19192         (do_mono_metadata_parse_type): Call
19193         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
19194         MONO_TYPE_MVAR.
19195
19196         * reflection.c (mono_image_typedef_or_ref): Generic type
19197         parameters may be in the same assembly, but never use a typedef
19198         for them.
19199         (mono_reflection_define_generic_parameter): We're now creating a
19200         "real" class for the type parameter; it's now safe to call
19201         mono_class_from_mono_type() on the class'es type, it'll do the
19202         right thing.
19203
19204 2003-09-16  Martin Baulig  <martin@ximian.com>
19205
19206         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
19207         `symfile->range_entry_size' and `symfile->class_entry_size' here;
19208         the `symfile' data structure must be fully initialized before it
19209         gets added to the table.
19210
19211 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
19212
19213         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
19214
19215         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
19216         class init trampolines.
19217
19218 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
19219
19220         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
19221         to the built-in profiler to turn off time and allocation profiling
19222         respectively.
19223
19224 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
19225
19226         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
19227         g_direct_equal.
19228
19229         * debug-helpers.c (mono_method_full_name): Print the wrapper type
19230         in human readable form.
19231
19232 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
19233
19234         * reflection.c icall.c: Fixed warnings.
19235
19236         * image.c (load_class_names): Use a temporary hash table to hold the
19237         namespaces in order to avoid doing many string comparisons.
19238
19239         * image.h: Fix typo.
19240
19241         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
19242         Pass NULL instead of g_direct_equal to the GHashTable constructor 
19243         since the NULL case is short-circuited inside g_hash_table_lookup, 
19244         leading to better performance.  
19245
19246         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
19247         obtain the first custom attribute for a given index. Depends on the
19248         CustomAttribute table being sorted by the parent field.
19249
19250         * reflection.c (mono_custom_attrs_from_index): Use the new function 
19251         for better performance.
19252
19253 2003-09-07  Martin Baulig  <martin@ximian.com>
19254
19255         * class.c (mono_class_init): If we're a generic instance, inflate
19256         all our methods instead of loading them from the image.
19257         (mono_class_from_generic): Set `class->methods = gklass->methods'.
19258
19259 2003-09-07  Martin Baulig  <martin@ximian.com>
19260
19261         * mono-debug-debugger.c: Added support for constructors.
19262
19263 2003-09-06  Martin Baulig  <martin@ximian.com>
19264
19265         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
19266         New interncall.
19267
19268         * reflection.c (mono_reflection_setup_generic_class): Call
19269         ensure_runtime_vtable() to create the vtable.
19270
19271 2003-09-05  Martin Baulig  <martin@ximian.com>
19272
19273         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
19274         MONO_TYPE_MVAR.
19275
19276 2003-09-04  Martin Baulig  <martin@ximian.com>
19277
19278         * reflection.c (mono_reflection_define_generic_parameter): Generic
19279         parameters start with zero.
19280
19281 2003-09-04  Martin Baulig  <martin@ximian.com>
19282
19283         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
19284
19285         * reflection.h (MonoReflectionGenericParam): New typedef.
19286         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
19287         the generic parameters from the managed TypeBuilder.
19288
19289         * reflection.c (mono_reflection_define_generic_parameter): New function.
19290         (mono_reflection_create_runtime_class): Encode generic parameters.
19291         (mono_reflection_setup_generic_class): New function; this is
19292         called after adding adding all generic params to the TypeBuilder.
19293         (encode_type): Added MONO_TYPE_VAR.
19294
19295 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
19296
19297         * class.h class.c (mono_class_needs_cctor_run): Moved this method
19298         here from the JIT.
19299
19300         * assembly.h assembly.c: Moved the AOT loading code into an assembly
19301         load hook.
19302
19303 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
19304
19305         * reflection.h reflection.c class.h class.c: Delete duplicate 
19306         definition of mono_type_get_name () from reflection.c and export the
19307         one in class.c.
19308
19309         * class.c: Class loading fixes from Bernie Solomon 
19310         (bernard@ugsolutions.com).
19311
19312         * reflection.c: Endianness fixes from Bernie Solomon 
19313         (bernard@ugsolutions.com).
19314         
19315 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
19316
19317         * assembly.h assembly.c: Define a file format version for AOT
19318         libraries.
19319         
19320         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
19321
19322         * appdomain.h (MonoJitInfo): New field to determine whenever the
19323         code is domain neutral.
19324         
19325 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
19326
19327         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
19328
19329 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
19330
19331         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
19332         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
19333         Avoid caching the result since strings must be domain specific. Fixes
19334         #48050.
19335
19336 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
19337
19338         * marshal.c (mono_marshal_init): Make this callable multiple times
19339         since it is hard to find a correct place to call it.
19340
19341         * object.c (mono_runtime_class_init): Execute static constructors in
19342         the correct appdomain.
19343
19344         * image.c (build_guid_table): Handle the case when multiple images have
19345         the same GUID.
19346
19347 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19348
19349         * icall.c: added a couple of icalls for System.Web.
19350
19351 2003-08-28  Martin Baulig  <martin@ximian.com>
19352
19353         * icall.c (ves_icall_Type_BindGenericParameters): Use
19354         `klass->generic_inst' instead of `&klass->byval_arg' in the
19355         mono_type_get_object() call.  The returned type must be
19356         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
19357
19358 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
19359
19360         * NOTES: New file.
19361
19362         * object.c (mono_class_proxy_vtable): Make it thread safe.
19363
19364         * pedump.c: Fix warning.
19365
19366         * object.c appdomain.h: Get rid of metadata_section. 
19367         It is no longer needed and it was causing deadlocks with domain->lock.
19368
19369         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
19370
19371 2003-08-26  Martin Baulig  <martin@ximian.com>
19372
19373         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
19374
19375 2003-08-26  Martin Baulig  <martin@ximian.com>
19376
19377         * pedump.c (main): Call mono_metadata_init(),
19378         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
19379         and mono_loader_init().
19380
19381 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
19382
19383         * loader.h: Add missing include to fix build.
19384
19385         * image.h: mono_image_load_references is no more.
19386
19387         * assembly.c: Reworked assembly loading to make it really thread safe.
19388         After these changes, the assembly returned by mono_assembly_open is
19389         fully initialized, i.e. all its references assemblies are loaded.
19390
19391         * assembly.c (mono_image_load_references): Renamed to 
19392         mono_assembly_load_references, and made private, since clients no
19393         longer need to call it.
19394
19395         * class.c: Removed calls to mono_assembly_load_references, since it was
19396         a source of deadlocks.
19397
19398         * loader.h loader.c class.h class.c: Protect data structures using a 
19399         new lock, the loader lock.
19400
19401         * class.c (mono_class_setup_vtable): Create temporary hash tables and
19402         GPtrArrays only when needed.
19403
19404         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
19405         into empty structures by mcs. Fixes pinvoke7.cs.
19406         
19407         * domain.c (mono_init): Call a new initialization function.
19408
19409         * appdomain.c (mono_runtime_init): Call the new initializer function
19410         of the marshal module.
19411
19412         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
19413         inserted into empty structures by mcs. Fixes pinvoke7.cs.
19414
19415         * marshal.h marshal.c: Added locks around the wrapper caches to make
19416         this module thread safe.
19417
19418         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
19419         this argument. Fixes pinvoke1.exe.
19420
19421 2003-08-25  Lluis Sanchez <lluis@ximian.com>
19422
19423         * object.h: Added call_type field to MonoMethodMessage and the corresponding
19424         enumeration of values. Removed fields to store remote call output values in
19425         MonoAsyncResult. Not needed any more.
19426         * object.c: Initialize call_type and async_result fields in mono_message_init.
19427         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
19428         dispatching the message.
19429         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
19430         async call to finish. To do it use a message with EndInvoke call type.
19431
19432 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
19433
19434         * loader.h loader.c (mono_method_hash_marhal_info): New function which
19435         determines whenever a method has marshalling info.
19436
19437 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19438
19439         * assembly.c: fix the build on windows.
19440
19441 2003-08-22 Lluis Sanchez <lluis@ximian.com>
19442
19443         * object.cs: Fixed bug #47785.
19444
19445 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
19446
19447         * string-icalls.c (StringReplace): If their are no occurances of
19448         the old string found return a reference to the supplied
19449         string. This saves some memory and matches MS behavoir.
19450         
19451 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19452
19453         * socket-io.c: fixed compilation for systems that define AF_INET6
19454         and don't define SOL_IP/SOL_IPV6.
19455
19456 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
19457
19458         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
19459         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
19460
19461         * rawbuffer.c rawbuffer.h: Make this module thread safe.
19462
19463         * domain.c: Make this module thread safe.
19464
19465         * domain.c (mono_init): Call new initialization function.
19466
19467         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
19468         reference types too. Fixes #38812.
19469
19470         * image.c (mono_image_init): Fixed warnings.
19471
19472         * class.c (mono_class_from_typeref): Handle assembly load failure
19473         correctly.
19474
19475         * appdomain.c (add_assemblies_to_domain): Handle the case when
19476         the references of an assembly are not yet loaded.
19477
19478         * metadata.c image.c assembly.c: Moved initialization of global
19479         variables to a separate function called at startup since lazy 
19480         initialization of these variables is not thread safe.
19481         
19482         * image.c assembly.c: Made this module thread safe by adding locks in 
19483         the appropriate places.
19484
19485         * domain.c (mono_init): Call the new initialization functions of the
19486         three modules.
19487
19488 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
19489
19490         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
19491           make a direct call. It is proxy's work to make the call asynchronous.
19492           mono_delegate_end_invoke(): If the targe is a proxy, just collect
19493           the return values.
19494         * object.cs: mono_method_call_message_new(): read AsyncResult and
19495           state object from parameters list, if this info is requested.
19496         * object.h: Added fields to store remote call output values in
19497           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
19498
19499 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19500
19501         * object.h: add needed fields to MonoThread.
19502         * threads.c, threads.h: allow registering a function to cleanup data
19503         allocated per thread by the JIT.
19504
19505 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19506
19507         * loader.h: portability fix by Bernie Solomon
19508         * <bernard@ugsolutions.com>.
19509
19510 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
19511
19512         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
19513         return a MonoArray. This simplifies the code and also ensures that
19514         the cache allways contains an object reference as a value.
19515
19516         * icall.c (ves_icall_get_parameter_info): Simplified using the new
19517         function.
19518
19519 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19520
19521         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
19522         fixes a problem with byte ordering when getting the address family for
19523         a socket.
19524
19525 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
19526
19527         * .cvsignore: Added monosn.
19528
19529         * reflection.h reflection.c loader.c: Added support for parameter
19530         marshalling to dynamically created types. Fixes #47295.
19531
19532 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
19533
19534         * rand.c: remove useless warnings.
19535
19536 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
19537
19538         * class.c: implemented ldtoken for methods and fieldrefs.
19539
19540 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19541
19542         * threadpool.c: when mono_async_invoke was called, no one took care of
19543         monitoring the queue. So if the method invoked took some time and we
19544         got new async invoke requests after 500 ms (the thread created waited
19545         that long in WaitForSingleObject), the new async invoke was not called
19546         until the previous one finished.
19547
19548         This is fixed now. Thanks to Totte for helping with it.
19549
19550 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19551
19552         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
19553
19554 2003-08-11  Martin Baulig  <martin@ximian.com>
19555
19556         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
19557
19558 2003-08-06  Martin Baulig  <martin@ximian.com>
19559
19560         * mono-debug-debugger.c: Added support for static fields,
19561         properties and methods.
19562
19563 2003-08-06  Martin Baulig  <martin@ximian.com>
19564
19565         * mono-debug-debugger.c: Don't store the MonoString's vtable to
19566         make this work for applications with multiple application domains.
19567
19568 2003-08-04  Martin Baulig  <martin@ximian.com>
19569
19570         * mono-debug-debugger.c: Completely reworked the type support; the
19571         most important thing is that we're now just using one single
19572         `MonoType' instance per type.
19573
19574 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
19575
19576         * mono-endian.h, mono-endian.c, icall.c: Added icall
19577         ves_icall_System_Double_AssertEndianity to assert double word endianity
19578         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
19579
19580 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19581
19582         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
19583         support, icalls and fixes.
19584
19585 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
19586
19587         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
19588         classes that are a punctuation character in .NET is not the same a
19589         g_unichar_ispunct.
19590
19591 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19592
19593         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
19594
19595 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
19596
19597         * icall.c: Add new MemCopy internalcall.
19598         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
19599         Simplified code; It is not necessary to handle all the cases here,
19600         as the C# code takes care of it.  Only handle the case of the name
19601         resource embedded into the assembly.
19602
19603         Changed signature to return the data pointer and the size of the
19604         data. 
19605
19606 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
19607
19608         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
19609         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
19610
19611 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
19612
19613         * socket-io.c: ignore EINTR error in select.
19614
19615 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
19616
19617         * class.h, class.c: removed unused subclasses field in MonoClass.
19618
19619 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
19620
19621         * icall.c: improve fix of get_base_definition(). If the parent class
19622           doesn't have the mehod, look at the parent of the parent.
19623         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
19624           to check if a parameter is an in or out parameter
19625           (PARAM_ATTRIBUTE_IN is not set by default).
19626           mono_method_return_message_restore(): Use mono_class_value_size to
19627           get the size of a value type. mono_type_stack_size (parameterType)
19628           does not return the correct value if parameterType is byRef.
19629           mono_load_remote_field(), mono_load_remote_field_new(),
19630           mono_store_remote_field(), mono_store_remote_field_new():
19631           raise exception if the remote call returns an exception.
19632
19633 2003-07-28  Martin Baulig  <martin@ximian.com>
19634
19635         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
19636         method.  This is a wrapper around mono_runtime_invoke() which
19637         boxes the instance object if neccessary.
19638
19639 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19640
19641         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
19642         metadata.h, row-indexes.h, verify.c: first cut of generics support.
19643
19644 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19645
19646         * icall.c: disable mcs bug workaround.
19647
19648 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
19649
19650         * object.c (mono_runtime_class_init): Take the metadata_section
19651         mutex before obtaining the domain mutex.
19652
19653         * appdomain.h: Added definition of metadata_section mutex here. 
19654
19655         * object.c: define metadata_mutex here.
19656
19657 2003-07-24  Ravi Pratap  <ravi@ximian.com>
19658
19659         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
19660         fixed.
19661
19662 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
19663
19664         * reflection.c: Fix bug #46669
19665
19666 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19667
19668         * exception.c:
19669         * exception.h:
19670         * icall.c:
19671         * object.h: fill in the type name for TypeLoadException.
19672
19673 2003-07-23  Ravi Pratap  <ravi@ximian.com>
19674
19675         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
19676         relationship between TypeBuilders while compiling corlib) and bug
19677         45993 (Array types returned from the runtime while compiling
19678         corlib were from the loaded corlib).
19679
19680 2003-07-22  Martin Baulig  <martin@ximian.com>
19681
19682         * mono-debug-debugger.c: Reworked the type support a bit more;
19683         distinguish between types and classes.
19684
19685 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
19686
19687         * icall.c: add IsArrayImpl icall.
19688
19689 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
19690
19691         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
19692         initializing real_size only once. Also fix bug #46602.
19693
19694 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
19695
19696         * object.c: Renamed mono_metadata_section to metadata_section.
19697
19698 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
19699
19700         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
19701           empty array if the type is an array. Fixed.
19702           ves_icall_MonoMethod_get_base_definition: if the base method
19703           is abstract, get the MethodInfo from the list of methods of
19704           the class.
19705         * reflection.c: ParameterInfo.PositionImpl should be zero-based
19706           and it was 1-based. Fixed in mono_param_get_objects.
19707
19708 2003-07-20  Martin Baulig  <martin@ximian.com>
19709
19710         * mono-debug.h: Set version number to 31.
19711         (mono_debug_init): Added `MonoDomain *' argument.
19712
19713         * mono-debug-debugger.c: Reworked the type support; explicitly
19714         tell the debugger about builtin types; pass the `klass' address to
19715         the debugger.
19716
19717 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
19718
19719         * image.c: Allow new metadata tables to be loaded without a
19720         warning. Also update the warning message to give the new constant value.
19721                 
19722 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
19723
19724         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
19725         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
19726         array type representation changes.
19727
19728 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19729
19730         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
19731         on Environment.Exit () call.
19732
19733 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
19734
19735         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
19736         requires a matching corlib.
19737
19738 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
19739
19740         * Changelog: My editor decided to add a CR to each line. Sorry about that.
19741           Committed again without the CRs.
19742         
19743 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
19744
19745         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
19746           getting it from the "this" socket instance. Did not work
19747           if the socket is a subclass of Socket.
19748           Also fixed bug #35371.
19749
19750 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19751
19752         * metadata.c: fixed size for TypedByRef.
19753         * loader.c: when searching for a method, consider the vararg amrker.
19754         * unicode.c, decimal.c: constify some arrays.
19755
19756 2003-07-15  Dick Porter  <dick@ximian.com>
19757
19758         * socket-io.c: Fixed compilation for gcc < 3.2.
19759
19760         Fixed compilation for machines that don't have AF_INET6 (thanks to
19761         Bernie Solomon <bernard@ugsolutions.com> for that part.)
19762
19763         Fixed compile warnings.
19764         
19765         Fixed formatting and line endings.
19766
19767 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
19768
19769         * socket-io.h:
19770         * socket-io.c: Added IPv6 support.
19771
19772 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
19773
19774         * class.c (mono_class_is_assignable_from): New function to implement
19775         the is_assignable_from logic. Used by mono_object_isinst, 
19776         Type::IsAssignableFrom () and the interpreter.
19777
19778         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
19779         Object, even interfaces.
19780         
19781         * object.c (mono_object_isinst): Implement in terms of 
19782         is_assignable_from.
19783
19784         * icall.c (ves_icall_type_is_assignable_from): New icall.
19785
19786 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
19787
19788         * domain.c (foreach_domain): fix compiler warning.
19789
19790 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
19791
19792         * image.c (load_metadata_ptrs): use g_strndup because strndup is
19793         not available on all plattforms
19794
19795 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
19796
19797         * image.h image.c: Store the metadata version string in MonoImage.
19798         * icall.c: New icall to retrieve the image version.
19799         * reflection.c (create_dynamic_image): Fill in the image version field
19800         * reflection.c (build_compressed_metadata): Use the image version
19801         from the image structure.
19802
19803 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19804
19805         * appdomain.c: modified comment.
19806         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
19807         That will be its last iteration when mono_gc_cleanup is called from
19808         mono_runtime_cleanup and before the domain is unloaded.
19809
19810         Fixes bug #45962.
19811
19812 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
19813
19814         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
19815         attributes.
19816
19817 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19818
19819         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
19820         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
19821         Bernie Solomon <bernard@ugsolutions.com>.
19822
19823 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19824
19825         * object.c, object.h: provide mono_object_new_fast() for faster
19826         allocation in some special cases.
19827
19828 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
19829
19830         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
19831         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
19832
19833 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
19834
19835         * threadpool.c: fix leaks.
19836
19837 2003-07-01  Dick Porter  <dick@ximian.com>
19838
19839         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
19840         using MonoGHashTables.  Fixes threadpool bug posted to list.
19841
19842 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
19843
19844         * image.h, image.c: added support to load an assembly from a byte array.
19845         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
19846         assembly bundle support.
19847
19848 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
19849
19850         * threadpool.c (mono_thread_pool_add): keep a reference to the
19851         AsyncResult to prevent GC
19852
19853 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19854
19855         * class.c: leak fix.
19856
19857 2003-06-25  Dick Porter  <dick@ximian.com>
19858
19859         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
19860         for the async object, the WaitHandle object will close the handle.
19861         Fixes bug 45321.
19862
19863 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19864
19865         * class.c: in mono_array_class_get (), lookup from the hash with the
19866         same type we insert: this works around a bug in
19867         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
19868         lluis. The real fix will have to wait for after the release.
19869
19870 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19871
19872         * icall.c: fix memory leak when getting type members.
19873
19874 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19875
19876         * reflection.c: added more pubtoken special cases.
19877
19878 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
19879
19880         * class.c: handle field offset correctly when class size
19881         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
19882
19883 2003-06-20  Martin Baulig  <martin@ximian.com>
19884
19885         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
19886         *image' field.
19887
19888 2003-06-20  Martin Baulig  <martin@ximian.com>
19889
19890         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
19891
19892 2003-06-20  Martin Baulig  <martin@ximian.com>
19893
19894         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
19895         just distinguish between variables in registers and variables at
19896         an offset relative to a register.
19897
19898 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19899
19900         * icall.c: #ifdef out latest changes until mcs is fixed.
19901
19902 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19903
19904         * icall.c: return members in metadata order.
19905
19906 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19907
19908         * icall.c: avoid infinite loop in GetTimeZoneData.
19909
19910 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
19911
19912         * icall.c: added Marshal.Prelink/All icalls.
19913
19914 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19915
19916         * object.c, object.h: fix warnings and do some overflow checking
19917         when creating arrays.
19918
19919 2003-06-17  Dick Porter  <dick@ximian.com>
19920
19921         * file-io.h:
19922         * file-io.c: File attributes need to be tweaked slightly when
19923         passed from the managed to the w32 world.
19924
19925 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
19926         * profiler.h profiler-private.h profiler.c: Rework last patch
19927         based on suggestion by Paolo.
19928         
19929 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
19930
19931         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
19932         instruction level coverage data collection.
19933         * profiler.h profiler.c (: Added new callback function which can be
19934         used by the profiler to limit which functions should have coverage
19935         instrumentation.
19936         * profiler.c (mono_profiler_load): Call g_module_build_path to
19937         generate the file name of the profiler library.
19938
19939 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19940
19941         * profiler.c, profiler.h, profiler-private.h: added basic block 
19942         coverage profiling API.
19943
19944 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
19945
19946         * reflection.c (mono_reflection_create_runtime_class): Add support
19947         for events in dynamically generated code.
19948
19949         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
19950         not allocated.
19951
19952 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19953
19954         * icall.c: when getting timezone info, return reasonable values if we
19955         can't get the actual data.
19956
19957 2003-06-14  Dick Porter  <dick@ximian.com>
19958
19959         * threads.c (start_wrapper): Remove the reference to the thread
19960         object in the TLS data, so the thread object can be finalized.
19961         This won't be reached if the thread threw an uncaught exception,
19962         so those thread handles will stay referenced :-( (This is due to
19963         missing support for scanning thread-specific data in the Boehm GC
19964         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
19965
19966 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
19967
19968         * reflection.c: ensure streams and tables are first allocated with
19969         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
19970
19971 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19972
19973         * icall.c: fixed GetElementType for byrefs (bug# 44792).
19974
19975 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
19976
19977         * reflection.c (mono_reflection_create_runtime_class): Add support for
19978         properties to dynamically created classes.
19979         * reflection.c: Fix a few places where non-MonoObjects were inserted
19980         into the tokens hashtable.
19981
19982 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19983
19984         * object.c: some support to handle out of memory exceptions.
19985
19986 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
19987
19988         * marshal.c (mono_marshal_get_native_wrapper): support reference
19989         return types
19990
19991 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19992
19993         * object.h, object.c: more portability stuff from Bernie Solomon.
19994         Unexport mono_object_allocate(). Added mono_object_unbox ().
19995         Set exitcode when an unhandled exception is thrown.
19996
19997 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
19998
19999         * marshal.c (mono_marshal_get_native_wrapper): use custom
20000         marshaler for return types.
20001
20002 2003-06-10  Dick Porter  <dick@ximian.com>
20003
20004         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
20005         ip_mreq is available
20006
20007 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
20008
20009         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
20010         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
20011         by Bernie Solomon <bernard@ugsolutions.com>.
20012
20013 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
20014
20015         * gc.c (mono_gc_init): Avoid error message on shutdown when
20016         GC_DONT_GC=1 is used.
20017
20018         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
20019         New icall to return the GUID of a module.
20020
20021 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
20022
20023         * class.c: ensure instance size always includes the parent's size
20024         even whem class size is set explicitly (fixes bug#44294).
20025
20026 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
20027
20028         * profiler.h, profiler.c: made the simple profiler thread-safe,
20029         get more accurate timing info. Allow the loading of an
20030         externally-developed profiler module.
20031
20032 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
20033
20034         * marshal.c (mono_marshal_get_native_wrapper): improved
20035         class/byref arguments.
20036         (mono_marshal_get_native_wrapper): better string marshaling support.
20037
20038 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
20039
20040         * class.c: ensure .pack and .size are handled correctly and
20041         simplified layout of static fields.
20042
20043 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
20044
20045         * appdomain.c
20046         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
20047
20048         * loader.c (mono_lookup_pinvoke_call): look for modules in the
20049         current directory (fix bug 44008)
20050
20051 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
20052
20053         * marshal.c (mono_marshal_get_native_wrapper): started support for
20054         custom marshalers.
20055         (mono_delegate_to_ftnptr): consider marshalling specifications
20056
20057 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
20058
20059         * reflection.c, reflection.h: emit custom marshal info.
20060
20061 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20062
20063         * object.c: free the GError.
20064         * icall.c: added CloseEvent_internal.
20065         * threads.[ch]:
20066         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
20067         call.
20068
20069 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
20070
20071         * loader.c (mono_method_get_signature): Add support for dynamic
20072         assemblies.
20073
20074 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
20075
20076         * reflection.c: fixed bug #43905.
20077
20078 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
20079
20080         * class.c, domain.c, icall.c, metadata.h, object.h: support for
20081         handling TypedReference and ArgIterator.
20082         * loader.c, loader.h: added function to get signature at call site.
20083
20084 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
20085
20086         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
20087         data readonly. Buglets and warning fixes. Some MethodSpec support.
20088
20089 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
20090
20091         * class.h, class.c, object.c: remove relative numbering support.
20092
20093 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
20094
20095         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
20096         free the string, until we get a chance to fix Gtk#
20097
20098 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20099
20100         * marshal.c: revert last patch.
20101
20102 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
20103
20104         * icall.c: updates for new mono_class_vtable() not calling
20105         the type constructor anymore.
20106
20107 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
20108
20109         * object.h, object.c: separate vtable creation from type
20110         initialization. Make running the .cctor thread safe.
20111
20112 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
20113
20114         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
20115
20116 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
20117
20118         * loader.c (mono_get_method): consider calling convention
20119
20120 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
20121
20122         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
20123         to return the invisible global type for a module.
20124
20125         * reflection.c (mono_image_build_metadata): Emit global fields too.
20126
20127 2003-05-20  Peter Williams  <peterw@ximian.com>
20128
20129         * loader.c (mono_lookup_internal_call): Add a few newlines.
20130
20131 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
20132
20133         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
20134         literal strings.
20135
20136         * appdomain.c (set_domain_search_path): Recalculate search path when
20137         AppDomainSetup.PrivateBinPath changes.
20138
20139         * object.c (mono_class_compute_gc_descriptor): It turns out some
20140         parts of the class libs (like System.Thread) holds pointers to
20141         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
20142         to treat native int a pointer type here.
20143         
20144 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
20145
20146         * appdomain.h, domain.c: add hashtable for jump target resolution.
20147
20148 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
20149
20150         * reflection.h reflection.c icall.c: Added new icalls 
20151         GetManifestResourceInfoInternal, GetModulesInternal and support
20152         infrastructure.
20153
20154 2003-05-16  Dick Porter  <dick@ximian.com>
20155
20156         * icall.c:
20157         * file-io.h:
20158         * file-io.c: Implement System.IO.MonoIO::GetTempPath
20159
20160 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
20161
20162         * object.c: mono_store_remote_field: little fix to previous patch.
20163
20164 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
20165
20166         * class.c: add constructors to array classes.
20167         * icall.c: special case array construction for InternalInvoke (),
20168
20169 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
20170
20171         * class.h class.c reflection.c object.c: Added support for field
20172         defaults in dynamically generated classes.
20173
20174 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
20175
20176         * reflection.c: properly encode charset for ddlimport.
20177
20178 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
20179
20180         * threads.c: allow compiling without GC.
20181
20182 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
20183
20184         * appdomain.h, object.c, object.h, threads.c, threads.h: added
20185         handling of thread static data.
20186
20187 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
20188
20189         * reflection.h, reflection.c: added mono_custom_attrs_free ().
20190
20191 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
20192
20193         * class.c (mono_array_class_get): always set the serializable flags
20194         (mono_array_class_get): always set the SEALED attribute for array types
20195
20196 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
20197
20198         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
20199         attributes (fix for bug 42021).
20200
20201 2003-05-12  Dick Porter  <dick@ximian.com>
20202
20203         * gc.c: Don't run finalizers when the finalizer thread is
20204         finishing up, because the default domain has already been
20205         destroyed.
20206
20207 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
20208
20209         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
20210         value is null, we should throw an exception.   This is slightly
20211         different than the other conventions used for the constructor.
20212
20213 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20214
20215         * socket-io.c: fixed windows build.
20216
20217 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20218
20219         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
20220
20221 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
20222
20223         * object.c (mono_string_new_wrapper): Compatibility fix for MS
20224         compilers.
20225
20226 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
20227
20228         * class.c (mono_class_layout_fields): Add experimental GC aware
20229         auto layout facility. Requires class library changes to work correctly.
20230
20231         (mono_class_setup_vtable): Avoid overriding explicit interface
20232         method implementations. Fixes iface3.exe test.
20233
20234         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
20235         object reference.
20236         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
20237         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
20238
20239         * metadata.h: Add new type classification macro which determines
20240         whenever the type holds an object reference.
20241
20242 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
20243
20244         * marshal.c (mono_marshal_get_native_wrapper): cleanups
20245
20246 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
20247
20248         * gc.c (finalizer_thread): Work around a GC bug.
20249
20250 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
20251
20252         * marshal.c (emit_struct_conv): allow unions
20253
20254         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
20255
20256 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
20257
20258         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
20259
20260 2003-05-06  Martin Baulig  <martin@ximian.com>
20261
20262         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
20263
20264 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20265
20266         * socket-io.c:
20267         (Select_internal): allow NULLs, don't create arrays if not needed.
20268         Coupled with Socket.cs changes.
20269
20270         * threadpool.c:
20271         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
20272         register a finalizer for it that will close the semaphore handle. This
20273         fixes the leak and make Lupus' test run with > 4080 loops.
20274
20275 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
20276
20277         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
20278         Jerome Laban (bug #42287)
20279
20280 2003-05-02  Martin Baulig  <martin@ximian.com>
20281
20282         * debug-mono-symfile.h
20283         (MonoSymbolFile): Moved declaration into mono-debug.h.
20284         (MonoDebugMethodJitInfo): Likewise.
20285         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
20286         argument.
20287         (_mono_debug_address_from_il_offset): Take a
20288         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
20289
20290         * mono-debug.h
20291         (MonoDebugDomainData): New struct.
20292         (mono_debug_get_domain_data): New function.
20293         (mono_debug_add_method): Take an additional `MonoDomain *'
20294         argument.
20295         (mono_debug_source_location_from_address): Likewise.
20296         (mono_debug_il_offset_from_address): Likewise.
20297         (mono_debug_address_from_il_offset): Likewise.
20298
20299 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
20300
20301         * reflection.c: one more check for null type in custom attrs.
20302
20303 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20304
20305         * reflection.c: avoid warning (comparison is always false due to limited
20306         range of data type).
20307
20308 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20309
20310         * icall.c: throw an exception in Type.GetField if the argument 'name'
20311         is NULL.
20312
20313 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
20314
20315         * reflection.c: fixed handling of enums in named arguments to custom
20316         attributes (bug #42123).
20317
20318 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
20319
20320         * reflection.c: use the right array element type and handle
20321         a null for a Type argument, too.
20322
20323 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
20324
20325         * reflection.c: handle arrays as arguments to custom attributes.
20326
20327 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
20328
20329         * reflection.c: handle a string value in a custom attr
20330         ctor that takes an object.
20331
20332 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
20333
20334         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
20335         (fix bug #42063)
20336
20337 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
20338
20339         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
20340
20341 2003-04-27  Martin Baulig  <martin@ximian.com>
20342
20343         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
20344         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
20345         MONO_DEBUGGER_EVENT_BREAKPOINT.
20346         (mono_breakpoint_trampoline_code): Removed.
20347         (mono_debugger_event_handler): The last argument is now a
20348         `guint32'.
20349         (mono_debugger_insert_breakpoint_full): Removed the
20350         `use_trampoline' argument.
20351         (mono_debugger_method_has_breakpoint): Likewise.
20352         (mono_debugger_trampoline_breakpoint_callback): Renamed to
20353         mono_debugger_breakpoint_callback(); take the method and
20354         breakpoint number as arguments.
20355
20356 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
20357
20358         * metadata.c: fix off by one when loading parameters attributes.
20359
20360 2003-04-24  Martin Baulig  <martin@ximian.com>
20361
20362         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
20363
20364 2003-04-24  Martin Baulig  <martin@ximian.com>
20365
20366         * mono-debug-debugger.c: Moved all code which interacts with the
20367         Mono Debugger here.
20368
20369         * debug-mono-symfile.c: This code now just deals with the symbol
20370         file itself, the debugger code is now in mono-debug-debugger.c.
20371
20372 2003-04-23  Martin Baulig  <martin@ximian.com>
20373
20374         * mono-debug.c (mono_debug_source_location_from_il_offset):
20375         New method; like mono_debug_source_location_from_address(), but
20376         takes an IL offset instead of a machine address.
20377
20378 2003-04-23  Martin Baulig  <martin@ximian.com>
20379
20380         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
20381         `line' field; this is now computed by the debugger.
20382
20383 2003-04-23  Martin Baulig  <martin@ximian.com>
20384
20385         * mono-debug.[ch]: New files.  This is the new debugging interface.
20386
20387         * mono-debug-debugger.[ch]: New files.  Moved all code which
20388         interacts with the Mono Debugger here.
20389
20390 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
20391
20392         * domain.c (mono_init): initialize mono_defaults.monitor_class
20393
20394 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
20395
20396         * reflection.c (method_encode_code): Add a spicy exception to help
20397         future compiler authors.
20398
20399 2003-04-21  Martin Baulig  <martin@ximian.com>
20400
20401         * icall.c
20402         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20403         Make this work with relative pathnames; g_filename_to_uri() needs
20404         an absolute filename.
20405
20406 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
20407
20408         * icall.c: Track name changes in Object and ValueType.
20409
20410 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
20411
20412         * metadata.c (mono_type_stack_size): size should be a multiple of
20413         sizeof (gpointer)
20414
20415 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20416
20417         * gc.c:
20418         (internal_domain_finalize): moved into mono_domain_finalize. No need
20419         to create another thread because the finalizers will be run in the
20420         finalizer thread.
20421         
20422         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
20423         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
20424         to be run (MS does this too).
20425
20426 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
20427
20428         * object.c (mono_class_compute_gc_descriptor): Update comment.
20429
20430         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
20431
20432         * image.h: Add synchronized wrapper cache.
20433
20434         * image.c (do_mono_image_open): Initialize cache.
20435
20436         * reflection.c (create_dynamic_mono_image): Initialize cache.
20437
20438 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20439
20440         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
20441         ves_icall_System_Buffer_ByteLengthInternal.
20442
20443 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
20444
20445         * reflection.c: setup klass->nested_in earlier. Allow
20446         a dash in the assembly name.
20447
20448 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
20449
20450         * metadata.c (mono_type_to_unmanaged): dont access
20451         type->data.klass for MONO_TYPE_OBJECT
20452         (mono_type_to_unmanaged): consider System.Delegate class
20453
20454 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
20455
20456         * class.c: just setup supertypes in the proper place instead of
20457         initializing the full element class for arrays.
20458
20459 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
20460
20461         * class.c: ensure the element class of arrays is initialized.
20462         Setup the supertype info for array classes, too.
20463
20464 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
20465
20466         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
20467
20468 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20469
20470         * Makefile.am: re-added -m option when running cygpath. This way,
20471         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
20472         separator.
20473         * mono-config.c: same codepath for locating mono config file for WIN32
20474         and the rest.
20475         * assembly.c: if mono_assembly_setrootdir is called, don't override
20476         the value set.
20477
20478 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20479
20480         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
20481         MONO_ASSEMBLIES variable.
20482
20483 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
20484
20485         * icall.c: added Assembly::GetNamespaces() icall.
20486
20487 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20488
20489         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
20490
20491 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
20492
20493         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
20494         * object.c: fixed bug in the construction of vtable for proxies
20495
20496 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
20497
20498         * object.c (mono_array_new): Mark mono_array_new as an icall.
20499
20500 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20501
20502         * class.c: fixed test for public method when overriding interfaces.
20503         Closes bug #40970.
20504
20505 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
20506
20507         * appdomain.h, domain.c: added mono_domain_foreach() to
20508         be able to access the currently loaded appdomains.
20509         * object.c: make string interning work across sppdomains.
20510         Mark some functions for use as icalls.
20511
20512 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
20513
20514         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
20515
20516         * reflection.h reflection.c: Allocate long living data using 
20517         GC_MALLOC_ATOMIC so the collector does not need to scan it.
20518
20519         * reflection.c: Double the allocation size in streams instead of
20520         increasing it, to prevent unneccesary copying on large assemblies.
20521         
20522         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
20523         creation if the assembly does not have the Run flag set.
20524
20525 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
20526
20527         * class.h: avoid the C++ keywords in header files (Jerome Laban
20528         spotted and fixed this).
20529
20530 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20531
20532         * object.c:
20533         (mono_unhandled_exception): fill in the arguments for the
20534         UnhandledException event. Only trigger that event for the default
20535         domain (as MS does).
20536
20537 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
20538
20539         * object.c: Improve typed allocation stuff based on suggestions from
20540         Paolo. Also turn it on if the GC library supports it.
20541
20542 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
20543
20544         * object.c object.h class.h: Added experimental typed allocation
20545         facility using the interfaces in gc_gcj.h.
20546
20547         * os/gc_wrapper.h: Added new include files.
20548         
20549 2003-04-03  Martin Baulig  <martin@ximian.com>
20550
20551         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
20552         which is not yet enabled by default.
20553
20554         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
20555         functions.
20556         (mono_gc_lock, mono_gc_unlock): New static functions.
20557
20558         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
20559         functions; stop/start the world for the garbage collector.  This
20560         is using the windows API; we need to complete the SuspendThread()/
20561         ResumeThread() implementation in the io-layer to make this work on Unix.
20562         (mono_gc_push_all_stacks): New public function; tells the garbage
20563         collector about the stack pointers from all managed threads.
20564
20565 2003-04-03  Martin Baulig  <martin@ximian.com>
20566
20567         * object.h (MonoThread): Added `gpointer stack_ptr'.
20568
20569         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
20570
20571 2003-04-03  Martin Baulig  <martin@ximian.com>
20572
20573         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
20574
20575 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
20576
20577         * reflection.c (typebuilder_setup_fields): Initialize field.first and
20578         field.last.
20579
20580 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
20581
20582         * loader.c (mono_lookup_internal_call): Report the corlib that is
20583         out of sync.
20584
20585 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
20586
20587         * icall.c (ves_icall_type_GetTypeCode): fixed check for
20588         System.DBNull (it's class not valuetype).
20589
20590 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
20591
20592         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
20593         if the array method was already assigned a token (fixes bug#40646).
20594
20595 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
20596
20597         * reflection.c (mono_reflection_get_type): Attempt type resolve even
20598         if no assembly is given.
20599
20600 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
20601
20602         * metadata.h: Added the new tables.
20603
20604         * row-indexes.h: Added definitions for new tables.
20605
20606         * metadata.c: Add schemas for new tables, and add support for
20607         computing the sizes of them.
20608
20609         * class.c: Update for handling the new type cases.
20610
20611 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
20612
20613         * metadata.h (MONO_TYPE_IS_VOID): new macro
20614
20615 2003-03-31  Martin Baulig  <martin@ximian.com>
20616
20617         * threads.h (MonoThreadCallbacks): Added `thread_created'.
20618
20619         * threads.c (mono_thread_new_init): Call `thread_created' in the
20620         mono_thread_callbacks.
20621
20622 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
20623
20624         * loader.h: added marshalbyrefobject_class to mono_defaults
20625         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
20626         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
20627           generation of output parameters.
20628           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
20629         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
20630           contextbound and the target object belongs to the context of the caller.
20631         * object.h: added context and unwrapped_server variables in MonoRealProxy.
20632         * object.c: Implemented support for interfaces and abstract classes
20633           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
20634           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
20635
20636 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
20637
20638         * class.h class.c (mono_class_is_subclass_of): New function.
20639         
20640         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
20641         routines for most common case (calls from ArrayList::ToArray).
20642
20643         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
20644         routine so programs which call Environment::Exit() can be profiled.
20645
20646         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
20647         Added MONO_ARCH_SAVE_REGS.
20648
20649         * icall.c (ves_icall_type_is_subtype_of): Use new function.
20650
20651 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
20652
20653         * blob.h: Add a couple of new MonoType types definitions.
20654
20655         * tabledefs.h: Add a couple of new call convs.
20656
20657 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
20658
20659         * reflection.h (MonoReflectionDynamicAssembly): track changes in
20660         the layout of the class.
20661
20662         * reflection.c (alloc_table): double the size on overflow to avoid
20663         unnecessary copying.
20664
20665         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
20666         avoid filling out metadata tables and blobs. Also set mb->ilgen to
20667         null so it can be garbage collected.
20668         
20669 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
20670
20671         * reflection.c (mono_reflection_get_type): Return the resolved type
20672         only if it is in the assembly we searched.
20673
20674         * reflection.c (ensure_runtime_vtable): Initialize method slots.
20675
20676         * class.c (mono_class_setup_vtable): Set the slot of the overriding
20677         method.
20678
20679 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20680
20681         * appdomain.c:
20682         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
20683         the right one is 'file:///blah', but MS allows it.
20684         * assembly.c:
20685         (mono_assembly_open): allow 'file://blah'
20686
20687         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
20688
20689 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
20690
20691         * socket-io.c: fixes bug #40310.
20692
20693 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
20694
20695         * reflection.c (mono_reflection_parse_type): handle deeply nested
20696         types correctly.
20697
20698         * reflection.c (mono_image_create_token): Use unique token values
20699         since they will be put into a hash table.
20700
20701         * class.c (mono_class_setup_vtable): If a method occurs in more than
20702         one place in the vtable, and it gets overriden, then change the
20703         other occurances too.
20704
20705         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
20706         object as return type.
20707
20708 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20709
20710         * icall.c: Deleted "ToString" implementation for double and float
20711         because they are full implemented in managed code.
20712
20713 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20714
20715         * reflection.c, reflection.h: implemented and exported functions
20716         to retrieve info about custom attributes.
20717
20718 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20719
20720         * appdomain.c: moved Uri handling to assembly.c
20721         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
20722         work when using a file Uri in *nix and windows.
20723
20724         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
20725         GetReferencedAssemblies.
20726
20727 2003-03-18  Dick Porter  <dick@ximian.com>
20728
20729         * icall.c: Rename a couple of internal calls
20730
20731         * threads.c: Set the thread state to Stopped when a thread exits.
20732         Fixes bug 39377.
20733
20734 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
20735
20736         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
20737         New icall.
20738
20739         * object.c (mono_class_vtable): fix warning.
20740
20741 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
20742
20743         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
20744
20745         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
20746         memory.
20747         (method_encode_clauses): Create exception info structures in the right
20748         order.
20749         (mono_reflection_setup_internal_class): Initialize supertypes field.
20750
20751         * class.c object.c: Handle interfaces which implement other interfaces 
20752         correctly.
20753
20754         * class.h class.c: Move the supertypes array initialization code into 
20755         a separate function so it can be used for dynamic types too. Also call
20756         it earlier, in mono_class_init(), since it can be used before the
20757         type is initialized.
20758
20759 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20760
20761         * Makefile.am:
20762         * assembly.c:
20763         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
20764
20765         * appdomain.c:
20766         * appdomain.h:
20767         * marshal.c:
20768         * object.c: remove warnings.
20769
20770 2003-03-13  Martin Baulig  <martin@ximian.com>
20771
20772         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
20773         (MonoDebugLexicalBlockEntry): New types.
20774
20775         * debug-mono-symfile.c
20776         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
20777
20778 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20779
20780         * process.c: ret can be any non-zero value accroding to MS doc.
20781
20782 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
20783
20784         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
20785         fixing a warning for a miss-used prototype, would have cause
20786         random memory corruption.
20787
20788 2003-03-07  Martin Baulig  <martin@ximian.com>
20789
20790         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
20791         getting really annoying ....
20792
20793 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
20794
20795         * reflection.c (fixup_method): added support for array methods.
20796
20797 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
20798
20799         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
20800         (pointed out by Michael Adams).
20801
20802 2003-03-04  Dick Porter  <dick@ximian.com>
20803
20804         * icall.c: Temporarily reverted the Double and Single ToString()
20805         change, because it broke nunit.
20806
20807 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
20808
20809         * object.h, threads.h: make include files compatible with C++
20810         (patch by Jerome Laban <jlaban@wanadoo.fr>).
20811
20812 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20813
20814         * icall.c: Erased ToString helper functions for Double and Single.
20815         Now, that implementations ar all in managed code (Double and Single
20816         Formatters).
20817
20818 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
20819
20820         * appdomain.c: Added method for initializing the default context of
20821         a domain. Added internal call for getting the default context.
20822         * appdomain.h: Added context variable in MonoDomain struct.
20823         * domain.c: mono_domain_set also sets the default context of the domain
20824         * icall.c: Mapped internal method InternalGetDefaultContext.
20825         * object.c: mono_object_get_virtual_method returns always a remoting
20826         wrapper if the object is a transparent proxy.
20827         mono_runtime_invoke_array: when creating an object by calling the
20828         constructor, if the created object is a proxy, then the constructor should
20829         be called using the a remoting wrapper.
20830
20831 2003-03-03  Dick Porter  <dick@ximian.com>
20832
20833         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
20834         variable so it compiles on solaris.  Problem spotted by
20835         Christopher Taylor <ct@cs.clemson.edu>
20836
20837 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20838
20839         * appdomain.c:
20840         (get_info_from_assembly_name): don't leak value.
20841
20842         * icall.c:
20843         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
20844         result.
20845
20846 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
20847
20848         * assembly.c: export mono_image_load_references ().
20849         * class.c: handle function pointers. mono_class_from_name() now
20850         supports nested type names directly.
20851
20852 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
20853
20854         * reflection.h reflection.c: Encode already created dynamic methods 
20855         and fields correctly as a DEF instead of a REF.
20856
20857         * reflection.c: Get rid of the force_ref argument to 
20858         mono_image_typedef_or_ref since it was wrong in the first place.
20859
20860         * string-icalls.c: add error checking to string constructors according
20861         to the MSDN docs.
20862
20863         * reflection.c: Emit types in the order their TypeBuilders were 
20864         created. Previously, a new table index was assigned to each type before
20865         the tables were emitted. This was wrong because the signature blob
20866         might already refer to a type by its original table index.
20867
20868 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
20869
20870         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
20871         change.
20872         
20873 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20874
20875         * Makefile.am: make assemblies dir have \ instead of / on windows.
20876
20877 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
20878
20879         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
20880         iterate over the NESTEDCLASS table using a linear search since the
20881         table is not guaranteed to be sorted by the secondary key.
20882
20883         * class.c (mono_class_create_from_typedef): fixed up call to
20884         mono_metadata_nesting_typedef.
20885         
20886 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
20887
20888         * marshal.c (mono_string_to_byvalstr): clear the memory as
20889         suggested by Jerome Laban <jlaban@wanadoo.fr>
20890
20891 2003-02-26  Dick Porter  <dick@ximian.com>
20892
20893         * process.c: Cope with padding in .rsrc blocks
20894
20895 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
20896
20897         * metadata.h: reverted the filter_len change, it breaks reflection
20898         
20899 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
20900
20901         * metadata.h: added a new field to store the filter_len
20902         
20903
20904 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
20905
20906         * reflection.c: handle custom attributes for types and members
20907         created with Reflection.Emit (bug#38422).
20908
20909 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
20910
20911         * reflection.c: define RTSpecialName automatically for constructors for
20912         compatibility with MS.NET.
20913
20914         * reflection.c (mono_reflection_create_runtime_class): initialize
20915         nested_in field of dynamically created classes.
20916
20917 2003-02-22  Martin Baulig  <martin@ximian.com>
20918
20919         * debug-mono-symfile.h: Incremented version number.
20920
20921 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
20922
20923         * object.h icall.c process.c: fix warnings.
20924
20925 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
20926
20927         * appdomain.h appdomain.c:
20928         (mono_domain_try_type_resolve): split the 
20929         name_or_tb argument into a name and a tb argument.
20930         (mono_domain_has_type_resolve): new function to check whenever the
20931         application has registered a TypeResolve event handler.
20932         
20933         * icall.c reflection.h reflection.c: move the type resolve logic into
20934         mono_reflection_get_type () so it will be invoked when 
20935         Assembly::GetType () is called.
20936
20937         * reflection.c:
20938         (mono_reflection_get_type): renamed to get_type_internal.
20939         (mono_reflection_get_type): fixed type name generation so it works 
20940         for nested types too.
20941         (mono_reflection_get_type): call has_type_resolve () to avoid the 
20942         costly type name generation if there is no resolve event handler.
20943
20944 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20945
20946         * class.c, image.c: load exported types from file references.
20947
20948 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
20949
20950         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
20951           used to cache the managed methods used to create proxies and make 
20952           remote invocation of methods.
20953         * class.h: Added in MonoVTable a flag to indicate that a class needs 
20954           to be remotely created.
20955         * object.c: Modified the method mono_class_vtable(). It now initializes 
20956           the remote flag of the vtable. Modified mono_object_new_specific(), 
20957           so now it checks the remote flag.
20958         * icall.c: Added a couple of internal methods, one for enabling instance 
20959           creation interception for a type, and one for creating objects bypassing
20960           the remote check.
20961
20962 2003-02-18  Martin Baulig  <martin@ximian.com>
20963
20964         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
20965         New interncall to get a method's metadata token.
20966
20967         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
20968         New interncall for the debugger.
20969
20970 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
20971
20972         * class.c (mono_class_setup_vtable): allocate supertype array
20973
20974 2003-02-18  Martin Baulig  <martin@ximian.com>
20975
20976         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
20977
20978 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20979
20980         * reflection.c:
20981         (assembly_name_to_aname): jump over unknown properties (i've found
20982         something like: 'type, assembly, version=xxx, custom=null, public...',
20983         so now will ignore custom=null and still get the rest of the values).
20984
20985 2003-02-17  Dick Porter  <dick@ximian.com>
20986
20987         * threads.c: Have Thread.Start() wait for a semaphore to signal
20988         that the thread has set up all its local data.  This fixes bug
20989         34323, where Abort() raced the new thread's TLS data.
20990
20991         Also removes the handle_store() call from start_wrapper, because
20992         threads are now always created suspended and there is no longer a
20993         race between the parent and child threads to store the info.
20994
20995 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
20996
20997         * image.c: explain the #- heap issue in a message, hopefully
20998         avoiding FAQs on mono-list.
20999
21000 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21001
21002         * icall.c:
21003         (GetEntryAssembly): if the domain has not invoked
21004         AppDomain.ExecuteAssembly yet, return the assembly of the default
21005         AppDomain.
21006
21007 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
21008
21009         * class.c (mono_ldtoken): make it work in dynamic assemblies.
21010
21011 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
21012
21013         * metadata.c, reflection.c: simple speedup to type hash
21014         and equals code.
21015
21016 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
21017
21018         * image.c, image.h, class.c, assembly.c: move module loading
21019         to MonoImage. When loading metadata, consider alignemnet from
21020         the start of metadata, not from the metadata address in memory.
21021
21022 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
21023
21024         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
21025         AssemblyBuilder objects. Factored out custom attribute creation into
21026         a separate function.
21027         (create_custom_attr): new function to create custom attributes.
21028
21029 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
21030
21031         * Makefile.am: Got tired of typing the full pathname to pedump.
21032         Until there is another option, am installing this.
21033
21034 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
21035
21036         * class.c (class_compute_field_layout): always set field->parent 
21037         (mono_ldtoken): use mono_defaults.fieldhandle_class;
21038
21039 2003-02-11  Dick Porter  <dick@ximian.com>
21040
21041         * threads-types.h:
21042         * monitor.c: Rewrote Monitor, making lock much faster and
21043         Pulse/Wait work as specified.  Also uses much fewer handles, and only
21044         creates them as needed.
21045
21046         * exception.c: Added SynchronizationLockException
21047
21048         * threads.c: Deleted old Monitor implementation.  The new one is
21049         in a new file.
21050
21051 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
21052
21053         * class.c: handled TypedReference type code. Set the correct size for
21054         class data. Setup interface_offsets for interface classes, too.
21055
21056 2003-02-09  Martin Baulig  <martin@ximian.com>
21057
21058         * debug-mono-symfile.h: Reflect latest symbol writer changes.
21059
21060 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
21061
21062         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
21063         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
21064         * object.c: fixed mono_object_get_virtual_method () for interfaces.
21065         * verify.c: check for code that runs after the end of the method.
21066
21067 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
21068
21069         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
21070         "System.Math::Round2".
21071         * sysmath.h: Added Floor, Round and Round2 definitions.
21072         * sysmath.c: Modified certain functions that were not 100% compliant
21073         with MS.NET (math precision) and added the implementation of Floor,
21074         Round and Round2.
21075
21076 2003-02-07  Martin Baulig  <martin@ximian.com>
21077
21078         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
21079
21080 2003-02-07  Martin Baulig  <martin@ximian.com>
21081
21082         * debug-mono-symfile.c: Reflected latest symwriter changes.
21083         (mono_debug_create_mono_symbol_file): Removed.
21084         (mono_debug_open_mono_symbol_file): Take an argument which
21085         specifies whether to create a dynamic symbol file.
21086
21087 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
21088
21089         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
21090
21091 2003-02-05  Martin Baulig  <martin@ximian.com>
21092
21093         * reflection.c (mono_image_build_metadata): Make this public,
21094         protect it against being called multiple times, don't create
21095         resources and don't build the compressed metadata here.
21096         (mono_image_create_pefile): Do this here.
21097
21098         * icall.c
21099         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
21100
21101 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21102
21103         * socket-io.c: fixed bug #36322.
21104
21105 2003-02-06  Piers Haken <piersh@friskit.com>
21106
21107         * appdomain.[ch]:
21108         * class.h:
21109         * debug-mono-symfile.c:
21110         * icall.c:
21111         * loader.c:
21112         * mono-config.c:
21113         * monosn.c:
21114         * reflection.c:
21115         * socket-io.c: warning cleanups
21116
21117 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
21118
21119         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
21120         function. works like remoting invoke, but does a check for the Proxy first.
21121
21122 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
21123
21124         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
21125
21126 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
21127
21128         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
21129         array of pointers.
21130         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
21131         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
21132
21133         * object.c (mono_store_remote_field_new): used by the new jit
21134         instead of mono_store_remote_field
21135         (mono_load_remote_field_new): used by the new jit
21136         instead of mono_load_remote_field
21137
21138 2003-02-05  Patrik Torstensson
21139
21140         * appdomain.c: changed unload to take the domain id instead
21141         of domain
21142         
21143         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
21144
21145
21146 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21147
21148         * appdomain.c: don't look for assemblies in ApplicationBase if
21149         PrivateBinPathProbe is set.
21150
21151 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21152
21153         * object.c: make the first argument in main_args contain the absolute
21154         path to the assembly. Fixes bug #37511.
21155
21156 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21157
21158         * icall.c: get correct UTC offset for countries not using daylight
21159         time saving. Fixes bug #30030.
21160
21161 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21162
21163         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
21164         and 1 are the family).
21165
21166 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
21167
21168         * icall.c (ves_icall_InternalExecute): removed wrong assertion
21169
21170         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
21171
21172 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
21173
21174         * reflection.c: added support for SignatureHelper tokens, which is
21175         needed by the Calli opcode.
21176
21177         * reflection.h: track changes to SignatureHelper class.
21178
21179         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
21180
21181 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21182
21183         * appdomain.c: fixed loading assemblies from PrivateBinPath.
21184
21185 2003-02-03  Patrik Torstensson
21186         * appdomain.[c|h], domain.c : 
21187          - Added support for getting a domain via domain id
21188          - Support for setting and getting domain from System.AppDomain 
21189            (used in cross appdomain channel)
21190          - Added support for get/set for a MonoAppContext on a thread 
21191            (Context class in System.Runtime.Remoting.Contexts),
21192          - Removed hack in Get/SetData and ExecuteAssembly.
21193         
21194         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
21195         the managed world to get control when a proxy is created.
21196
21197         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
21198         
21199 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
21200
21201         * icall.c
21202         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
21203         Populate the codebase field as well.
21204
21205 2003-02-02  Martin Baulig  <martin@ximian.com>
21206
21207         * debug-mono-symfile.c
21208         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
21209         (mono_debug_symfile_add_method): Allow interncalls.
21210
21211 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21212
21213         * icall.c: throw parse exception if strtod fails or the string is empty.
21214
21215 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
21216
21217         * marshal.c: handle object type separately from defined
21218         class types.
21219
21220 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
21221
21222         * marshal.c: handle NATIVE_LPSTR for strings when it's
21223         explicitly specified.
21224
21225 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
21226
21227         * reflection.c, reflection.h, icall.c: setup the reflection
21228         handle cache for ModuleBuilders and AssemblyBuilders.
21229
21230 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
21231
21232         * reflection.c (reflection_methodbuilder_to_mono_method): set
21233         pinvoke flag
21234
21235 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21236
21237         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
21238
21239 2003-01-29  Dick Porter  <dick@ximian.com>
21240
21241         * threads.c: No need for the fake_thread kludge now that Thread
21242         doesn't run a class constructor
21243         
21244 2003-01-29  Dick Porter  <dick@ximian.com>
21245
21246         * threads.c: Use g_direct_hash instead of the rather bogus
21247         g_int_hash
21248
21249 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
21250
21251         * marshal.c (mono_marshal_get_native_wrapper): add check for null
21252         (fix pinvoke12.exe)
21253         (mono_marshal_get_struct_to_ptr): generate valid IL code
21254         (mono_marshal_get_ptr_to_struct): generate valid IL code
21255         (*): correctly set sig->pinvoke, we need to memdup the signature
21256         to do that
21257
21258 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
21259
21260         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
21261         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
21262
21263 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
21264
21265         * profiler.c: provide more callers information.
21266
21267 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
21268
21269         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
21270
21271         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
21272
21273         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
21274
21275 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21276
21277         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
21278         exception instead of going into an infinite loop on dates which it 
21279         can't yet handle.
21280
21281         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
21282         out-of-range exception if needed.
21283
21284         * class.c (mono_class_setup_vtable): allow a virtual method to provide
21285         an implementation for an interface method and to override an inherited
21286         method at the same time. 
21287         Imagine a scenario when a virtual method is used to override a
21288         virtual abstract method in a parent class, and this same method 
21289         provides an implementation for an method inherited from an interface. 
21290         In this case, the interface resolution code will set im->slot, which 
21291         means that the virtual method override pass will skip this method 
21292         which means a pointer to the abstract method inherited from the parent
21293         will remain in the vtable of this non-abstract class.
21294
21295         * class.c: (mono_class_setup_vtable): continue search for a real 
21296         method if only an abstract method is found.     
21297
21298 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
21299
21300         * reflection.c: add size to encoding for ByValStr and ByValArray
21301         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
21302
21303 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21304
21305         * class.c (mono_class_setup_vtable): pass the override info as an
21306         argument.
21307
21308         * class.c (mono_class_setup_vtable): set the slot of overriding methods
21309         correctly.
21310         
21311         * reflection.c (ensure_runtime_vtable); add support for method 
21312         overrides.
21313         
21314 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21315
21316         * reflection.c (resolution_scope_from_image): Hack to work to work with
21317         dynamic assemblies.
21318
21319         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
21320         added a 'force_ref' argument to force this function to allways return 
21321         a TypeRef. This is needed by mono_image_get_memberref_token ().
21322         
21323 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21324
21325         * reflection.c (mono_image_get_type_info): interfaces really don't have
21326         a parent.
21327
21328         * reflection.c (mono_image_basic_init): fill out missing fields of
21329         image structure.
21330
21331         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
21332         dynamic assemblies. This is required so dynamic assemblies show up in
21333         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
21334         Type::GetType() etc. This is consistent with MS behaviour.
21335
21336         * image.c image.h reflection.c: add newly created classes to the name 
21337         cache so mono_class_get () will find them.      
21338
21339 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21340
21341         First part of changes to get IKVM.NET running under mono.
21342         
21343         * appdomain.h, appdomain.c: added new function 
21344         mono_domain_try_type_resolve() which will emit TypeResolve events. 
21345         This function will call AppDomain::DoTypeResolve to do the actual work.
21346
21347         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
21348         moved existing code dealing with dynamic tokens to a new function 
21349         called mono_reflection_lookup_dynamic_token (). This function will 
21350         raise TypeResolve events when appropriate. Since reflection.c is not 
21351         part of libmetadata, a new hook function called 
21352         mono_lookup_dynamic_token() is added to class.c which will call this.
21353
21354         * assembly.h assembly.c: make the invoke_load_hook function public,
21355         so it can be called for dynamic assemblies.
21356
21357         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
21358
21359         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
21360         type isn't found.
21361
21362         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
21363         MonoGHashTable, since it contains pointers to objects which the GC 
21364         needs to track.
21365
21366         * assembly.c (search_loaded): remove unused variable.
21367         
21368 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
21369
21370         * object.c: fixed issue exposed by gcc-generated IL programs
21371         that use RVA data for pointers.
21372
21373 2003-01-25  Martin Baulig  <martin@ximian.com>
21374
21375         * threads.c (start_wrapper): Moved the initialization of
21376         `start_func' above the mono_new_thread_init() call to which we
21377         pass it as argument.
21378
21379 2003-01-24  Martin Baulig  <martin@ximian.com>
21380
21381         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
21382         the MonoThread pointer.
21383
21384 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
21385
21386         * icall.c: Rename `PowImpl' to Pow.
21387
21388 2003-01-23  Dick Porter  <dick@ximian.com>
21389
21390         * threads.c (start_wrapper): Create a Thread object if needed, so
21391         the Main() thread can do the class initialisation in a subthread
21392         that has been set up to allow managed code execution.
21393
21394         Pass the thread ID instead of the MonoThread pointer to the thread
21395         start and attach callbacks.  This change is required, because the
21396         jit thread start callback must be called _before_ the Thread
21397         object can be created.
21398         
21399         (mono_thread_init): Removed much object creation code that is no
21400         longer needed.  No managed code is called from here now.
21401
21402         * object.c (mono_runtime_exec_managed_code): Create a subthread
21403         for Main, and call back to the runtime to use it.
21404         Set the exit code when Main exits.
21405
21406         * gc.c: Make sure domain finalisation happens in a subthread.
21407         Re-enable threaded GC, fixing bug 31333 (again).
21408
21409         * environment.c: System.Environment internall calls (so far just
21410         ExitCode is here, the others are still in icall.c)
21411
21412         * appdomain.c (mono_runtime_cleanup): All threads running managed
21413         code should have finished before mono_runtime_cleanup() is
21414         reached, so no need to clean up threads.
21415
21416 2003-01-22  Martin Baulig  <martin@ximian.com>
21417
21418         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
21419         `gpointer func' arguments.      
21420         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
21421         but added `MonoThread *thread' argument.
21422         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
21423
21424         * threads.c (mono_new_thread_init): Added `gpointer func' argument
21425         and pass it to the mono_thread_start_cb callback.
21426         (mono_install_thread_callbacks): New public function to install a
21427         set of callbacks which are set by the debugger.
21428         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
21429
21430 2003-01-22  Martin Baulig  <martin@ximian.com>
21431
21432         * Makefile.am: Install debug-mono-symfile.h.
21433
21434 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
21435
21436         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
21437
21438 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
21439
21440         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
21441         * class.c (mono_ptr_class_get): correctly set access levels of pointers
21442         (mono_array_class_get): correctly set access levels of arrays
21443
21444 2003-01-20      Patrik Torstensson
21445         * image.h (MonoAssemblyName): changed major, minor, build, revision
21446         from signed to unsigned.
21447
21448 2003-01-20  sean kasun <skasun@azstarnet.com>
21449
21450         * reflection.c (load_cattr_value): Now this handles
21451         MONO_TYPE_SZARRAY.  Fixes bug #35629
21452
21453 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
21454
21455         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
21456         integer value
21457
21458 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21459
21460         * decimal.c: fixed bug #26056.
21461
21462 2003-01-17  Martin Baulig  <martin@ximian.com>
21463
21464         * gc.c: Raise an ExecutionEngineException instead of using g_error().
21465
21466 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21467
21468         * exception.[ch]:
21469         (mono_get_exception_type_initialization): new function.
21470
21471         * object.c: throw a TypeInitializationException when an exception is
21472         thrown invoking the class constructor.
21473
21474 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21475
21476         * reflection.c: fixed attribute reading.
21477
21478 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21479
21480         * icall.c:
21481         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
21482         provided, look for the type in the calling assembly and then in
21483         mscorlib; if the assembly name is provided, only try that one.
21484
21485 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
21486
21487         * object.c: register the vtable before there is a chance it's
21488         queried again recursively.
21489
21490 2003-01-13  Duncan Mak  <duncan@ximian.com>
21491
21492         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
21493         gc-internal.h. 
21494         
21495 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
21496
21497         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
21498
21499 2003-01-11  Martin Baulig  <martin@ximian.com>
21500
21501         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
21502         this to 20 for the release.
21503
21504 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
21505
21506         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
21507
21508         * loader.c (mono_method_get_marshal_info): bug fix
21509
21510         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
21511         structures with explicit layout
21512
21513 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
21514
21515         * profiler.c: made the output more readable (and sorted). 
21516         Added caller information for the allocation profiler.
21517
21518 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
21519
21520         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
21521
21522 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21523
21524         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
21525         to get value types.
21526         
21527 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
21528
21529         * object.c, profiler.h, profiler.c, profiler-private.h:
21530         Added object allocation profiler.
21531
21532 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
21533
21534         * reflection.h, reflection.c: handle global methods.
21535         Compress blob entries.
21536
21537 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
21538
21539         * marshal.c: fix compilation.
21540
21541 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
21542
21543         * loader.c (mono_method_get_marshal_info): impl.
21544
21545         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
21546
21547 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21548
21549         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
21550         for reference types.
21551
21552 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
21553
21554         * loader.c: fixed off by one error in loaded parameter names.
21555
21556 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
21557
21558         * marshal.c (mono_marshal_get_icall_wrapper): like
21559         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
21560         instead of a MonoMethod.
21561
21562 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21563
21564         * decimal.c: fixed bug #36537.
21565
21566 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
21567
21568         * marshal.c: throw a missing method exception if a
21569         P/Invoke method is not found.
21570
21571 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
21572
21573         * icall.c: allow a null this for constructors.
21574
21575 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
21576
21577         * icall.c: raise the proper exceptions if the arguments to the
21578         internal Invoke are incorrect.
21579
21580 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
21581
21582         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
21583
21584 2003-01-03  Martin Baulig  <martin@ximian.com>
21585
21586         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
21587
21588 2002-12-31  Martin Baulig  <martin@ximian.com>
21589
21590         * debug-mono-symfile.c: Completely rewrote the type section.
21591         Instead of using individual malloc()ed fields, we use one big
21592         continuous memory area and offsets into this area.
21593         See the comments in the source code for details.
21594
21595 2002-12-30  Martin Baulig  <martin@ximian.com>
21596
21597         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
21598
21599 2002-12-30  Martin Baulig  <martin@ximian.com>
21600
21601         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
21602         line number table in this data blob instead of using an external
21603         pointer.
21604
21605 2002-12-28  Martin Baulig  <martin@ximian.com>
21606
21607         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
21608
21609 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
21610
21611         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
21612         as a boxed return type.
21613
21614 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
21615
21616         * appdomain.c
21617         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
21618         g_build_filename to properly get separators on the filename created.
21619
21620         * object.h: Small change, introduce MonoMarshalByRefObject to
21621         track the layout of that structure in the C# universe as we make
21622         changes there.
21623
21624 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
21625
21626         * object.c: removed assert to allow static fields on interfaces.
21627         * loader.c: a TypeSpec may be used for any type, not just arrays.
21628
21629 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21630
21631         * class.c, class.h: added mono_class_array_element_size ().
21632         Ignore static methods in interfaces.
21633
21634 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21635
21636         * threads.c: fixed the build under cygwin.
21637
21638 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21639
21640         * reflection.c: handle nullref constants. Allocate keys for
21641         reflection handles with the GC.
21642
21643 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21644
21645         * threads.c, threads.h: added mono_thread_get_abort_signal()
21646         to get a suitable signal for thread abort.
21647
21648 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21649
21650         * metadata.c: fix handling of ExportedType table.
21651
21652 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21653
21654         * icall.c: added WriteWindowsDebugString internal call.
21655
21656 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21657
21658         * reflection.h: added fields to match C# implementation.
21659
21660 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21661
21662         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
21663
21664 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
21665
21666         * gc.h, gc-internal.h: Rename header for GC internal calls to
21667         gc-internal.h from gc.h as to not clash with Boehm GC having its
21668         header installed as <gc.h> in outside include paths.
21669         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
21670         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
21671
21672 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21673
21674         * icall.c: assign minor, build and revision in FillName.
21675
21676 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
21677
21678         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
21679         Added support for running code generated by Reflection.Emit.
21680
21681 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21682
21683         * appdomain.c: check for NULL argument in LoadFrom.
21684
21685 2002-12-10  Dick Porter  <dick@ximian.com>
21686
21687         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
21688
21689 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21690
21691         * appdomain.c: fix buglet when building exe file name.  Handle full
21692         assembly name (needed after latest changes to AssemblyName).
21693         * image.c:
21694         (mono_image_close): free some hashtables.
21695
21696 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
21697
21698         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
21699         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
21700         on some systems (redhat 7.3) 
21701
21702 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
21703
21704         * threads.c: delete the critical section of a sync block,
21705         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
21706
21707 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
21708
21709         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
21710
21711 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21712
21713         * appdomain.[ch]: handle the assembly preload event to try loading the
21714         assemblies using the paths we have in the current domain.
21715
21716         * assembly.[ch]: created an assembly preload hook that is called to try
21717         loading the assembly by other means that the ones provided here.
21718
21719         * domain.c: initialize the domain search path.
21720
21721         From now on, assemblies (TODO: except corlib and System) are loaded
21722         according to these rules when using mono_assembly_load ():
21723
21724                 1. It tries to load the assembly from the ApplicationBase
21725                 of the current domain appending .dll and .exe (TODO: have to
21726                 try loading from name/name.dll and name/name.exe).
21727
21728                 2. It tries the search path specified in PrivateBinPath for the
21729                 current domain (if any).
21730
21731                 3. Previous behavior.
21732
21733 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
21734
21735         * icall.c: implemented GetInterfaceMap() related icall.
21736         * domain.c, loader.h: load MethodInfo in mono_defaults.
21737
21738 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21739
21740         * gc.c: disable the finalizer thread for now, untill all the issues
21741         with it are resolved.
21742
21743 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21744
21745         * string-icalls.c: handle embedded nulls in string ctor when the
21746         length is specified.
21747
21748 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21749
21750         * class.c: look for explicit interface implementation in parent
21751         classes, too.
21752
21753 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
21754
21755         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
21756
21757 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21758
21759         * gc.c: protect handles with a critical section.
21760
21761 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21762
21763         * icall.c:
21764         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
21765         parameters. If no assembly specified, try getting the type from all
21766         the assemblies in the current domain, else, load the assembly and get
21767         the type from it.
21768
21769 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21770
21771         * marshal.c: applied patch from Aleksey Demakov that fixes
21772         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
21773
21774 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21775
21776         * icall.c: fixed get_location.
21777
21778 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
21779
21780         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
21781         declarations to make it work with older gcc. 
21782
21783         * loader.c (mono_get_method): set signature->pinvoke for native calls
21784
21785 2002-11-20  Dick Porter  <dick@ximian.com>
21786
21787         * threads.c (mono_thread_init): Set the main thread's handle
21788
21789 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21790
21791         * gc.c: allow compilation without GC support. Changed to match the
21792         mono coding style.
21793
21794 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21795
21796         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
21797
21798 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
21799
21800         * reflection.c: set a public key token on the core assemblies.
21801
21802 2002-11-18  Dick Porter  <dick@ximian.com>
21803
21804         * threads.c: Split out some thread initialisation so that other
21805         files can set the start callback function.
21806
21807         * gc.c: Run finalisers in a separate thread, to avoid stack
21808         overflow.  Fixes bug 31333.
21809
21810         * appdomain.c: Set up GC finalisation thread.
21811
21812         * reflection.c: 
21813         * object.c: 
21814         * domain.c: Use gc.h macros for GC_malloc
21815         
21816 2002-11-15  Dick Porter  <dick@ximian.com>
21817
21818         * threadpool.c: 
21819         * threads.c:
21820         * appdomain.c: Removed mono_runtime_init_with_attach(),
21821         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
21822         merging the extra parameter with the existing function.  Removed
21823         unneeded code in mono_thread_attach().
21824
21825 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
21826
21827         * image.c (mono_image_loaded_by_guid): a method to get loaded
21828         images by guid. 
21829         (load_metadata_ptrs): we store the guid as string.
21830
21831 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
21832
21833         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
21834
21835         * metadata.c (mono_guid_to_string): imported method form Zoltan
21836         Varga (slightly modified)
21837
21838         * assembly.c (mono_assembly_open): load precompiled code
21839
21840         * loader.h (MonoMethod): we store the method token for use in the
21841         aot compiler. 
21842
21843 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21844
21845         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
21846         the hook function called when an assembly is loaded.
21847         
21848         * domain.c: Modified file.
21849         (mono_domain_assembly_load): removed hash table insertion of assemblies.
21850
21851         Fixes bug #33196.
21852
21853 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
21854
21855         * reflection.c: Map PEFileKind to the value expected by the WinNT
21856         image loader. 
21857
21858 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21859
21860         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
21861         Read until the buffer is filled completely.
21862
21863 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21864
21865         * icall.c: implemented MonoType.InternalGetEvent ().
21866
21867 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21868
21869         * appdomain.c: implemented InitAppDomainSetup. Delayed
21870         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
21871         the entry_assembly.
21872
21873         * assembly.c: base_dir is now an absolute path ending with
21874         G_DIR_SEPARATOR.
21875
21876         * icall.c: modified get_location according to the above changes.
21877
21878         * object.c: init AppDomain.SetupInformation for the default domain after
21879         we have the entry assembly.
21880
21881         * domain.c: when unloading a domain, setup = NULL.
21882
21883 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
21884
21885         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
21886
21887 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
21888
21889         * object.h, object.c: introduced mono_object_get_virtual_method ()
21890         to lookup the method invoked on an object when a callvirt is done on
21891         a method.
21892         * icall.c: make MethodInfo::Invoke() always do a virtual call.
21893
21894 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21895
21896         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
21897         current domain when loaded an assembly and failed to load it.
21898
21899         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
21900
21901 2002-10-31  Dick Porter  <dick@ximian.com>
21902
21903         * icall.c: 
21904         * file-io.h: 
21905         * file-io.c: Return the error status in a parameter, as the
21906         GetLastError() value has long since been blown away if we try and
21907         look it up in a subsequent internal call invocation.  Delete the
21908         GetLastError() internal call, because it's useless.
21909
21910 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
21911
21912         * class.[ch]: added cast_class to fix bug 29517
21913
21914 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
21915
21916         * marshal.c: create valid IL code in the filter clause:
21917         the new JIT is less forgiving:-)
21918
21919 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21920
21921         * icall.c: removed get_property internal call.
21922
21923 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
21924
21925         * appdomain.h domain.c: Added an ID to appdomains.
21926         
21927         * threads.c threads.h icall.c: Implement icall
21928         Thread:GetDomainID(), and remove unused icall 
21929         CurrentThreadDomain_internal.
21930
21931 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21932
21933         * icall.c: Don't recurse through the base types in GetConstructor.
21934         Fixes bug #32063. 
21935
21936 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
21937
21938         * mempool.h, mempool.c: added mono_mempool_empty() and
21939         mono_mempool_stats().
21940
21941 2002-10-23  Dick Porter  <dick@ximian.com>
21942
21943         * file-io.c: 
21944         * file-io.h: 
21945         * icall.c: Added MonoIO.GetFileType internal call
21946
21947 2002-10-17  Dick Porter  <dick@ximian.com>
21948
21949         * appdomain.c (mono_runtime_cleanup): Don't signal the async
21950         delegate semaphore before waiting for all threads to finish,
21951         because new threads can also call async delegates.  Fixes bug
21952         32004.
21953
21954         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
21955         of 3 seconds, in case another async job is queued.  (This part is
21956         needed because the bug fix reintroduced the 3s exit lag.)  This
21957         makes the mono_runtime_shutdown flag superfluous.
21958
21959 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21960
21961         * reflection.c: include ehader size in method section headers.
21962         Really check for suplicated modules entries.
21963
21964 2002-10-17  Martin Baulig  <martin@gnome.org>
21965
21966         * debug-mono-symfile.c: Added back support for locals.
21967
21968 2002-10-14  Martin Baulig  <martin@gnome.org>
21969
21970         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
21971         MONO_TYPE_VOID.
21972
21973 2002-10-14  Martin Baulig  <martin@gnome.org>
21974
21975         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
21976         mono_class_get() instead of looking in the class cache. 
21977
21978 2002-10-13  Martin Baulig  <martin@gnome.org>
21979
21980         * debug-mono-symfile.c: Set version number to 28, include the
21981         signature in method names.
21982
21983 2002-10-13  Martin Baulig  <martin@gnome.org>
21984
21985         * debug-mono-symfile.h: Set version number to 27.
21986
21987 2002-10-11  Martin Baulig  <martin@gnome.org>
21988
21989         * gc.c: Don't register/unregister NULL pointers as disappearing links.
21990
21991 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21992
21993         * metadata.c, metadata.h: added helper function to allocate signatures.
21994
21995 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21996
21997         * icall.c: added internal call to get the location of machine.config.
21998
21999 2002-10-08  Martin Baulig  <martin@gnome.org>
22000
22001         * debug-mono-symfile.c: Ignore classes with a pending init for the
22002         moment.
22003
22004 2002-10-03  Dick Porter  <dick@ximian.com>
22005
22006         * threads.c: Freebsd pthread_t is a pointer
22007
22008 2002-10-03  Dick Porter  <dick@ximian.com>
22009
22010         * socket-io.c: Implemented GetHostName_internal
22011
22012 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22013
22014         * mono-config.c:
22015         (mono_config_parse_file): don't leak the text.
22016
22017 2002-10-02  Martin Baulig  <martin@gnome.org>
22018
22019         * debug-mono-symfile.c: Added support for methods.
22020
22021 2002-10-01  Martin Baulig  <martin@gnome.org>
22022
22023         * debug-mono-symfile.c: Don't emit methods and line numbers for
22024         the dynamic symbol file, just write the type table.  We can easily
22025         have an external helper program which creates a symbol file for an
22026         IL file.        
22027
22028 2002-10-01  Dick Porter  <dick@ximian.com>
22029
22030         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
22031         Only add the handle to the cleanup array when we're about to
22032         launch the thread.  Bug 31425 deadlocked when the test was run on
22033         mono under w32.
22034
22035 2002-10-01  Martin Baulig  <martin@gnome.org>
22036
22037         * debug-mono-symfile.c: Added support for properties.
22038
22039 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22040
22041         * reflection.c: unaligned store fix from Mark Crichton
22042         <crichton@gimp.org>.
22043
22044 2002-09-27  Martin Baulig  <martin@gnome.org>
22045
22046         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
22047         New interncall.
22048
22049 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
22050
22051         * assembly.h, assembly.c: use a sane API to hook into the assembly
22052         loading process instead of a useless special-purpouse hack
22053         (ngen needs a hook, too, for example).
22054
22055 2002-09-27  Dick Porter  <dick@ximian.com>
22056
22057         * threads.c (mono_thread_init): Call GetCurrentProcess() so
22058         io-layer can set up some process handle info.  Not needed on w32,
22059         but doesn't hurt either.
22060
22061         * process.c: Pass the program name in the second parameter to
22062         CreateProcess, so the path is searched.  Include the working
22063         directory. Implemented process name, process enumeration, and some
22064         process detail internal calls.
22065         
22066         * icall.c: Added internal calls for process lookup, and some
22067         process details
22068
22069 2002-09-26  Martin Baulig  <martin@gnome.org>
22070
22071         * assembly.c (mono_install_open_assembly_hook): New global
22072         function to install a function to be invoked each time a new
22073         assembly is loaded.
22074         (mono_assembly_open): Run this callback function if set.
22075
22076         * debug-mono-symfile.c: Put back line numbers for the dynamic
22077         symbol file and also record the .il file as source file.  This
22078         allows us to install the temporary symbol file as `file.dbg' just
22079         like a compiler-generated one.
22080
22081 2002-09-26  Nick Zigarovich <nick@chemlab.org>
22082
22083         * Corrected typo in gc.c (BOHEM vs BOEHM).
22084
22085 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22086
22087         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
22088         GetProperties. Also avoid calling g_slist_length in GetProperties and
22089         GetMethods.
22090
22091 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22092
22093         * reflection.c: avoid unaligned stores (bug spotted by
22094         Mark Crichton  <crichton@gimp.org>).
22095
22096 2002-09-25  Martin Baulig  <martin@gnome.org>
22097
22098         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
22099         instead of guint64 for addresses and added prologue/epilogue info.
22100
22101 2002-09-25  Martin Baulig  <martin@gnome.org>
22102
22103         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
22104         store line number info.  For the dynamic symbol file, we only need
22105         to provide the JIT generated dynamic line number info for the dynamic
22106         symbol file.
22107
22108 2002-09-25  Martin Baulig  <martin@gnome.org>
22109
22110         * debug-mono-symfile.h: Incremented version number.
22111
22112 2002-09-24  Martin Baulig  <martin@gnome.org>
22113
22114         * class.c (mono_debugger_class_init_func): New global function
22115         pointer variable.
22116         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
22117         call it.
22118
22119         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
22120         function.  This is called via the mono_debugger_class_init_func
22121         hook to add all types to the dynamic type table.
22122         (ves_icall_MonoDebugger_GetType): New interncall to get a class
22123         from its metadata token.
22124
22125         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
22126         New interncall for the debugger.
22127
22128 2002-09-24  Nick Drochak <ndrochak@gol.com>
22129
22130         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
22131         before using it in case it is null.
22132         
22133 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22134
22135         * metadata.c: allow custom modifiers in local var signatures
22136         (bug spotted by Zoltan Varga).
22137
22138 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
22139
22140         * class.c: deal with the <Module> class that may have a NULL vtable.
22141         Eliminate warnings.
22142
22143 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22144
22145         * image.c, image.h: more strong name helpers.
22146         * monosn.c: more work: convert pem keys to cryptoapi format.
22147
22148 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22149
22150         * string-icalls.c: speedup IndexOf.
22151
22152 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22153
22154         * icall.c: updates from Zoltan.2.Varga@nokia.com.
22155
22156 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
22157
22158         * icall.c: cleanup: use mono_object_domain ().
22159
22160 2002-09-23  Martin Baulig  <martin@gnome.org>
22161
22162         * debug-mono-symfile.c: Improved type support.
22163
22164 2002-09-22  Martin Baulig  <martin@gnome.org>
22165
22166         * debug-mono-symfile.c: Added support for reference types and strings.
22167
22168 2002-09-22  Martin Baulig  <martin@gnome.org>
22169
22170         * debug-mono-symfile.c: Started to work on the type table.
22171
22172 2002-09-21  Martin Baulig  <martin@gnome.org>
22173
22174         * debug-mono-symfile.c: Largely reworked the symbol table format.
22175         The symbol table is now incrementally updated each time a new
22176         method is added.  We're now also using our own magic and version
22177         so that you don't need to recompile all your classes if the
22178         dynamic table changes.
22179         (mono_debug_update_mono_symbol_file): Removed.
22180         (mono_debug_symfile_add_method): New function to add a method.
22181
22182 2002-09-21  Martin Baulig  <martin@gnome.org>
22183
22184         * icall.c
22185         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
22186         New interncall.
22187
22188         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
22189         New interncall to get a method from its metadata token.
22190
22191 2002-09-21  Martin Baulig  <martin@gnome.org>
22192
22193         * debug-mono-symfile.c: Create type table.
22194
22195 2002-09-20  Martin Baulig  <martin@gnome.org>
22196
22197         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
22198
22199 2002-09-20  Martin Baulig  <martin@gnome.org>
22200
22201         * debug-mono-symfile.c: Provide information about params and locals.
22202
22203 2002-09-20  Martin Baulig  <martin@gnome.org>
22204
22205         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
22206         New interncall.
22207
22208         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
22209         interncall to get a method from its metadata token.
22210
22211 2002-09-20  Martin Baulig  <martin@gnome.org>
22212
22213         * debug-mono-symfile.c: Added a few checks for method->header
22214         being non-NULL.  This should never happen, but for the moment
22215         let's use a g_warning() rather than a g_assert().
22216
22217 2002-09-19  Mark Crichton  <crichton@gimp.org>
22218
22219         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
22220         even if support for it isn't present.  Added an #ifdef to fix this.
22221
22222         * socket-io.c: Added checks back for Solaris support.
22223
22224 2002-09-19  Martin Baulig  <martin@gnome.org>
22225
22226         * debug-mono-symfile.c (read_string, write_string): Reflect latest
22227         changes in the symbol file format.
22228
22229 2002-09-18  Martin Baulig  <martin@gnome.org>
22230
22231         * debug-mono-symfile.c: Set version number to 21.
22232
22233 2002-09-18  Dick Porter  <dick@ximian.com>
22234
22235         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
22236         on netbsd.  Fixes bug 30051.
22237
22238 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22239
22240         * reflection.c:
22241         (set_version_from_string): little fix.
22242
22243 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22244
22245         * monosn.c, Makefile.am: added strong name utility.
22246         * reflection.h, reflection.c: implemented delayed signing,
22247         locale, version and hash id assembly attributes.
22248
22249 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22250
22251         * loader.c, metadata.c: load param attributes in signatures.
22252
22253 2002-09-16  Martin Baulig  <martin@gnome.org>
22254
22255         * debug-mono-symfile.c: Added string table with all method names.
22256
22257 2002-09-14  Martin Baulig  <martin@gnome.org>
22258
22259         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
22260         fast method lookup.
22261
22262 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22263
22264         * reflection.c: record the public key token of referenced assemblies.
22265
22266 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22267
22268         * image.c, image.h: added functions to get the strong name and the
22269         public key of an assembly.
22270         * pedump.c: use them.
22271
22272 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
22273
22274         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
22275
22276 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
22277
22278         * marshal.c (mono_marshal_get_managed_wrapper): Added
22279         MONO_TYPE_BOOLEAN 
22280
22281 2002-09-11  Martin Baulig  <martin@gnome.org>
22282
22283         * gc.c: Call GC_unregister_disappearing_link() on all links when
22284         finalizing them, this is necessary to aviod a crash in boehm's
22285         finalize handler.
22286
22287 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22288
22289         * gc.c: handle GetTarget for finalized objects spotted and fixed by
22290         nick@chemlab.org.
22291
22292 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
22293
22294         * icall.c: implemented MonoType::Module.
22295         * reflection.c, reflection.h: mono_module_get_object () from
22296         Tomi Pakarinen <tomi.pakarinen@welho.com>.
22297
22298 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22299
22300         * icall.c: ignore overridden methods in GetMethods ().
22301         Fix for FieldInfo::SetValue().
22302         * object.c: handle float/double in runtime invoke.
22303
22304 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22305
22306         * object.c: allow a constructor to be called again on an object.
22307
22308 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22309
22310         * class.h, class.c: move field layout code to it's own function and
22311         export it. Get an interface id earlier. Move fields in MonoClass
22312         so they are more cache friendly and align the bitfields.
22313         * loader.c: temporary handle get_param_names() for a runtime method.
22314         * reflection.c, reflection.h: more code to handle runtime creation of
22315         types.
22316
22317 2002-09-09  Martin Baulig  <martin@gnome.org>
22318
22319         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
22320         signature with the pinvoke field being set for the actual call.
22321
22322 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22323
22324         * icall.c: removed some unused icalls. Start of map of glib charsets
22325         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
22326
22327 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22328
22329         * debug-helpers.c: break infinite loop (found and fixed by
22330         Holger Arnold <harnold@gmx.de>).
22331
22332 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22333
22334         * icall.c: target may be null in create_delegate.
22335
22336 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22337
22338         * marshal.c: handle a boolean return type.
22339
22340 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22341
22342         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
22343
22344 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22345
22346         * gc.c: fix weakreferences.
22347
22348 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
22349
22350         * icall.c: added icall to get default codepage.
22351
22352 2002-09-03  Dick Porter  <dick@ximian.com>
22353
22354         * threads.h: 
22355         * threads.c: Use MonoThread instead of MonoObject where
22356         apropriate.
22357
22358         Store running thread objects in a hash table, so that we have all
22359         the info to hand when waiting for them to finish
22360         (means we don't need OpenThread() any more, so mingw builds should
22361         be fully functional again.)
22362
22363         * verify.c:
22364         * object.h: Added thread ID to MonoThread
22365
22366 2002-09-03  Martin Baulig  <martin@gnome.org>
22367
22368         * icall.c (System.Reflection.Assembly::get_location): New interncall.
22369
22370 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22371
22372         * icall.c: fixed leak in get_temp_path. Thanks lupus.
22373
22374 2002-09-03  Martin Baulig  <martin@gnome.org>
22375
22376         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
22377         argument to store the end address of the disassembled instruction.
22378
22379         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
22380         here from debug-symfile.h.
22381         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
22382         JIT into this struct.
22383         (MonoSymbolFile): Added `char *image_file' field.
22384         (MonoDebugGetMethodFunc): Removed.
22385         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
22386         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
22387         (mono_debug_find_method): New method.
22388
22389         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
22390         create a full symbol file.
22391         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
22392         and static symbol files.
22393         (mono_debug_find_method): The symbol file keeps an internal method hash,
22394         call this to get a MonoDebugMethodInfo from a MonoMethod.
22395
22396         * debug-symfile.[ch]: Removed.
22397
22398 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
22399
22400         * image.c (do_mono_image_open): Remove linker version check.
22401
22402 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
22403
22404         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
22405         wrappers for instance methods.
22406         
22407 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22408
22409         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
22410
22411 2002-08-28  Dick Porter  <dick@ximian.com>
22412
22413         * Makefile.am: Export HOST_CC for w32 builds
22414
22415 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22416
22417         * file-io.c process.c: MonoString are null terminated, no
22418         need for mono_string_to_utf16() anymore.
22419
22420 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22421
22422         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
22423
22424 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
22425
22426         * icall.c, reflection.h: speedup System.MonoType.
22427
22428 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22429
22430         * reflection.c: allow null as the value of a string argument in
22431         custom attributes constructors.
22432
22433 2002-08-27  Martin Baulig  <martin@gnome.org>
22434
22435         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
22436         `trampoline_address' field.
22437
22438 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
22439
22440         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
22441         check (fixes bug #29486) 
22442
22443 2002-08-27  Martin Baulig  <martin@gnome.org>
22444
22445         * debug-mono-symfile.c: Changed the file format in a way that allows us
22446         open it read-only and to use a specially malloced area for all the
22447         dynamic data.  We can now also generate a symbol file on-the-fly if we're
22448         debugging IL code and there is no MCS generated symbol file for it.
22449
22450 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22451
22452         * object.c: added a define for a good string and array
22453         creation speedup (not enabled by default because we need to deal with
22454         the synch stuff).
22455
22456 2002-08-26  Martin Baulig  <martin@gnome.org>
22457
22458         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
22459         function to create a dynamic symbol file.  This is used by the
22460         debugger to create a symbol file for IL code on-the-fly.
22461
22462 2002-08-26  Martin Baulig  <martin@gnome.org>
22463
22464         * loader.c (mono_lookup_pinvoke_call): Include the error message
22465         from g_module_error() in the error message.
22466
22467 2002-08-24  Martin Baulig  <martin@gnome.org>
22468
22469         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
22470         function to update the symbol file.  The symbol file is mmap()ed
22471         writable, but private.  This allows us to install the symbol file
22472         together with the assembly.
22473
22474 2002-08-24  Martin Baulig  <martin@gnome.org>
22475
22476         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
22477         but they can read the new symbol file format which mcs is now creating.
22478
22479         * debug-symfile.c (mono_debug_find_source_location): Moved to
22480         debug-mono-symfile.c; this is now operating on the new symbol file.
22481
22482 2002-08-23  Martin Baulig  <martin@gnome.org>
22483
22484         * debug-helpers.c (mono_method_desc_from_method): New function to get
22485         a MonoMethodDesc from a MonoMethod.
22486
22487 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22488
22489         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
22490         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
22491
22492 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22493
22494         * string-icalls.[ch]: make helper methods static.
22495
22496 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22497
22498         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
22499         types to it and to SetValueInternal.
22500
22501         * object.c: Moved handle_enum label to its proper place. This was the
22502         f... bug! ;-)
22503
22504         This time i compiled mcs and gtk-sharp and they both work.
22505
22506 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22507
22508         * icall.c: reverted partially my previous patch until 
22509         object.c:set_value handles enums correcly.
22510
22511 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22512
22513         * icall.c:
22514         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
22515         (ves_icall_System_Environment_get_MachineName): removed warning when
22516         compiling under cygwin.
22517
22518 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22519
22520         * object.c: fixed field_get_value() for reference types.
22521
22522 2002-08-22  Dick Porter  <dick@ximian.com>
22523
22524         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
22525         Don't free a buffer while it's still needed.  Patch from Jonathan
22526         Liger <Jonathan.liger@wanadoo.fr>
22527
22528 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
22529
22530         * icall.c (ves_icall_System_Environment_get_Platform): Add new
22531         internal call.
22532
22533 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
22534
22535         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
22536         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
22537
22538         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
22539         we call unmanaged code which throws exceptions.
22540
22541 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22542
22543         * appdomain.h: added per-domain entry_assembly.
22544         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
22545         arguments.
22546         * icall.c: Assembly::GetEntryAssembly icall.
22547         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
22548         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
22549
22550 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22551
22552         * appdomain.h, gc.c: added mono_domain_finalize ().
22553
22554 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22555
22556         * object.c:
22557         (mono_print_unhandled_exception): changed g_warning by g_printerr
22558         because g_log has a 1024 characters limit (yeah, i got a big stack
22559         trace). Don't print exception name, that should be in ToString 
22560         returned string.
22561
22562 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22563
22564         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
22565         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
22566
22567 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22568
22569         * object.c:
22570         (mono_print_unhandled_exception): after previous commit, i realized
22571         that MS calls ToString on the exception. I changed this function to
22572         do that. This way we get stack_trace for free.
22573
22574 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22575
22576         * object.c:
22577         (mono_print_unhandled_exception): invoke Message property instead of
22578         getting 'message' field from Exception. Don't allocate memory for
22579         'trace' and 'message' if not needed.
22580
22581 2002-08-18  Dick Porter  <dick@ximian.com>
22582
22583         * unicode.c: Fix asserts to match Encoder.cs checks
22584
22585 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22586
22587         * marshal.c: fix unaligned store issue and a few wrong
22588         opcode argument types.
22589
22590 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22591
22592         * icall.c: added GetUninitializedObjectInternal internal call.
22593
22594 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
22595
22596         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
22597         to the right domain.
22598
22599 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
22600
22601         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
22602
22603         * class.c (class_compute_field_layout): set blittable to false for Strings
22604
22605         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
22606
22607 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22608
22609         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
22610         first chunk of code to create types at runtime. Code to
22611         handle ReflectedType/DeclaringType. Make reflection handles
22612         domain specific.
22613
22614 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
22615
22616         * class.c: set correct name in arrays.
22617
22618 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
22619
22620         * appdomain.c (mono_domain_transfer_object): make it work with
22621         valuetypes. bug fixes.
22622
22623 2002-08-12  Dick Porter  <dick@ximian.com>
22624
22625         * object.h: Rename some parameters to avoid c++ keywords (Patch
22626         from Joseph Wenninger <kde@jowenn.at>)
22627
22628 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
22629
22630         * icall.c: added icall to implement Assembly.GetFile*.
22631
22632 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
22633
22634         * reflection.h, reflection.c: code to embed managed resources.
22635
22636 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22637
22638         * class.c: move all the type size stuff into
22639         class_compute_field_layout().
22640
22641 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22642
22643         * class.c: ensure enums have always the correct instance size.
22644         * unicode.c: remove wrong assert.
22645
22646 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22647
22648         * assembly.c: fix mem corruption issue.
22649         * image.h, image.c: added mono_image_get_resource () to access
22650         managed resources.
22651         * icall.c: implemented Assembly.EntryPoint property and some
22652         Managed Resources related internalcalls.
22653
22654
22655 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22656
22657         * image.c, image.h: impemented mono_image_get_entry_point ().
22658         * appdomain.c: use mono_image_get_entry_point.
22659
22660 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22661
22662         * reflection.c: support the object type argument when loading
22663         custom attributes.
22664
22665 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
22666
22667         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
22668         String as return type.
22669
22670 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
22671
22672         * reflection.c: fix encoding of named args for custom attrs to match
22673         the ms implementation. Read them back when instantiating custom
22674         attributes.
22675
22676 2002-08-02  Radek Doulik  <rodo@ximian.com>
22677
22678         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
22679         by Dietmar as quick fix
22680         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
22681         16 as stack size, used on more places as quick fix before Dietmar
22682         will fix it properly
22683
22684 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
22685
22686         * object.h, object.c: added accessors for fields and properties.
22687
22688 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22689
22690         * class.c, class.h: made mono_class_get_field_from_name ()
22691         loop on parent types.
22692         Added mono_class_get_property_from_name ().
22693
22694 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22695
22696         * class.c, class.h: move the code to setup the type vtable in its own
22697         function so that it can be reused also for types created at runtime.
22698         Eliminate the "class" identifier from the header file.
22699         * reflection.c: setup the vtable for enums so that we can create
22700         objects for use in SetConstant ().
22701
22702 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
22703
22704         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
22705         instead of the delegate itself as this pointer (bug #28383)
22706
22707 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
22708
22709         * marshal.c (mono_marshal_get_managed_wrapper): added return type
22710         conversions.
22711
22712 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22713
22714         * loader.c: don't set the pinvoke bit on icalls.
22715
22716 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
22717
22718         * debug-helpers.c (mono_method_full_name): only print a number to
22719         indicate wrapper type (so that the output is more readable in traces).
22720
22721 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
22722
22723         * class.c (mono_class_init): include method override patch from Paolo
22724
22725 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
22726
22727         * icall.c: fixed GetTypeCode().
22728
22729 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
22730
22731         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
22732         use real delegate invoke function to make it work with multicast
22733         delegates (fix bug# 28291).
22734
22735 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22736
22737         * object.c: load constant strings.
22738
22739 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22740
22741         * reflection.c: no magic numbers.
22742         * tabledefs.h: security action enum.
22743
22744 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22745
22746         * assembly.c: fix possible memory corruption.
22747
22748 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22749
22750         * reflection.h, reflection.c: added support for linking resources.
22751         * verify.c: check we have an updated corlib.
22752
22753 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
22754
22755         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
22756         string arrays.
22757         (mono_marshal_string_array): null terminate unmanaged string arrays.
22758         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
22759
22760 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22761
22762         * icall.c: Type.GetType () can now return also types from the
22763         calling assembly.
22764
22765 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22766
22767         * loader.h, loader.c: stack walking support.
22768         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
22769         GetCallingAssembly.
22770
22771 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
22772
22773         * marshal.c: added optimisations for blittable types 
22774
22775         * class.c (mono_array_class_get): do not set blittable attribute on arrays
22776         (mono_class_setup_mono_type): set blittable attribute for single
22777         and double.
22778
22779         * marshal.c (mono_string_utf8_to_builder): impl.
22780         (mono_string_builder_to_utf8): impl.
22781         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
22782
22783 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
22784
22785         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
22786         (mono_marshal_get_managed_wrapper): impl. byref types
22787
22788 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22789
22790         * icall.c:
22791         (search_method): don't display debug message. 
22792
22793 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
22794
22795         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
22796
22797 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22798
22799         * appdomain.c: set the missing filename when throwing exception.
22800
22801 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
22802
22803         * metadata.c (mono_type_size): code cleanup
22804         (mono_type_stack_size): removed some test code
22805
22806 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
22807
22808         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
22809         mono_get_exception_file_not_found now.
22810
22811         * exception.c (mono_exception_from_name_two_strings): New version
22812         that will call a constructor with two string arguments. 
22813         (mono_get_exception_file_not_found): New helper routine, used to
22814         report file-not-found errors.
22815
22816 2002-07-20  Dick Porter  <dick@ximian.com>
22817
22818         * process.h:
22819         * process.c: Pass file handles to CreateProcess
22820         
22821         * icall.c:
22822         * file-io.h:
22823         * file-io.c: Implemented CreatePipe
22824
22825 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
22826
22827         * metadata.c (mono_get_param_info): set alignment for value types
22828
22829 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22830
22831         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
22832         Constify mono_domain_assembly_open().
22833         * loader.c: handle null namespace in icalls.
22834
22835 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
22836
22837         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
22838         (emit_str_to_ptr_conv): marshal object as structs
22839
22840         * metadata.c (mono_type_to_unmanaged): marshal object as structs
22841
22842         * marshal.c (mono_marshal_get_runtime_invoke): support value types
22843
22844 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
22845
22846         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
22847         (mono_marshal_get_native_wrapper): we an now return value types
22848
22849 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22850
22851         * verify.c: more checks implemented.
22852
22853 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
22854
22855         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
22856         (fix bug #27695)
22857         (mono_marshal_get_native_wrapper): allow byref arguments
22858         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
22859         impl. PtrToStringXXX methods
22860         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
22861         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
22862         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
22863         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
22864         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
22865
22866 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22867
22868         * reflection.c: fix buglet in parsing an assembly name.
22869
22870 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
22871
22872         * marshal.c (emit_ptr_to_str_conv): first impl.
22873
22874 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22875
22876         * object.c, class.h: cache the vtable in the class as suggested by
22877         vargaz@freemail.hu (Zoltan Varga).
22878
22879 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22880
22881         * class.h, loader.c: added mono_field_from_token().
22882         * verify.c: first cut of type checking code.
22883
22884 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
22885
22886         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
22887
22888 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
22889
22890         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
22891         (fix bug #27782)
22892         (mono_marshal_get_remoting_invoke): impl.
22893         (mono_delegate_begin_invoke): impl.
22894         (mono_mb_emit_save_args): impl.
22895         (mono_delegate_end_invoke): impl.
22896         (mono_marshal_get_delegate_begin_invoke):
22897         (mono_marshal_get_delegate_end_invoke):
22898         (mono_marshal_get_delegate_invoke): generate a special name for
22899         those methods (including the signature) and associate them whith
22900         the delegate class. 
22901
22902 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
22903
22904         * reflection.[ch]: 
22905         (mono_reflection_type_from_name): now it has a MonoImage parameter
22906         which is used as the default image to search the type in. If the image
22907         is NULL or getting the type from it fails, it defaults to corlib.
22908
22909         * icall.c: changed 1 call to mono_reflection_type_from_name to match
22910         new parameter.
22911
22912 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22913
22914         * reflection.c: update the parameter table index.
22915
22916 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22917
22918         * domain.c: don't include the mark byte in the string hash.
22919
22920 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22921
22922         * icall.cs: icall for Type.GetTypeCode ().
22923         * verify: a couple of fixes and disabled local initialization checks.
22924
22925 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
22926
22927         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
22928
22929         * debug-helpers.c (mono_method_full_name): print the type of the
22930         runtime wrapper
22931
22932         * metadata.c (mono_signature_hash): a hash function for signatures
22933         (mono_signature_hash): better hash algorithm
22934
22935         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
22936
22937         * debug-helpers.c (mono_method_full_name): this can now generate
22938         method names with signatures
22939
22940         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
22941         method dont have this pointers.
22942
22943 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22944
22945         * reflection.c: fixup typebuilder tokens.
22946         * image.c: fix buglet.
22947         * marshal.h: remove whitespace.
22948         * metadata.h, metadata.c: reinstate code that was removed.
22949         * verify.c: handle catch directives and fix another couple of bugs.
22950
22951 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
22952
22953         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
22954         (mono_marshal_get_native_wrapper): make it comp. with the old code
22955         (mono_marshal_get_native_wrapper): support boolean
22956         (mono_marshal_get_managed_wrapper): support more types
22957
22958 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
22959
22960         * class.c (class_compute_field_layout): compute class->blittable attribute.
22961
22962 2002-07-09  Dick Porter  <dick@ximian.com>
22963
22964         * threads.c: Make the thread cleaning up cope with threads that
22965         call ExitThread()
22966
22967 2002-07-08  Radek Doulik  <rodo@ximian.com>
22968
22969         * reflection.c (method_encode_code): use non-translated values to
22970         compute finally_start, this fixes exception handling on ppc, yay!
22971
22972         * decimal.h (struct signscale): fix endianess
22973
22974 2002-07-07  Radek Doulik  <rodo@ximian.com>
22975
22976         * reflection.c: swap box_val and not val
22977
22978 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22979
22980         * reflection.c, reflection.h: handle full assembly info in type name.
22981         Handle Type arguments when loading custom attributes.
22982         * icall.c: updated to use new mono_reflection_type_from_name () method.
22983
22984 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22985
22986         * loader.c:
22987         (method_from_memberref): also print assembly name when method not found.
22988
22989 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22990
22991         * icall.c:
22992         (ves_icall_TypeGetProperties): fixed bug #27473. 
22993
22994 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22995
22996         * reflection.c: display image name and token when cannot find the
22997         .ctor for an attribute.
22998
22999 2002-07-05  Martin Baulig  <martin@gnome.org>
23000
23001         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
23002
23003 2002-07-04  Dick Porter  <dick@ximian.com>
23004
23005         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
23006         compile on mingw.  This will cause mingw builds to not wait for
23007         subthreads to terminate after the main thread does.  I've lodged a
23008         bug with the mingw developers for them to wrap OpenThread().
23009
23010 2002-07-03  Dick Porter  <dick@ximian.com>
23011
23012         * threads.c: Store thread IDs instead of handles, because
23013         GetCurrentThread() returns a pseudohandle and therefore stores
23014         useless values.  mono_thread_cleanup() continues checking the
23015         array of threads until it is empty, to cope with subthreads
23016         spawning new threads after the main thread has finished.
23017
23018         * profiler.h:
23019         * profiler.c:
23020         * profiler-private.h: Pass the thread ID to thread profiler
23021         functions, instead of a handle
23022
23023 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23024
23025         * verify.c: fixes to make it more usable.
23026         * pedump.c: added --verify code to verify IL code in an assembly.
23027
23028 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23029
23030         * reflection.c: turn errors into warnings to allow compiling corlib.
23031
23032 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
23033
23034         * reflection.c: add special cases to compile corlib.
23035
23036 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
23037
23038         * reflection.c: handle properties with only a set method.
23039
23040 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23041
23042         * opcodes.h: add enum with opcodes in opval order.
23043
23044 2002-07-01  Dick Porter  <dick@ximian.com>
23045         
23046         * object.h:
23047         * object.c (mono_runtime_run_main): Removed unneeded argument
23048
23049 2002-06-28  Martin Baulig  <martin@gnome.org>
23050
23051         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
23052
23053 2002-06-27  Dick Porter  <dick@ximian.com>
23054
23055         * threads.c: Store the handle in both the parent thread and in the
23056         subthread, to minimise the time between starting a new thread and
23057         storing its ID.
23058
23059 2002-06-26  Dick Porter  <dick@ximian.com>
23060
23061         * appdomain.c (mono_runtime_cleanup): Close the socket library
23062         after all the threads have finished, not before
23063
23064 2002-06-26  Martin Baulig  <martin@gnome.org>
23065
23066         * debug-symfile.c (mono_debug_find_source_location): Added
23067         `guint32 *line_number' argument.  If it's not NULL, store the line number
23068         there and return the file name without the line number.
23069
23070 2002-06-25  Dick Porter  <dick@ximian.com>
23071
23072         * icall.c:
23073         * process.h:
23074         * process.c: Process forking and other support functions
23075
23076 2002-06-25  Dick Porter  <dick@ximian.com>
23077
23078         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
23079         things dont happen when the image is closed.
23080         (mono_image_lookup_resource): Walk the resource section looking
23081         for a particular entry
23082
23083         * cil-coff.h: PE resource section decoding
23084
23085 2002-06-25  Dick Porter  <dick@ximian.com>
23086         
23087         * assembly.h:
23088         * assembly.c: 
23089         (mono_assembly_foreach): Accessor functions to walk the list of
23090         loaded assemblies
23091         (mono_assembly_set_main):
23092         (mono_assembly_get_main): Process methods need to know which
23093         assembly is the "main" one
23094
23095         * object.c (mono_runtime_run_main): Record the main assembly
23096
23097         * debug-helpers.c: Fix typo
23098
23099 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
23100
23101         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
23102         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
23103
23104 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
23105
23106         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
23107
23108 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
23109
23110         * image.c (do_mono_image_open): Initialize reference count,
23111         otherwise we leak the MonoImage.
23112
23113 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
23114
23115         * reflection.c: small tweak to handle self-hosting.
23116
23117 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
23118
23119         * reflection.c: fix type name parse code.
23120
23121 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23122
23123         * reflection.c: break out of the loop.
23124         * image.c: special case corlib.
23125
23126 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23127
23128         * reflection.c: add all the custom attrs at the end to ensure the
23129         ctors have been properly initialized when the attributes are defined
23130         in the current assembly.
23131
23132 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
23133
23134         * reflection.c: handle correctly multiple-nested types.
23135
23136 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
23137
23138         * row-indexes.h: fix typos.
23139         * reflection.c: adjust for typos and fix method_def_or_ref
23140         encoding in MethodImpl table.
23141
23142 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23143
23144         * reflection.c: fix entry point patching (thanks Serge!).
23145
23146 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
23147
23148         * verify.c: add check for System.Exception
23149
23150 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
23151
23152         * image.c, class.c: minifix for code just c&p'ed.
23153         * reflection.c: warning fix.
23154         * object.h, loader.h, domain.c: load also StringBuilder.
23155
23156 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
23157
23158         * marshal.h, marshal.c: some support code to handle complex marshaling.
23159
23160 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23161
23162         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
23163         Better signatures with vtable error dump.
23164
23165 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
23166
23167         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
23168
23169 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
23170
23171         * icall.c (ves_icall_Type_GetField): impl.
23172
23173 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23174
23175         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
23176         to retrieve a marshal description blob for a field or param.
23177
23178 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
23179
23180         * reflection.h, reflection.c: change order of nested type emission
23181         to avoid table corruption. The NestedTypes table is sorted.
23182         * icall.c: change order of GetConstructor results to workaround mcs bug.
23183
23184 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23185
23186         * reflection.h, reflection.c: handle field and param marshal
23187         information.
23188
23189 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23190
23191         * icall.c, marshal.c marshal.h: more Marshal class implementation.
23192
23193 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23194
23195         * reflection.c: fix call convention.
23196
23197 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23198
23199         * reflection.h, reflection.c: mono_image_get_memberref_token()
23200         takes a type instead of a class, now. Added
23201         mono_image_get_array_token() to create tokens for the special
23202         multi-dim array methods.
23203
23204 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23205
23206         * assembly.c: handle modules (no assembly table). Split
23207         loading references in its own function.
23208         * class.c: handle moduleref resolution scope.
23209         * image.c, image.h: cache module name in image.
23210
23211 2002-06-07  Martin Baulig  <martin@gnome.org>
23212
23213         * reflection.c (mono_image_get_type_info): Only add a class layout entry
23214         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
23215
23216 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
23217
23218         * icall.c: more signature fixes that used uint instead of int.
23219
23220 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23221
23222         * reflection.c: fixed signature of field refs.
23223
23224 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23225
23226         * class.c, reflection.c: handle typerefs of nested types
23227         (both on read and when writing files).
23228
23229 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
23230
23231         * icall.c: fix method signatures that tried to workaround the previous
23232         typo, d'oh!
23233
23234 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23235
23236         * debug-helpers.c: fix typo.
23237
23238 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23239
23240         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
23241         rewrote the PE/COFF writing code (our programs are understood by the
23242         ms runtime, now).
23243
23244 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
23245
23246         * gc.c, gc.h, icall.c: weakreference support.
23247
23248 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23249
23250         * Makefile.am, mono-config.c: use $(sysconfdir).
23251
23252 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23253
23254         * icall.c: changed default precision of Double.ToString() to 15.
23255         Fixed memory leak. Unified with Single.ToString.
23256
23257 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
23258
23259         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
23260
23261 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
23262
23263         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
23264         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
23265         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
23266         and myself.
23267
23268 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23269
23270         * debug-symfile.c, sysmath.c: yet more compilation fixes.
23271
23272 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23273
23274         * reflection.c, socket-io.c: more compilation fixes.
23275
23276 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23277
23278         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
23279         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
23280         unicode.c: warning and compiler compatibility fixes.
23281
23282 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23283
23284         * class.h, metadata.c: fixed warnings/compilation errors.
23285
23286 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
23287
23288         * Makefile.am, mono-config.c, mono-config.h: configuration file
23289         support routines.
23290         * loader.c, loader.h: make Dll mapping configurable at runtime in the
23291         config file. Export methods to insert and lookup mappings.
23292
23293 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
23294
23295         * reflection.c: handle types and boxed objects in custom attr
23296         constructors.
23297
23298 2002-05-30  Martin Baulig  <martin@gnome.org>
23299
23300         * debug-symfile.c
23301         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
23302
23303 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
23304
23305         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
23306         to lookup the implmap row for a P/Invoke method.
23307         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
23308         P/Invoke method from the runtime on an as needed basis.
23309
23310 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
23311
23312         * metadata.c (mono_metadata_parse_signature): impl.
23313
23314 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23315
23316         * class.c: handle .pack directive.
23317
23318 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23319
23320         * object.c: initialize static fields with RVA data.
23321
23322 2002-05-25  Martin Baulig  <martin@gnome.org>
23323
23324         * debug-symfile.c
23325         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
23326
23327 2002-05-24  Martin Baulig  <martin@gnome.org>
23328
23329         * debug-symfile.c
23330         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
23331         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
23332         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
23333
23334 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23335
23336         * object.c: special case string ctros in invoke.
23337         * gc.c: silly whitespace changes.
23338
23339 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
23340
23341         * threadpool.[ch]: impl. a threadpool that can
23342         be used by mint and mono.
23343
23344 2002-05-22  Martin Baulig  <martin@gnome.org>
23345
23346         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
23347         The first argument is now a `MonoReflectionModuleBuilder *', the return
23348         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
23349         `methods' field to get the method builder.  The `token' argument is the
23350         unfixed token.
23351
23352         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
23353         invalid characters instead of g_assert_not_reached()ing.  This seems
23354         to be the behaviour of mscorlib.
23355
23356 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
23357
23358         * object.c (mono_runtime_invoke_array): applied patch from Rachel
23359         Hestilow to fix bug #25104
23360
23361 2002-05-21  Martin Baulig  <martin@gnome.org>
23362
23363         * debug-symfile.c (mono_debug_find_source_location): New function.
23364         Looks up an IL offset in the line number table and returns the source
23365         location as a string.
23366
23367 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23368
23369         * icall.c:
23370         (mono_double_ToStringImpl): changed %f by %g until we have something
23371         better.
23372
23373 2002-05-21  Nick Drochak  <ndrochak@gol.com>
23374
23375         * icall.c : Use different name for Math.Pow's icall.  Needed to check
23376         parameters first in C#.
23377
23378 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23379
23380         * icall.c, reflection.h: added icall to get info about an event.
23381
23382 2002-05-20  Radek Doulik  <rodo@ximian.com>
23383
23384         * object.c (mono_value_box): don't use memcpy for boxing on BIG
23385         endian
23386         (mono_value_box): don't use memcpy for small sizes on
23387         architectures with unaligned access
23388
23389 2002-05-20  Martin Baulig  <martin@gnome.org>
23390
23391         * reflection.c (mono_reflection_setup_internal_class): Don't crash
23392         if `tb->parent == NULL'.
23393         (mono_reflection_create_internal_class): New function.  This is
23394         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
23395         for enum types.
23396
23397         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
23398         New interncall.
23399
23400 2002-05-19  Martin Baulig  <martin@gnome.org>
23401
23402         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
23403         argument to get the length, don't default to the array length.
23404
23405 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
23406
23407         * assembly.c (mono_assembly_setrootdir): New function used to
23408         override the MONO_ASSEMBLIES directory.
23409
23410 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23411
23412         * icall.c: ValueType_GetHashCode() initialize local var.
23413
23414 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23415
23416         * reflection.c: sort custom attributes table.
23417
23418 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23419
23420         * reflection.c: support named args in custom attributes (write support).
23421
23422 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
23423
23424         * reflection.c: fix finally position calculation.
23425
23426 2002-05-15  Radek Doulik  <rodo@ximian.com>
23427
23428         * reflection.c: fixed endianess at many places
23429
23430         * icall.c (ves_icall_InitializeArray): comment out debug msg
23431
23432 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
23433
23434         * object.c (mono_unhandled_exception): new function to handle
23435         unhandled exceptions.
23436         (mono_unhandled_exception): call the UnhandledException event.
23437         (mono_runtime_delegate_invoke): impl.
23438
23439 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
23440
23441         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
23442         returns the RVA, not the direct pointer to the data. Handle the case
23443         when the class size is fixed.
23444
23445 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
23446
23447         * reflection.c: fix some endianess issues.
23448
23449 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
23450
23451         * object.c (mono_runtime_invoke): is now able to catch exceptions.
23452
23453         * threads.c (mono_thread_init): added a callback which is invoked
23454         at thread start.
23455
23456 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
23457         
23458         * icall.c: make GetHashCode return non-negative values.
23459
23460 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
23461
23462         * object.c, icall.c, gc.c: revert to address-based hashcode.
23463
23464 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
23465
23466         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
23467
23468 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23469
23470         * icall.c, class.c: special case <Module>.
23471
23472 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
23473
23474         * icall.c: fix bug in GetNow().
23475
23476 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
23477
23478         * object.c (mono_runtime_class_init): make sure that we call all
23479         static class constructors.
23480
23481 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23482
23483         * reflection.c: sort methodsemantics table.
23484
23485 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23486
23487         * reflection.h, reflection.c: honour init locals setting.
23488
23489 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
23490
23491         * icall.c: copied Double ToStringImpl for Single ToStringImpl
23492
23493 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23494
23495         * reflection.c: support ContructorBuilders in attribute blob creation.
23496
23497 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23498
23499         * reflection.c: some changes to build a binary that can be run
23500         directly in windows.
23501
23502 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23503
23504         * loader.c: print a big message when an icall can't be found.
23505
23506 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23507
23508         * string-icalls.c: fix bug 24248.
23509
23510 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
23511
23512         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
23513         icall.c, reflection.h: separate assembly loading by pathname and by
23514         assembly name. Use the MONO_PATH env var to search for assemblies.
23515
23516 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23517
23518         * assembly.c, image.h: add some support for assemblies
23519         with multiple modules.
23520         * class.c, class.h: export mono_class_from_typeref().
23521         * loader.c: remove duplicated code and use mono_class_from_typeref(),
23522         instead.
23523
23524 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23525
23526         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
23527         documentation says (the ECMA one is correct).
23528
23529 2002-05-02  Dick Porter  <dick@ximian.com>
23530
23531         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
23532         Don't name the synchronisation mutex.
23533
23534 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
23535
23536         * rand.c
23537         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
23538         Make the prototypes match.
23539         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
23540         Same.
23541
23542         * icall.c
23543         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
23544         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
23545         all systems have tm.tm_zone, so use strftime() with %Z to print
23546         the timezone abreviation into a temp string.
23547
23548         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
23549         rather than mono_array_addr() on a MonoString on Big Endian
23550         machines.
23551
23552 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
23553
23554         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
23555         fix bug 24041
23556
23557 2002-04-30  Dick Porter  <dick@ximian.com>
23558
23559         * socket-io.c: Cope with SOCKET being an integer rather than a
23560         pointer now.
23561
23562         * threads.c: Added Thread_free_internal, to deal with thread
23563         handle cleanup.  Moved calls to handle_store() and handle_remove()
23564         to start_wrapper(), so each can only be called once.  Allocate
23565         synchronisation blocks with GC_malloc(), and use GC finalisation
23566         to close the handles.
23567
23568         * icall.c: added System.Threading.Thread::Thread_free_internal
23569
23570 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23571
23572         * icall.c: support Environment.Exit, CommandLineArgs().
23573
23574 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23575
23576         * object.c, object.h: added mono_runtime_run_main () and
23577         mono_runtime_get_main_args () for use in System.Environment.
23578
23579 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23580
23581         * gc.c: fix thinko, enable actual finalization since the jit is now
23582         fixed.
23583
23584 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23585
23586         * gc.c, object.c: take into account that an object may be offset wrt the address
23587         returned by GC_malloc().
23588
23589 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
23590
23591         * image.c: handle files without entries in the assembly table (modules).
23592
23593 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
23594
23595         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
23596         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
23597         allowed to be null when it's System.Object class setup.
23598
23599 2002-04-27  Martin Baulig  <martin@gnome.org>
23600
23601         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
23602         if `tb->parent == NULL' rather than crashing.
23603
23604 2002-04-28  Nick Drochak  <ndrochak@gol.com>
23605
23606         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
23607         calling acos() where asin() should have been called.
23608
23609 2002-04-26  Martin Baulig  <martin@gnome.org>
23610
23611         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
23612         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
23613         there's a subdirectory called `System', but we don't want to read that
23614         subdirectory as an assembly.
23615
23616 2002-04-25  Martin Baulig  <martin@gnome.org>
23617
23618         * debug-symfile.c: Reflect latest MonoString changes.
23619
23620 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23621
23622         * rand.c, rand.h: instance method icalls need to have an explicit
23623         this pointer as first argument in the C implementation.
23624
23625 2002-04-25  Nick Drochak <ndrochak@gol.com>
23626
23627         * icall.c: Fix typo in map for GetNonZeroBytes
23628
23629 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
23630
23631         * string-icalls.c : String does now passes unit tests without any 
23632         errors, the following changes has been made:
23633         
23634         Implemented replace methods.
23635         Renaming of methods to (try) follow the standard.
23636         Fixed compare ordinal
23637         Made all memory allocated directly to function instead of via icall function.
23638         Small performance fix in is_in_array function
23639                         
23640  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
23641
23642         c (mono_string_Internal_ctor_charp_int_int):
23643         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
23644         sindex < 0, throw ArgumentOutOfRangeException instead of
23645         ArgumentNullException.
23646
23647         Added new check for length == 0, however
23648         I need to make it return String.Empty from the C code.
23649         
23650         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
23651         that calculate the length for us here.
23652         
23653         (mono_string_Internal_ctor_sbytep_int_int): Replaced
23654         mono_string_new_utf16 with mono_string_new, since value is utf8.
23655
23656 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23657
23658         * object.c: register the object for finalization if needed.
23659         Allocate one more char in the string for the terminating 0 char.
23660
23661 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23662
23663         * class.c, class.h, image.c: check if a type implemenst a destructor.
23664         Use the proper key for array class lookups.
23665         * icall.c: register the icalls in the System.GC class.
23666         * gc.c, gc.h: GC-related functions and icalls.
23667
23668 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23669
23670         * icall.c:
23671         * socket-io.c:
23672         * unicode.c: free some strings gotten from mono_string_to_utf8 and
23673         changed a couple of free () by g_free ().
23674
23675         * decimal.c: one-liner in the comments for decimal2string ().
23676
23677 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
23678
23679         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
23680
23681 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
23682
23683         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
23684         * object.c (mono_runtime_invoke_array) : handle null in params
23685
23686 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
23687
23688         * string-icalls.c: fixed bug in split (one off bug)
23689
23690 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
23691
23692         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
23693         * icalls.c: added String::Equals as internal method
23694
23695 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
23696
23697         * threads.c: fixed bug in the double interlocked functions
23698
23699 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
23700
23701         * threads.c: implemented all of the new interlocked icalls.
23702         * string-icalls.c: fix a bug in insert.
23703         * icalls.c: added the icalls for interlocked, removed old string functions.
23704         
23705 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23706
23707         * loader.c: fix off-by-one error when reading argument names.
23708
23709 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23710
23711         * profiler.c: win32 counter implementation (untested).
23712         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
23713         (the latter needs testing and more complete impl. from win32 folks).
23714
23715 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
23716
23717         * object.c: mono_array_new_full workaround mono_array_class_get
23718         problem.
23719
23720 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23721
23722         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
23723         * object.h (mono_string_chars): Changed casting type.
23724
23725 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23726
23727         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
23728                            method signatures to use gunichar2 instead of gint16.
23729
23730 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
23731
23732         * object.h, object.c: domain-specific versions of mono_object_new and
23733         mono_array_new.
23734
23735 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
23736
23737         * object.c: changed String layout
23738
23739         * string-icalls.c (mono_string_Internal_ctor_chara): added
23740         internal string constructors.
23741
23742 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
23743
23744         * threads.c: pass 'this' to the thread start routine.
23745
23746 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23747
23748         * string-icalls.c: fix IndexOf and LastIndexOf. Now
23749         InternalCompareStr don't call twice mono_string_cmp_char for the last
23750         character. Improved performance in mono_string_cmp_char.
23751
23752 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23753
23754         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
23755         code into its own library: libmonoruntime.
23756
23757 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
23758
23759         * object.h, object.c: changed array format so that szarrays do not
23760         require a bounds structure.
23761         * icall.c, appdomain.c: support for new szarray format.
23762
23763 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23764
23765         * metadata.c: compare also the retuns type when comparing signatures:
23766         we didn't do this as an optimization since really overloaded methods
23767         must differ also in the arguments, but this doesn't work with
23768         low-level IL code (or when using explicit conversion operators: see
23769         bug#23498 for an example).
23770
23771 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23772
23773         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
23774
23775 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23776
23777         * icall.c: make MonoType::GetElementType its own icall.
23778
23779 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23780
23781         * icall.c: remove MonoMethod_get_Name().
23782         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
23783         object.
23784
23785 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23786
23787         * string-icalls.c: optimized a few methods.
23788
23789 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23790
23791         * icall.c: added all new string internal calls
23792         * string-icalls.c: added, new string internal call implementation.
23793         * object.c: added mono_string_new_size for allocating a string a size
23794
23795 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
23796
23797         * object.c (mono_object_isinst): use the same code as in the
23798         optimized x86 version.
23799
23800 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23801
23802         * profiler.c: TSC-based timer code (faster and more accurate).
23803         Not hooked up in configure, yet (set USE_X86TSC to 1).
23804
23805 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
23806
23807         * profiler.c, profiler.h: track time spent compiling methods.
23808         * threads.c: track thread creation/destruction.
23809
23810 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
23811
23812         * profiler.c, profiler.h, profiler-private.h: profiling interface
23813         and sample implementation. Moved here so that it can be used also by
23814         the jit.
23815
23816 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
23817
23818         * reflection.c, reflection.h: keep types and other handles separate in
23819         the hash tables for referred tokens. Add guid for modules.
23820
23821 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23822
23823         * assembly.c: fix bugs found with valgrind.
23824         * metadata.h, metadata.c: added mono_metadata_guid_heap().
23825
23826 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
23827
23828         * threads: added icall support for getting current domain for
23829                    the thread.
23830  
23831 2002-04-13  Martin Baulig  <martin@gnome.org>
23832
23833         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
23834         (MonoDebugVarInfo): Added `index' field for register based addresses.
23835         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
23836         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
23837         `MonoDebugVarInfo *params' and `guint32 this_offset' with
23838         `MonoDebugVarInfo *this_var'.
23839
23840         * debug-symfile.c (relocate_variable): New static function to write
23841         a location description for a local variable or method parameter.
23842
23843 2002-04-12  Martin Baulig  <martin@gnome.org>
23844
23845         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
23846         stack offset and begin/end scope address of a local variable.
23847         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
23848         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
23849         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
23850
23851         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
23852         Added new relocation types for start/end scope of a local variable.
23853
23854 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23855
23856         * object.h: add mono_object_domain() macro.
23857         * reflection.c: handle typespecs.
23858         * icall.c: MonoMethod::get_Name() implementation.
23859
23860 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23861
23862         * icall.c: String::GetHashCode() icall implementation.
23863
23864 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23865
23866         * icall.c: String::IndexOfAny icall.
23867         * object.c, object.h: make array->max_length more useful.
23868         Intrduced mono_object_class() and mono_string_length() macros.
23869
23870 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23871
23872         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
23873         instead of g_unichar_isdigit.
23874
23875 2002-04-11  Nick Drochak  <ndrochak@gol.com>
23876
23877         * icall.c: Implement a simple Double.ToString().
23878
23879 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23880
23881         * appdomain.h: only io-layer.h is supposed to be included.
23882         * icall.c: explicitly import environ. Fix warning.
23883
23884 2002-04-10  Nick Drochak  <ndrochak@gol.com>
23885
23886         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
23887                 return true even if it's not Daylight Savings time.
23888                 Only return false for the case where the function isn't
23889                 implemented for a plaform (read Windows).
23890
23891 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23892
23893         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
23894         data with a mutex.
23895
23896 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
23897
23898         * mempool.c (mono_mempool_alloc): only use g_malloc when
23899         absolutely necessary.
23900
23901 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
23902
23903         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
23904
23905         * class.c (mono_class_vtable): use domain mempool to allocate vtable
23906         (mono_class_proxy_vtable): use domain mempool
23907
23908 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23909
23910         * appdomain.h, appdomain.c: split initialization that requires the
23911         execution engine support into mono_runtime_init().
23912
23913 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
23914
23915         * class.c (mono_class_init): don't include vtable inside MonoClass
23916         to save some memory, gather some statistics.
23917         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
23918
23919 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23920
23921         * icall.c: internalcall implementation for ValueType.Equals().
23922
23923 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
23924
23925         * object.c (mono_message_init): moved 
23926         (mono_runtime_exec_main): new arch. independent impl.
23927         (mono_runtime_invoke_array): new method - like
23928         mono_runtime_invoke, but you can pass an array of objects.
23929         (mono_remoting_invoke): new arch. independent impl.
23930         (mono_message_invoke): new arch. independent impl.
23931         (mono_runtime_class_init): new arch. independent impl.
23932         (mono_runtime_object_init): new arch. independent impl.
23933
23934 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23935
23936         * metadata.c, object.c, reflection.c: documented the exported
23937         functions.
23938
23939 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
23940
23941         * icall.c: simpler code to pass the assembly builder data to corlib.
23942         Implement GetNestedTypes() internalcall.
23943
23944 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23945
23946         * class.c: warn if a type can't be loaded.
23947
23948 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
23949
23950         * image.h: typedef MonoImageOpenStatus
23951         * types.h: removed unused file
23952         
23953 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
23954
23955         * icall.c: Enum_ToObject accepts enum value arguments.
23956
23957 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23958
23959         * class.c: move initialization of properties, events and nested
23960         classes, so that they happen for interfaces, too.
23961
23962 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23963
23964         * icall.c: cleanup some ugly casts in Array_SetValue*.
23965
23966 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23967
23968         * icall.c: the values array fro enums is of the correct type, now.
23969         Implement (correctly) getFullName instead of assQualifiedName for
23970         MonoType.
23971         * reflection.h, reflection.c: added mono_type_get_name ().
23972
23973 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23974
23975         * assembly.c, image.h: for each MonoImage, record from wich assembly
23976         it was loaded.
23977         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
23978         Make Type.Assembly work.
23979
23980 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
23981
23982         * debug-symfile.h: use char* instead of gpointer to avoid
23983         unnecessary casts.
23984
23985         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
23986
23987         * icall.c (ves_icall_InternalExecute): impl. FielSetter
23988         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
23989
23990 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
23991
23992         * icall.c (mono_message_init): impl. (code cleanup)
23993         (ves_icall_InternalExecute): impl. FieldGetter
23994
23995         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
23996         defined we call all (non-static)methods through the vtable. 
23997
23998 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
23999
24000         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
24001         finalizer even though the memory is still referenced (and the chunk of
24002         memory is not freed).
24003
24004 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
24005
24006         * assembly.c: fix brokeness.
24007
24008 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
24009
24010         * class.c: kill some warnings. Check explicit interface method
24011         implementation also without considering the namespace.
24012         Load also literal strings in static class data.
24013
24014 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
24015
24016         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
24017         (default_assembly_name_resolver): Make the resolver take the
24018         "base" directory where the assembly was originally defined, so we
24019         can load DLLs that are in the same directory as the assembly that
24020         is being referenced.
24021
24022 2002-03-28  Dick Porter  <dick@ximian.com>
24023
24024         * file-io.h: 
24025         * file-io.c:
24026         * socket-io.c: 
24027         * unicode.h: 
24028         * unicode.c: Warning cleanups
24029
24030 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
24031
24032         * object.h, reflection.h: use the correct type instead of MonoObject.
24033
24034 2002-03-28  Martin Baulig  <martin@gnome.org>
24035
24036         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
24037         (mono_debug_update_symbol_file): Initialize classes if necessary.
24038
24039 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
24040
24041         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
24042         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
24043
24044 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
24045
24046         * assembly.h: fix function prototype.
24047         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
24048         * mono-endian.h: use const cast.
24049
24050 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
24051
24052         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
24053
24054 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
24055
24056         * loader.c: don't assert when a typeref can't be loaded, give
24057         a chance to the runtime to trow an exception instead.
24058         * loader.h: fix warning.
24059
24060 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
24061
24062         * class.c (mono_class_proxy_vtable): added proxy support
24063
24064 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
24065
24066         * icall.c: removed last of PAL calls, added System.Environment
24067         * file-io.h, file-io.c: MonoIO implementation
24068         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
24069
24070 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
24071
24072         * appdomain.c: do not use the byte marker in ldstr table lookup.
24073         * debug-helpers.c: allow two ':' to separate class and method name.
24074         * object.c: allocate arrays bounds with the GC, too.
24075         * verify: add a few more checks.
24076
24077 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
24078
24079         * reflection.c: output also literal strings. Allocate parameter data
24080         with GC_malloc() (thanks, Martin, for catching this!).
24081
24082 2002-03-26  Martin Baulig  <martin@gnome.org>
24083
24084         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
24085         include the `this' offset in the `param_offsets'.
24086
24087 2002-03-25  Martin Baulig  <martin@gnome.org>
24088
24089         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
24090         mono_debug_get_class() function to get the classes. Added new
24091         relocation types for arrays and strings.
24092         (mono_debug_get_class): New static function to search in all
24093         referenced assemblies for a metadata token.
24094
24095         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
24096
24097 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
24098
24099         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
24100         hold gc-allocated objects. Make the string heap a stream like the
24101         others. Removed duplicated code when writing stream info.
24102         Added asserts to catch possible buffer overflows. Set the sorted map
24103         for tables that need sorting. Added some documentation.
24104
24105 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
24106
24107         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
24108         for interned strings and vtables.
24109
24110 2002-03-24  Martin Baulig  <martin@gnome.org>
24111
24112         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
24113         it in the array since it was created with g_slist_prepend().
24114
24115 2002-03-24  Martin Baulig  <martin@gnome.org>
24116
24117         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
24118         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
24119         (mono_debug_method_from_token): Renamed to
24120         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
24121         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
24122
24123         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
24124         relocation types.
24125
24126         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
24127
24128 2002-03-24  Martin Baulig  <martin@gnome.org>
24129
24130         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
24131         (mono_debug_method_from_token): New func.
24132
24133         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
24134         New interncall, calls mono_debug_local_type_from_signature().
24135         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
24136         calls mono_debug_method_from_token().
24137
24138 2002-03-23  Martin Baulig  <martin@gnome.org>
24139
24140         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
24141         specifies the number of bytes to be converted, not the array size.
24142         Return the number of chars, not the number of bytes.
24143         (ves_icall_iconv_get_chars): The `byteCount' argument
24144         specifies the number of bytes to be converted, not the array size.
24145
24146 2002-03-23  Martin Baulig  <martin@gnome.org>
24147
24148         * reflection.h (MonoReflectionSigHelper): New type.
24149
24150         * reflection.c (mono_reflection_sighelper_get_signature_local),
24151         (mono_reflection_sighelper_get_signature_local): New functions.
24152
24153         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
24154         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
24155         interncalls.
24156
24157 2002-03-23  Martin Baulig  <martin@gnome.org>
24158
24159         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
24160         is_writeable is set.
24161         (mono_raw_buffer_update): New function to write the modified map
24162         back to disk.
24163
24164         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
24165
24166         * debug-symfile.c (mono_debug_update_symbol_file): Call
24167         mono_raw_buffer_update() when done writing.
24168
24169 2002-03-23  Martin Baulig  <martin@gnome.org>
24170
24171         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
24172
24173         * debug-symfile.c: Added support for arguments and local variables.
24174
24175 2002-03-23  Dick Porter  <dick@ximian.com>
24176
24177         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
24178         protected by ifdefs, hence breaking the w32 build.
24179
24180 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24181
24182         * object.c: implement is_interned() the right way.
24183
24184 2002-03-21  Martin Baulig  <martin@gnome.org>
24185
24186         * debug-symfile.[ch]: New files to handle debugging information
24187         files. There's also support to dynamically update these symbol
24188         files to include machine dependent information.
24189
24190 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
24191
24192         * threads.c (mono_thread_create): new function to create thread
24193         from C
24194
24195 2002-03-20  Martin Baulig  <martin@gnome.org>
24196
24197         * icall.c (ves_icall_InternalInvoke): Create a new object if the
24198         method is a constructor.
24199         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
24200         points to ves_icall_InternalInvoke().
24201
24202 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
24203
24204         * file-io.c: Flush shouldn't throw exceptions.
24205
24206 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
24207
24208         * file-io.c: FileStream flush support; FileSetLength now
24209         restores file pointer.
24210
24211 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
24212
24213         * class.c: set image for pointer classes.
24214
24215 2002/03/19  Nick Drochak <ndrochak@gol.com>
24216
24217         * sysmath.c: Forgot one.
24218
24219 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
24220
24221         * sysmath.c: Avoid redefining existing names.
24222
24223 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
24224
24225         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
24226         handled by runtime as icall rather than dllimport from libm.so
24227         * file-io.c, file-io.h: fixed handle argument type.
24228
24229 2002-03-18  Dick Porter  <dick@ximian.com>
24230
24231         * reflection.c (mono_image_get_type_info): rename interface to
24232         iface, because of "#define interface struct" on windows.
24233
24234 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
24235
24236         * class.c, class.h: rename and export mono_ptr_class_get().
24237         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
24238         * reflection.c, reflection.h, icall.c: better/saner type name
24239         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
24240         method signatures.
24241
24242 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
24243
24244         * class.c (mono_class_init): removed hardcoded GHC_SLOT
24245
24246         * icall.c (ves_icall_InternalInvoke): impl.
24247
24248 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
24249
24250         * reflection.c: output the interface map table, too.
24251
24252 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
24253
24254         * class.c (class_compute_field_layout): separate computation of 
24255         static field layout
24256
24257 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
24258
24259         * icall.c: added System.Buffer support.
24260         * file-io.c: moved file icalls from PAL to FileStream.
24261
24262 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
24263
24264         * icall.c (ves_icall_System_Object_GetHashCode): impl.
24265
24266 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
24267
24268         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
24269
24270 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24271
24272         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
24273
24274 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
24275
24276         * debug-helpers.{c,h}: moved here from monograph some useful functions
24277         to locate a method by name/signature in a class or image. Included
24278         also a small and flexible IL disassembler.
24279
24280 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24281
24282         * reflection.c: fixup tokens in methods with small header size, too.
24283
24284 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
24285
24286         * object.c (mono_string_to_utf8): remove assert(!error), instead
24287         print a warning. 
24288
24289 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
24290
24291         * icall.c: update to the new mono_Array_class_get interface.
24292
24293 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
24294
24295         * appdomain.c, object.c: Boehm-GC enable.
24296         * icall.c: make get_data_chunk() support split data requests.
24297         Ensure a class is initialized in more cases. Return only the first
24298         property found in GetProperties() or the compiler gets confused. 
24299         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
24300         * reflection.h, reflection.c: add fixup mechanism for field and method
24301         tokens. Initialize assembly->typeref in a single place. Output
24302         properties after events. Support custom attributes for events, too.
24303         Typo fix for paramter custom attrs.
24304
24305 2002-03-07  Martin Baulig  <martin@gnome.org>
24306
24307         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
24308
24309 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
24310
24311         * class.c (mono_array_class_get): fix. for multi. dim. arrays
24312
24313 2002-03-06  Martin Baulig  <martin@gnome.org>
24314
24315         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
24316         non-zero lower bounds. See testcases #F10-#F13.
24317
24318 2002-03-05  Martin Baulig  <martin@gnome.org>
24319
24320         * exception.c (mono_get_exception_argument_out_of_range): New exception.
24321
24322         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
24323         ves_icall_System_Array_GetValue(), only calculate the absolute array position
24324         here.
24325         (ves_icall_System_Array_SetValue): Likewise.
24326         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
24327         as argument and does the actual work. This function is used when copying a
24328         multi-dimensional array.
24329         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
24330         now do all the widening conversions of value types.
24331         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
24332
24333 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24334
24335         * class.c: remove some magic numbers and use the smbolic names,
24336         instead. Added init_events() to load event info at class init time.
24337         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
24338         and mono_metadata_methods_from_event().
24339         * reflection.h, reflection.c: added support for writing out the evnets
24340         related information.
24341
24342 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
24343
24344         * reflection.h, icall.c: use a different method (GetInterfaces)
24345         to gather interface info and add isbyref, isprimitive and
24346         ispointer to the ves_icall_get_type_info() return value.
24347
24348 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
24349
24350         * class.h: stared adding support for events.
24351         * icall.c: split find_members implementation. Added debug icall to get
24352         the address of an object.
24353         * reflection.c: handle TypeBuilders in mono_type_get_object().
24354
24355 2002-03-01  Martin Baulig  <martin@gnome.org>
24356
24357         * icall.c (ves_icall_System_Array_GetLength): This must throw an
24358         ArgumentOutOfRangeException(), not an ArgumentException().
24359         (ves_icall_System_Array_GetLowerBound): Likewise.
24360         (ves_icall_System_Array_GetValue): Improved argument checking.
24361         (ves_icall_System_Array_SetValue): Improved argument checking.
24362
24363 2002-03-01  Martin Baulig  <martin@gnome.org>
24364
24365         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
24366         called with invalid arguments rather than just dying with g_assert().
24367         (ves_icall_System_Array_SetValue): Likewise.
24368         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
24369         raise a NotImplementedException instead.
24370         (ves_icall_System_Array_GetLength): Added argument checking.
24371         (ves_icall_System_Array_GetLowerBound): Added argument checking.
24372
24373 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
24374
24375         * object.h (mono_assert): new macros mono_assert and
24376         mono_assert_not_reached
24377
24378 2002-02-28  Martin Baulig  <martin@gnome.org>
24379
24380         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
24381         and "System::String::IsInterned" to "System::String::_IsInterned".
24382
24383 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
24384
24385         * icall.c: remove hacks for typebuilder. Added icall to create a
24386         modified type from a tybebuilder.
24387         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
24388         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
24389         to create a backing MonoClass for a TypeBuilder.
24390
24391 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24392
24393         * class.c, class.h: more refactoring of class init.
24394         Export mono_class_setup_mono_type() and mono_class_setup_parent().
24395
24396 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
24397
24398         * marshal.c, marshal.h: start of marshaling interface.
24399
24400 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24401
24402         * icall.c: fix order in assembly qualified name icall.
24403
24404 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24405
24406         * class.c: do not free str, since we store it in the hash table.
24407         * reflection.h: add label field to MonoILExceptionInfo.
24408         * reflection.c: handle references to more than one assembly. Handle
24409         case when there isn't a module created in the assembly.
24410
24411 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
24412
24413         * class.c: Fix typo. Start refactoring of class init code.
24414
24415 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
24416
24417         * appdomain.c: exit with 1 on error.
24418         * class.c: we already have the name in MonoClassField.
24419         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
24420         MonoStreamHeader instead of an offset of image->raw_metadata.
24421
24422 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
24423
24424         * appdomain.c (mono_init): Be even more descriptive about the error.
24425
24426 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
24427
24428         * appdomain.c: give the user an informative message when corlib can't
24429         be loaded.
24430
24431 2002-02-26  Martin Baulig  <martin@gnome.org>
24432
24433         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
24434         New icall to get the time zone data.
24435
24436 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24437
24438         * reflection.c: set virtual and raw size of section correctly.
24439         * threads.c: transfer domain information to newly created threads.
24440
24441 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24442
24443         * class.c: when instancing a class in a domain, load the default
24444         vaules for static fields from the constant table. Fix System.Enum to
24445         not be an enum.
24446         * icall.c: implement Object::GetType() internalcall. Implemented
24447         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
24448         Fixed checking of binding flags in find_members().
24449         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
24450         * reflection.c: handle enumerations when writing to the constant
24451         table. Use a different object cache for types.
24452
24453
24454 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
24455
24456         * object.c (mono_object_isinst): fix for arrays
24457
24458         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
24459
24460 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24461
24462         * object.c: don't use mprotect ()  and fix intern pool hash table
24463         lookup for big endian systems.
24464
24465 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24466
24467         * icall.c: change type_is_subtype_of () signature.
24468
24469 2002-02-21  Mark Crichton  <crichton@gimp.org>
24470
24471         * rand.c, rand.h: Added random number generator for
24472         System.Security.Cryptography classes.
24473
24474         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
24475
24476         * icall.c: Added System.Security.Cryptography calls.
24477
24478 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
24479
24480         * class.c, icall.c, metadata.c: better support for pointer types.
24481         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
24482         * reflection.c: Add support for getting custom attrs for properties
24483         and simplify some code.
24484
24485 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24486
24487         * icall.c: change getToken () and add custom attribute GetBlob()helper
24488         method.
24489         * reflection.h: add custom attrs array to the reflection builder structures.
24490         * reflection.c: encode and emit custom attributes for all the relevant
24491         reflection objects. Cache fieldref and methodref tokens. Change
24492         mono_image_create_token() interface to take a MonoDynamicAssembly.
24493         More complete custom attributes decoder. Load custom attributes for
24494         Assembly, Field, Method and Constructor objects, too. Make the
24495         returned array an Attribute[] one, not object[]. Added
24496         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
24497         custom attribute constructor.
24498
24499 2002-02-20  Dick Porter  <dick@ximian.com>
24500
24501         * icall.c:
24502         * rawbuffer.c:
24503         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
24504         problem code out for now).
24505
24506 2002-02-19  Radek Doulik  <rodo@ximian.com>
24507
24508         * object.c (mono_ldstr): use hash table to avoid multiple swapping
24509
24510 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
24511
24512         * icall.c: register the GetCustomAttributes method.
24513         * object.c, object.h: add mono_string_new_len ().
24514         * reflection.h, reflection.c: added mono_runtime_invoke(),
24515         mono_install_runtime_invoke(). Added
24516         mono_reflection_get_custom_attrs () to load custom attributes and
24517         create the attribute objects.
24518
24519 2002-02-19  Dick Porter  <dick@ximian.com>
24520         * threads-dummy-types.c:
24521         * threads-dummy-types.h:
24522         * threads-dummy.c:
24523         * threads-dummy.h:
24524         * threads-pthread-types.c:
24525         * threads-pthread-types.h:
24526         * threads-pthread.c:
24527         * threads-pthread.h:  Deleted obsolete files
24528
24529 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
24530
24531         * class.c (mono_class_vtable): runtime init the class when we
24532         allocate static class data.
24533
24534         * icall.c (ves_icall_System_Array_SetValue): check for null values.
24535
24536         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
24537         and String - but we will need generic marshalling support in the
24538         future. 
24539         (mono_init): set the domain name in a ms compatible way
24540
24541         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
24542         String[].
24543
24544 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
24545
24546         * object.c (mono_array_clone): use alloca() instead of g_malloc  
24547         for sizes
24548
24549         * appdomain.c (mono_domain_unload): impl.
24550
24551 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24552
24553         * appdomain.c, object.c: fix intern pool implementation.
24554         * class.c: fix alignment code.
24555
24556 2002-02-16  Radek Doulik  <rodo@ximian.com>
24557
24558         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
24559         and s2 > s1, just copy lower bytes to be compatible with little
24560         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
24561         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
24562
24563         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
24564         force big_endian to be 1 for big endian machines 
24565         (ves_icall_iconv_new_decoder): ditto
24566
24567 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
24568
24569         * socket-io.c (convert_sockopt_level_and_name): If the system
24570         doesn't define SOL_IP or SOL_TCP, get them by hand using
24571         getprotobyname() and caching the values (because this could be a
24572         slow operation).
24573         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
24574         Use the appropriate struct when the system does support it. Ie,
24575         not all systems have struct ip_mreqn so use struct ip_mreq when
24576         appropriate.
24577
24578 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
24579
24580         * reflection.c: handle finally clauses.
24581
24582 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
24583
24584         * socket-io.c: use g_snprintf() instead of snprintf.
24585
24586 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
24587
24588         * reflection.c (mono_param_get_objects): Cast second argument to
24589         mono_method_get_param_names to a const char** to silence the
24590         compiler warning.
24591
24592         * appdomain.c (mono_domain_assembly_open): Put parens around the
24593         truth statement in the for-loop.
24594
24595         * unicode.c (iconv_convert): Got rid of a compiler warning about
24596         int i being unused when the system has a new iconv.
24597         (iconv_get_length): Same.
24598
24599         * image.c (load_class_names): Cast the second argument to
24600         g_hash_table_insert() to char* to hush compiler warnings about the
24601         arg being a const.
24602         (mono_image_open): Same here.
24603
24604         * socket-io.c: Don't conditionally include sys/filio.h or
24605         sys/sockio.h here anymore since we now get them from
24606         io-layer/io-layer.h
24607         (inet_pton): If the system doesn't support inet_aton, implement
24608         using inet_addr and also #define INADDR_NONE if it isn't defined
24609         by the system.
24610
24611 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
24612
24613         * metadata.c, metadata.h: added function to get packing and size info
24614         of a typedef.
24615         * reflection.h, reflection.c: handle field RVA data. Save info about
24616         the table layout if needed. Assign typedef indexes to all the types
24617         before dumping the info about them to avoid forward reference problems.
24618
24619 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
24620
24621         * socket-io.c (convert_sockopt_level_and_name): ifdef
24622         SO_ACCEPTCONN because it is not defined on my system (old debian)
24623
24624 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
24625
24626         * opcode.c: use stddef.h to get NULL.
24627
24628 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
24629
24630         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
24631         for FIONBIO, FIONREAD and SIOCATMARK.
24632         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
24633         define INADDR_NONE and besides, inet_addr() is deprecated and
24634         should not be used. Use inet_pton() instead - it also has the
24635         added bonus that it can easily handle IPv6 addresses as well.
24636         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
24637
24638 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
24639
24640         * decimal.c: remove _MSC_VER conditional.
24641
24642 2002-02-13  Dick Porter  <dick@ximian.com>
24643
24644         * socket-io.c: 
24645         * icall.c: Internal calls for Blocking, Select, Shutdown,
24646         GetSocketOption and SetSocketOption
24647
24648 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24649
24650         * assembly.cs: better resolver: use it instead of some kludgy
24651         code.
24652
24653 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
24654
24655         * reflection.c: the best way to speed-up the compiler is to avoid
24656         infinite loops.
24657
24658 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
24659
24660         * class.c (mono_class_vtable): changed the object layout
24661         (obj->vtable->class). 
24662         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
24663
24664 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24665
24666         * assembly.c: look for assemblies in the assembly dir, too.
24667
24668 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24669
24670         * class.c: fix thinko in mono_class_from_type().
24671
24672 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24673
24674         * exception.h, exception.c: added TypeLoadException.
24675         * object.h, object.c: added mono_array_clone ().
24676         * icall.c: handle throwOnError in AssemblyGetType().
24677         Added Array.Clone().
24678         * opcode.h, opcode.c: use a single value for the opcode val.
24679         Compile fix for non-gcc compilers.
24680
24681 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
24682
24683         * opcodes.c, opcodes.h: export interesting info about opcodes.
24684
24685 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
24686
24687         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
24688         icalls. 
24689
24690         * class.c (class_compute_field_layout): set element_class for enums
24691         (mono_class_create_from_typedef): set element_class for normal classes
24692
24693         * icall.c (ves_icall_System_Enum_get_value): impl.
24694
24695         * class.c (mono_class_create_from_typedef): do not set valuetype
24696         flag for System.ValueType and System.Enum
24697
24698 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
24699
24700         * unicode.c (iconv_convert): fix big endian problem.
24701
24702 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24703
24704         * class.c: add asserts if we are ever going to scribble over memory.
24705         * socket-io.c: not all systems have AF_IRDA defined.
24706
24707 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
24708
24709         * class.c (class_compute_field_layout): do not consider static
24710         fields to compute alignment
24711
24712 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
24713
24714         * appdomain.c (mono_appdomain_get): impl.
24715         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
24716
24717 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
24718
24719         * icall.c: ignore "file://" prefix when loading an assembly.
24720
24721 2002-01-23  Dick Porter  <dick@ximian.com>
24722
24723         * socket-io.c:
24724         * icall.c:
24725         * Makefile.am: Added socket support
24726
24727 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
24728
24729         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
24730         code back.  This should return the assemblies that are loaded by
24731         the runtime on behalf of an application domain. 
24732
24733         The current implementation is still broken, it just returns every
24734         assembly loaded, but until we get real applications domain this
24735         will do.
24736
24737 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
24738
24739         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
24740         AppDomain object.
24741
24742 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
24743
24744         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
24745         the mono_class_from_name lookup.
24746         (ves_icall_get_parameter_info): ditto.
24747         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
24748         method.
24749         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
24750
24751 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24752
24753         * class.c: load also nested classes on class init.
24754         System.ValueType instance methods gets passed boxed
24755         values, unless methods in derived classed that get a pointer to the
24756         data.
24757         * icall.c: use better name parsing code in GetType().
24758         * image.c, image.h: add mono_image_loaded ().
24759         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
24760         * reflection.c, reflection.h: added mono_reflection_parse_type().
24761
24762 2002-01-22  Veronica De Santis <veron78@interfree.it>
24763
24764         * icall.c : Added mapping of internal calls for Manual and Auto reset events
24765         * threads.c : Added the implementation of internal calls for events
24766         * threads.h : Added prototypes of internal calls for events
24767         
24768 2002-01-21  Radek Doulik  <rodo@ximian.com>
24769
24770         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
24771
24772 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
24773
24774         * class.c (mono_class_init): set min_align to 1 (instead of 0)
24775         (mono_class_value_size): use min_align
24776
24777 2002-01-20  Dick Porter  <dick@ximian.com>
24778
24779         * threads.h:
24780         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
24781         so it compiles on w32.
24782
24783 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
24784
24785         * metadata.c (mono_type_stack_size): impl.
24786
24787         * class.c (mono_class_get_field): impl. memberref token
24788
24789 2002-01-16 Veronica De Santis <veron78@@interfree.it>
24790
24791         * icall.h : Added the internal calls mapping for CreateMutex_internal
24792                     and ReleaseMutex_internal.
24793         * threads.h : Added the prototype of mutexes internal calls.
24794         * threads.c : Added the implementations of mutexes internal calls.
24795
24796 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24797
24798         * metaparse.h: removed unused file.
24799         * reflection.c, reflection.h: added stream_data_align () function 
24800         to align data in streams and keep stream aligned. Add support for
24801         exception support in method headers.
24802
24803 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
24804
24805         * unicode.c: make iconv_convert () return the number of bytess written
24806         in the output buffer.
24807
24808 2002-01-15  Dick Porter  <dick@ximian.com>
24809         * threads.c: Make the runtime's idea of infinite timeouts coincide
24810         with the class library's
24811
24812         Fix a particularly egregious bug in mono_thread_cleanup(). That
24813         code was so utterly bogus it must have been written on a Monday.
24814
24815 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24816
24817         * reflection.h: add subtypes field to TypeBuilder.
24818         * reflection.c: encode constants for literal fields.
24819         Handle subtypes. Fix user string token (and add a zero byte)
24820         at the end.
24821         
24822 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
24823
24824         * class.c (mono_class_init): bug fix: assign slot numbers for
24825         abstract methods.
24826
24827 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24828
24829         * reflection.c: don't try to output a code RVA for abstract methods.
24830         Small fixes for method header format. Output parameter info to the
24831         ParamDef table. Save method overriding info to MethodImpl table.
24832         Fix property support. Allow typedef.extends to be a type in the
24833         building assembly.
24834         * verify.c: fix off-by-one error.
24835
24836 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
24837
24838         * class.c: fix mono_class_from_mono_type () for szarray types.
24839         Remove unused cache check in mono_class_from_type_spec().
24840         * icall.c: *type_from_name () functions handle simple arrays and byref.
24841         * reflection.c: handle byref and szarray types. Handle methods without
24842         body (gets P/Invoke compilation working). Handle types and fields in
24843         get_token ().
24844         * reflection.h: add rank to MonoTypeInfo.
24845
24846 2002-01-10  Dick Porter  <dick@ximian.com>
24847
24848         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
24849         internal calls
24850
24851 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24852
24853         * icall.c: initialize class in type_from_handle ().
24854         Loop also in parent classes for get_method ().
24855         * reflection.c: properly encode class and valuetype types.
24856         Start on encoding TypeBuilder types. Handle fieldrefs.
24857         Use correct length when registering a user string.
24858         Handle ConstructorBuilder and MonoMethod in get_token ().
24859         Make mono_type_get_object () aware of cached types.
24860         * object.c: back out change to mono_string_new ().
24861
24862 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
24863         * object.c: mono_string_new should return a NULL when the string 
24864         passed in is NULL -- not try to deference it.
24865         
24866 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
24867
24868         * icall.c: hack to make IsSubType work for TypeBuilders.
24869         * reflection.c: emit constructors before methods.
24870         Retrieve param names in mono_param_get_objects().
24871
24872 2002/01/05  Nick Drochak  <ndrochak@gol.com>
24873
24874         * Makefile.am: fix list of headers and sources so automake 1.5
24875         doesn't complain. Removed \# at end of list.
24876
24877 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24878
24879         * reflection.c: get token for a method ref. Set return type of
24880         constructor to void.
24881         * loader.c: debug message.
24882         * class.c: typo fix.
24883
24884 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
24885
24886         * icall.c: fix array init with rank > 1. FindMembers
24887         loops in parent class as well.
24888         * image.c: do not insert nested types in name cache.
24889         * reflection.c: warning fix.
24890         * reflection.h: add override method (for interface impl).
24891
24892 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
24893
24894         * metadata.c: fix customattr decoding.
24895
24896 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
24897
24898         * rawbuffer.cs: Added native Win32 implementation, avoids using
24899         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
24900
24901 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
24902
24903         * class.c: make the low-level routines handle the cache.
24904
24905 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
24906
24907         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
24908
24909 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
24910
24911         * class.c: fix mono_array_element_size() for objects.
24912         * class.h, class.c: add properties to MonoClass and load them
24913         at init time.
24914         * icall.c: check with isinst() when assigning a value to an array
24915         instead of requiring the classes to match exactly.
24916         Implemented icall for System.Type::GetType().
24917         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
24918         enums. Handle bindingflags when looking for methods and fields.
24919         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
24920         and mono_metadata_methods_from_property().
24921         * reflection.h, reflection.c: added structures for propreties,
24922         parameters and enums. Implemented mono_property_get_object() and
24923         mono_param_get_objects().
24924
24925 2001-12-18  Dick Porter  <dick@ximian.com>
24926
24927         * file-io.c: Use mono_string_to_utf16() instead of
24928         mono_string_chars()
24929
24930         * object.c: Added mono_string_to_utf16(), which copies the non
24931         NULL-terminated MonoString into a new double-null-terminated
24932         buffer.
24933
24934 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
24935
24936         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
24937
24938 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
24939
24940         * file-io.c: raise exceptions if handle is invalid.
24941
24942 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
24943
24944         * assembly.c: yet another check for mscorlib.
24945         * class.c, class.h: load nesting info for classes.
24946         * icall.c: many new functions to support the Reflection classes.
24947         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
24948         * reflection.h, reflection.c: mono_image_create_token(),
24949         mono_assembly_get_object(), mono_type_get_object(),
24950         mono_method_get_object(), mono_field_get_object(): methods to return
24951         objects that parallel the C representation of assemblies, types,
24952         methods, fields.
24953
24954 2001-12-11  Dick Porter  <dick@ximian.com>
24955
24956         * icall.c:
24957         * file-io.c: Internal calls for file IO.
24958
24959 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
24960
24961         * tabledefs.h: missing FileAttributes.
24962         * verify.h, verify.c: use is_valid_string () to simplify and check for
24963         valid strings more correctly. Fix warnings and speeling.
24964         Check more tables: Filed, File, ModuleRef, StandAloneSig.
24965         Check code: branches, maxstack, method calls.
24966
24967 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
24968
24969         * object.c (mono_object_allocate): removed static, so that the jit
24970         can allocate value types.
24971
24972         * icall.c (ves_icall_System_DateTime_GetNow): impl.
24973
24974 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24975
24976         * class.c: init enum types right away and register the
24977         token->MonoClass map in mono_class_create_from_typedef ().
24978         * verify.h, verify.c: first cut of the verifier.
24979         * pedump.c: add --verify switch to verify metadata tables.
24980         * tabledefs.h: add some missing enums.
24981
24982 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
24983
24984         * class.c (mono_install_runtime_class_init): impl.
24985         (mono_class_init): renamed mono_class_metadata_init to
24986         mono_class_init, also removed the metadata_inited flag
24987
24988         * object.c (mono_object_isinst): use faster algorithm
24989
24990 2001-11-30  Radek Doulik  <rodo@ximian.com>
24991
24992         * mono-endian.h: reverted last change
24993         added function prototypes
24994
24995         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
24996         add mono-endian.c back
24997
24998         * mono-endian.c: returned back, as Paolo pointed out, it's needed
24999         for unaligned access, I've mistaked it with endianess. I am
25000         sorry.
25001         (mono_read16): fix reverted endianess
25002         (mono_read64): ditto
25003         (mono_read32): ditto
25004
25005 2001-11-30  Dick Porter  <dick@ximian.com>
25006
25007         * exception.c: Implement mono_exception_from_name()
25008
25009 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
25010
25011         * metadata.h, metadata.c: remove params_size and locals_size and their
25012         calculation from the metadata code: they are only usefult to the
25013         interp.
25014
25015 2001-11-29  Radek Doulik  <rodo@ximian.com>
25016
25017         * object.c (mono_ldstr): swap bytes here, it's probably not the
25018         best place, but works for me now, I'll redo it once I know mono
25019         better, also note that I add PROT_WRITE and don't reset back, also
25020         note that it's only affects big endians, so x86 should be OK
25021
25022         * mono-endian.h (read16): use just glib macros for both endians
25023
25024         * mono-endian.c: removed as glib macros are used in in
25025         mono-endian.h so we don't need to care about endianess for read
25026         macros as glib does that for us already
25027
25028 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
25029
25030         * class.h, class.h: take minimum alignment into consideration so
25031         that the fields of a class remain aligned also when in an array.
25032
25033 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
25034
25035         * loader.h, loader.c: add mono_method_get_param_names().
25036         * class.c: 0-init class fields.
25037
25038 2001-11-26  Dick Porter  <dick@ximian.com>
25039
25040         * icall.c:
25041         * threads-types.h:
25042         * threads.c: New file that handles System.Threading on all platforms
25043
25044         * object.c: 
25045         * object.h: Remove the synchronisation struct from MonoObject,
25046         replace it with a pointer that gets initialised on demand
25047
25048         * Makefile.am: Replace all the system-specific threading code with
25049         a single file that uses the new wrapper library
25050
25051 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
25052
25053         * class.c, class.h: add mono_install_trampoline() so that the runtime
25054         can register a function to create a trampoline: removes the ugly
25055         requirement that a runtime needed to export arch_create_jit_trampoline.
25056         * object.h, object.c: added mono_install_handler() so that the runtime
25057         can install an handler for exceptions generated in C code (with
25058         mono_raise_exception()). Added C struct for System.Delegate.
25059         * pedump.c: removed arch_create_jit_trampoline.
25060         * reflection.c: some cleanups to allow registering user strings and
25061         later getting a token for methodrefs and fieldrefs before the assembly
25062         is built.
25063         * row-indexes.h: updates and fixes from the new ECMA specs.
25064
25065 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
25066
25067         * class.h, class.c: add enum_basetype field to MonoClass.
25068         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
25069         to get index in the constant table reated to a field, param or
25070         property.
25071         * reflection.h, reflection.c: handle constructors. Set public-key and
25072         version number of the built assembly to 0.
25073         * row-indexes.h: update from new ECMA spec.
25074
25075 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
25076
25077         * class.h, class.c: add a max_interface_id to MonoClass.
25078         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
25079         since it's used to do that. Added mono_type_type_from_obj().
25080         Make GetType() return NULL instead of segfaulting if the type was not
25081         found. Handle simple arrays in assQualifiedName.
25082         * object.h: add a struct to represent an Exception.
25083         * reflection.c: output call convention in method signature.
25084         Add code to support P/Invoke methods and fixed offsets for fields.
25085
25086 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
25087
25088         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
25089         the value.
25090         * icall.c: use mono_array_addr instead of array->vector: fixes the
25091         reflection image writing.
25092         * reflection.c: init call convention byte to 0 in method signature.
25093         Encode the property signature. Don't output property-related methods
25094         twice. Really process the properties for a type (don't cast a field to
25095         a property, my mom always told me that).
25096         Fix 64 bit issues in pointer alignment in a different and more
25097         readable way.
25098
25099 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
25100
25101         * loader.h: Removed type class from MonoDefaults, added monotype
25102
25103         * loader.c: Loaded MonoType, removed loading of Type
25104
25105         * icall.c (my_mono_new_object): Now returns a System.MonoType,
25106         and fills in System.Type._impl with a RuntimeTypeHandle rather
25107         than the actual MonoClass *
25108
25109         (ves_icall_type_from_handle): change from type_class to
25110         monotype_class
25111
25112         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
25113         implemented
25114
25115         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
25116         implemented
25117
25118         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
25119
25120         (ves_icall_System_Reflection_Assembly_GetType): implemented
25121
25122         (ves_icall_System_MonoType_assQualifiedName): implemented
25123
25124         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
25125
25126 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
25127
25128         * assembly.c (mono_assembly_open): Implement a cache for the
25129         assemblies. 
25130
25131         (mono_assembly_close): only destroy the assembly when the last
25132         reference is gone.
25133         
25134 2001-11-09  Dick Porter  <dick@ximian.com>
25135
25136         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
25137
25138 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
25139
25140         * class.c (mono_class_metadata_init): bug fix: compute the right slot
25141
25142 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
25143
25144         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
25145         from Martin Weindel.
25146         * object.h: add mono_string_chars ().
25147
25148 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
25149
25150         * reflection.c (build_compressed_metadata): Eliminates warnings
25151         and uses 64-bit clean code.
25152
25153         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
25154         (mono_type_equal): Change signature to eliminate warnings.
25155
25156 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
25157
25158         * icall.c, loader.c: remove the internalcall array constructors.
25159         Changes to match the new MonoArray structure.
25160         * object.h, object.c: an array object doesn't allocate an extra
25161         vector. Add mono_array_new_full () to create jagged arrays easily.
25162
25163 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
25164
25165         * metadata.h, metadata.c: add mono_metadata_field_info () to
25166         retreive all the info about a field from vairous tables.
25167         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
25168         * class.h, class.c: augment MonoClassField with more info.
25169         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
25170         policy and load a field's RVA if needed.
25171
25172 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
25173
25174         * class.c (mono_class_metadata_init): create a trampoline for all
25175         virtual functions instead of actually compiling them.
25176
25177 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
25178
25179         * class.h, class.c: include name in MonoClassField.
25180         * class.c: fix fundamental type of System.Object and System.String.
25181         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
25182         tokens in ldtoken.
25183         * icall.c: remove internalcalls for the Reflection stuff that is now
25184         done in C# code.
25185         * loader.c: mono_field_from_memberref () implementation.
25186         * mono-endian.c: thinko (s/struct/union/g).
25187         * object.c, object.h: make the mono_string_* prototypes actually use
25188         MonoString instead of MonoObject.
25189         * reflection.c, reflection.h: updates for changes in the reflection
25190         code in corlib: we use C structures that map to the actual C# classes.
25191         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
25192         fat method header if needed and use the info from the ILGenerator for
25193         methods. Handle fields in types. Misc fixes.
25194
25195 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
25196
25197         * class.c (mono_class_metadata_init): bug fix: always allocate
25198         space for static class data
25199
25200 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
25201
25202         * class.c (mono_compute_relative_numbering): use relative
25203         numbering to support fast runtime type checks.
25204
25205 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
25206
25207         * class.c (mono_class_create_from_typeref): added debugging output
25208         to print class name when MonoDummy is returned instead of real class
25209
25210 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
25211
25212         * class.c (mono_class_metadata_init): interface offset table now
25213         contains pointers into the vtable - this is more efficient for the jit
25214
25215 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
25216
25217         * class.c (mono_class_metadata_init): use a temporary vtable (the
25218         old algorithm only worked for the interpreter, but not for the jit)
25219
25220 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
25221
25222         * loader.c (method_from_memberref): use mono_class_get to get the
25223         class of an array instead of using System.Array directly.
25224         (mono_get_method): also add MEMBERREF methods to the method cache
25225         which usefull for arrays.
25226
25227 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
25228
25229         * pedump.c (arch_compile_method): added to compute vtable entry
25230
25231         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
25232         number of interfaces.
25233         
25234         * class.h: merged MonoArrayClass into MonoClass
25235
25236         * class.c (mono_class_create_from_typedef): compute the vtable size and
25237         allocate space to include the vtable inside MonoClass
25238         (mono_class_metadata_init): initialize the vtable
25239
25240 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
25241
25242         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
25243         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
25244         * image.c: endian fixes by Laurent Rioux.
25245         * object.h, object.c: rename MonoStringObject to MonoString and
25246         MonoArrayObject to MonoArray. Change some function names to conform to
25247         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
25248         guint16* as first argument, so don't use char*.
25249         Provide macros to do the interesting things on arrays in a portable way.
25250         * threads-pthread.c: updates for the API changes and #include <sched.h>
25251         (required for sched_yield()).
25252         * icall.c: updates for the API changes above.
25253         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
25254         platforms that need them.
25255
25256 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
25257
25258         * class.c: set the correct type for all the fundamental
25259         type when loading the class.
25260
25261 2001-10-05  Dick Porter  <dick@ximian.com>
25262
25263         * threads-pthread.c (pthread_mutex_timedlock): Simple
25264         compatibility version for C libraries that lack this call.
25265
25266 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
25267
25268         * class.c: MonoTypes stored in MonoClass are stored as
25269         fundamental MonoTypes when the class represents a
25270         fundamental type (System.Int32, ...).
25271         The TypeHandle return by ldtoken is a MonoType*.
25272         * icall.c: ves_icall_get_data_chunk () write out all the
25273         PE/COFF stuff. Implement ves_icall_define_method (),
25274         ves_icall_set_method_body (), ves_icall_type_from_handle ().
25275         * image.c: properly skip unknown streams.
25276         * loader.h, loader.c: add type_class to mono_defaults.
25277         * metadata.c, metadata.h: export compute_size () as
25278         mono_metadata_compute_size () with a better interface.
25279         Typo and C&P fixes.
25280         * pedump.c: don't try to print the entry point RVA if there is no entry point.
25281         * reflection.c, reflection.h: many cleanups, fixes, output method
25282         signatures and headers, typedef and typeref info, compress the metadata
25283         tables, output all the heap streams, cli header etc.
25284         * row-indexes.h: typo fixes.
25285
25286 2001-10-04  Dick Porter  <dick@ximian.com>
25287
25288         * object.h: Add a synchronisation mutex struct to MonoObject
25289
25290         * object.c (mono_new_object): Initialise the object
25291         synchronisation mutexes
25292
25293         * icall.c: System.Threading.Monitor internal calls
25294         
25295         * threads-pthread.h:
25296         * threads-pthread.c: System.Threading.Monitor internal calls
25297
25298         * threads-types.h: New file, includes the system-specific thread
25299         structures
25300         
25301         * threads-pthread-types.h:
25302         * threads-pthread-types.c: New files, handle pthread-specific
25303         synchronisation types
25304
25305         * threads-dummy-types.h: 
25306         * threads-dummy-types.c: New files of dummy support for
25307         thread-specific types
25308
25309         * metadata.c:
25310         * image.c:
25311         * pedump.c: include mono-endian.h not endian.h
25312         
25313         * Makefile.am: More threads files.
25314         Name mono-endian.h not endian.h
25315
25316 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
25317
25318         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
25319         stuff and implement a few more bits.
25320         * icall.c: a field needs to be dereferenced twice. Do not use the same
25321         name for two variables in the same scope.
25322         * image.c, image.h: cleanups.
25323
25324 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
25325
25326         * class.c (mono_class_metadata_init): bug fix: compute the right size
25327
25328 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
25329
25330         * icall.c: implemented some of the Reflection internalcalls.
25331         * image.c, image.h: start writing out the PE/COFF image.
25332         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
25333         that does the reverse than decode_blob_size ().
25334         * object.c: use mono_metadata_encode_value (). Move here
25335         temporary implementation of mono_string_to_utf8 ().
25336         * rawbuffer.c: make malloc_map static.
25337
25338 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
25339
25340         * metadata.c: fix type comparison for arrays.
25341         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
25342         Added a couple of new classes to monodefaults.
25343         * icall.c: added a couple of Reflection-related internalcalls.
25344         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
25345         Added a byval_arg MonoType to MonoClass.
25346
25347 2001-09-28  Dick Porter  <dick@ximian.com>
25348
25349         * icall.c:
25350         * threads-pthread.h: 
25351         * threads-pthread.c: Implemented internal calls for
25352         LocalDataStoreSlot operations.  Applied mutexes around all shared
25353         data.  Reworked the thread creation and Start() operations to
25354         avoid a race condition.
25355         
25356         * threads-dummy.h:
25357         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
25358
25359 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
25360
25361         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
25362
25363 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
25364
25365         * class.c, loader.c: warn and return NULL instead of erroring out.
25366         * icall.c: added System.AppDomain::getCurDomain().
25367         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
25368
25369 2001-09-25  Dick Porter  <dick@ximian.com>
25370
25371         * threads-pthread.h:
25372         * threads-pthread.c: Implemented timed thread joining and added
25373         System.Threading.Thread::Join_internal internal call
25374
25375         * icall.c: Added System.Threading.Thread::Join_internal internal call
25376
25377         * threads-dummy.h:
25378         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
25379
25380 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
25381
25382         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
25383         mono_string_intern () to implement the semantics of the ldstr opcode
25384         and the interning of System.Strings.
25385         * icall.c: provide hooks to make String::IsIntern and String::Intern
25386         internalcalls.
25387
25388 2001-09-23  Dick Porter  <dick@ximian.com>
25389
25390         * threads-dummy.c: 
25391         * threads-dummy.h: New files of dummy threading routines
25392
25393         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
25394         support code based on system specifics
25395
25396         Rename PTHREAD_LIBS to THREAD_LIBS
25397         
25398 2001-09-23  Dick Porter  <dick@ximian.com>
25399
25400         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
25401         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
25402         internal calls.
25403         (mono_thread_init): Set up a Thread object instance to return when
25404         the main thread calls Thread.CurrentThread
25405         (mono_thread_cleanup): Wait for all subthreads to exit
25406
25407         * icall.c: New internal calls for System.Threading.Thread::Sleep
25408         (including Schedule) and CurrentThread
25409
25410         * threads.h: New file, to insulate thread-specific stuff from the
25411         rest of the code
25412
25413 2001-09-21  Dick Porter  <dick@ximian.com>
25414
25415         * threads-pthread.h: 
25416         * threads-pthread.c: New file, for handling pthreads-style
25417         threading support.  Start() now starts a new thread and executes
25418         the ThreadStart delegate instance.
25419
25420         * icall.c: Added the internalcall for
25421         System.Threading.Thread::Start_internal
25422
25423         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
25424
25425 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
25426
25427         * loader.c: work around the different signatures for delegates
25428         constructors csc generates in compiled code vs the ones compiled in mscorlib.
25429
25430 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25431
25432         * class.h, class.c: add mono_class_get_field_from_name ().
25433         * *: Fix C comments and other ANSI C issues.
25434
25435 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
25436
25437         * endian.h, assembly.c: fix some endianness issues.
25438
25439 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
25440
25441         * loader.h, load.c: add delegate_class to mono_defaults.
25442         Handle runtime provided methods in mono_get_method ().
25443
25444 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
25445
25446         * loader.c (mono_get_method): use pinvoke for internal call
25447
25448         * icall.c: use pinvoke for internal call
25449
25450         * loader.c (method_from_memberref): set the method name
25451
25452 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
25453
25454         * metadata.c: help the compiler generate better code for
25455         mono_class_from_mono_type ().
25456
25457 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
25458
25459         * class.c (mono_class_metadata_init): delayed computing of the
25460         class size to mono_class_metadata_init ()
25461
25462 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
25463
25464         * class.c, class.h: add an interfaces member to MonoClass.
25465         * image.c, image.h: add assembly_name field to MonoImage
25466         from the assembly table.
25467         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
25468
25469 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
25470
25471         * class.c: Handle Array in mono_class_from_mono_type ().
25472         * metadata.c, pedump.c: some endian fixes.
25473
25474 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
25475
25476         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
25477         * metadata.c: fix small problem introduced with the latest commit.
25478
25479 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
25480
25481         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
25482         We don't need a MonoMetadata pointer anymore to compare signatures in
25483         mono_metadata_signature_equal (), update callers.
25484         Reduced memory usage an number of allocations for MonoMethodHeader and
25485         MonoMethodSignature.
25486
25487 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
25488
25489         * metadata.c: added compare for szarray.
25490
25491 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
25492
25493         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
25494         and add a couple more types to it and mono_defaults. Give an hint on
25495         classes that need implementing in our corlib and are referenced
25496         in mscorlib.
25497
25498 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
25499
25500         * class.h, class.c: keep track if a class is also an Enum.
25501         * loader.c: Implement a couple more types for use in libffi
25502         marshalling. Gives better diagnostics when failing to dlopen
25503         a library. Set method->klass for P/Invoke methods, too.
25504
25505 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
25506
25507         * class.c, class.h: add a MonoType this_arg to MonoClass that
25508         represents a pointer to an object of the class' type that
25509         can be used by the interpreter and later the type cache.
25510         Add best guess alignment info for valuetype objects.
25511
25512 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
25513
25514         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
25515         into MonoType: one less level of indirection and allocation and
25516         simplifies quite a bit of code. Added cache for MonoTypes that are
25517         used frequently, so that we don't need to allocate them all the time.
25518
25519 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
25520
25521         * class.c (mono_class_create_from_typedef): System.Enum is also a
25522         value type, although it does not derive from System.ValueType
25523         (maybe a bug in the ms compiler?)
25524
25525         * metadata.c (mono_type_size): return the right size for value types
25526
25527         * loader.c (mono_get_method): only initialize method header if not abstract
25528
25529         * class.c (mono_class_from_mono_type): use mono_default values. 
25530
25531 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
25532
25533         * *: use MonoClass pointers instead of <type_tokens>
25534         
25535         * class.h: new flag: metadata_inited.
25536
25537         * class.c (mono_class_metadata_init): impl.
25538         (mono_class_instance_size): impl.
25539         (mono_class_data_size): impl.
25540
25541 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
25542
25543         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
25544         MonoClass now has the name and name_space fields. 
25545         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
25546         mono_get_method () takes and optional MonoClass as argument.
25547         Removed mono_typedef_from_name() and added mono_class_token_from_name()
25548         instead that takes advantage of a map from class names to typedef
25549         tokens in MonoImage.
25550
25551 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
25552
25553         * metadata.c: zero is not a valid alignment boundary.
25554         Merge MONO_TYPE_VOID in default decoding code.
25555
25556 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
25557
25558         * image.h: merged MonoMetadata into MonoImage
25559
25560         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
25561         identify the type of elements.
25562
25563 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
25564
25565         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
25566         * cil-coff.h: split MonoMSDOSHeader and add size info.
25567         * image.c: add some consistency checks.
25568         * metadata.c: fix row size computation: one programmer
25569         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
25570         add explanation for the locator routine.
25571         Fix decoding of size in method header.
25572         
25573 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
25574
25575         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
25576         (g_concat_dir_and_file): Bring g_concat_dir_and_file
25577         function from gnome-libs.  This uses the right path separator
25578         based on the OS, and also works around a bug in some systems where
25579         a double slash is not allowed. 
25580         (default_assembly_name_resolver): Use g_concat_dir_and_file
25581         (mono_assembly_open): ditto.
25582
25583 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
25584
25585         * metadata.c (mono_metadata_signature_equal): impl.
25586
25587         * *: void is now a realy MonoType (instead of using NULL)
25588         
25589         * metadata.c (do_mono_metadata_parse_type): use
25590         mono_metadata_parse_type to parse void value.
25591
25592 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
25593
25594         * metadata.c, metadata.h: in the signature and method header store
25595         only the space required for holding the loca vars and incoming arguments.
25596
25597 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
25598
25599         * metadata.c (do_mono_metadata_parse_type): treat void like any
25600         other type (instead of assigning NULL);
25601
25602 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
25603
25604         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
25605
25606 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
25607
25608         * image.c (do_mono_image_open): added a cache for arrays.
25609
25610 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
25611
25612         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
25613         decode a single column from a row in a metadata table and changes
25614         to take advantage of it in the typedef locator (gives a nice speed up).
25615         Store offset info for function params.
25616
25617 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
25618
25619         * image.h (MONO_IMAGE_IS_CORLIB): removed 
25620
25621 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
25622
25623         * assembly.c: how could mono_assembly_close () had ever worked?
25624         * metadata.c, metadata.h: provide offset info for local vars.
25625         Implement mono_type_size () to take care of alignment as well
25626         as size (it was mono_field_type_size in cli/class.c before).
25627
25628 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
25629
25630         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
25631
25632         * assembly.h (CORLIB_NAME): set to corlib.dll
25633
25634         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
25635
25636 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
25637
25638         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
25639         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
25640         tokentype.h: massive namespace cleanup.
25641
25642 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
25643
25644         * metadata.h, metadata.c: decode exception clauses when parsing method header.
25645
25646 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
25647
25648         * metadata.c (mono_metadata_free_type): added check for type !=
25649         NULL (void) before calling mono_metadata_free_type()
25650
25651 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
25652
25653         * metadata.h, row_indexes.h: added header with enumerations to use
25654         to index in the columns from tables in metadata and to decode coded
25655         tokens: we should start using this instead of embedding magic numbers
25656         all over the code.
25657
25658 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
25659
25660         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
25661         Move metadata_t info from cli_image_info_t to MonoImage, where
25662         it's easily accessible. Changed all the uses accordingly.
25663         Added the method and class caches to MonoImage.
25664         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
25665         and mono_metadata_decode_value () signature to be more consistent
25666         with the other parse functions (and simplify code). Taken advantage
25667         of zero-length array allocation with GCC. Removed reduntant (and
25668         wrong) MonoFieldType struct and use MonoParam instead. Changed
25669         mono_metadata_parse_field_type () to use common code for parsing.
25670         Added mono_metadata_typedef_from_field () and
25671         mono_metadata_typedef_from_method () to lookup a typedef index from a
25672         field or method token.
25673         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
25674
25675 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
25676
25677         * metadata.c (mono_metadata_parse_field_type): Implement. 
25678         (do_mono_metadata_parse_type): Split engine from
25679         mono_metadata_parse_type, so that we can create smaller structures
25680         for things that just have one pointer to the MonoType (look at
25681         the MonoFieldType)
25682
25683 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
25684
25685         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
25686         as Jan Gray found out, it is incorrect. 
25687
25688 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
25689
25690         * assembly.c: Implement asssembly loading.  This loads an image
25691         and loads all the referenced assemblies.  Come to think of it, we
25692         could always do lazy loading of the assemblies. 
25693
25694         * image.c (mono_image_open): Keep loaded images in a hashtable.
25695
25696         * image.h (MonoImage): Add reference count.
25697
25698 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
25699
25700         * assembly.c (mono_assembly_open): Keep track of the file name in
25701         case the assembly has no ASSEMBLY table.
25702
25703         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
25704         from get.c here.
25705
25706 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
25707
25708         * metadata.c, metadata.h: decode local vars in method header
25709         parse function. Change callers accordingly.
25710
25711 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
25712
25713         * metadata.h, cil-coff.h: protect against multiple inclusion.
25714         Added some new structures to hold information decoded from metadata:
25715         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
25716         and relevant decoding/free functions.
25717         * metadata.c: implement decoding functions. Add warning for out of bounds
25718         index in mono_metadata_locate(). Implement mono_get_method () to retreive
25719         all the info about a method signature and invocation. Remove check on
25720         uninitialized local var in parse_mh() and fix memory leak.
25721
25722 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
25723
25724         * metadata.h: More macros.
25725
25726         * tokentype.h: New file.
25727
25728 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
25729
25730         * assembly.c: added a consistency check and initialize
25731         some structures with g_new0().
25732         * metadata.c: fixed a couple more bugs in table size computation
25733         and add other checks for out-of bound access to metadata.
25734
25735 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
25736
25737         * metatada.c: fix bugs computing table sizes. Spew a
25738         warning when index in string heap is out of bounds.
25739
25740 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
25741
25742         * metadata.h: Add a couple of macros to manipulate tokens. 
25743
25744 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25745
25746         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
25747         cli_section_tables).
25748
25749 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
25750
25751         * metadata.c (mono_metadata_user_string): New function, provides
25752         access to the UserString heap. 
25753
25754 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
25755
25756         * metadata.c: Add inline documentation.
25757
25758 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
25759
25760         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
25761         files. 
25762
25763 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
25764
25765         * typeattr.h: New file, TypeAttribute flags. 
25766
25767 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
25768
25769         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
25770         mono_assembly_ensure_section): Section loading code.
25771         (load_section_tables): Load the sections.
25772
25773         * mono/metadata/metadata.c (mono_metadata_locate_token,
25774         mono_metadata_locate): Functions to locate the information
25775         definition given a token or a table and an index.
25776         (mono_metadata_compute_table_bases): New.
25777         (compute_size): New function to compute the sizes of the various
25778         tables.
25779
25780         * mono/metadata/metadata.h: Finish listing the different index
25781         types. 
25782
25783         * mono/metadata/pedump.c: Improve to dump new information.
25784
25785 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
25786
25787         * mono/metadata/metadata.c: Entered all the tables matching
25788         Beta2. 
25789
25790         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
25791
25792
25793