2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / metadata / ChangeLog
1 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2
3         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
4
5         * verify.c (do_unbox_value): push a controled mutability managed pointer.
6
7 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
8
9         * verify.c (do_ldstr): added, verifies if the #US token is valid.
10
11         * verify.c (mono_method_verify): removed old TODO
12
13 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
14
15         * verify.c (do_newobj): add visibility check.
16
17 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
18
19         * verify.c (do_load_function_ptr): add visibility check.
20
21 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
22         *class.c:
23         mono_generic_class_get_class: hook profiler events.
24         mono_field_get_offset: added to support heap-shot in the new profiler.
25         *class.h: exported mono_field_get_offset.
26         * reflection.c:
27         mono_reflection_setup_internal_class: hook profiler events.
28
29 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
30
31         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
32         argument here too and use it to avoid checking for pending exceptions if 
33         possible.
34
35 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
36
37         * assembly.c (build_assembly_name): add arg for passing the assembly
38         flags. Do not consider a PublicKey with value "null" valid.
39         (mono_assembly_name_parse_full): added boolean argument that will be
40         set if the assembly name contains a PublicKeyToken spec. Added support
41         for the Retargetable spec for which only Yes or No are allowed as valid
42         value. Consider assembly name invalid if Retargetable spec is set, but
43         either version, culture or public key (token) are not specified.
44         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
45         with implementation in assembly.c.
46         * icall.c (fill_reflection_assembly_name): also copy assembly flags
47         from MonoAssemblyName.
48         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
49         introduced argument for mono_assembly_name_parse_full to know if the
50         assembly name has a PublicKeyToken spec, and if it has instruct
51         fill_reflection_assembly_name to use default value for keyToken (if
52         PublicKeyToken is null).
53
54 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
55
56         * verify.c (mono_method_verify): fixed ovf ops with
57         float values. They are unverifiable now.
58
59 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
60
61         * class.c (set_failure_from_loader_error): add BadImageException to the
62         list of exceptions that can cause a type to fail to load.
63
64         * class.c (mono_class_get_exception_for_failure): same.
65
66 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
67
68         * verify.c (in_any_exception_block): added, check if offset
69         is part of any exception handling clause.
70
71         * verify.c (get_stack_type): added VAR and MVAR types.
72
73         * verify.c (do_stobj): better error messages.
74
75         * verify.c (do_cpobj): added, check cpobj.
76
77         * verify.c (do_initobj): added, check initobj.
78
79         * verify.c (do_sizeof): added, check sizeof.
80
81         * verify.c (do_localloc): added, check localloc.
82
83         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
84
85 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
86
87         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
88         save_lmf/restore_lmf opcodes.
89
90         * threads.c (mono_threads_install_notify_pending_exc): New function to
91         install a callback notifying the JIT there is a pending exception on a thread.
92         (mono_thread_request_interruption): Call the new callback.
93         (mono_thread_get_and_clear_pending_exception): New function to return the
94         exception pending on a thread.
95
96         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
97         to turn off checking for pending exceptions.
98         (mono_marshal_get_native_wrapper): Ditto.
99
100 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
101
102         * threads-types.h: Get rid of the unnecessary extern declarations.
103
104 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
105
106         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
107         return field from parent class if not private.
108         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
109         returns fields from parent class if they are not private.
110         (method_nonpublic): added function to determine if a given method
111         should be considered non-public. Returns false for private methods
112         on parent class, and internal methods from parent on the 1.0 profile.
113         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
114         use method_nonpublic function to determine whether method should be
115         returned.
116         (property_accessor_public): use newly introduced method_nonpublic
117         function to determine whether accessor is non-public. 
118         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
119         event from parent class if not private. Only return static event if
120         Static flag is set, and only return static event from parent class if
121         FlattenHierarchy flag is set.
122         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
123         include non-private events from parent class.
124
125 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
126
127         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
128         warning.
129
130 2008-01-16  Wade Berrier <wberrier@novell.com>
131
132         * security.c: Add assembly.h header to appease some warnings
133
134 2008-01-16  Dick Porter  <dick@ximian.com>
135
136         * process.c (process_module_string_read): Remove trailing null
137         when saving string.
138
139 2008-01-16  Mark Probst  <mark.probst@gmail.com>
140
141         * class-internals.h: A new data structure describing the layout of
142         a runtime generic context (MonoRuntimeGenericContextTemplate).
143
144         * metadata-internals.h: Added a hash table to MonoDomain that maps
145         from open generic classes to their runtime generic context
146         templates.
147
148         * object.c: Building of the runtime generic context, including
149         proper handling of generic type arguments of superclasses.
150         Building of the runtime generic context according to the template.
151
152 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
153
154         * class.c (mono_class_setup_fields): Set field.count for generic instances.
155         Fixes #350856.
156
157         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
158         mono_portability_find_file (). Fixes #325466.
159         (mono_image_get_public_key): Fix a warning.
160
161 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
162
163         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
164         Fixes #353550.
165         (mono_class_from_name_case): Ditto.
166
167 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
168
169         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
170           common storage for the tables used in the System/NumberFormatter class.
171
172 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
173
174         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
175
176 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
177
178         * verify.c (get_boxable_mono_type): check if the token is valid.
179
180         * verify.c (set_stack_value): changed to add an error if an
181         invalid type is set on stack. Changed all callers due to signature change.
182
183         * verify.c (do_stobj): implement stobj validation.
184
185 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
186
187         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
188         set container->is_method, it was set earlier.
189
190         * metadata.c (type_in_image): Handle MVARs which belong to not finished
191         generic methods.
192
193         * reflection.c (mono_reflection_initialize_generic_parameter): Set
194         is_method of the generic container to TRUE for methods.
195
196 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
197
198         * metadata.c (type_in_image): Handle type parameters properly.
199
200         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
201         memory ownership of this structure.
202
203 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
204
205         * verify.c (get_boxable_mono_type): make typedref types been just
206         unverifiable. check for void type.
207
208         * verify.c (do_unbox_any): added, verify opcode unbox.any.
209
210         * verify.c (do_load_function_ptr): accept method spec tokens.
211
212 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
213
214         * marshal.c (mono_class_native_size): Always set *align even if this is called
215         recursively.
216
217 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
218
219         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
220         out-of-date.
221
222 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
223
224         * verify.c: removed some old unused tables. A huge bunch of small fixes
225         to things found while testing the verifier with mono basic.
226
227         * verify.c (dump_stack_value): dump null literal flag to.
228
229         * verify.c (verify_type_compatibility_full): fix comparison
230         for types that have a generic super type.
231
232         * verify.c (verify_stack_type_compatibility): fix compatibility
233         between null literals and reference types. fix compatibility between
234         boxed valuetypes and object. fix corner case test for enums.
235
236         * verify.c (do_cmp_op): proper verification of cgt.un in case
237         of reference types.
238
239         * verify.c (do_invoke_method): fix error message.
240
241         * verify.c (do_store_indirect
242
243         * verify.c (check_is_valid_type_for_field_ops): proper verification
244         of managed pointers to valuetypes and boxed valuetypes. proper verification
245         of null literals.
246
247         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
248         allow token to be a reference type.
249
250         * verify.c (do_cast): proper handling of boxes valuetypes.
251
252         * verify.c (do_stelem): proper handling of storing a boxed valuetype
253         in object[].
254
255         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
256         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
257         fixed the decoding of unbox_any
258
259 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
260
261         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
262
263 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
264
265         * verify.c (do_newobj): do delegate verification.
266
267         * verify.c (verify_delegate_compatibility): perform delegate
268         verification.
269
270         * verify.c (verify_ldftn_delegate): perform tests related to
271         ldftn delegates.
272
273         * verify.c (mono_delegate_signature_equal): perform the
274         slightly diferent signature comparison required by delegates.
275
276         * metadata.c (mono_metadata_type_equal_full): added and exported
277         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
278         allows signature only comparison.
279
280         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
281         as MONO_INTERNAL.
282
283 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
284
285         * verify.c: added a bunch of stack_slot_* functions to
286         make access to stack slot type easier. This is required to
287         allow optional flags, like null literal, boxed value and
288         this pointer.
289         All access paths to IlStackDesc::stype have been changed 
290         to use these new funcions.
291         Removed a bunch of unused functions and cleared all warnings.
292         This patch introduces the usage of the this pointer and 
293         boxed value flags.
294
295 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
296
297         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
298
299 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
300
301         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
302         match managed version.
303
304         * appdomain.c: Bump corlib version.
305         
306         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
307         argument.
308
309 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
310
311         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
312         Set public key token to zero-length byte array if assembly is not
313         strongnamed.
314
315 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
316
317         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
318         writing a vtype array elem.
319
320 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
321
322         * assembly.c (build_assembly_name): return FALSE if length of token is
323         not 16 (if not "null").
324         (mono_assembly_name_parse_full): return FALSE if value of version,
325         culture, token or key is 0.
326         * icall.c (fill_reflection_assembly_name): add boolean arguments to
327         specify whether public key and public key token must be set to default
328         value (zero-length byte array) if not available. Set versioncompat to
329         SameMachine. If public key is available or the default is set, then
330         set PublicKey flag.
331         (ves_icall_System_Reflection_Assembly_FillName): if no public key
332         is available, use empty byte array as default value. On the 2.0
333         profile, use default value for public key token if not set.
334         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
335         profile, use default value for public key if not set. On the 2.0
336         profile, use default value for public key token if not set.
337         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
338         default values for public key and public key token.
339
340 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
341
342         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
343         field to keep it in synch with the managed object.
344
345         * marshal.c (emit_marshal_object): Add support for byref marshalling of
346         delegates. Fixes #351520.
347
348         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
349         contains defined memory.
350         
351         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
352
353         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
354         
355         * sgen-gc.c (check_consistency): New helper function to do a consistency check
356         of the GC data structures.
357
358         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
359
360         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
361         
362         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
363         barrier.
364         (mono_array_clone_in_domain): Ditto.
365         (mono_array_clone_in_domain): Ditto.
366
367         * threads.c (start_wrapper): Register the thread start argument as a GC root.
368         (cache_culture): Use a write barrier.
369
370         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
371         (ves_icall_get_property_info): Ditto.
372
373         * object.h (MONO_STRUCT_SETREF): New macro.
374
375         * class-internals.h (MonoStats): Add some GC statistics.
376
377         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
378
379 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
380
381         * exception.c (mono_exception_from_name_two_strings):
382         Break from loop after method is found.
383
384 2008-01-04  Dick Porter  <dick@ximian.com>
385
386         * process.c (process_module_string_read): Rename variable to
387         reflect correct usage, after fixing bug 345972.
388
389 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
390
391         * verify.c (mono_type_create_fnptr_from_mono_method): 
392         created a MonoType function pointer instance to be used during
393         verification. The verifier releases this memory at end.
394
395         * verify.c (mono_method_is_constructor): extracted repeated
396         checks for constructor into a single class.
397
398         * verify.c (do_push_field): use new extracted method
399         for constructor check.
400
401         * verify.c (do_newobj): same.
402
403         * verify.c (do_ldftn): renamed to do_load_function_ptr
404         and make it verify ldvirtftn too.
405
406         * verify.c (mono_method_verify: proper verification
407         of ldvirtftn. release created MonoMethod instances.
408
409 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
410
411         * verify.c (token_bounds_check): added.
412
413         * verify.c (do_ldftn): added.
414
415         * verify.c (mono_method_verify): proper verificartion of ldftn.
416
417 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
418
419         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
420         than the table row count. It's the resposibility of the caller to
421         make the bounds check and raise the correct error.
422
423         * metadata.c (mono_metadata_decode_row_col): Same.
424
425         * loader.c (mono_get_method_from_token): perform bounds check
426         on token for methoddef table.
427
428 2007-12-29  Miguel de Icaza  <miguel@novell.com>
429
430         * icall.c
431         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
432         assert into a negative result, the managed code already coped with
433         that.
434
435         Some folks on Windows reported this error. 
436
437 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
438
439         * appdomain.c: Bump corlib version.
440         * icall.c:
441         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
442         CultureInfo.CreateCulture to create CultureInfo for name.
443         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
444         create CultureInfo for name. Fixes bug #347174.
445
446 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
447
448         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
449         flags.
450
451         * verify.c (is_valid_branch_instruction): allow branching to the
452         first instruction of the protected block.
453
454         * verify.c (is_valid_cmp_branch_instruction): same.
455
456         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
457         avoid double initialization.
458
459         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
460         detect which cases the eval stack should just be copied.
461
462         * verify.c (mono_method_verify): check if the eval stack
463         is empty when entering a protected block.
464
465 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
466
467         * verify.c: added is_clause_in_range, is_clause_inside_range,
468         is_clause_nested and verify_clause_relationship. They perform
469         the verifications stated in P1 12.4.2.7.
470
471         * verify.c (mono_method_verify): remove some unused variables,
472         add the new exception clause checks, add instruction border
473         checks for protected block start/end, improved some error 
474         messages and fixed a bug in the way invalid instruction access
475         is detected.
476
477 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
478
479         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
480         from GC 7.0 if available.
481
482         * object.c: Remove an unused define.
483         
484         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
485
486         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
487
488         * null-gc.c (mono_gc_make_descr_for_array): Implement.
489
490         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
491
492         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
493         to take the same arguments as the other make_descr functions.
494
495         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
496
497         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
498         directly.
499
500         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
501         mini.c.
502
503         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
504         call to boehm-gc.c.
505
506         * boehm-gc.c (mono_gc_register_root): Fix a warning.
507
508         * null-gc.c (mono_gc_register_root): Fix a warning.
509
510         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
511
512         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
513         (mono_gc_base_init): Call GC_init ().
514
515         * null-gc.c: Define mono_gc_register_root () as a no-op.
516
517         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
518
519 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
520
521         * verify.c: add prototype for merge_stacks at top
522
523         * verify.c (do_switch): added.
524
525         * verify.c (merge_stacks): on some cases the stack merging
526         was not happening properly. Unequal stack sizes at merge
527         points should be invalid.
528
529         * verify.c (mono_method_verify): added more debug info on stack state.
530         verify switch properly.
531
532 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
533
534         * method-builder.h: New file, moved the mono_mb_ declarations here from 
535         marshal.h.
536
537         * boehm-gc.c marshal.c: Include method-builder.h.
538
539         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
540
541         * marshal.c: Remove some code which is now in method-builder.c.
542
543 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
544
545         * method-builder.c: New file, extraction of the method builder functionality 
546         from marshal.c.
547
548         * marshal.c: Move the mb functions into method-builder.c.
549
550         * marshal.h marshal.c: Export some mono_mb_... functions.
551
552         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
553
554         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
555         the caller.
556
557         * class.c (mono_class_get_full): Check the token type in the dynamic case.
558
559         * loader.c (mono_field_from_token): Ditto.      
560
561         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
562         type as well.
563         
564         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
565         Fixes #342565.
566
567         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
568         a helper function for setting it.
569
570         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
571
572         
573         * assembly.c: Significally simplify code now that referenced assemblies are 
574         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
575
576         * threads.h: Don't include  the internal threads-types.h header file. Fixes
577         #349952.
578
579 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
580
581         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
582         instructions that were target of branches or are at protected block boundaries.
583
584         * verify.c (in_same_block): handle filter clauses.
585
586         * verify.c (is_valid_branch_instruction): added. checks the target of
587         instructions br or brtrue/false.
588
589         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
590         binary branch instructions such as beq and bge.
591
592         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
593         and made it pin the instruction as been part of the exception block.
594
595         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
596         of in_same_block.
597
598         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
599         of in_same_block.
600
601         * verify.c (do_ret): ret from a protected block is unverifiable and
602         not invalid.
603
604         * verify.c (do_static_branch): verify br and br.s instructions.
605
606         * verify.c (merge_stacks): add extra param to support detection
607         of branches in the middle of instructions.
608         
609         * verify.c (mono_method_verify): verify branches and exception blocks
610         that target the middle of instructions. Proper verification of br and br.s.
611
612 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
613
614         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
615         skip_visibility field.
616         (reflection_methodbuilder_from_dynamic_method): Ditto.
617
618         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
619         registrations. Fixes #348193.
620
621         * threads.h: Move the internal mono_thread_get_pending_exception () to
622         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
623
624 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
625
626         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
627         icall registration. Fixes #348193.
628
629         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
630         for corlib classes into object. Fixes #349621.
631
632 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
633
634         * icall.c (property_accessor_nonpublic): new function to determine
635         whether an accessor allows a property to be considered non-public.
636         Returns false for private accessor(s) from parent class, and internal
637         accessor(s) from parent on 2.0 profile (and higher).
638         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
639         to determine whether property should be included if NonPublic flag
640         is set. Fixes bug #349078.
641
642 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
643
644         * verify.c (init_stack_with_value): added.
645
646         * verify.c (mono_method_verify): extracted common
647         code for exception initialization into init_stack_with_value.
648
649         * verify.c (mono_method_verify): initialize the exception
650         for handler clauses as well.
651
652         * verify.c (mono_method_verify): fix the exception clause
653         ordering rules, it should use handler end offset and not
654         start offset.
655
656 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
657
658         * rawbuffer.c: remove useless warning.
659
660 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
661
662         * threads.h, threads-types.h: move functions to the correct header
663         (fixes bug#349952).
664
665 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
666
667         * verify.c (mono_method_verify): proper verification
668         of exception handling clauses ranges and fallthru in
669         and out of protected blocks.
670
671 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
672
673         * verify.c (mono_method_verify): fixed compilation issue.
674
675 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
676
677         * verify.c (mono_method_verify): a printf slipped in, changed
678         to use verifier debug macro.
679
680 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
681
682         * verify.c (is_correct_leave): check for filter clauses.
683
684         * verify.c (do_filter): added.
685
686         * verify.c (mono_method_verify): property verification of leave.
687
688
689 2007-12-18  Mark Probst  <mark.probst@gmail.com>
690
691         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
692         Win32 build, until we figure out how to do the proper thing on
693         Win32.
694
695 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
696
697         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
698         by the previous patch.
699         
700         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
701         the assembly resolve handler for refonly assemblies.
702
703 2007-12-17  Mark Probst  <mark.probst@gmail.com>
704
705         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
706         Make sure only one thread is allowed to commence shutdown, and
707         don't allow new threads to be started once shutdown is in
708         progress.
709
710 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
711
712         * verify.c (is_correct_endfilter): added.
713
714         * verify.c (is_unverifiable_endfilter): added.
715
716         * verify.c (do_endfilter): added.
717
718         * verify.c (mono_method_verify): property verification of endfilter
719         and fixed a corner case or endfinally.
720
721 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
722
723         * verify.h: new flags to support fail fast of unverifiable code and
724         do non-strict verification. Non-strict verification is required to
725         have MS runtime compatibility. There are a huge amount of unverifiable
726         code that it accepts as verifiable. The strict mode verifies the code
727         as the specs says.
728         Non-strict mode will be required in cases where code needs to be
729         accepted as verifiable but fails under strict mode.
730
731         * pedump.c: added support to fail fast and non-strict verification.
732
733         * verify.c: added support for both fail fast and non-strict verification.
734
735 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
736
737         * verify.c (is_correct_endfinally): added.
738
739         * verify.c (mono_method_verify): property verification of endfinally.
740
741 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
742
743         * verify.c (in_any_block): check for filter clauses.
744
745         * verify.c (is_correct_rethrow): added.
746
747         * verify.c (mono_method_verify): property verification of rethrow.
748
749         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
750
751 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
752
753         * verify.c (do_throw): added.
754
755         * verify.c (mono_method_verify): property verification of throw
756
757 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
758
759         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
760         assemblies. Fixes #346425.
761
762 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
763
764         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
765         FieldBuilders.
766
767         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
768
769         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
770         prevent asserts when this is called with a token which might not be valid.
771
772         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
773         lookup_dynamic_token_class with valid_token == FALSE.
774
775         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
776
777         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
778
779         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
780         
781 2007-12-10  Mark Probst  <mark.probst@gmail.com>
782
783         * gc.c: Don't delay threadpool thread finalization unless Mono is
784         shutting down.
785
786 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
787
788         * threads.c: turn an assert into a non-fatal warning.
789
790 2007-12-09  Robert Jordan  <robertj@gmx.net>
791
792         * icall.c (GetVirtualMethod): Add missing argument validation.
793
794 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
795
796         * verify.c (do_cast): added.
797
798         * verify.c (mono_method_verify): property verification of castclass and isinst.
799
800
801 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
802
803         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
804
805         * verify.c (do_stelem): added.
806
807         * verify.c (mono_method_verify): property verification of stelem.X.
808
809 2007-12-07  Mark Probst  <mark.probst@gmail.com>
810
811         * class.c, class-internals.h: Introduce an environment variable
812         (MONO_GENERIC_SHARING) through which the extent of generic code
813         sharing can be controlled (share all classes, share only corlib
814         classes, or share nothing).
815
816         * object.c: Only create runtime generic context for classes for
817         which sharing is enabled.
818
819 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
820
821         * verify.c (do_ldelem): refactor it to work with ldelem.any.
822
823         * verify.c (mono_method_verify): property verification of ldelem.any.
824
825 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
826
827         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
828         added ldelem.X opcodes.
829
830         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
831
832         * verify.c: proper verification of ldelem.X 
833
834 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
835
836         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
837
838 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
839
840         * verify.c (mono_method_verify): null literal requires special handling,
841         the value pushed on stack need to be flagged as so.
842
843         * verify.c (do_ldelema): Verify ldelema properly.
844
845 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
846
847         * verify.c: Verify ldlen properly.
848
849 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
850
851         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
852         to the target object's type. Fixes #346160.
853
854 2007-12-05  Dick Porter  <dick@ximian.com>
855
856         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
857         Solaris needs the same workaround as BSD-derived systems.  Fixes
858         bug 323524, patch by Burkhard Linke
859         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
860
861 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
862
863         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
864         handle to use when error dialog is shown; otherwise, update mask
865         to show no error dialog when an error occurs.
866
867 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
868
869         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
870
871         * class.c (mono_class_get_field_default_value): New helper function to initialize
872         field->def_type and field->data.
873
874 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
875
876         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
877         the general one.
878
879         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
880
881         * marshal.c: Avoid depending on delegate->method_info being set.
882
883         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
884         
885         * object.c (mono_delegate_ctor): Set delegate->method.
886
887         * object-internals.h (struct _MonoDelegate): Add 'method' field.
888
889         * appdomain.c: Bump corlib version.
890
891 2007-11-27  Raja R Harinath  <harinath@gmail.com>
892
893         * metadata.c (mono_generic_inst_equal_full): Short-circuit
894         equality check if we're comparing canonicalized MonoGenericInsts.
895
896 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
897
898         * class.c (generic_array_methods): Call mono_class_setup_methods () before
899         accessing class->methods.
900
901 2007-11-22  Dick Porter  <dick@ximian.com>
902
903         * threads.c: Ensure that the synch_cs is set before trying to use
904         it.
905
906 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
907
908         * profiler.c: r89126 broke the statistial profiler, unbreak.
909
910 2007-11-22  Martin Baulig  <martin@ximian.com>
911
912         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
913
914         * mono-debug.c
915         (mono_debug_debugger_version): Bump to 3.
916         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
917         -> mono_debugger_class_initialized().
918
919         * mono-debug-debugger.c
920         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
921
922         * class.c
923         (mono_debugger_start_class_init_func): Removed.
924         (mono_debugger_class_loaded_methods_func): Added.
925         (mono_class_setup_methods): Call it here.
926
927 2007-11-22  Martin Baulig  <martin@ximian.com>
928
929         * mono-debug.c
930         (mono_debug_add_delegate_trampoline): New public method.
931         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
932
933         * mono-debug.h
934         (MonoSymbolTable): Added `global_data_table'.
935         (MonoDebuggerTypeKind): Removed.
936
937 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
938
939         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
940         these methods.
941
942         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
943         
944 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
945
946         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
947
948 2007-11-20  Martin Baulig  <martin@ximian.com>
949
950         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
951
952         * mono-debug-debugger.c
953         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
954         (mono_debugger_remove_breakpoint): Likewise.
955         (mono_debugger_check_breakpoints): Likewise.
956         (mono_debugger_register_class_init_callback): New public method.
957         (mono_debugger_remove_class_init_callback): Likewise.
958         (mono_debugger_add_type): Likewise.
959
960         * mono-debug-debugger.h
961         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
962
963 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
964
965         * class.c: more interface implementations needed for the
966         array enumerator (fixes bug #341112).
967
968 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
969
970         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
971         fix ParamName of ArgumentNullExceptions.
972
973 2007-11-17  Miguel de Icaza  <miguel@novell.com>
974
975         * reflection.c (mono_reflection_encode_sighelper): Generate the
976         modopts and modreqs.   I have a useless test that crashes monodis,
977         but that shows the code working.
978
979 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
980
981         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
982         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
983
984 2007-11-15  Dick Porter  <dick@ximian.com>
985
986         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
987         When joining a thread, it's the thread that's calling Join that
988         gets WaitSleepJoin state not the target.  Fixes the standalone
989         test case in bug 334740, and hopefully the whole bug too.
990
991 2007-11-15  Dick Porter  <dick@ximian.com>
992
993         * process.c: Read file version info from the files pointed at by
994         process modules, not the current process.  Fixes bug 315969.
995
996         Use windows typedef names in some places to fix warnings on the
997         windows build.
998
999 2007-11-15  Mark Probst  <mark.probst@gmail.com>
1000
1001         * image.c, metadata-internals.h: Added a generic_class_cache hash
1002         to MonoImage for looking up generic classes when sharing generics.
1003
1004 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1005
1006         * sgen-gc.c: warning cleanups.
1007
1008 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
1009
1010         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
1011         inherited properties.
1012
1013 2007-11-14  Mark Probst  <mark.probst@gmail.com>
1014
1015         * object.c, class-internals.h: Added more information to the
1016         runtime generic context.
1017
1018 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
1019
1020         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
1021         instead of just the target method. Generalize the abstract method handling to
1022         handle any non-static method.
1023
1024         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1025         mono_marshal_get_delegate_invoke () signature change.
1026
1027 2007-11-13  Mark Probst  <mark.probst@gmail.com>
1028
1029         * class.c, class-internals.h: Made
1030         mono_type_get_basic_type_from_generic () public.  Fixed member
1031         access check for shared generics.
1032
1033         * loader.c: Don't insert field into field cache if it's part of a
1034         non-inflated generic class.
1035
1036         * domain.c, domain-internals.h: The generic sharing context is now
1037         part of the jit info data structure.  Added two accessor
1038         functions.
1039
1040 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
1041
1042         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
1043         the array Get/Set/Address methods, since the JIT inlines them.
1044
1045         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
1046
1047         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
1048         (mono_image_init): Initialize runtime_invoke_direct_cache.      
1049
1050         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1051         mono_marshal_get_delegate_invoke signature change.
1052
1053         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
1054         an additional argument. Add support for invoking abstract methods.
1055
1056         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
1057
1058         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
1059
1060 2007-11-09  Mark Probst  <mark.probst@gmail.com>
1061
1062         * class.c: Do field layout for open generic classes as well.
1063
1064 2007-11-09  Mark Probst  <mark.probst@gmail.com>
1065
1066         * gc.c, gc-internal.h: Don't finalize threadpool threads with
1067         other objects, because the threadpool is still around.  Put them
1068         in a list instead and after finalizing all other objects in the
1069         root domain shut down the thread pool and then finalize the
1070         threads.  Fixes bug #337383.
1071
1072         * threads.c, thread-types.h: New mono_thread_create_internal()
1073         function for marking a thread with the threadpool flag before it
1074         started.  Set synch_cs to NULL after freeing it.
1075
1076         * threadpool.c: Mark threadpool threads before they start.
1077
1078 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1079
1080         * reflection.h, reflection.c: don't export random functions
1081         and lazy load dbnull and missing objects.
1082
1083 2007-11-07  Jonathan Chambers <joncham@gmail.com>
1084
1085         * class.c: Initialize COM types if COM interfaces
1086         are present (not just COM classes).
1087         
1088         Code is contributed under MIT/X11 license.
1089
1090 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
1091         * reflection.c:
1092         create_dynamic_mono_image: hook module profiler events (dynamic case).
1093         mono_image_basic_init: hook assembly profiler events (dynamic case).
1094
1095 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
1096         * profiler.c:
1097         simple_appdomain_unload: completely terminate the profiler
1098         instead of only processing the statistical samples.
1099         simple_shutdown: make sure this is really called exactly once,
1100         even in multithreaded applications, and always listen to
1101         appdomain events.
1102         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
1103         here, the "[un]load" functions will do it.
1104         Fixes bugs #333791 and #325261.
1105
1106 2007-11-07  Geoff Norton  <gnorton@novell.com>
1107
1108         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
1109         rather than depend on __APPLE__.
1110
1111 2007-11-07  Mark Probst  <mark.probst@gmail.com>
1112
1113         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
1114
1115 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
1116
1117         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
1118         UTF16 MonoString. Fix the crash from bug #335488
1119
1120 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
1121
1122         * marshal.c: Correct (for non-Win32 OS) length != size in 
1123         mono_string_from_bstr. Fix #339530.
1124
1125 2007-11-06  Geoff Norton  <gnorton@novell.com>
1126
1127         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
1128         to succeed
1129
1130 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
1131
1132         * process.c: Added run-time GetProcessId API detection for Windows.
1133
1134 2007-11-04  Miguel de Icaza  <miguel@novell.com>
1135
1136         * reflection.c  (mono_param_get_objects): If a parameter has the
1137         attribute [System.Runtime.InteropServices.Optional] we should
1138         set the DefaultValue of the ParameterInfo to be
1139         System.Reflection.Missing instead of DBNull.
1140
1141         See bug #339013.
1142
1143         (mono_get_reflection_missing_object): New method,
1144         returns the System.Reflection.Missing.Value singleton instance.
1145
1146 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
1147
1148         * culture-info-table.h : regenerated.
1149
1150 2007-11-02  Jonathan Chambers <joncham@gmail.com>
1151
1152         * icall.c: Use GetEnvironmentStrings on windows
1153         so we are using the same environment block as 
1154         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
1155         #333740.
1156         
1157         Code is contributed under MIT/X11 license.
1158
1159 2007-10-31  Martin Baulig  <martin@ximian.com>
1160
1161         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
1162
1163         * mono-debug-debugger.h
1164         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
1165
1166 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
1167
1168         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
1169         classes.
1170
1171 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
1172
1173         * culture-info-table.h : regenerated.
1174
1175 2007-10-30  Robert Jordan  <robertj@gmx.net>
1176
1177         * icall-def.h, icall.c:
1178         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
1179
1180         Code is contributed under MIT/X11 license.
1181
1182 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
1183
1184         * class.c (mono_class_setup_vtable): Find the inflated methods in the
1185         inflated class instead of inflating them again.
1186         
1187         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
1188         dynamic case.
1189
1190         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
1191         Call setup_supertypes () after klass->parent is set.
1192         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
1193
1194         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
1195         for inflated instances of not yet created dynamic generic classes.
1196         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
1197         times from inflated_method.
1198         (methodbuilder_to_mono_method): Ditto.
1199
1200 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1201
1202         * gc.c: code cleanup and removed old untested option of not creating the
1203         finalizer thread.
1204
1205 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
1206
1207         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
1208         creating a jump trampoline for dynamic methods.
1209
1210 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
1211
1212         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
1213         generic TypeBuilders when called from another method of the same type (bug #335131).
1214
1215
1216 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
1217
1218         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
1219         doesn't seem to work perfectly.
1220         
1221         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
1222         called multiple times.
1223         (methodbuilder_to_mono_method): Ditto.
1224         (resolve_object): Inflate FieldBuilder's.
1225
1226 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1227
1228         * string-icalls.c, string-icalls.h, appdomain.c: patch from
1229         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
1230         RemoveEmptyEntries in the string.Split implementation (bug #322375).
1231
1232 2007-10-26  Dick Porter  <dick@ximian.com>
1233
1234         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
1235         Thread initialisation changes
1236
1237 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
1238
1239         * verify.c: fix compatibility check between arrays and System.Array
1240
1241 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
1242
1243         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
1244         too. Fixes #336999.
1245
1246 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
1247
1248         * object.c (mono_value_box): Use typed allocation here.
1249
1250 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
1251
1252         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
1253         trampoline instead of compiling the method right away.
1254
1255         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
1256
1257 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
1258
1259         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
1260         related fields for dynamic classes. Fixes #334493.
1261
1262 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
1263
1264         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
1265         
1266         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
1267
1268         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
1269         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
1270
1271         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
1272
1273         * reflection.c (create_generic_typespec): Initialize klass->generic_container
1274         if needed.
1275         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
1276
1277 2007-10-18  Jonathan Chambers <joncham@gmail.com>
1278
1279         * marshal.c: Use correct key when removing item
1280         from ccw_hash.
1281         
1282         Code is contributed under MIT/X11 license.
1283
1284 2007-10-17  William Holmes  <billholmes54@gmail.com>
1285
1286         *marshal.c: Adding a case to marshal booleans to U1
1287
1288         Code is contributed under MIT/X11 license.
1289
1290 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
1291
1292         * class.c (mono_class_from_name): Search the modules compromising dynamic
1293         assemblies. Fixes #331601.
1294
1295 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
1296
1297         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
1298         exception if the type name contains an assembly component. Fixes #334203.
1299
1300         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
1301         modules inside dynamic assemblies. Fixes #334200.
1302         
1303         * reflection.c: Set image->public_key and image->public_key_length;
1304
1305         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
1306         fields.
1307
1308         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
1309         
1310 2007-10-16  Mark Probst  <mark.probst@gmail.com>
1311
1312         * metadata.c: Implemented correct comparing of generic classes.
1313         An inflated generic class can be equal to a non-inflated one if it
1314         is inflated with generic type variables as type arguments.  Fixes
1315         bug #333798.
1316
1317 2007-10-15  Dick Porter  <dick@ximian.com>
1318
1319         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
1320         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
1321         81646.
1322
1323         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
1324         instead of a monitor lock.  This means that monitor_try_enter and
1325         co can set the thread state safely.
1326         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
1327         thread_interrupt_requested, so interrupt actually works.
1328
1329         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
1330         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
1331         state accessor function
1332
1333 2007-10-15  Martin Baulig  <martin@ximian.com>
1334
1335         * mono-debug.h
1336         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
1337         the debugger with the current runtime.
1338
1339 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
1340
1341         * object.c, object-internals.h: added the ability to set a single
1342         trampoline for all the slots in a vtable.
1343
1344 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1345
1346         * marshal.c: deal with a possible race condition during multicast
1347         delegate invocation.
1348
1349 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1350
1351         * class.c: ensure value type methods don't have the synchronized
1352         flag set.
1353
1354 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
1355
1356         * string-icalls.c, string-icalls.h: reverted unapproved patch that
1357         breaks the build.
1358
1359 2007-10-11  Joel Reed  <joelwreed@comcast.com>
1360
1361         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
1362         to take an options parameter so that empty entries can be removed during
1363         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
1364
1365 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1366
1367         * marshal.c: make sure we don't store the signature from a dynamic
1368         method into the runtime invoke cache (bug #327189).
1369
1370 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1371
1372         * marshal.c: make sure the wrapper methods are properly initialized.
1373
1374 2007-10-11  Mark Probst  <mark.probst@gmail.com>
1375
1376         * metadata.c, metadata-internals.h: Generalized
1377         mono_type_stack_size() to mono_type_stack_size_internal() which
1378         takes an additional argument specifying whether it allows open
1379         types.
1380
1381 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
1382
1383         * verify.c (do_invoke_method): handle typedbyref params
1384         correctly and check for unverifiable return values.
1385
1386         * verify.c (do_newobj): fix a warning.
1387
1388 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1389
1390         * verify.c: don't tread typedbyref as allways unverifable,
1391         so uses, like (ld/st)loc.0 are valid. verify for the cases
1392         that it matters, like boxing related operations.
1393
1394 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1395
1396         * verify.c: add verification of the newobj opcode. verification
1397         of delegate instantation still missing due ldftn and virldftn not
1398         pushing the function type on stack
1399
1400 2007-10-08  Mark Probst  <mark.probst@gmail.com>
1401
1402         * class-internals.h: Runtime generic context data structure
1403         definition.
1404
1405         * object.c: Initialization of runtime generic context at runtime
1406         vtable creation time.
1407
1408 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
1409         * class.c (mono_class_create_from_typedef,
1410         mono_class_from_generic_parameter, mono_ptr_class_get,
1411         mono_fnptr_class_get, mono_bounded_array_class_get)
1412         * domain.c (mono_domain_create, mono_domain_free)
1413         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
1414         * image.c (do_mono_image_load, mono_image_close):
1415         Hooked up load-unload profiler events.
1416
1417 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
1418
1419         * domain.c: track statistics about the actual amount of native code
1420         allocated.
1421
1422 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1423
1424         * class.c: the valuetype enumerators don't have the additional
1425         supertypes interfaces.
1426
1427 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1428
1429         * class.c: need more interfaces setup for the IEnumerator<T>
1430         object created for arrays (tests/ienumerator-interfaces.2.cs).
1431
1432 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
1433
1434         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
1435
1436 2007-10-05  Alp Toker  <alp@atoker.com>
1437
1438         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1439         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1440         #315863.
1441
1442 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
1443
1444         * verify.c (verify_type_compatibility_full): verification of
1445         compatibility improved, validates correctly non-strict checks between
1446         native int and I4 types different than (unsigned)int32.
1447
1448         * verify.c (do_store_indirect): added, do all verification of
1449         ldind.X opcodes. 
1450
1451         * verify.c (get_load_indirect_mono_type): renamed to
1452         get_indirect_op_mono_type, as it now returns the MonoType for 
1453         ldind.X and stind.X opcodes.
1454
1455 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
1456
1457         * reflection.c: Fix the encoding of generic type definition for
1458         TypeBuilders.
1459
1460         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
1461         mono_image_typedef_or_ref but allows to specify if typespec lookups should
1462         be made. Typespec check is done prior to typeref cache lookup.
1463
1464         * reflection.c (mono_image_typedef_or_ref): now just delegate to
1465         mono_image_typedef_or_ref_full.
1466
1467         * reflection.c (encode_generic_class): encode the generic class
1468         directly instead of calling encode_type.
1469
1470         * reflection.c (encode_type): encode the generic type definition
1471         MonoClass as a generic instantiation.
1472
1473         * reflection.c (create_typespec): cache typespec tokens in
1474         the assembly->typespec cache. Don't create typespec for a generic
1475         instance MonoClass. Create typespec for the generic type defintion.
1476
1477         * reflection.c (create_generic_typespec): encode the generic
1478         class directly instead of calling encode_type.
1479
1480         * reflection.c (mono_image_create_token): encode the generic
1481         type definition not using a typespec for MonoType instances.
1482
1483
1484 2007-10-04  Raja R Harinath  <rharinath@novell.com>
1485
1486         Fix #328812
1487         * class.c (mono_image_init_name_cache): Don't return nested
1488         'protected internal' classes.
1489         (mono_class_from_name_case): Likewise.
1490
1491 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
1492
1493         * icall-def.h, icall.c : get_bundled_machine_config() is now the
1494           common function used by both DefaultConfig in System.dll and
1495           InternalConfigurationHost in System.Configuration.dll.
1496
1497 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1498
1499         * class.c: automatically add to vectors only a few essential explicit
1500         generic interfaces. The rest of the interfaces that arrays should
1501         provide are currently implicitly added (but still not lazily, see the
1502         design in the discussion of bug#325495 for the details of what is
1503         needed for that). Additionally, implicit interfaces are assigned the
1504         same vtable slot as the explicit interfaces (as they are compatible):
1505         this enables huge memory savings since we don't need to instantiate
1506         as many memthods and as large vtables anymore. Also, Since
1507         GetEnumerator<T> returns an instance of a type that is required to
1508         support a similarly large set of interfaces as arrays, we add
1509         implicit interfaces and interface offset sharing support to those
1510         types, too. This change adds all the required interfaces so that
1511         the anonarray.cs test case in the bug report works (we don't add
1512         all the interfaces to arrays of arrays 3-level deep and more because
1513         of the memory requirements explained in the bug and since they are much
1514         less common: the lazy-loading support will enabled them to work, too).
1515
1516 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
1517
1518         * verify.c (merge_stacks): major clean up, all type compatibility
1519         checks are done by verify_type_compatibility. This fix my earlier lack
1520         of understanding of the CLR type system and merge_stacks no longer looks
1521         scary.
1522
1523         * verify.c: fixed some bad spelling.
1524
1525 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
1526
1527         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
1528         a given stack slock.
1529         
1530         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
1531         verify_type_compatibility_full. This removed a near indentical function and fixed
1532         handling of Int32 and IntPtr across all opcodes.
1533
1534 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
1535
1536         * class.c: only vectors have the additional generic interfaces.
1537
1538 2007-10-01  Jonathan Chambers <joncham@gmail.com>
1539
1540         * mono-config.c: Use g_strcasecmp instead of
1541         strcasecmp like everywhere else to fix
1542         compilation with MSVC.
1543         
1544         Code is contributed under MIT/X11 license.
1545
1546 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1547
1548         * object.c, object-internals.h: refactored the IMT code to enable
1549         building a single slot at a time and lazily creating the IMT trampolines
1550         and thunks.
1551
1552 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
1553
1554         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
1555
1556         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
1557         Fixes #328501.
1558         
1559 2007-09-29  Raja R Harinath  <harinath@gmail.com>
1560
1561         * loader.c (method_from_methodspec): Rearrange to avoid
1562         un-necessary exposition.  Don't assert out if the method's
1563         declaring type is a generic type definition.
1564
1565 2007-09-28  Martin Baulig  <martin@ximian.com>
1566
1567         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
1568
1569 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
1570
1571         * class-internals.h: optimize field layout of MonoClass to
1572         requires less cachelines at runtime and save a few bytes on 64 bit
1573         systems.
1574
1575 2007-09-28  Jb Evain  <jbevain@novell.com>
1576
1577         * reflection.c: when encoding type names in custom attributes,
1578         if the type is a closed generic type, its generic arguments
1579         have to be serialized as AssemblyQualifiedName, so that when
1580         they are deserialized, it's possible to re-create them properly.
1581         Fixes #329450.
1582
1583
1584 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
1585
1586         * object.c, class-internals.h: added delegate-creation counter.
1587
1588 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
1589
1590         * class.c: cleanup of the code that synthetizes interfaces for
1591         arrays in 2.0: saves quit a bit of corlib mempool memory.
1592         Code to fix bug #325495 ifdeffed out for now until the issues
1593         with memory usage and O(n^2) behaviour are fixed.
1594
1595 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1596
1597         * marshal.c: when possible, do not duplicate the name of the methods
1598         in the method builder and in the generated MonoMethod.
1599
1600 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
1601         * verify.c: added support for type checking ldind_* opcodes.
1602
1603 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
1604
1605         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
1606         which is used to distinguish the fully open instantiation of a TypeBuilder
1607         with the rest. This temporary hack is required to restore the property that
1608         the fully open instantiation is the same type of the generic type definition.
1609
1610         * class-internals.h (mono_generic_class_is_generic_type_definition):
1611         new function as part of the internal API.
1612
1613         * class.c (inflate_generic_type): return NULL when the generic inst is
1614         fully open. The fully open generic type is now the same as the generic type
1615         definition for non TypeBuilder types.
1616
1617         * class.c (mono_generic_class_get_class): removed assert since it is
1618         no longer valid, gklass->cached_class can point to the generic type definition.
1619
1620         * class.c (mono_generic_class_is_generic_type_definition): new.
1621
1622         * metadata.c (mono_generic_class_hash): added is_tb_open field
1623         to the hash calculation.
1624
1625         * metadata.c (free_generic_class): if the generic class is associated
1626         with the generic type definition, its field will come from the mempool and
1627         must not be freed.
1628
1629         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
1630         new, this function identifies the corner case of a TypeBuilder fully open
1631         instantiation.
1632
1633         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
1634         for lookup. Set gclass->cached_class to be the container class in case of
1635         the fully open instantiation of non TypeBuilder types.
1636
1637         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
1638         to compare generic classes.
1639
1640         * reflection.c (method_encode_methodspec): remove assert that
1641         no longer is valid.
1642
1643         * reflection.c (mono_reflection_generic_class_initialize): add
1644         an aditional assert to ensure the proper type is used.
1645
1646 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
1647
1648         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
1649         to enjoy it.
1650
1651 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
1652
1653         * verify.c (push_arg): Fixed support for ldarga
1654         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
1655         MonoType used as first arg in case of instance calls.
1656
1657 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
1658
1659         * verify.c: Support for verifying VAR and MVAR types, 
1660
1661 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
1662
1663         * icall.c (ves_icall_get_property_info): Set the reflected type of the
1664         accessors correctly.
1665
1666 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
1667
1668         * threads.c: support OSX and other systems in
1669         mono_thread_get_stack_bounds (bug #328026).
1670
1671 2007-09-25  Martin Baulig  <martin@ximian.com>
1672
1673         * mono-debug.h
1674         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
1675
1676 2007-09-24  Martin Baulig  <martin@ximian.com>
1677
1678         * mono-debug.h
1679         (MonoDebugClassEntry): Moved the definition of this struct into
1680         mono-debug.c to make it private.
1681
1682         * mono-debug.c
1683         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
1684         type table per symbol file, we don't need to store the symfile id
1685         any longer.
1686
1687 2007-09-24  Martin Baulig  <martin@ximian.com>
1688
1689         Create one type table per symbol file, since a `MonoClass *' gets
1690         invalid when its image is unloaded.
1691
1692         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
1693         (MonoDebugHandle): Added `type_table'.
1694
1695 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1696
1697         * mempool.c, mempool.h: added mono_mempool_new_size () API
1698         to be able to specify a smaller initial size for the pool.
1699         Adjusted the code to slowly increase pool size before using
1700         the previous default size.
1701         * image.c: use a small initial size for image mempools.
1702
1703 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
1704
1705         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
1706         Fixes ##320990.
1707
1708         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
1709         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
1710
1711 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
1712
1713         * metadata.c (mono_type_create_from_typespec): Remove an invalid
1714         free. Fixes #327438.
1715
1716 2007-09-21  Raja R Harinath  <harinath@gmail.com>
1717
1718         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
1719         generic instantiations, etc.
1720         <MONO_TYPE_ARRAY>: Likewise.
1721
1722 2007-09-21  Martin Baulig  <martin@ximian.com>
1723
1724         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
1725         these structs were never defined.
1726         (MonoDebugHandle): Removed the `_priv' field, it was never used.
1727
1728 2007-09-21  Martin Baulig  <martin@ximian.com>
1729
1730         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
1731
1732 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
1733
1734         * image.c: removed the guid hash tables: we can get the same info
1735         without the additional memory usage hit (partially fixes also bug #327052).
1736
1737 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
1738
1739         * profiler.h, profiler-private.h, profiler.c: add a new profiler
1740         event to handle unloading methods. After the event is called, the
1741         corresponding MonoMethod* must be considered invalid.
1742         * loader.c (mono_free_method): call the new mono_profiler_method_free
1743         event.
1744
1745 2007-09-20  Mark Probst  <mark.probst@gmail.com>
1746
1747         * domain-internals.h: New flag in MonoJitInfo which marks shared
1748         generic methods.  New hash table (shared_generics_hash) in
1749         MonoDomain to keep track of shared generic methods.  Prototypes
1750         for functions to register and lookup shared generic methods.
1751
1752         * domain.c: Support for registering and looking up shared generic
1753         methods via a hash table (shared_generics_hash) in MonoDomain.
1754
1755         * class-internals.h: New exception to signal failure of shared
1756         compilation of a generic method.  New counters for generics
1757         sharing in MonoStats.
1758
1759 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
1760
1761         * image.c, metadata-internals.h: don't keep a file descriptor open
1762         for loaded assemblies (bug#325988).
1763
1764 2007-09-19  Raja R Harinath  <rharinath@novell.com>
1765
1766         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
1767         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
1768         use the corresponding datatypes.
1769         (type_in_image): Update to changes.
1770         (CleanForImageUserData): Simplify.
1771         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
1772         Avoid quadratic behaviour in handling the "stolen" list by
1773         separating the filter predicate out, and by prepending the stolen
1774         items rather than appending them.
1775         (steal_ginst_in_image): Likewise.
1776         (mono_metadata_clean_for_image): Update to changes.
1777
1778 2007-09-19  Martin Baulig  <martin@ximian.com>
1779
1780         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
1781
1782 2007-09-19  Martin Baulig  <martin@ximian.com>
1783
1784         * mono-debug.c (mono_debug_cleanup): Don't call
1785         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
1786
1787 2007-09-19  Raja R Harinath  <harinath@gmail.com>
1788
1789         Fix crash on 'make run-test' in mcs/errors
1790         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
1791         Avoid more potential allocations in mono_class_from_mono_type.
1792         (ginst_in_image): Update to changes.
1793         (gclass_in_image): Rearrange slightly.
1794
1795 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
1796
1797         * class.c (mono_class_init): Move the code that sets up class->methods to 
1798         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
1799
1800         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
1801         canonical instance of an inflated generic signature.
1802         (mono_type_create_from_typespec): Remove an invalid free.
1803
1804         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
1805
1806 2007-09-18  Marek Habersack  <mhabersack@novell.com>
1807
1808         * domain-internals.h: added a declaration of the
1809         mono_assembly_load_full_nosearch internal function.
1810
1811         * assembly.c (mono_assembly_load_with_partial_name): use
1812         mono_try_assembly_resolve return value properly.
1813         (mono_assembly_load_full_nosearch): copied the function body from
1814         mono_assembly_load_full, without the code to invoke assembly
1815         search hooks.
1816         (mono_assembly_load_full): calls the above new function and if the
1817         assembly is not resolved, invokes the search hooks.
1818
1819         * appdomain.c (mono_runtime_init): restore the global postload
1820         assembly search handlers.
1821
1822 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
1823
1824         * class.c (mono_class_init): Make sure class->methods and class->properties
1825         are never NULL in the generics case.
1826
1827         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
1828
1829 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
1830
1831         * metadata.c (free_generic_class): Disable some code to fix the build.
1832
1833         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
1834
1835         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
1836         from the image mempool.
1837
1838         * metadata.c (free_generic_class): Free more data from the inflated class.
1839
1840         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
1841
1842         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
1843         mempool.
1844         (mono_type_create_from_typespec): Ditto.
1845
1846         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
1847         MonoImage to the caller.
1848         (mono_init_internal): Save the opened image in a global variable.
1849         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
1850
1851         * reflection.c (resolve_object): Fix a leak.
1852
1853         * metadata.c: Fix the freeing of data in the generics caches.
1854         
1855         * metadata.c (free_generic_inst): Comment this out to fix the build.
1856         (free_generic_class): Ditto.
1857
1858         * metadata.c: Free cached generic methods, instantinations and classes when
1859         they are removed from the caches.
1860         (mono_metadata_free_type): Free the type itself.
1861
1862         * class.c: Free the result of mono_class_inflate_generic_type () in a few
1863         places.
1864
1865 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1866
1867         * boehm-gc.c: restrict managed allocs to __thread supporting
1868         architectures.
1869
1870 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
1871
1872         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
1873         (mono_generic_class_get_class): Fix a leak.
1874
1875         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
1876         mono_metadata_free_type ().
1877         (mono_metadata_inflate_generic_inst): Fix a leak.
1878
1879 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
1880
1881         * mono-debug.c (free_header_data): Fix a leak missed earlier.
1882
1883         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
1884         mempool.
1885
1886         * mono-debug.c (mono_debug_close_image): Fix call to 
1887         g_hash_table_remove ().
1888
1889 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
1890
1891         * icall-def.h: redirect all the string ctor to the managed
1892         CreateString () methods.
1893         * string-icalls.c, string-icalls.h: removed dead code for string
1894         ctors and icalls.
1895
1896 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
1897
1898         * mono-debug.c: Fix memory leaks.
1899
1900 2007-09-14  Jonathan Chambers <joncham@gmail.com>
1901
1902         * threads-types.h: Implement mono_hazard_pointer_set and 
1903         mono_hazard_pointer_clear macros using do/while(0) to fix
1904         compilation with MSVC.
1905         
1906         Code is contributed under MIT/X11 license.
1907
1908 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
1909
1910         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
1911         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
1912
1913 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1914
1915         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
1916         icalls.
1917
1918 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1919
1920         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
1921         managed-code allocated as well.
1922
1923 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
1924
1925         * class.c (mono_class_is_assignable_from): Add support for generic variance.
1926
1927 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1928
1929         * boehm-gc.c: fixed the build after the AOT changes.
1930
1931 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
1932
1933         * wrapper-types.h: Add an ALLOC wrapper type.
1934
1935         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
1936         reference managed allocator methods.
1937
1938 2007-09-12  Marek Safar  <marek.safar@gmail.com>
1939
1940         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
1941         of Type array and not MonoType, a fix suggested by Hari.
1942         
1943 2007-09-12  Jonathan Chambers <joncham@gmail.com>
1944
1945         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
1946         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
1947         
1948         Code is contributed under MIT/X11 license.
1949
1950 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
1951
1952         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
1953
1954 2007-09-12  Marek Habersack  <mhabersack@novell.com>
1955
1956         * image.c (do_mono_image_open): if assembly file fails to open and
1957         MONO_IOMAP is in effect, try to find the path in a
1958         case-insensitive way.
1959
1960         * appdomain.c (mono_runtime_init): do not install postload hooks -
1961         tests show that MS.NET doesn't use anything of that sort to
1962         trigger the AppDomain.AssemblyResolve event.
1963         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
1964         made non-static.
1965         (mono_runtime_init): init portability helpers here.
1966
1967         * assembly.c (mono_assembly_load_with_partial_name): if other   
1968         attempts fail, trigger the AppDomain.AssemblyResolve event handler
1969         to resolve the assembly.
1970
1971         * domain-internals.h: added mono_try_assembly_resolve and marked
1972         it as internal.
1973
1974 2007-09-11  Jb Evain  <jbevain@novell.com>
1975
1976         * object-internals.h (MonoReflectionDynamicMethod): add
1977         a `MonoReflectionType *owner` field. The owner is used
1978         * reflection.c:
1979         (mono_reflection_create_dynamic_method): use the owner of the dynamic
1980         method as the class declaring the dynamic method.
1981         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
1982         dynamic method to the declaring type of the methodbuilder.
1983
1984 2007-09-11  Mark Probst  <mark.probst@gmail.com>
1985
1986         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
1987         rules for calling methods via reflection.
1988
1989 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
1990
1991         * reflection.c (resolve_object): Add support for MonoGenericClass. 
1992         Inflate MonoType's.
1993
1994 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
1995
1996         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
1997         provide a managed method that does fast allocations without needing
1998         a managed->unmanaged transition. Boehm GC implementation currently
1999         enabled for ptrfree objects on sane architectures.
2000
2001 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2002
2003         * marshal.c, marshal.h: exported a couple of useful functions and
2004         added mono_mb_get_label () to easily handle backward branches.
2005
2006 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
2007
2008         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
2009
2010 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2011
2012         * loader.c (find_method): Fixed the regression introduced while
2013         fixing bug #81466.
2014
2015 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
2016
2017         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
2018         well.
2019         
2020         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
2021         icall.c reflection.c: Pass a MonoGenericContext argument to 
2022         mono_lookup_dynamic_token ().
2023
2024         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
2025         #82744.
2026         
2027 2007-09-09  Robert Jordan  <robertj@gmx.net>
2028
2029         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
2030         for generic methods.
2031
2032         * object.c (mono_object_get_virtual_method): Handle generic methods.
2033         Fixes bug #78882.
2034
2035         Code is contributed under MIT/X11 license.
2036
2037 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
2038
2039         * image.c: fix locking in mono_image_load_file_for_image ().
2040
2041 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
2042
2043         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
2044         used only as a cache: added an icall to fill it.
2045
2046 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
2047
2048         * reflection.h: exposed mono_reflection_free_type_info
2049         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
2050         since mono_reflection_bind_generic_parameters makes a copy of it.
2051         * reflection.c (free_type_info): subinfos should be freed.
2052         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
2053         made non static.
2054         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
2055         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
2056         this fixes #82695 and #81726.
2057    
2058
2059 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
2060
2061         * process.h, process.c:  added support for user profile/info in
2062           ProcessStartInfo. For now only Windows works.
2063
2064 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2065
2066         * metadata.c: consider the generic arguments when comparing
2067         signatures (bug #82614).
2068
2069 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2070
2071         * cil-coff.h, image.c: updated assembly loader to cope with the
2072         PE32+ 64 bit file format.
2073
2074 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2075
2076         * assembly.c, class.c, domain.c, loader.c: remove useless
2077         inclusion of cil-coff.h.
2078
2079 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
2080
2081         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
2082         if interface is marked with CoClassAttribute. 
2083    
2084         Code is contributed under MIT/X11 license.
2085
2086 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2087
2088         * sgen-gc.c: ensure no object from the to space is copied again or finalized
2089         if it's seen twice in major collections.
2090
2091 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2092
2093         * sgen-gc.c: big objects are not copied to the gray area, but they
2094         need to be considered for scanning, too, if they are brought alive
2095         by an object ready for finalizations or a survived one.
2096
2097 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2098
2099         * sgen-gc.c: properly account the number of disappearing links when
2100         they are nullified.
2101
2102 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2103
2104         * sgen-gc.c: share the code to scan the registered roots between the
2105         different types of collections.
2106
2107 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2108
2109         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
2110
2111 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2112
2113         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
2114         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
2115
2116 2007-08-28  Mark Probst  <mark.probst@gmail.com>
2117
2118         * security-manager.c (mono_security_manager_get_methods):
2119         LinkDemandSecurityException now has 2 arguments instead of 3.
2120
2121 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
2122
2123         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
2124         platforms which need it.
2125
2126 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2127
2128         * sgen-gc.c: unregister thread data structures with a pthread_key_t
2129         dtor.
2130
2131 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2132
2133         * threads.c: free the thread static data on thread exit.
2134
2135 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
2136
2137         * class.c: walk the hierarchy to find the generic definition for
2138         a class (fixes runtime part of bug #82498).
2139
2140 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2141
2142         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
2143         ...
2144
2145         * image.c (mono_image_close): Here. Hopefully fixes #82510.
2146
2147 2007-08-24  Mark Probst  <mark.probst@gmail.com>
2148
2149         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
2150
2151 2007-08-24  Robert Jordan  <robertj@gmx.net>
2152
2153         * appdomain.c: don't perform the ':'->';' substitution on Win32.
2154
2155 2007-08-24  Jb Evain  <jbevain@novell.com>
2156
2157         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
2158         for byref types.
2159
2160 2007-08-24  Mark Probst  <mark.probst@gmail.com>
2161
2162         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
2163         #82286.
2164
2165 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2166
2167         * assembly.c: Fix a warning.
2168         
2169 2007-08-23  Marek Habersack  <mhabersack@novell.com>
2170
2171         * appdomain.c: parse the <runtime> section looking for the probing
2172         element with the 'privatePath' attribute, which sets additional
2173         directories in which the runtime should look for assemblies.
2174
2175 2007-08-23  Robert Jordan  <robertj@gmx.net>
2176
2177         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
2178         Fixes #82499.
2179
2180 2007-08-23  Martin Baulig  <martin@ximian.com>
2181
2182         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
2183         _mono_debug_init_corlib() and remove it from the header file.
2184
2185 2007-08-23  Martin Baulig  <martin@ximian.com>
2186
2187         * mono-debug-debugger.c
2188         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
2189         don't notify the debugger about it.
2190
2191         * mono-debug-debugger.h
2192         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
2193
2194 2007-08-23  Robert Jordan  <robertj@gmx.net>
2195
2196         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
2197         Code is contributed under MIT/X11 license.
2198
2199 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2200
2201         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
2202
2203 2007-08-22  Martin Baulig  <martin@ximian.com>
2204
2205         * mono-debug.c: Store debugging info on a per-domain basis and
2206         free it on domain unload.  Add support for unloading symbol files.
2207
2208         * mono-debug.h
2209         (MonoDebugList): New typedef.
2210         (MonoSymbolTable):
2211         - add `data_tables and `type_table'.
2212         - replace 'symbol_files' and `num_symbol_files' with a
2213           `MonoDebugList *'.
2214         (mono_debug_data_table): Removed.
2215         (mono_debug_list_add): New public function.
2216         (mono_debug_list_remove): New public function.
2217         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
2218         (mono_debug_init_2_memory): Renamed into
2219         mono_debug_open_image_from_memory().
2220         (mono_debug_close_image): New public function.
2221         (mono_debug_domain_create): Likewise.
2222         (mono_debug_domain_unload): Likewise.
2223         (MONO_DEBUGGER_VERSION): Bump to 60.
2224
2225         * mono-debug-debugger.h
2226         (MonoDebuggerEvent):
2227         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
2228         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
2229         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
2230         - rename `THREAD_CREATED' and `THREAD_EXITED' into
2231           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
2232         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
2233           meaning.
2234         (mono_debugger_add_symbol_file): Removed.
2235         (mono_debugger_add_type): Removed.
2236         (mono_debugger_lookup_type): Removed.
2237         (mono_debugger_lookup_assembly): Removed.
2238
2239         * domain.c
2240         (mono_domain_create): Call mono_debug_domain_create().
2241         (mono_init_internal): Call mono_debug_init_corlib().
2242
2243         * assembly.c
2244         (mono_assembly_close): Call mono_debug_close_image().
2245
2246 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
2247
2248         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
2249         mmap call.
2250
2251 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2252
2253         * sgen-gc.c: ensure section->pin_queue_end is initialized
2254         correctly when non pinning objects in the section have been found.
2255
2256 2007-08-22  Marek Habersack  <mhabersack@novell.com>
2257
2258         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
2259         containing a list of directories separated by ':'. MSDN docs say
2260         the directories should be separated with ';'. Part of a bugfix for
2261         bug #81446
2262
2263 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
2264
2265         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
2266         it should MonoType and not MonoClass.
2267
2268 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
2269
2270         * culture-info-table.h : regenerated.
2271
2272 2007-08-20  William Holmes  <billholmes54@gmail.com>
2273
2274         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
2275          to call ReplaceFile Kernel32 on windows or in io-layer.
2276         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
2277         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
2278          as an internal call.
2279
2280         Code is contributed under MIT/X11 license.
2281
2282 2007-08-20  Jb Evain  <jbevain@novell.com>
2283
2284         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
2285         and MONO_EXCEPTION_FIELD_ACCESS.
2286
2287         * debug-helpers.[c|h]: new mono_field_full_name function.
2288
2289 2007-08-20  Mark Probst  <mark.probst@gmail.com>
2290
2291         * class.c: Removed class_security_level() and moved it to
2292         security-core-clr.c.
2293
2294         * security-core-clr.c, security-core-clr.h: class_security_level()
2295         is now public and renamed to mono_security_core_clr_class_level().
2296         It also looks for security attributes in the classes a class is
2297         nested in.
2298
2299 2007-08-20  Mark Probst  <mark.probst@gmail.com>
2300
2301         * security-core-clr.c, security-core-clr.h: CoreCLR security
2302         utility functions.
2303
2304         * Makefile.am: Added security-core-clr.[ch].
2305
2306         * security-manager.c, security-manager.h: Functions and enum for
2307         setting and getting the security mode.
2308
2309         * class.c: CoreCLR security checks.
2310
2311 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
2312
2313         * icall-def.h, process.c, process.h: implemented icall to get
2314         user/system processor times.
2315
2316 2007-08-17  Mark Probst  <mark.probst@gmail.com>
2317
2318         * domain.c, threads.c, class-internals.h, domain-internals.h: New
2319         reader-lock-free jit_info_table.
2320
2321 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
2322
2323         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
2324
2325         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
2326
2327         * object-internals.h (MonoException): Add missing _data member.
2328
2329 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
2330
2331         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
2332         checking that only methods with matching qname or fqname are picked
2333         from implemented interfaces.
2334
2335 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2336
2337         * verify.c (do_newarr):added, do type verification of
2338         newarr ops, push the right value on the eval stack.
2339         * verify.c (mono_method_verify): use do_newarr
2340
2341
2342 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2343
2344         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
2345         factored the common code into get_boxable_mono_type, which
2346         is now using mono_type_get_full, this fixed byref related tests.
2347
2348 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2349
2350         * class.c: added mono_type_get_full, this function has the same
2351         behavior of mono_class_get_full but the returned MonoType has
2352         all metadata of the associated token in case of a typespec token.
2353         * class.c: added mono_type_retrieve_from_typespec, used by 
2354         mono_type_get_full to retrieve the token type.
2355         * class.c (mono_class_create_from_typespec): changed to use
2356         mono_type_retrieve_from_typespec.
2357         * class.c (mono_ldtoken): changed to use mono_type_get_full
2358         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
2359         * class-internals.h: exported mono_type_get_full for internal use.
2360
2361 2007-08-16  Jb Evain  <jbevain@novell.com>
2362
2363         * domain.c (supported_runtimes): add entry for
2364         the 'moonlight' runtime version.
2365
2366 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2367
2368         * verify.c (mono_method_verify): small typo sliped in.  
2369
2370 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2371
2372         * verify.c (do_unbox_value): added, do type verification of
2373         unboxing ops
2374         * verify.c (mono_method_verify): use do_unbox_value
2375
2376
2377 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2378
2379         * verify.c (dump_stack_value): fixed typo, was printing string
2380         instead of object on stack.
2381         * verify.c (do_box_value): moved the byref check up as it leads
2382         to invalid code and should be done earlier.
2383         * verify.c: improved error messages for and ldobj
2384
2385 2007-08-15  William Holmes  <billholmes54@gmail.com>
2386
2387         * marshal.c (emit_marshal_custom): Omit the call to 
2388           marshal_native_to_managed when calling native to managed 
2389           and the argument is specified as an out argument.
2390
2391         Code is contributed under MIT/X11 license.
2392
2393 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2394
2395         * verify.c: fixed the type checks for generics, function pointers and vectors.
2396         Added type verification for ldobj and ldtoken. The verifier
2397         would segfault if header or signature of a method contained references
2398         to non-existant types.
2399
2400 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
2401
2402         * marshal.c (cominterop_get_ccw): Patch from
2403         Bill Holmes to no walk up interface hierarchy. 
2404         All parent methods should be present in the interface for COM.
2405    
2406         Code is contributed under MIT/X11 license.
2407
2408 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
2409
2410         * marshal.c (emit_marshal_com_interface): Patch from
2411         Bill Holmes to handle COM Interfaces as return values
2412         for native->managed calls.
2413    
2414         Code is contributed under MIT/X11 license.
2415
2416 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
2417
2418         * marshal.c (cominterop_get_idispatch_for_object): Implement
2419         for runtime callable wrappers.
2420    
2421         Code is contributed under MIT/X11 license.
2422
2423 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
2424
2425         * pedump.c (main): changed from mono_init to mono_init_from_assembly
2426         so 2.0 types are accessible
2427
2428
2429 2007-08-13  Miguel de Icaza  <miguel@novell.com>
2430
2431         * domain.c (mono_init_internal): Call mono_assembly_load_friends
2432         once we load mscorlib.   Due to the order in which we initialize,
2433         the mono_assembly_load_full routine that loads mscorlib did not
2434         load friends.   We now load it once we load the
2435         mono_defaults.internals_visible_class class. 
2436
2437         * assembly.c: Expose the mono_load_friend_assemblies method.
2438
2439 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
2440
2441         * verify.c: improved the handling of boxing, better
2442         type checking for unary ops and conversion. Fix bug
2443         regarding managed pointer compatibility checking
2444
2445 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
2446
2447         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
2448
2449         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
2450
2451 2007-08-09  Raja R Harinath  <rharinath@novell.com>
2452
2453         * reflection.c (dup_type): Remove.
2454         * class.c (dup_type): Remove.
2455         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
2456         instead of the dodgy 'dup_type'.
2457         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
2458         handle the case where 'dup_type' needed the second argument.
2459
2460 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
2461
2462         * domain.c: Fix a warning.
2463
2464 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
2465
2466         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
2467         checking that methods with the same fqname are not overridden
2468         with a method from an ancestor.
2469
2470 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
2471
2472         * threads.c (free_thread_static_data_helper): Avoid a crash if
2473         thread->static_data is not yet set.
2474
2475 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
2476
2477         * marshal.c: Use correct image when emitting
2478         native wrapper for COM calls.
2479    
2480         Code is contributed under MIT/X11 license.
2481
2482 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
2483
2484         * icall-def.h, security.c, security.h :
2485           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
2486
2487 2007-08-07  Martin Baulig  <martin@ximian.com>
2488
2489         * mono-debug-debugger.h
2490         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
2491
2492         * domain.c (mono_domain_free): Call
2493         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
2494
2495 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
2496
2497         * verify.c (check_underflow, check_overflow): error message now returns IL offset
2498         * verify.c (in_same_block): code should test if either offset is inside the clauses
2499         * verify.c (mono_method_verify): push the exception into the eval stack of exception
2500         and filter blocks
2501
2502 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
2503
2504         * image.c (mono_image_close): Fix a leak.
2505
2506         * object.c (mono_runtime_invoke_array): Avoid using alloca.
2507
2508         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
2509
2510 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
2511
2512         * domain.c, threads.c, threads-types.h: fix memory retention issue
2513         with thread static variables not being cleared on domain unload.
2514         Reuse thread static slots after domain unload.
2515
2516 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
2517
2518         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
2519         nullable type.
2520
2521         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
2522         now done in mono_runtime_invoke_array.
2523
2524         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
2525         receiver is a nullable type.
2526
2527         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
2528         generic parameter.
2529
2530 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
2531
2532         * marshal.c: Implement COM Objects as return type for 
2533         managed->unmanaged calls. Added Release calls for COM Object
2534         out/return values in managed->unmanaged calls.
2535
2536         Code is contributed under MIT/X11 license.
2537
2538 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
2539
2540         * threads.h, threads-type.h: move the hazard pointer declarations
2541         to the private header.
2542
2543 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
2544
2545         * file-io.c, appdomain.c: memory leak fixes.
2546
2547 2007-08-02  Dick Porter  <dick@ximian.com>
2548
2549         * socket-io.c
2550         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
2551         SO_REUSEADDR setting into io-layer/sockets.c.
2552
2553 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
2554
2555         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
2556         from Object when called on a generic parameter. Fixes #82211.
2557
2558 2007-08-01  Dick Porter  <dick@ximian.com>
2559
2560         * file-io.c (convert_share): Test FileShare values bit-by-bit.
2561         Fixes bug 79250 yet again.
2562
2563 2007-07-30  Martin Baulig  <martin@ximian.com>
2564
2565         Merged the `debugger-dublin' branch.
2566
2567         * mono-debug.h
2568         (MonoDebugDataTable): New typedef.
2569         (MonoDebugMethodAddressList): New typedef.
2570         (MonoDebugWrapperData): Removed.
2571         (MonoDebugSymbolTable): Removed `current_data_table',
2572         `current_data_table_size', `current_data_table_offset'.
2573         (MonoDebugDataItemType): Moved into mono-debug.c.
2574         (MonoDebugMethodJitInfo): Remove `address'.
2575         (mono_debug_data_table): New global variable.
2576         (mono_debug_lookup_method_addresses): New public function.
2577         (mono_debug_find_method): Take a `MonoMethod *', not a
2578         `MonoDebugMethodInfo *'.
2579
2580         * mono-debug.c: Drop support for the old symbol tables.
2581
2582 2007-06-28  Martin Baulig  <martin@ximian.com>
2583
2584         * mono-debug.c (mono_debug_debugger_version): New public variable.
2585
2586 2007-07-31  William Holmes  <billholmes54@gmail.com>
2587
2588         * metadata.c Changed mono_type_create_from_typespec to not insert
2589           the type into the hash map until after
2590           do_mono_metadata_parse_type has completed.
2591         Fixes Bug #82194
2592         Code is contributed under MIT/X11 license.
2593
2594 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
2595
2596         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
2597         generic parameter. Fixes #82211.
2598
2599 2007-07-27  Jb Evain  <jbevain@novell.com>
2600
2601         * pedump.c (dump_metadata, dump_metadata_header): dump
2602         versions contained in the metadata header.
2603
2604 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2605
2606         * threads.c: register small_id_table with the GC.
2607
2608 2007-07-27  Mark Probst  <mark.probst@gmail.com>
2609
2610         * threads.c, threads.h, class-internals.h, object-internals.h:
2611         Hazard pointers, to be used by lock-free parallel algorithms.
2612
2613 2007-07-26  Dick Porter  <dick@ximian.com>
2614
2615         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
2616         routine on non-windows platforms, as I've not managed to think of
2617         a non-kludgy way of doing this.  Finishes off bug 78739.
2618
2619 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
2620
2621         * object.c: properly setup interface_bitmap in proxy vtables.
2622
2623 2007-07-25  Marek Habersack  <mhabersack@novell.com>
2624
2625         * appdomain.c (get_shadow_assembly_location): do not use TickCount
2626         to create unique shadow copy target directories, use the domain's
2627         serial number instead. Each domain gets a unique target directory
2628         that way.
2629
2630         * domain.c (mono_domain_create): added code to increment domain
2631         shadow copy serial number and cache the value in the current
2632         domain structure.
2633
2634         * domain-internals.h (struct _MonoDomain): added a new field -
2635         shadow_serial to hold the serial number used in generation of
2636         shadow-copy directories. This is to make sure that the directory
2637         name is unique for each and every domain created. We avoid a race
2638         condition with overriding assemblies already in use by other app
2639         domains.
2640
2641 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
2642
2643         * class.c (mono_bounded_array_class_get): fixed memory leak when 
2644         binding generic parameters.
2645
2646 2007-07-24  Raja R Harinath  <rharinath@novell.com>
2647
2648         * metadata.c (do_mono_metadata_parse_generic_class): Use
2649         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
2650         error.
2651
2652 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
2653
2654         * loader.c, class-internals.h, reflection.c: removed the per-method
2655         generics hashtable: we use the global one through the call of
2656         mono_class_inflate_generic_method ().
2657
2658 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
2659
2660         * class.c, metadata.c, class-internals.h: introduce yet another
2661         generics global cache for inflated methods (fixes 98% of the perf
2662         issue in bug #81806).
2663
2664 2007-07-23  Raja R Harinath  <rharinath@novell.com>
2665
2666         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
2667         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
2668         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
2669         return a MonoGenericInst containing (a copy) of those types.
2670         (mono_metadata_inflate_generic_inst): Update to changes.
2671         (mono_metadata_parse_generic_inst): Likewise.
2672         (mono_get_shared_generic_inst): Likewise.
2673         * reflection.c (mono_class_bind_generic_parameters): Likewise.
2674         (mono_reflection_bind_generic_method_parameters): Likewise.
2675         * metadata-internals.h: Likewise.
2676         * icall.c (free_generic_context): Kill.
2677         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
2678
2679         * reflection.c (reflection_methodbuilder_to_mono_method): Use
2680         mono_metadata_type_dup.
2681         * marshal.c (mono_mb_create_method): Likewise.
2682
2683         * metadata.c (mono_metadata_type_dup): Rename from
2684         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
2685         MonoImage.  Handle a few more cases, esp. when no mempool is given.
2686         * marshal.c, metadata-internals.h: Update to changes.
2687
2688 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2689
2690         * class.c: fixed a small leak for array classes and removed warning.
2691
2692 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
2693
2694         * loader.c (mono_method_get_param_token): Make this work on generic methods.
2695         Return 0x8000000 for return parameters. Fixes #82161.
2696
2697 2007-07-21  Marek Habersack  <grendello@gmail.com>
2698
2699         * appdomain.c (get_shadow_assembly_location): append the current
2700         ticks value to the path. Avoids overwriting the same assemblies by
2701         several threads at the same time.
2702
2703 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
2704         and Raja R Harinath  <rharinath@novell.com>
2705
2706         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
2707         Simplify slightly.
2708         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
2709         property for testing if a method is a generic method definition.
2710
2711 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
2712
2713         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
2714
2715 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2716
2717         * verify.c: used function from private branch, reverted to the one in class.h 
2718
2719 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2720
2721         * verify.c: a typo slipped in and the code wont compile
2722
2723 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2724
2725         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
2726         disabled box instruction as it is doing the wrong thing
2727         improved stack dump messages, now it is easier to debug type related issues
2728
2729
2730 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
2731
2732         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
2733
2734 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2735
2736         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
2737         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
2738         grouped with class and valuetype. This change will simply 
2739         the code as it should be handled just like unmanaged pointers.
2740
2741 2007-07-19  Mark Probst  <mark.probst@gmail.com>
2742
2743         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
2744
2745 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2746
2747         * verify.c: several stack merge issues fixed, reference comparisons now
2748         check the type size. strict type check now works correctly.
2749         added more uses of IS_MANAGED_POINTER macro.
2750         fixed issues pointed by running the test suite against .net.
2751         
2752
2753 2007-07-19  Mark Probst  <mark.probst@gmail.com>
2754
2755         * class.c, loader.c, class-internals.h: Removed the
2756         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
2757         defines.
2758
2759         * icall.c: Better error checking in some internal reflection
2760         methods.
2761
2762 2007-07-18  William Holmes  <billholmes54@gmail.com>
2763
2764         * filewatcher.c : removed unused variable 'filename' in 
2765           ves_icall_System_IO_FSW_SupportsFSW
2766
2767 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
2768
2769         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
2770         obsolete, removed.
2771
2772 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
2773
2774         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
2775         
2776         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
2777
2778 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
2779
2780         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
2781         Implement generics support.
2782         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
2783
2784         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
2785         type_args and method_args arguments.
2786         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
2787         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
2788         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
2789
2790 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
2791
2792         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
2793           It adds a rootimage parameter to mono_reflection_get_type_internal,
2794           adds new function mono_reflection_get_type_with_rootimage and use
2795           the rootimage to resolve the types instead of the current image
2796
2797 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2798
2799         * culture-info-table.h: Forgot to update after r78304.
2800
2801 2007-07-13  Raja R Harinath  <rharinath@novell.com>
2802
2803         * class.c (mono_class_is_open_constructed_type)
2804         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
2805
2806 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
2807
2808         * class.c (mono_bounded_array_class_get):  method fails if used with
2809         an incomplete TypeBuilder enum (no basetype field), fixed it by 
2810         avoiding calculating the size for such array as it cannot be instantiated.
2811         Fix bug #82015
2812
2813 2007-07-12  Raja R Harinath  <rharinath@novell.com>
2814
2815         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
2816         field.
2817         * metadata.c, reflection.c: Update to changes.
2818
2819 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
2820
2821         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
2822         mono_class_is_valid_enum, they are used to valide a enum when loading.
2823         * reflection.c: used new functions to throw TypeLoadException when and
2824         invalid enum is build with TypeBuilder. Fixes #82018
2825   
2826 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2827
2828         * object.c: forgot commit of mono_class_setup_methods () to access
2829         iface->methods.
2830         * object-internals.h: added a few more handy fields to
2831         MonoIMTCheckItem.
2832
2833 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
2834
2835         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
2836         iface->methods.
2837
2838 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
2839
2840         * class-internals.h, object-internals.h, object.c: IMT-based
2841         interface invocation core from Massimiliano Mantione
2842         (massi@ximian.com) with a reworked arch-specific interface,
2843         bsearch implementation and a few bugfixes and memory savings by me.
2844
2845 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
2846
2847         * class.c (mono_class_create_from_typedef): mono would segfault if 
2848         an enum did not have a __value field. It now throws a TypeLoadException
2849         for such cases. Fix bug #82022
2850
2851 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
2852
2853         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
2854
2855 2007-07-09  Mark Probst  <mark.probst@gmail.com>
2856
2857         * class.c (mono_class_init): If a class is already inited but has
2858         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
2859
2860 2007-07-09  Mark Probst  <mark.probst@gmail.com>
2861
2862         * class.c: Properly handle the case of an unimplemented interface
2863         method.  Fixes: 81673.
2864
2865 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2866
2867         * class-internals.h, object.c: cleanup patch from massi: use
2868         MonoVTable->interface_bitmap since the vtable interfaces offset array
2869         is going away.
2870
2871 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
2872
2873         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
2874         GetMDStreamVersion icall instead.
2875
2876 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
2877
2878         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
2879         not use mono_dl_build_path() with a full library name: makes
2880         fallbacks to libgaim and libfam work.
2881
2882 2007-07-06  William Holmes  <billholmes54@gmail.com>
2883
2884         * assembly.c: Added a continue statement in probe_for_partial_name when
2885          parse_assembly_directory_name fails.  Fixes : 82002
2886
2887 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
2888
2889         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
2890         and added a verification  for TYPEDBYREF.
2891         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
2892         make native int interchangeable with int32 and some small cleanup and formating.
2893         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
2894         handle byref of byref.
2895         * verify.c (push_local): handle byref of byref.
2896         * verify.c (do_binop): invalid mix of values is unverifiable
2897         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
2898         added visibility checks
2899         * verify.c (field related method): added visibility checks
2900         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
2901
2902 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
2903
2904         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
2905         string.
2906
2907 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
2908
2909         * profiler.c (mono_profiler_load): Fix an off-by-one error.
2910
2911         * marshal.c (emit_marshal_string): When returning a string from managed code,
2912         allways make a copy even for unicode strings. Fixes #81990.
2913
2914 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
2915
2916         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
2917         of byref generic inst types (bug #81997).
2918
2919 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
2920
2921         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
2922         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
2923
2924 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
2925
2926         * marshal.c (emit_marshal_string): Add support for unicode strings in
2927         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
2928
2929 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
2930
2931         * verify.c: field load/store are now verified, missing only access checks now
2932
2933 2007-06-28  Martin Baulig  <martin@ximian.com>
2934
2935         * mono-debug.c (mono_debug_debugger_version): New public variable.
2936
2937 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
2938
2939         * locales.c: When constructing DateTimeFormat or NumberFormat for
2940         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
2941         MonoCultureInfo contructed from the current locale is always
2942         read-only and has UseUserOverride set to true. All MonoCultureInfo
2943         instances returned for GetCultures have both IsReadOnly and
2944         UseUserOverride set to true. Fixes part of bug #81930.
2945
2946 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
2947
2948        * icall-def.h: Update System.__ComObject icalls
2949        * marshal.c: Avoid managed transition (and object creation)
2950        when looking up COM interface in RCW.
2951        * marshal.h: Ditto.
2952        
2953        Code is contributed under MIT/X11 license.
2954
2955 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
2956
2957         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
2958         to avoid crashes during assembly unloading.
2959
2960 2007-06-22  Raja R Harinath  <rharinath@novell.com>
2961
2962         Fix MethodInfo.IsGenericMethodDefinition
2963         * reflection.c (mono_reflection_bind_generic_method_parameters):
2964         Rearrange code to ensure we always uses a generic method definition.
2965         * class.c (mono_class_inflate_generic_method_full): Set
2966         'generic_container' field only for generic method definitions.
2967         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
2968         Use presense of 'generic_container' field as indication of being a
2969         generic method definition.
2970
2971 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
2972
2973         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2974
2975         * object-internals.h: Reflect changes in the layout of the managed Delegate
2976         class.
2977         
2978         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
2979         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
2980         runtime memory used by the dynamic method. Fixes #77146.
2981
2982 2007-06-21  Dick Porter  <dick@ximian.com>
2983
2984         * file-io.h: 
2985         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
2986         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
2987         81767.
2988
2989 2007-06-21  Raja R Harinath  <rharinath@novell.com>
2990
2991         * reflection.c (method_encode_methodspec): Add a tripwire.
2992         * class.c (inflate_generic_type): The fully open generic type is
2993         not the same as the generic type definition.
2994
2995 2007-06-21  Martin Baulig  <martin@ximian.com>
2996
2997         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
2998
2999         * mono-debug-debugger.h
3000         (MonoDebuggerBreakpointInfo): Removed.
3001         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
3002         (mono_debugger_remove_breakpoint): Likewise.
3003         (mono_debugger_breakpoint_callback): Likewise.
3004         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
3005
3006 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3007
3008         * metadata.c (mono_metadata_lookup_generic_class): The fully open
3009         generic type is not the same as the generic type definition.
3010         * class.c (mono_generic_class_get_class): Likewise.
3011
3012 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
3013
3014         * icall.c: The second argument to 
3015         System.Reflection.MethodBase.GetMethodFromHandleInternalType
3016         is a MonoType not a MonoClass.
3017
3018 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3019
3020         * verify.c: support for function pointers in the verifier
3021
3022 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3023
3024         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
3025
3026 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
3027
3028         * assembly.c: removed Mono.Data.SqliteClient from the list of
3029         forward-compatible assemblies as it breaks the ABI (bug #81899).
3030
3031 2007-06-19  Raja R Harinath  <rharinath@novell.com>
3032
3033         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
3034         lookup/update with the loader lock.
3035         * reflection.c (mono_class_bind_generic_parameters): No need to
3036         protect mono_metadata_lookup_* with the loader lock.
3037         * class.c (inflate_generic_type): Likewise.
3038         
3039         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
3040         on a generic instantiated type.
3041
3042 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
3043
3044         *verify.c: produce meanfull error messages on verification error
3045         *verify.c: fixed some cases of verification errors reported as validation errors
3046         *pedump.c: fixed the error name array, now it shows validation errors properly
3047         *verify.h: fixed the contant that should be used for verification errors
3048
3049 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
3050
3051         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
3052         for bug #77596, 81858 and 80743 (generics data structures on domain
3053         unload).
3054
3055 2007-06-15  Raja R Harinath  <rharinath@novell.com>
3056
3057         Avoid allocating 'MonoGenericContext' on the heap.
3058         * class-internals (_MonoMethodInflated::context): Make field
3059         inline, not a pointer.
3060         * loader.c (method_from_methodspec): Allocate 'new_context' on the
3061         stack.  Use the context embedded within the inflated method as the
3062         hash key, rather than 'new_context'.
3063         * class.c (inflate_generic_context): Simplify.  Return a struct
3064         rather than allocating on the heap.
3065         (mono_class_inflate_generic_method_full): Update to changes.  Now,
3066         doesn't salt away a copy of the context -- simplifying the
3067         lifetime rules of a 'MonoGenericContext *'.
3068         (mono_method_get_context): Return pointer to embedded context.
3069         (setup_generic_array_ifaces): Allocate temporary context on stack.
3070         * reflection.c (inflate_mono_method): Likewise.
3071         (mono_reflection_bind_generic_method_parameters): Likewise.
3072         Use the context embedded within the inflated method as the hash key.
3073
3074         Avoid a source of allocation of 'MonoGenericContext'.
3075         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
3076         and 'cached_context' fields into embedded 'MonoGenericContext' field.
3077         * class.c: Update to changes.
3078         (mono_generic_class_get_context): Simplify drastically.  Now just
3079         returns a pointer to the field.
3080         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
3081         argument as a const pointer.
3082         (mono_metadata_generic_context_equal): Likewise.
3083         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
3084         Update to changes.
3085
3086 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
3087
3088         * verify.c improved the handling of brtrue/brfalse, factored out common code
3089
3090 2007-06-14  Raja R Harinath  <rharinath@novell.com>
3091
3092         Kill MonoGenericMethod.
3093         * class-internals.h (MonoGenericContext::method_inst): Rename from
3094         'gmethod' and convert to a MonoGenericInst.
3095         (MonoGenericMethod): Remove.
3096         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
3097         * loader.c (method_from_methodspec): Update to changes.  Use a
3098         MonoGenericContext as the key to the hashtable.
3099         * metadata.c (mono_metadata_generic_context_equal): Rename from 
3100         'mono_metadata_generic_method_equal' and take MonoGenericContext.
3101         (mono_metadata_generic_context_hash): Likewise from
3102         'mono_metadata_generic_method_hash'.  Change hash function.
3103         (mono_metadata_load_generic_params): Update to changes.
3104         (mono_get_shared_generic_method): Remove.
3105         * metadata-internals.h (mono_get_shared_generic_method): Remove.
3106         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
3107         (inflate_generic_context): Likewise.
3108         (mono_class_inflate_generic_method_full): Likewise.
3109         (setup_generic_array_ifaces): Likewise.
3110         (mono_class_create_from_typespec): Likewise.
3111         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
3112         (method_encode_methodspec): Update callsite.
3113         (reflection_methodbuilder_to_mono_method): Update to changes.
3114         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
3115         MonoGenericContext as the key to the hashtable.
3116         (inflate_mono_method): Update to changes.
3117
3118         * class-internals.h (MonoGenericMethod::container): Remove.
3119         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
3120
3121 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
3122
3123         * profiler-private.h, profiler.c, profiler.h: added API to profile
3124         exception events.
3125
3126 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
3127
3128         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
3129
3130 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
3131
3132         * verify.c: method invocation is now validated, now we verify parameter types on stack.
3133         Fixed overflow and underflow not aborting the verification process.
3134
3135 2007-06-13  Mark Probst  <mark.probst@gmail.com>
3136
3137         * class-internals.h (MonoStats): Added stats entries for dynamic
3138         code allocations.
3139
3140 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
3141
3142         * loader.c (mono_free_method): Free header->locals and header->clauses.
3143
3144         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
3145         dynamic case.
3146
3147         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
3148
3149         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
3150
3151 2007-06-12  Raja R Harinath  <rharinath@novell.com>
3152
3153         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
3154         the tables.
3155
3156 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3157
3158         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
3159
3160 2007-06-11  Raja R Harinath  <harinath@gmail.com>
3161
3162         MonoGenericMethod on a diet
3163         * class-internals.h (_MonoMethodInflated::reflection_info): Move
3164         here ...
3165         (_MonoGenericMethod::reflection_info): ... from here.
3166         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
3167         Update to changes.
3168         * reflection.c (inflate_mono_method): Likewise.
3169         (mono_reflection_bind_generic_method_parameters): Likewise.
3170
3171 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3172
3173         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
3174         *verify.c: factored long ldarg forms to share code with short forms
3175
3176 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3177
3178         *verify.c: fixed code formating factored some duplicate code
3179         into a new function
3180
3181         *verify.h: fixed binary incompatibility introduced earlier
3182
3183         *pedump.c: fixed formating
3184
3185 2007-06-11  Raja R Harinath  <harinath@gmail.com>
3186
3187         Fix assertion when disassembling Mono.C5.dll
3188         * loader.c (method_from_methodspec): Avoid inflating a method
3189         twice with the same context.  If the methodref is inflated, use
3190         the declaring method instead.
3191
3192         * class.c (mono_class_from_generic_parameter): Fix case similar to
3193         bug #81830 handled below, but for method containers.
3194
3195 2007-06-10  Raja R Harinath  <harinath@gmail.com>
3196
3197         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
3198         get_shared_generic_class.  Directly inflate the instance.
3199         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
3200         (inflate_generic_class): Delete.
3201         (get_shared_generic_class): Delete.  Move setting of
3202         'cached_class' and 'cached_context' ...
3203         * metadata.c (mono_metadata_lookup_generic_class): ... here.
3204
3205         * metadata.c (mono_metadata_lookup_generic_class): Change
3206         signature to take the components of a MonoGenericClass rather than
3207         an allocated MonoGenericClass.  Change semantics to be intern-like.
3208         * reflection.c (mono_class_bind_generic_parameters): Update to
3209         changes.  Make locking region tighter.
3210         * class.c (inflate_generic_class): Update to changes.
3211         (get_shared_generic_class): Likewise.
3212         * metadata-internals.h: Likewise.
3213
3214         * reflection.c (mono_class_bind_generic_parameters): Take and
3215         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
3216         (mono_reflection_bind_generic_parameters): Use
3217         'mono_class_bind_generic_parameters' rather than duplicate the code.
3218         * class.c (mono_bounded_array_class_get): Update to changes.
3219         * object-internals.h: Likewise.
3220
3221         * reflection.c (mono_class_bind_generic_parameters): Only support
3222         parameterizing generic type definitions.  Remove support for other
3223         open types.
3224
3225 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
3226
3227         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
3228
3229         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
3230         in the dynamic case.
3231
3232 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
3233
3234         * threads.c: When cleaning up thread, reset the Background bit.
3235         Fixes bug #81720.
3236
3237 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
3238
3239        * metadata.c: Move variable declarations to top of scope.
3240        * verify.c: Move variable declarations to top of scope.
3241
3242        Code is contributed under MIT/X11 license.
3243
3244 2007-06-08  Raja R Harinath  <rharinath@novell.com>
3245
3246         * reflection.c (mono_class_bind_generic_parameters): Replace
3247         open-coded loop with mono_metadata_inflate_generic_inst.
3248
3249         * class.c (get_shared_generic_class): Don't call
3250         mono_get_shared_generic_inst.  Use the container's own
3251         'class_inst'.
3252
3253         * metadata.c (mono_metadata_load_generic_params): Move
3254         initialization of 'context' field here from ...
3255         * class.c (mono_class_create_from_typedef): ... here, and ...
3256         * loader.c (mono_get_method_from_token): ... here.
3257
3258         * class.c (get_shared_generic_class): Rename from
3259         mono_get_shared_generic_class and make static.
3260         (mono_get_shared_generic_inst): Move to metadata.c.
3261         * loader.c (mono_get_shared_generic_method): Likewise.
3262         * class-internals.h, metadata-internals.h: Update to changes.
3263
3264         Fix #81830
3265         * class.c (mono_class_from_generic_parameter): Don't assume a
3266         generic container owner exists.  Generic containers from monodis
3267         don't have any.
3268
3269 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
3270
3271         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
3272         * verify.h: new typedefs to returns the non-verifiable status
3273         * verify.c: initial implementation of generics, stack merging and object compatibility check
3274
3275 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3276
3277         * class.c, image.c, class-internals.h (MonoImage): class_cache is
3278         a MonoInternalHashTable again (fixed bug in internal hash table
3279         code).
3280
3281 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3282
3283         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3284         MonoInternalHashTable again (fixed bug in internal hash table
3285         code).
3286
3287 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3288
3289         * class.c, image.c, class-internals.h, domain.c,
3290         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
3291         changes.  Have to figure out what makes them break the SWF
3292         regression.
3293
3294 2007-06-04  Mark Probst  <mark.probst@gmail.com>
3295
3296         * class.c, image.c, class-internals.h (MonoImage): class_cache is
3297         a MonoInternalHashTable now.
3298
3299 2007-06-04  Mark Probst  <mark.probst@gmail.com>
3300
3301         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3302         MonoInternalHashTable now.
3303
3304 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
3305
3306         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
3307         invoke_impl code.
3308
3309         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
3310
3311         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
3312         dependent trampoline.
3313
3314         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3315
3316         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
3317
3318 2007-05-29  Robert Jordan  <robertj@gmx.net>
3319
3320         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
3321
3322 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
3323
3324         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
3325
3326 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
3327
3328        * marshal.c: Fix interface lookup loops for
3329        cominterop_get_com_slot_for_method and 
3330        cominterop_get_method_interface. Only need to lookup
3331        if type is a class, else use interface type method is on.
3332
3333        Code is contributed under MIT/X11 license.
3334
3335 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
3336
3337         * reflection.c: HasSecurity can be present even if no specially 
3338         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
3339         SecurityAttribute). Fix CAS regression tests on buildbot.
3340
3341 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
3342
3343        * appdomain.c: Add configure checks for header files.
3344        * image.c: Add configure checks for header files.
3345        * file-io.c: Add configure checks for header files.
3346        * debug-mono-symfile.c: Add configure checks for header files.
3347        * threadpool.c: Add configure checks for header files.
3348        * console-io.c: Add configure checks for header files.
3349        * profiler.c: Add configure checks for header files.
3350        * rawbuffer.c: Add configure checks for header files.
3351        * icall.c: Add configure checks for header files.
3352        * rand.c: Add configure checks for header files.
3353        * socket-io.c: Add configure checks for header files.
3354
3355        Code is contributed under MIT/X11 license.
3356
3357 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
3358
3359         * reflection.c (mono_custom_attrs_from_builders): Remove the 
3360         assertion as it breaks the build.
3361         
3362         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
3363
3364         * reflection.c (lookup_custom_attr): Make a copy here too.
3365
3366         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
3367         dynamic images.
3368
3369         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
3370         images.
3371
3372         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
3373         info.
3374
3375 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
3376
3377         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
3378         (load_cattr_value): Ditto.
3379
3380 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
3381
3382         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
3383
3384 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
3385
3386         * threads.c: In "start_wrapper", set apartment_state to MTA if
3387         apartment_state is Unknown and we're running on 2.0 profile or
3388         higher.
3389         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
3390         to main method, then set apartment_state to Unknown on 1.0 profile,
3391         and MTA on 2.0 profile.
3392
3393 2007-05-16  Jb Evain  <jb@nurv.fr>
3394
3395         * class-internals.h (MonoDefaults): Add an attribute_class and
3396           customattribute_data_class.
3397         * domain.c (mono_init_internal): Populate them.
3398         * reflection.c: Use them to remove duplicates. Make a vew
3399         MonoClass variables `static'.
3400
3401 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
3402
3403         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
3404         step in implementing IMT, so that all isinst checks now can go
3405         through the bitmap.
3406         This was needed because vtables for TransparentProxy need to look
3407         like the vtable of the "target" class, so they need to point to
3408         its interface bitmap directly.
3409
3410         * object.c: inside "mono_class_create_runtime_vtable" and
3411         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
3412
3413 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
3414
3415         * object-internals.h
3416           culture-info.h : added territory field in MonoCulture and
3417           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
3418         * locales.c : fill territory field above too.
3419         * culture-info-table.h : regenerated.
3420
3421 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
3422
3423         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
3424         Fixes #81599.
3425
3426 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
3427
3428         * object.c: Always initialize apartment, even if 
3429         there is no custom attributes on entry point.
3430         
3431         Code is contributed under MIT/X11 license.
3432
3433 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
3434
3435         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
3436         * metadata.c: If no encoding is set, check for unicode
3437         on class.
3438         
3439         Code is contributed under MIT/X11 license.
3440
3441 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
3442
3443         * threads.c: Handle if mono_thread_current returns NULL 
3444         
3445         Code is contributed under MIT/X11 license.
3446
3447 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
3448
3449         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
3450         in start_wrapper. Added mono_thread_init_apartment_state and
3451         mono_thread_cleanup_apartment_state.
3452         * object.c: Initialize thread apartment state on main thread
3453         by checking for STAThreadAttribute on entry point.
3454         * object-internals.h: Add apartment_state field to MonoThread.
3455         * threads-types.h: Add unmanaged definition of 
3456         System.Threading.ApartmentState, MonoThreadApartmentState.
3457         
3458         Code is contributed under MIT/X11 license.
3459         
3460 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
3461
3462         * class.c: Fix windows build.
3463         * class-internals.h: Fix windows build.
3464         
3465         Code is contributed under MIT/X11 license.
3466
3467 2007-05-08  Robert Jordan  <robertj@gmx.net>
3468
3469         * process.c (CreateProcess_internal):
3470         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
3471         .CreateNoWindow was specified. Fixes #81496.
3472
3473 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
3474
3475         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
3476         step in implementing IMT, replaced it with two compact arrays
3477         (interfaces_packed and interface_offsets_packed) and a bitmap that
3478         is used for isinst checks (interface_bitmap).
3479
3480         * class.c: (compare_interface_ids): compare function to pass to
3481         bsearch when looking for an interface with a given id.
3482         (mono_class_interface_offset): reimplemented using bsearch on
3483         interfaces_packed, getting the offset from interface_offsets_packed.
3484         (print_implemented_interfaces): utility debugging function.
3485         (setup_interface_offsets): reworked to initialize interfaces_packed,
3486         interface_offsets_packed and interface_bitmap.
3487
3488         * object.c: replaced all accesses to "MonoClass.interface_offsets"
3489         with uses of interfaces_packed and interface_offsets_packed.
3490
3491 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
3492
3493         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
3494         mono_class_interface_offset prototype to wrap all accesses to
3495         "MonoClass.interface_offsets".
3496
3497         * class.c: Implemented mono_class_interface_offset, and wrapped all
3498         accesses to "MonoClass.interface_offsets".
3499
3500         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
3501         "MonoClass.interface_offsets".
3502
3503 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
3504
3505         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
3506         GetMethodFromHandle overloads (bug #78637).
3507
3508 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3509
3510         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
3511         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
3512
3513 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
3514
3515         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
3516         #81498.
3517
3518         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
3519         gracefully.
3520         (mono_custom_attrs_from_index): Ditto.
3521
3522         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
3523         Fixes #81501.
3524
3525 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
3526
3527         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
3528         is now allocated from a mempool.
3529
3530 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
3531
3532         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
3533         caller holds threads_lock, leading to deadlocks. Fixes #81476.
3534
3535 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
3536
3537         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
3538         mono_loader_clear_error () too late. Fixes #81463.
3539
3540 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
3541
3542         * culture-info-table.h : regenerated.
3543
3544 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
3545
3546         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
3547         is missing.
3548
3549 2007-04-25  Dick Porter  <dick@ximian.com>
3550
3551         * Makefile.am: Put the mingw enforced-optimisation back into the
3552         PLATFORM_WIN32 section.
3553
3554 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
3555
3556         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
3557         patch.
3558
3559         * image.c (mono_image_load_module): New API function to load a module reference.
3560
3561         * image.c (load_modules): Load modules lazily. Fixes #80812.
3562
3563         * class.c (mono_class_from_typeref): Use mono_image_load_module.
3564         
3565         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
3566
3567         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
3568         to mono_image_load_module_dynamic.
3569
3570 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
3571
3572         * marshal.c: Fix calling convention for CCW on non-windows
3573         platforms. STDCALL on windows, CDECL everywhere else to work 
3574         with XPCOM and MainWin COM.
3575         
3576         Code is contributed under MIT/X11 license.
3577
3578 2007-04-23  Martin Baulig  <martin@ximian.com>
3579
3580         Fix #80969.
3581
3582         * loader.c
3583         (method_from_memberref): Added `gboolean *used_context' argument.
3584         (mono_get_method_from_token): Likewise.
3585         (mono_get_method_full): Don't insert the method in the cache when
3586         `used_context' is true.
3587
3588 2007-04-23  Raja R Harinath  <rharinath@novell.com>
3589
3590         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
3591
3592         * reflection.c (mono_reflection_bind_generic_parameters): Don't
3593         create new MonoTypes for returned types.
3594         * class.c (mono_generic_class_get_class): Export mono-internal.
3595         * class-internals.h: Update to changes.
3596
3597 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
3598
3599         * threadpool.c, threadpool.h, icall-def.h: patch from
3600         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
3601
3602 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
3603
3604         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
3605         
3606         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
3607
3608         * threads.c (mono_thread_get_stack_bounds): New helper function.
3609
3610         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
3611         Correctly compute stack bounds when attaching. Fixes #81394.
3612
3613 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
3614
3615         * reflection.c: fix handling of doubles in custom attributes
3616         for the arm-fpa format (bug #81368).
3617
3618 2007-04-18  Raja R Harinath  <rharinath@novell.com>
3619
3620         * reflection.c (assembly_add_win32_resources): Mildly relax an
3621         bounds check to let the end pointer point just past the end of the
3622         allocated buffer.  (may fix #81384)
3623
3624 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
3625
3626         * culture-info-table.h : regenerated.
3627
3628 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
3629
3630         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
3631         the thread is aborted early.
3632
3633 2007-04-05  Dick Porter  <dick@ximian.com>
3634
3635         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
3636         FindFirstFile()/FindNextFile() to find entries.  This lets the
3637         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
3638         81038.
3639
3640         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
3641         the parameters of
3642         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
3643
3644 2007-04-04  Martin Baulig  <martin@ximian.com>
3645
3646         * debug-helpers.c
3647         (mono_method_desc_full_match): Add support for nested classes.
3648
3649 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
3650
3651         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
3652
3653 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
3654
3655         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
3656         waiting for too many threads.
3657
3658 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
3659
3660         * environment.c: Fix return value check on uname so we can get the 
3661         executing version on Solaris operating systems.
3662
3663 2007-03-28  Jb Evain  <jbevain@gmail.com>
3664
3665         * class.c (mono_type_get_name_recurse): Complete the
3666         fix for the creation of assembly qualified names for
3667         pointer types. Fixes #81208.
3668
3669 2007-03-27  Dick Porter  <dick@ximian.com>
3670
3671         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
3672         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
3673         changed.
3674
3675         * threads.c
3676         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
3677         the value of ReleaseMutex().
3678
3679 2007-03-27  Dick Porter  <dick@ximian.com>
3680
3681         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
3682         in little-endian order, not network endian, so must be converted
3683         to host endian here.  Fixes bug 80593.
3684
3685 2007-03-22  Jb Evain  <jbevain@gmail.com>
3686
3687         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
3688         qualified names for pointer types. Fixes #81208.
3689
3690 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
3691
3692         * marshal.c: Add support for PreserveSigAttribute. 
3693         
3694         Code is contributed under MIT/X11 license.
3695
3696 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
3697
3698         * process.c: Fix endianness issues. Fixes #81126.
3699
3700         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
3701         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
3702
3703         * image.c (mono_image_lookup_resource): Make this work on big-endian
3704         machines.Change API contract so the caller needs to free the return value.
3705         
3706         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
3707         API change.
3708         
3709 2007-03-14  Martin Baulig  <martin@ximian.com>
3710
3711         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
3712         mono_type_get_desc() as well.
3713
3714 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
3715
3716         * icall.c:  Fix environ access in VS.  
3717         
3718 2007-03-13  Alp Toker  <alp@atoker.com>
3719
3720         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
3721         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
3722         #63841.
3723
3724 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
3725
3726         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
3727         circular references among dynamic methods. Fixes #81091.
3728
3729         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
3730
3731 2007-03-09  Martin Baulig  <martin@ximian.com>
3732
3733         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
3734
3735 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
3736
3737         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
3738         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
3739         
3740         Code is contributed under MIT/X11 license.
3741         
3742 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
3743
3744         * loader.c: Reapply patch for bug #79424.
3745
3746 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
3747
3748         * metadata.c (mono_type_to_unmanaged): Only convert object to
3749         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
3750
3751 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
3752
3753         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
3754         (and incorrectly set) is_reference field from MonoGenericInst.
3755
3756 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
3757
3758         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
3759         a little earlier.
3760
3761         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
3762
3763         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
3764
3765 2007-03-05  Miguel de Icaza  <miguel@novell.com>
3766
3767         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
3768         FileOptions.1 value to mean "temporary", map that to
3769         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
3770
3771         Fixes 80688
3772
3773 2007-03-03  Marek Habersack  <mhabersack@novell.com>
3774
3775         * appdomain.c: implement MS .Net style shadow copying. Copies of
3776         the assemblies are made in a subdirectory of the dynamic base
3777         directory, the assembly names are preserved.
3778         Copy .mdb and .config files along with the assemblies being shadowed.
3779
3780 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
3781
3782         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
3783         (emit_marshal_handleref): Ditto.
3784
3785         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
3786         on Visual C++. Fixes #80671.
3787
3788 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
3789
3790         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
3791         for clone operations.
3792
3793 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
3794
3795         * marshal.c: Fix warnings.
3796
3797 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
3798
3799         * loader.c: allow case-insensitive matching of the dll name
3800         in dllmap handling when prefixed with "i:".
3801
3802 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
3803
3804         * threads.c: Fix #ifdef for dummy_apc function for VS.
3805
3806 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
3807
3808         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
3809
3810 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
3811         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
3812         giving precedence to the methods with a fully qualified name
3813         (InterfaceName.MethodName) when building the interface sections
3814         of the vtable.
3815
3816 2007-02-16  Dick Porter  <dick@ximian.com>
3817
3818         * threadpool.c (append_job): Fix fast-path array handling, so it's
3819         less likely the array will grow exponentially when the load is
3820         heavy.
3821
3822 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
3823
3824         * metadata-internals.h, loader.c: fix dllmap lookup order
3825         for non-function maps, too, and prepare for fallback code.
3826
3827 2007-02-12  Robert Jordan  <robertj@gmx.net>
3828
3829         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
3830         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
3831         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
3832         GlobalFree. Fixes a part of bug #77075.
3833
3834 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
3835
3836         * loader.c: implemented typedef parent in field memberref.
3837
3838 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
3839
3840         * marshal.c: Fix warnings and remember to call Release on
3841         IUnknown of RCW.
3842         
3843         Code is contributed under MIT/X11 license.
3844
3845 2007-02-10  Miguel de Icaza  <miguel@novell.com>
3846
3847         * class-internals.h: Add MonoHandleRef definition, and
3848         handleref_class to mono_defaults. 
3849
3850         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
3851         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
3852
3853         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
3854         (do nothing on this stage)
3855         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
3856         (emit_marshal_handleref): New method, used for argument handling
3857         of HandleRefs. 
3858
3859 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
3860
3861         * class.c (mono_class_setup_parent): Lazily init com types.
3862         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
3863         init com types.
3864         * object.c (mono_remote_class_vtable): Lazily init com types.
3865         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
3866         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
3867         * domain-internals.h: Expose mono_init_com_types.
3868         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
3869         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
3870         Add support for COM Callable Wrapper marshalling.
3871         * marshal.h: Add icall definitions.
3872         * gc.c: Handle freeing of CCWs in finalizer code.
3873         
3874         Code is contributed under MIT/X11 license.
3875
3876 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
3877
3878         * reflection.c: changed all the signature encoding code to use
3879         a variable-sized buffer.
3880
3881 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
3882
3883         * marshal.c: locking fixes: never take the loader lock
3884         or other runtime locks when holding the marshal lock
3885         (fixes bug#80664).
3886
3887 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
3888
3889         * marshal.c: make the delegate function pointer mapping
3890         work for the moving GC.
3891
3892 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
3893
3894         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
3895         for bug #80618.
3896
3897 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
3898
3899         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
3900         gmodule.
3901
3902 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
3903
3904         * threadpool.c: made the code moving-GC safe.
3905
3906 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
3907
3908         * assembly.c, boehm-gc.c, class-internals.h, class.c,
3909         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
3910         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
3911         warning cleanup.
3912         * reflection.c: warning cleanup, some threading and moving GC fixes.
3913
3914 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
3915
3916         * class.c, loader.c: create the needed Set/Get/Address array methods
3917         as well as the .ctors in mono_class_init (), fixes bug #80567.
3918
3919 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
3920
3921         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
3922         we doesn't decrease its alignment. Should fix the sparc build.
3923
3924 2007-01-24  Dick Porter  <dick@ximian.com>
3925
3926         * socket-io.c
3927         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3928         Create the returned object if we need to ignore an unsupported
3929         socket option.  Fixes a segfault reported by Atsushi.
3930
3931 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
3932
3933         * class.c, object.c: restrict GC-tracked fields to
3934         UIntPtr fields used inside corlib, so we provide better
3935         type info to the GC and also allow broken packing as in
3936         bug #80580.
3937
3938 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
3939
3940         * sgen-gc.c: removed duplicated function.
3941
3942 2007-01-19  Miguel de Icaza  <miguel@novell.com>
3943
3944         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
3945         value that means that the value is not supported, but that we
3946         should not return a failure, but instead report this as a
3947         successful operation.
3948
3949 2007-01-19  Raja R Harinath  <rharinath@novell.com>
3950
3951         Fix tests/bug79956.2.il
3952         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
3953         (mono_generic_class_get_class): If the generic definition in an
3954         enum, copy over other fields related to it.
3955
3956 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
3957
3958         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
3959         genericinst enums (bug #79215).
3960
3961 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
3962         * class.c: Fix bug 80307.
3963
3964 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
3965
3966         * image.c: if the file table is not present, try to load
3967         all the modules, since we don't have info about them
3968         having or not metadata (bug #80517).
3969         * assembly.c: allow mono_assembly_load_references () to
3970         work for netmodules.
3971
3972 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
3973
3974         * image.c, metadata-internals.h, object.c: execute module
3975         cctors when running on the 2 runtime if present (bug #80487).
3976
3977 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
3978
3979         * icall.c: optimized InitializeArray() on bigendian.
3980
3981 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
3982
3983         * icall.c: fix for the broken ARM FPA double format.
3984
3985 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
3986
3987         * icall.c: handle endian issues for r4 and r8 types, too, in
3988         the InitializeArray() icall.
3989
3990 2007-01-15  Miguel de Icaza  <miguel@novell.com>
3991
3992         * loader.c (mono_loader_error_prepare_exception): Clear the error
3993         once we have extracted the information from it, do this before we
3994         call into the JIT's class loading mechanisms.
3995
3996         * object.c (mono_class_create_runtime_vtable): Do not clear the
3997         loader error before calling mono_class_get_exception_for_failure
3998         as the loader error is needed inside
3999         mono_class_get_exception_for_failure to throw the error (thinko).
4000
4001         Fixes #80521
4002         
4003 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
4004
4005         * reflection.c: align fields rva data so it's faster to load at
4006         runtime.
4007
4008 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4009
4010         Prepare to simplify GenericMethod handling.
4011         * class-internals.h (mono_method_get_context): New accessor function.
4012         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
4013         rather than directly accessing '->context' field.
4014
4015         * class-internals.h (_MonoGenericParam.method): Move ...
4016         (_MonoGenericContainer): ... here.  Add into union with klass field.
4017         * class.c, icall.c, loader.c, metadata.c, reflection.c:
4018         Update to changes.
4019
4020 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
4021
4022         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
4023         the wrapper type enum and reduce relocations.
4024
4025 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4026
4027         * reflection.c (inflate_mono_method): Reuse method instantiation
4028         from the generic method, if available.
4029
4030 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4031
4032         * marshal.c (emit_marshal_variant): Fix conv_arg
4033         type in last commit, based on whether parameter is byref.
4034         
4035 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4036
4037         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
4038         marshalling.
4039         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
4040         MONO_TYPE_OBJECT back for VARIANT support.
4041
4042 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4043
4044         * marshal.c, marshal.h, icall-def.h: Implement 
4045         Marshal.ReAllocCoTaskMem.
4046
4047 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
4048
4049         * marshal.c: memory retention fixes: use the proper
4050         image cache for runtime_invoke method lookups.
4051
4052 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
4053
4054         * mempool.c: added code to help debug mempool allocations.
4055
4056 2007-01-11  Dick Porter  <dick@ximian.com>
4057
4058         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
4059         support (experimenting with faking it with IP_MTU_DISCOVER for
4060         systems that don't have IP_DONTFRAGMENT.)
4061         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
4062         icall.
4063
4064         * icall-def.h: new System.Net.Sockets.Disconnect icall.
4065
4066         * socket-io.h: Add new fields to MonoSocketAsyncResult
4067         corresponding to the new ones in Socket.cs.
4068
4069 2007-01-11  Raja R Harinath  <rharinath@novell.com>
4070
4071         Fix IronPython regression mentioned in #80249
4072         * metadata.c (do_mono_metadata_parse_generic_class): Clear
4073         'cached_context' field, since it may have been initialized as a
4074         side-effect of metadata parsing.
4075
4076         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
4077         (_MonoGenericClass.cached_class): Move here and rename from lone
4078         remaining field of ...
4079         (_MonoInflatedGenericClass): ... this.  Remove.
4080         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
4081         to changes.
4082
4083         Fix mcs/tests/test-128.cs regression.
4084         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
4085         2007-01-10 change below.
4086         [MONO_TYPE_OBJECT]: Recurse into array case.
4087
4088 2007-01-11  Raja R Harinath  <harinath@gmail.com>
4089
4090         * class-internals.h (mono_get_inflated_generic_class): Remove.
4091         * class.c (mono_get_inflated_generic_class): Remove.
4092         (mono_generic_class_get_class): Rename from
4093         mono_class_create_generic.
4094         (mono_class_from_mono_type) [GENERICINST]: Use it.
4095         * reflection.c, metadata.c: Update to changes.  Use
4096         'mono_class_from_mono_type'.
4097
4098 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
4099
4100         * reflection.c: use passed type when encoding an array element
4101         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
4102
4103 2007-01-09  Robert Jordan  <robertj@gmx.net>
4104
4105         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
4106         result arguments (someDelegate.EndInvoke (unrelatedAres)).
4107         Fixes bug #80392.
4108
4109 2007-01-09  Raja R Harinath  <rharinath@novell.com>
4110
4111         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
4112
4113         * object.c (set_value): Avoid aliasing between type->data.klass
4114         and type->data.generic_class.
4115
4116         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
4117
4118 2007-01-08  Raja R Harinath  <rharinath@novell.com>
4119
4120         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
4121         between type->data.klass and type->data.generic_class.
4122
4123 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
4124
4125         * marshal.c: In MS.NET, StringBuilder objects are not copied by
4126         value in out parameters.
4127
4128 2007-01-08  Raja R Harinath  <rharinath@novell.com>
4129
4130         Simplify invariant for MonoGenericClass::klass field.
4131         * class.c (mono_class_create_generic): Verify 'klass' is null.
4132         * metadata.c (do_mono_metadata_parse_generic_class): Don't
4133         initialize 'klass' field.
4134
4135 2007-01-05  Raja R Harinath  <rharinath@novell.com>
4136
4137         Ongoing work to avoid redundant data and simplify invariants.
4138         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
4139         'generic_class', and change type to a GenericInst.
4140         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
4141         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
4142
4143 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
4144
4145         * class.c : skip io-layer under PLATFORM_WIN32.
4146
4147 2007-01-03  Tor Lillqvist  <tml@novell.com>
4148
4149         Fix #80305: In a bundled executable, look in the bundled exe
4150         assembly to determine the runtime version. Add the possibility to
4151         bundle also the machine.config file.
4152         
4153         * assembly.c (mono_assembly_open_from_bundle): Make
4154         non-static. Allow being called even if we have no bundled
4155         assemblies, and return NULL right away in that case.
4156
4157         * domain-internals.h: Declare mono_assembly_open_from_bundle()
4158         here.
4159
4160         * domain.c (app_config_parse): Take an assembly exe file name as
4161         parameter instead of a config file name. Check for a bundled
4162         config file for that assembly by calling
4163         mono_config_string_for_assembly_file() (see below) before looking
4164         for one in the file system.
4165         (get_runtimes_from_exe): Corrsponding change to call of
4166         app_config_parse().
4167         (get_runtimes_from_exe): Check for bundled assembly exe file first
4168         by calling mono_assembly_open_from_bundle(). If no bundled
4169         assembly exe file is found, call mono_image_open() as before to
4170         look it up in the file system.
4171
4172         * mono-config.c: Add variable bundled_machinec_onfig.
4173         (mono_config_string_for_assembly_file): New function.
4174         (mono_config_for_assembly): Move code snippet that looks for a
4175         bundled assembly .config file into the above new function. Call
4176         it.
4177         (mono_register_machine_config, mono_get_machine_config): New
4178         functions to set and retrieve
4179
4180         * assembly.h: Declare mono_register_machine_config().
4181
4182         * mono-config.h: Declare mono_get_machine_config() and
4183         mono_config_string_for_assembly_file().
4184
4185         * icall.c: No declaration of environ necessary on Win32. It is
4186         declared (as a macro expanding to a function call) in stdlib.h.
4187         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
4188         New internal mono function. Returns the value of
4189         mono_get_machine_config() as a Mono string.
4190
4191         * icall-def.h: Add get_bundled_machine_config().
4192
4193 2007-01-04  Raja R Harinath  <rharinath@novell.com>
4194
4195         Remove redundant field
4196         * class-internals.h (_MonoGenericContext.container): Remove field.
4197         * loader.c (mono_method_get_signature_full): Don't parse a
4198         "container" for a signature parse when the signature is inflated
4199         immediately.
4200         (method_from_methodspec): Likewise, for a generic_inst.
4201         * class.c, metadata.c, reflection.c: Update to changes.
4202
4203 2006-01-04  Raja R Harinath  <rharinath@novell.com>
4204
4205         * class-internals.h (_MonoGenericClass): Rename 'context' field to
4206         'cached_context', and change semantics -- it starts off NULL, and
4207         is initialized on demand.
4208         * class.c (mono_generic_class_get_context): New accessor to
4209         replace 'context' field accesses.
4210         (mono_class_get_context): New helper.
4211         (*): Update to changes.
4212         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
4213
4214 2007-01-03  Miguel de Icaza  <miguel@novell.com>
4215
4216         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
4217         before the memcpy.   Fixes Marshal2 regression.
4218
4219 2007-01-02  Jb Evain  <jbevain@gmail.com>
4220
4221         * blob.h: add a MONO_TYPE_ENUM definition
4222         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
4223         fix the encoding of arrays of enums in custom attributes.
4224
4225         Fixes #79666.
4226
4227 2007-01-01  Miguel de Icaza  <miguel@novell.com>
4228
4229         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
4230         string is null terminated, but only cut the string short if it
4231         overflows the buffer.   
4232         
4233         (mono_string_to_byvalstr): Also fix this routine.   The code here
4234         was not properly terminating a string (it was only terminated
4235         because of the previous catch-all memset). 
4236
4237         I left the memset, because I do not know if applications expect
4238         the runtime to clear this region. 
4239
4240         Fixes #79944.
4241
4242         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
4243         Clear the error before returning to unmanaged code to prevent the
4244         runtime from being confused later on (fixes  80420).
4245         (ves_icall_type_from_name): Always call mono_loader_clear_error
4246         after parsing a type that could have failed.
4247         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
4248
4249         * loader.c (mono_loader_clear_error): Fix indentation.
4250
4251 2006-12-28  Martin Baulig  <martin@ximian.com>
4252
4253         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
4254
4255 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
4256
4257         * reflection.c: patch from Rolf Bjarne Kvinge to fix
4258         getting a token for an EnumBuilder.
4259
4260 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4261
4262         * reflection.c: be more careful in case resource generation
4263         fails to create the data array.
4264
4265 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
4266
4267         * sgen-gc.c: write barrier for clone and fix unregister handles.
4268
4269 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
4270
4271         * reflection.c: some fixes needed in the generics code for the moving GC.
4272
4273 2006-12-22  Robert Jordan  <robertj@gmx.net>
4274
4275         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
4276         account. Fixes bug #80299.
4277
4278 2006-12-21  Raja R Harinath  <rharinath@novell.com>
4279
4280         Fix WaitHandle usage in delegates.
4281         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
4282         * object.c (mono_wait_handle_new): Use the property set method to
4283         initialize the handle.
4284         (mono_wait_handle_get_handle): New.
4285         * threadpool.c (mono_async_invoke): Use it.
4286         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
4287         Likewise.
4288         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
4289
4290 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
4291
4292         * marshal.c (emit_marshal): Call emit_marshal_variant and
4293         emit_marshal_com_interface when applicable.
4294         (emit_marshal_variant, emit_marshal_com_interface): Add
4295         methods for this case and remove if's from emit_marshal_object.
4296         
4297 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
4298
4299         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
4300
4301 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
4302
4303         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
4304         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
4305         and GlobalFree on Windows. Remove FIXME.
4306
4307 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4308
4309         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
4310         implementation for managed objects.
4311
4312 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
4313
4314         * object.c: implemented code to be used for checking
4315         that no reference field overlaps with non-references.
4316
4317 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4318
4319         * threadpool.c: fix queue code to be compatible with the
4320         moving GC.
4321
4322 2006-12-18  Miguel de Icaza  <miguel@novell.com>
4323
4324         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
4325         in structures by throwing ArgumentNullException.
4326
4327         (emit_marshal_safehandle): Also when they are null parameters.
4328
4329         (emit_marshal_safehandle): Add support for ref
4330         SafeHandles parameters
4331
4332 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4333
4334         * profiler.c: updated to use the mono-dl API instead of
4335         gmodule.
4336
4337 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4338
4339         * profiler.c: updated to use the mono-dl dynamic loading
4340         API instead of gmodule.
4341
4342 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
4343
4344         * profiler.c: use readlink, older versions of glib don't have
4345         g_file_read_link ().
4346
4347 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4348
4349         * profiler.c: try to detect the path to mono if libc fails to provide
4350         a useful name (bug #80286).
4351
4352 2006-12-16  Raja R Harinath  <rharinath@novell.com>
4353
4354         Fix #80242
4355         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
4356         instance, use the generic type definition instead.
4357         (ves_icall_Type_GetNestedTypes): Likewise.
4358         * class.c (mono_class_create_generic): Always set the
4359         nested_classes of a generic instance to NULL, even if the generic
4360         type definition has nested types.
4361
4362 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
4363
4364         * marshal.c (mono_string_from_bstr): Revert previous Windows change
4365         and fix on Linux.
4366         
4367 2006-12-15  Miguel de Icaza  <miguel@novell.com>
4368
4369         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
4370         my arguments were in the wrong order.   I also fixed the Windows
4371         version which seems to have had the same issue.
4372
4373         (mono_free_bstr): On Unix, this is g_free.
4374         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
4375         conversions (for the tests in corlib to pass).
4376
4377 2006-12-14  Miguel de Icaza  <miguel@novell.com>
4378
4379         * marshal.c (emit_ptr_to_object_conv): For now, ignore
4380         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
4381         exception if a ref SafeHandle in a struct has changed).
4382         
4383         (emit_struct_conv): Do not perform layout checks for classes
4384         derived from SafeHandle, as those are specially handled. 
4385
4386         (emit_object_to_ptr_conv): Add support for
4387         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
4388
4389         (emit_marshal_safehandle): Implement conversion of return values
4390         of safehandles (MARSHAL_ACTION_CONV_RESULT).
4391         
4392         * threads.c: WaitHandle now is compiled with two different handles
4393         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
4394         for 2.0.
4395         
4396         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
4397         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
4398         these routines to cope with both kinds of fields.
4399
4400 2006-12-12  Miguel de Icaza  <miguel@novell.com>
4401
4402         * metadata.c (mono_type_to_unmanaged): Handle the case where
4403         type->data.klass is a SafeHandle, and in that case, return the
4404         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
4405         MONO_MARSHAL_CONV_SAFEHANDLE. 
4406
4407 2006-12-11  Miguel de Icaza  <miguel@novell.com>
4408
4409         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
4410         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
4411         calling emit_marshal_object.
4412
4413         (emit_marshal_safehandle): Implement marshalling of
4414         SafeHandle parameters (no ref support yet).
4415
4416         (MarshalAction): Document the defines as I implement
4417         them for SafeHandle.
4418
4419         (emit_marshal_object): indentation police.
4420
4421         * class-internals.h: Define MonoSafeHandle.
4422         Add safehandle_class to MonoDefaults type.
4423
4424         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
4425         list of classes to check for fields. 
4426
4427         * domain.c (mono_init_internal): Add SafeHandle to the list of
4428         mono_defaults loaded.
4429
4430 2006-12-15  Raja R Harinath  <rharinath@novell.com>
4431
4432         Fix #80253
4433         * reflection.c (mono_reflection_bind_generic_parameters): If the
4434         generic type definition is a type builder, ensure that it is fully
4435         initialized before instantiating it.  Kill some dead code.
4436
4437 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
4438
4439         * object.c: clear the loader_error () before loading
4440         more metadata stuff (bug #80258).
4441
4442 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
4443
4444         * icall.c, icall-defs.h: type modifiers icalls for
4445         parameters and properties.
4446
4447 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
4448
4449         * object.c, icall.c: fixed warnings.
4450
4451 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4452
4453         * marshal.c: fixed a couple of leaks and coding style in a few places.
4454
4455 2006-12-08  Dick Porter  <dick@ximian.com>
4456
4457         * process.c: Cope with NULL ProcessStartInfo arguments on windows
4458         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
4459         80173.
4460
4461 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4462
4463         * process.c: ProcessStartInfo may have only filename set and
4464         arguments can be NULL.
4465
4466 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4467
4468         * icall.c: fix leak found by Robert Jordan.
4469
4470 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4471
4472         * marshal.c, marshal.h: generate managed method to access an element
4473         of a multi-dimensional array.
4474
4475 2006-11-30  Paolo Molaro (lupus@ximian.com)
4476
4477         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
4478
4479 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4480
4481         * icall.c: back out GetFields () fix until the serialization code is
4482         fixed to not depend on the incorrect behaviour.
4483
4484 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
4485
4486         * profiler.c: provide defaults if none are set.
4487
4488 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
4489
4490         * Makefile.am, attrdefs.h: new public header file with
4491         constants for attributes for use by embedders.
4492
4493 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
4494
4495         * icall.c: GetFields () fix for bug #80064.
4496
4497 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
4498
4499         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
4500         removed long unused icalls.
4501
4502 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
4503   
4504         * marshal.c: 
4505                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
4506                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
4507                 can be generated without a delegate class.
4508                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
4509         
4510         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
4511
4512 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4513
4514         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
4515         #80069.
4516
4517 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4518
4519         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
4520         icall-def.h: added icalls needed by System.GC.
4521
4522 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
4523
4524         * loader.c: ensure the class in catch clauses is handled
4525         correctly for generics methods (fixes bug#79980).
4526
4527 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
4528
4529         * monitor.h, monitor.c: added mono_locks_dump () function
4530         to help debug deadlocks involving managed locks.
4531
4532 2006-11-13  Dick Porter  <dick@ximian.com>
4533
4534         * file-io.c (get_file_attributes): If the file is a symlink try
4535         and get the stat data for the target, but also add the
4536         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
4537         the specs for the windows symlink support, but will probably have
4538         to be reworked when I have test data from a vista machine.  Fixes
4539         bug 79887.
4540
4541 2006-11-13  Dick Porter  <dick@ximian.com>
4542
4543         * gc.c (mono_domain_finalize): 
4544         * marshal.c (mono_delegate_begin_invoke): 
4545         * threadpool.c (socket_io_init, mono_thread_pool_init)
4546         (mono_thread_pool_finish): 
4547         * monitor.c (mono_monitor_try_enter_internal): 
4548         * threads.c (mono_thread_resume, mono_thread_init)
4549         (mono_thread_suspend_all_other_threads)
4550         (mono_thread_execute_interruption): 
4551         * appdomain.c (mono_domain_unload): Check for NULL error returns
4552         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
4553         75733.
4554
4555 2006-11-11  Miguel de Icaza  <miguel@novell.com>
4556
4557         * process.c
4558         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
4559         Only close the handle if the value of the handle is not
4560         INVALID_HANDLE_VALUE.  This just makes the process a bit more
4561         robust.
4562
4563         Improvement for #75733, so that we do not run into this problem. 
4564
4565         
4566         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
4567         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
4568         internal variables.  Fixes #79462 
4569         
4570
4571 2006-11-09  Dick Porter  <dick@ximian.com>
4572
4573         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
4574         Use poll() not select().  Fixes bug 79397.
4575
4576 2006-11-09  Raja R Harinath  <rharinath@novell.com>
4577
4578         Fix #79872
4579         * assembly.c (mono_assembly_load_from_full): Check that the given
4580         image has an assembly manifest.
4581
4582 2006-11-09  Ankit Jain  <jankit@novell.com>
4583
4584         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
4585         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
4586         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
4587
4588 2006-11-07  Dick Porter  <dick@ximian.com>
4589
4590         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
4591         Put the old resolver behaviour back for pre-2.0 profiles.
4592
4593 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
4594
4595         * threadpool.c: precise GC and locking fixes.
4596
4597 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
4598
4599         * class.c: don't load types that have an explicit unaligned
4600         managed reference. Provide better info in the TypeLoad exception.
4601         Part of the fix for bug #79744.
4602         * object.c: use the correct check for class type load issues.
4603
4604 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
4605
4606         * class.c: enforce alignment of fields with managed references
4607         even when Pack=1 is forced by the user (bug #77788).
4608
4609 2006-11-03  Dick Porter  <dick@ximian.com>
4610
4611         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
4612         If the address reverse lookup fails, return it as the hostname
4613         anyway.  Fixes bug 79721.
4614
4615 2006-11-03  Dick Porter  <dick@ximian.com>
4616
4617         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
4618         Fix build on Windows.
4619
4620 2006-11-02  Dick Porter  <dick@ximian.com>
4621
4622         * icall-def.h: 
4623         * object-internals.h: 
4624         * exception.c (mono_get_exception_thread_interrupted): 
4625         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
4626         Fixes bug 74525.
4627
4628         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
4629         Check for pending Thread.Interrupt.
4630
4631 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
4632         * loader.c: Fixed bug 79684.
4633
4634 2006-10-27  Dick Porter  <dick@ximian.com>
4635
4636         * file-io.c (get_file_attributes): Force symlinks to directories
4637         to be returned as a regular file.  Fixes bug 79733.
4638 2006-10-26  Dick Porter  <dick@ximian.com>
4639
4640         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
4641         CreateFile to open a directory then we need to set the
4642         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
4643
4644 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
4645
4646         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
4647         friends.
4648
4649 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
4650
4651         * sgengc.c: small cleanup of timer code.
4652
4653 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4654
4655         * sgen-gc.c: fix some warnings and start adding support for
4656         complete object removal on domain unload.
4657
4658 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
4659
4660         * assembly.c: build_assembly_name should not consider a version
4661         number without build or revision number invalid. Fixes bug #79715.
4662
4663 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
4664
4665         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
4666         call kernel32 function OutputDebugString directly.
4667         
4668         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
4669         
4670 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
4671
4672         * reflection.c: small cleanup, using a function to insert a MonoString
4673         in the string heap.
4674
4675 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
4676
4677         * reflection.c: moving GC fixes.
4678
4679 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
4680
4681         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
4682         all the objects with finalizers belonging to an unloading appdomain.
4683
4684 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
4685
4686         * sgen-gc.c: added ability to allocate even when the nursery is fully
4687         pinned and fixed a couple of bugs.
4688
4689 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
4690
4691         * threads.h: Revert the last change for now.
4692
4693         * threads.h (mono_thread_get_pending_exception): Rename this to
4694         mono_thread_get_undeniable_exception ().
4695
4696 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
4697
4698         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
4699         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
4700         when fname does not refer to valid assembly. This result in a more
4701         meaningful error message.
4702         * exception.c: added mono_get_exception_bad_image_format2 which 
4703         constructs a BadImageFormatException using the ctor taking a custom
4704         message and the file name. Passing in a NULL msg results in a default
4705         message.
4706         * exception.h: define mono_get_exception_bad_image_format2 function.
4707         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
4708         when file name pointed to an invalid IL image. Use 
4709         mono_get_exception_file_not_found2 to construct FileNotFoundException,
4710         as this results in a more meaningful error message.
4711
4712 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
4713
4714         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
4715         #79465.
4716
4717 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
4718
4719         * metadata.c (mono_type_size): Change the align parameter to guint32 for
4720         consistency with the other _size functions.
4721         (mono_type_stack_size): Ditto.
4722
4723         * class.c object.c icall.c: Fix warnings caused by the above change.
4724
4725         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
4726
4727         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
4728
4729         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
4730
4731 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4732
4733         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
4734         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
4735         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
4736         threadpool.h, threads-types.h: mark more internal functions.
4737
4738 2006-10-11  Dick Porter  <dick@ximian.com>
4739
4740         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
4741         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
4742         reproduce the bug even before applying the fix.)
4743
4744 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
4745
4746         * reflection.c: allow retrieving attributes for arguments in generic
4747         methods (bug #79241).
4748
4749 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
4750
4751         * debug-mono-symfile.c: properly check fopen () result (found by
4752         coverity).
4753
4754 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
4755
4756         * reflection.c: make error message clearer and fixed two
4757         issuelets found by Coverity.
4758
4759 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
4760
4761         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
4762
4763 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4764
4765         * object-internals.h, gc-internal.h, profiler-private.h:
4766         mark internal functions.
4767
4768 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4769
4770         * reflection.c: put data in the text section.
4771         * icall.c: recognize more types in type_from_typename ().
4772         * process.c, marshal.c: added some GC FIXMEs.
4773
4774 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
4775
4776         * loader.c: check for NULL before initializing.
4777
4778 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
4779
4780         * gc.c (finalizer_thread): Use a non-alertable wait here.
4781
4782         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
4783         until the correct solution is found.
4784
4785 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
4786
4787         * reflection.c (mono_module_get_object): Avoid an assert when operating on
4788         modules with no metadata. Fixes #79596.
4789
4790         * image.c (load_metadata_ptrs): Put back the error message when
4791         the #- heap is encountered since the support is not complete yet.
4792
4793 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
4794
4795         * gc.c: do not allow the user to SuppressFinalize () a
4796         delegate because it would leak the trampoline if present.
4797
4798 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
4799
4800         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
4801         PropertyPtr table.
4802
4803 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
4804
4805         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
4806
4807         * metadata.c (mono_metadata_get_param_attrs): Ditto.
4808
4809         * row-indexes.h: Add definitions for *Ptr tables.
4810
4811         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
4812
4813         * metadata.c (mono_metadata_translate_token_index): New helper function to
4814         translate table indexes used in uncompressed metadata.
4815         (mono_metadata_decode_table_row): Ditto.
4816         (mono_metadata_decode_table_row_col): Ditto.
4817
4818         * metadata.c: Add table schema for *Ptr tables.
4819
4820         * class.c loader.c: Use the new helper function to access the affected metadata
4821         tables.
4822         
4823         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
4824         #38532.
4825         
4826 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
4827
4828         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
4829         sequences which can be unbounded in size. Fixes #79583.
4830
4831 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
4832
4833         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
4834         static initialization.
4835
4836         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
4837
4838         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
4839
4840         * domain.c (mono_domain_free): Free up type_init_exception_hash.
4841
4842         * object.c (mono_runtime_class_init): Implement correct semantics when a static
4843         ctor fails, i.e. throw the same exception on subsequent accesses.
4844         
4845 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
4846
4847         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
4848         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
4849         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
4850         Handle marshalling of interfaces and VARIANTs contained in structs.
4851         
4852         Code is contributed under MIT/X11 license.
4853         
4854 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
4855
4856         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
4857         
4858         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
4859         mempool.
4860
4861 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4862
4863         * console-io.c: ignore previous SIGINT handler.
4864
4865 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
4866
4867         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
4868         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
4869         #79460, #79461, #79485.
4870
4871         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
4872
4873         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
4874         #79217.
4875
4876 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
4877
4878         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
4879         could be generated from it.
4880
4881 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
4882
4883         * rand.c: fix read loop to correctly handle EINTR.
4884
4885 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
4886
4887         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
4888         internal calls are defined to keep methods closer to the declaring
4889         type and allow a significant reduction in runtime relocations and
4890         memory usage.
4891
4892 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
4893
4894         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
4895         exception message to have FileNotFoundException use the default
4896         assembly load error message. Fixes bug #79426.
4897         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
4898
4899 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4900
4901         * threadpool.c: (start_thread_or_queue) use the root domain when
4902         creating the thread instead of the async object one.
4903
4904 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
4905
4906         * class.c, object.c, class-internals.h, reflection.c:
4907         for arrays, store element_size inside MonoClass (speedup
4908         for array object creation).
4909
4910 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
4911
4912         * icall.c: fixed CodeBase to use the file name and not the module
4913         name (bug #79365).
4914
4915 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
4916
4917         * mono-debug.c, mono-debug.h: export find_method as
4918         mono_debug_find_method ().
4919
4920 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
4921
4922         * debug-helpers.c, class-internals.h: added a few functions useful
4923         when debugging under gdb.
4924
4925 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4926
4927         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
4928         characters that need special handling.
4929
4930 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
4931
4932         * mono-config.c: make the os/cpu specification more flexible,
4933         allowing lists and negation.
4934
4935 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
4936
4937         * marshal.c: COM Interop fixes. Handle case where method->klass.
4938         is interface. Handle BSTR/MonoString when null. Use CDECL as 
4939         calling convention on non-windows platforms. This is for
4940         compatibility with XPCOM and MainWin COM.
4941         
4942         Code is contributed under MIT/X11 license.
4943         
4944
4945 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
4946
4947         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
4948         correctly. Fixes #79217.
4949
4950         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
4951
4952 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
4953
4954         * mono-config.c: allow both an os and cpu attribute for dllmap
4955         and dllentry elemnets to enable a single config file to be used
4956         for multiple architectures.
4957
4958 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
4959
4960         * loader.c: MonoLoaderError was cleared too soon on load failure.
4961         Fixes bug #79424.
4962
4963 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
4964
4965         * icall.c: use the defining class vtable when accessing a
4966         static field, not a pobblibly derived class.
4967
4968 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
4969
4970         * icall.c string-icalls.c: Remove references to unicode.h.
4971
4972         * unicode.h unicode.c Makefile.am: Remove these unused source files.
4973
4974         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
4975
4976         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
4977         indicating the image where custom marshaller types should be looked up.
4978         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
4979         custom marshallers, instead of corlib. Fixes #79425.
4980
4981 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
4982
4983         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
4984
4985 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
4986
4987         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
4988         Implement Environment.ProcessorCount.
4989         
4990         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
4991         Implement Environment.ProcessorCount.
4992         
4993         * icall.c: 
4994         Add Environment.ProcessorCount icall.
4995         
4996         Patch by Jason McFall.
4997
4998 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4999
5000         * assembly.c: don't append .exe/.dll when the filename already contains
5001         one of those extensions.
5002
5003 2006-09-12  Martin Baulig  <martin@ximian.com>
5004
5005         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
5006         to array interfaces.
5007
5008 2006-09-11  Martin Baulig  <martin@ximian.com>
5009
5010         * reflection.c (mono_image_build_metadata): Create the
5011         MethodImpl's after emitting all types and methods, so we don't
5012         need another fixup pass for them.
5013
5014 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
5015
5016         * class.c (mono_class_from_name_case): Fix regression introduced by the last
5017         change.
5018
5019 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
5020
5021         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
5022         unload.
5023
5024 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
5025
5026         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
5027         args is not set. Fixes #78926.
5028
5029 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
5030
5031         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
5032
5033         * image.c (load_class_names): Move this to class.c, and rename it to 
5034         'mono_image_init_name_cache'.
5035         (load_modules): Fix a warning.
5036
5037         * class.c icall.c image.c: Initialize image->name_cache lazily.
5038
5039         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
5040         on its name using information in the AOT file.
5041
5042         * class.c (mono_class_from_name): Use the new hook function.
5043
5044 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
5045
5046         * reflection.c (mono_param_get_objects): Handle enum default parameter values
5047         correctly.
5048
5049         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
5050         Fixes #79289.
5051         
5052 2006-09-06  Martin Baulig  <martin@ximian.com>
5053
5054         * icall.c (mono_lookup_internal_call): Small fix.
5055
5056 2006-09-05  Raja R Harinath  <rharinath@novell.com>
5057
5058         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
5059         double g_free.
5060
5061 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
5062
5063         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
5064         when --debug is specified.
5065
5066 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
5067
5068         * class.c (setup_generic_array_ifaces): Fix a warning.
5069
5070 2006-09-04  Miguel de Icaza  <miguel@novell.com>
5071
5072         * Temporarily remove the patch to assemly.c that checks the
5073         assembly versions as it breaks our gacutil.
5074
5075 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
5076
5077         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
5078
5079         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
5080         a net 1.0 runtime.
5081
5082         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
5083         created using the default ctor. Fixes #79152.
5084         (mono_string_builder_to_utf16): Ditto.
5085
5086 2006-09-01  Martin Baulig  <martin@ximian.com>
5087
5088         Fix handling of the generic array interfaces.
5089
5090         * class-internals.h
5091         (MonoDefaults): Removed `generic_array_class' and added
5092         `generic_ilist' class.
5093
5094         * class.c
5095         (mono_bounded_array_class_get): Add the new generic array interfaces.
5096         (setup_generic_array_ifaces): New static method; create vtable
5097         entries for each method in the generic array interfaces.
5098
5099         * metadata.c
5100         (select_container): Allow "parent-less" generic methods.
5101
5102         * marshal.c
5103         (mono_marshal_get_generic_array_helper): New public method.
5104
5105         * icall.c
5106         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
5107         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
5108         moved the interncall into System.Array.
5109
5110 2006-09-01  Raja R Harinath  <rharinath@novell.com>
5111
5112         A few more cases of avoiding work on types with ->byref set.
5113         Has the real fix for #79238
5114         * icall.c (is_generic_parameter): New helper.
5115         (ves_icall_Type_GetGenericParameterPosition): Use it.
5116         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
5117         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
5118         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5119         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
5120         reference types.
5121         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
5122         reference types.
5123         (ves_icall_Type_get_IsGenericInstance): Likewise.
5124         (ves_icall_Type_get_IsGenericType): Likewise.
5125
5126 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
5127
5128         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
5129         class if possible.
5130
5131         * mempool.h (mono_mempool_get_allocated): New helper function.
5132
5133         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
5134         change.
5135
5136         * mempool.c: Fix warnings and the calculation of stats.
5137
5138         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
5139
5140         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
5141
5142         * loader.c (mono_get_method_from_token): Update method_count stat.
5143
5144         * class-internals.h (MonoStats): Add some stats.
5145
5146 2006-08-31 Robert Jordan  <robertj@gmx.net>
5147
5148         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
5149         with managed variants.
5150         All code is contributed under the MIT/X11 license.
5151         
5152 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
5153
5154         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
5155         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
5156
5157         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
5158
5159         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
5160         with cycles in classes.
5161
5162         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
5163
5164         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
5165         missing a [MarshalAs] directive. Fixes #79203.
5166
5167         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
5168         klass->marshal_info. Fixes #79217.
5169
5170 2006-08-30  Martin Baulig  <martin@ximian.com>
5171
5172         Committing a patch from Joachim Ante <joe@otee.dk>:
5173         Add support for binary data symbol stores.
5174
5175         * debug-mono-symfile.c
5176         (mono_debug_open_mono_symbol_file): Renamed into
5177         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
5178         arguments.
5179
5180         * mono-debug.c
5181         (mono_debug_open_image): Added `raw_contents' and `size' args.
5182         (mono_debug_init_2_memory): New public function.
5183
5184 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
5185
5186         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
5187
5188 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5189
5190         * appdomain.c: implement support for ShadowCopyFiles.
5191
5192 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
5193
5194         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
5195         when value is NULL (and should remove CID #51).
5196
5197 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5198
5199         * image.c: moved 2 functions to ../utils.
5200
5201 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
5202
5203         * gc.c: cope with the target object of a GC handle being NULL
5204         (bug #78877).
5205
5206 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
5207
5208         * class.c: recursively check parent's explicit implementations
5209         of interface methods (fixes bug #79125).
5210
5211 2006-08-19  Miguel de Icaza  <miguel@novell.com>
5212
5213         * filewatcher.c: Avoid warnings when building, do not redefine
5214         constants that are defined.
5215
5216         Remove warnings.
5217
5218 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5219
5220         * image.c: don't fail when the link points to an absolute path.
5221
5222 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
5223
5224         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
5225         Fix CID #3.
5226
5227 2006-08-17  Miguel de Icaza  <miguel@novell.com>
5228
5229         * image.c (full_path): A new method used to obtain the actual path
5230         of an assembly even in the presence of symbolic links.  
5231
5232         This is necessary for the case where we are running a binary that
5233         has been GACed, but we are using the "published" path name
5234         ($prefix/mono/1.0/blah.exe) which happens to point to the real
5235         file in the GAC.
5236
5237         This was the source of the failure for the `xsp' command with the
5238         recent AppDomain changes, as far as the runtime was concerned,
5239         there were two different assemblies: $prefix/mono/1.0/blah.exe and
5240         $prefix/mono/gac/blah/version/blah.exe.
5241
5242         (do_mono_image_open): use full path
5243
5244 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5245
5246         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
5247
5248 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
5249
5250         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
5251         domain_id is supplied. Fix CID #241 and corlib's unit tests.
5252
5253 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5254
5255         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
5256         small structures. Fixes #78990.
5257
5258 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5259
5260         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
5261
5262         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
5263
5264 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5265
5266         * appdomain.c:
5267         * marshal.c: don't load all the assemblies from a domain into newly
5268         created ones. The new domains might have different rules and load
5269         assemblies from different locations. Fixes bug #76757.
5270
5271         Patch by Lluis. Conflicts resolved by Brian Crowell.
5272
5273 2006-08-16  Alp Toker  <alp@atoker.com>
5274
5275         * socket-io.c: First half of the fix for #79084.
5276         Set sa_size to the length of the content, not that of the struct.
5277         Don't add NULL suffix to the content, this should be done in
5278         managed code if needed.
5279
5280 2006-08-14  Raja R Harinath  <rharinath@novell.com>
5281
5282         Fix part of #79012
5283         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
5284         mono_metadata_parse_type returns NULL.
5285
5286 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
5287
5288         * normalization-tables.h : new file for string normalization data.
5289         * locales.c, locales.h, icall.c :
5290           added load_normalization_resource() for string normalization,
5291           and icall as well.
5292         * Makefile.am : added normalization-tables.h to the sources.
5293
5294 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
5295
5296         * marshal.c: Add more helper functions to reduce code duplication and use them
5297         everywhere.
5298
5299 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
5300
5301         * marshal.c: Fix non-x86 stdcall warnings.
5302         
5303         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
5304         them everywhere.
5305
5306 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
5307
5308         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
5309         type check on multi-dimensional arrays. Fixes #79000.
5310
5311 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
5312
5313         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
5314         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
5315         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
5316         * class-internals.h: add is_com_object to class structure.
5317         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
5318         null checks to COM object marshalling. Fix .ctor call on RCW.
5319         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
5320         
5321         All code is contributed under the MIT/X11 license.
5322
5323 2006-08-09  Dick Porter  <dick@ximian.com>
5324
5325         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
5326         racing mono_monitor_allocator_lock() somewhere, so don't delete
5327         the critical section for now.  Found by running and exiting
5328         monodevelop.
5329
5330 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
5331
5332         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
5333         (ves_icall_System_ComObject_FindInterface): Ditto.
5334         (ves_icall_System_ComObject_CacheInterface): Ditto.
5335
5336         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
5337         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
5338
5339 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5340
5341         * threadpool.c: treat pipes from process asynchronous reads as sockets
5342         when reading from them, so we get select/poll or epoll to wait for
5343         data.
5344
5345 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
5346
5347         * loader.c: Fix a typo (CID #233) in the null check.
5348
5349 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
5350
5351         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
5352         Hopefully fixes #78949.
5353         
5354         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
5355         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
5356         bytes. Fixes #78972.
5357
5358 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5359
5360         * filewatcher.c: we need to set errno here.
5361
5362 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5363
5364         * filewatcher.c: let Win32Exception get the error value.
5365
5366 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5367
5368         * filewatcher.c: translate errno into win32 errors for Win32Exception
5369         to know what happened.
5370
5371 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
5372
5373         * threadpool.c: Fix more warnings.
5374
5375         * assembly.c (search_loaded): Fix warnings.
5376
5377         * threadpool.c (mono_thread_pool_finish): Fix warnings.
5378         (mono_async_invoke): Ditto.
5379
5380 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
5381
5382         * object.c (mono_remote_class_vtable): Need to create proxy vtable
5383         entries for __ComObject type in addition to ComImport types.
5384         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
5385         about hash table.
5386         
5387         All code is contributed under the MIT/X11 license.
5388
5389 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5390
5391         * image.c: avoid tentative loading of modulerefs that contain
5392         no metadata (P/Invoke library names).
5393
5394 2006-07-28  Dick Porter  <dick@ximian.com>
5395
5396         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
5397         mono_loader_lock() somewhere, so don't delete the critical section
5398         for now.  Found by running and exiting monodevelop.
5399
5400 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5401
5402         * filewatcher.c: define the inotify syscalls when we're building on
5403         linux and have sys/syscall.h. The build system might not have support
5404         for inotify but the target system might have it.
5405
5406 2006-07-26  Miguel de Icaza  <miguel@novell.com>
5407
5408         * domain.c: Documentation updates.
5409
5410         * loader.c (mono_free_method): Do not release the method
5411         information if we are being profiled, as profilers will use this
5412         information at shut down to present some data to the user.
5413
5414         This is needed so that the profiler does not crash, as the
5415         profiler tends to keep MonoMethods around, and they might become
5416         invalid if we free these.
5417
5418         (mono_get_method_constrained): Return the original CIL stream
5419         method as well, so verification can be performed against it.
5420
5421 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5422
5423         * filewatcher.[ch]: support for inotify file system watcher.
5424         * icall.c: add new internal calls for the inotify file system watcher.
5425
5426 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5427
5428         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
5429         #78888.
5430
5431 2006-07-20  Dick Porter  <dick@ximian.com>
5432
5433         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
5434         warning.
5435
5436 2006-07-20  Dick Porter  <dick@ximian.com>
5437
5438         * threads.c (start_wrapper): Do the thread cleanup while we still
5439         hold a reference to its object.  Fixes bug 78123.
5440
5441 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
5442
5443         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
5444         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
5445           "managed-to-managed".
5446         * icall.c: Redirect string constructors that take sbyte* to
5447           ves_icall_System_String_ctor_RedirectToCreateString.
5448         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
5449           to CreateString () methods with matching signature.
5450         * reflection.c: Use original security informations for
5451           MONO_WRAPPER_MANAGED_TO_MANAGED.
5452         * security-manager.c: Use original security informations for
5453           MONO_WRAPPER_MANAGED_TO_MANAGED.
5454         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
5455           that is a placeholder and only its address should be used.
5456         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
5457           that is a placeholder and only its address should be used.
5458
5459 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
5460
5461         Begin implementing COM Interop.
5462         * appdomain.c: Increment corlib version.
5463         * class.c: Set ComImport classes' parent to __ComObject.
5464         * loader.c: Mark cominterop methods as such.
5465         * domain.c: Add __ComObject class to MonoDefaults structure.
5466         * image.c: Add 2 hashtables to the image for COM Interop related methods
5467         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
5468         using the mempool allocator
5469         
5470         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
5471         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
5472         declaration for mono_metadata_type_dup_mp.
5473         
5474         * debug-helpers.c: Added strings for two additional wrapper types
5475         * object.c: Create proxy objects for ComImport classes
5476         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
5477         and added __ComObject class to MonoDefaults structure.
5478         
5479         * object-internals.h: Finish MonoRealProxy definition, and add definition of
5480         MonoComInteropProxy and MonoComObject.
5481         
5482         * marshal.c: Added support for COM Interop
5483         (signature_cominterop): Converts managed signature to corresponding
5484         unmanaged COM signature.
5485         (cominterop_get_function_pointer): gets unmanaged function pointer via
5486         COM object vtable
5487         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
5488         (cominterop_get_method_interface): returns interface type that method is defined on
5489         (mono_mb_emit_cominterop_call): emits native call to function pointer
5490         gotten from vtable
5491         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
5492         that matches signature of unmanaged function.
5493         (cominterop_get_native_wrapper): wrapper around adjusted method call.
5494         (cominterop_get_invoke): forwards call from proxy to __ComObject
5495         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
5496         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
5497         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
5498         
5499         * marshal.h: Added Marshal icall declarations.
5500         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
5501         so we can access them in finalizer
5502         
5503 2006-07-14  Dick Porter  <dick@ximian.com>
5504
5505         * object.c (mono_type_initialization_cleanup): Fix a race
5506         condition by temporarily commenting out the critical section
5507         deletion.
5508
5509 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
5510
5511         * reflection.c (create_custom_attr): Fix some warnings.
5512         (create_custom_attr_data): Ditto.
5513         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
5514         types. Fixes #78855.
5515
5516 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
5517
5518         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
5519
5520         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
5521
5522 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
5523
5524         * reflection.c (resolve_object): Add support for DynamicMethod.
5525
5526         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
5527         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
5528
5529 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
5530
5531         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
5532         don't leak GPtrArray's pdata has we have no use (nor free) for it.
5533
5534 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
5535
5536         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
5537         Fixes #77888.
5538
5539 2006-06-30  Raja R Harinath  <rharinath@novell.com>
5540
5541         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
5542         slightly: remove a shadow local variable.
5543
5544 2006-06-29  Raja R Harinath  <rharinath@novell.com>
5545
5546         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
5547         definition that introduces the virtual function slot.
5548         Also fix Coverity #105.
5549
5550 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
5551
5552         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
5553         for dynamic assemblies. Fixes #78724.
5554
5555 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
5556
5557         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
5558         Fixes #78722.
5559
5560 2006-06-21  Martin Baulig  <martin@ximian.com>
5561
5562         * reflection.c
5563         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
5564         fixes #76484.
5565
5566 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
5567
5568         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
5569
5570 2006-06-20  Raja R Harinath  <rharinath@novell.com>
5571
5572         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
5573         nor TYPEREFs.
5574         * class.c (mono_class_create_from_typespec): Add 'context' argument.
5575         Inflate result if necessary.
5576         (mono_class_get_full): Remove old version.  Rename from
5577         'mono_class_get' and add 'context' argument.  Pass it to
5578         ..._create_from_typespec.
5579         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
5580         (mono_ldtoken): Revert change below.
5581
5582 2006-06-20  Martin Baulig  <martin@ximian.com>
5583
5584         * class.c (mono_ldtoken): Don't pass the generic context to
5585         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
5586
5587 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
5588
5589         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
5590         and later freeing it. Fixes #78638.
5591
5592 2006-06-15  Miguel de Icaza  <miguel@novell.com>
5593
5594         * icall.c (mono_class_get_throw): Revert over-zealous error
5595         throwing, the caller for mono_class_get_throw will cope with
5596         errors when classes are not properly initialized already.
5597
5598         The code still copes with loader exceptions though.
5599
5600         Fixes the regression in reftype1 and reftype3 from the CAS tests.
5601         
5602 2006-06-14  Miguel de Icaza  <miguel@novell.com>
5603
5604         Fixes the `make run1' version of RuntimeAbort (to be commited,
5605         source is in Bugzilla).
5606         
5607         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
5608         FALSE on class loading failure instead of returning true.
5609
5610         * class.c (mono_class_create_from_typedef): It is possible for
5611         mono_metadata_interfaces_from_typedef_full to fail if a class is
5612         not found, cope with this.
5613         
5614
5615 2006-06-14  Dick Porter  <dick@ximian.com>
5616
5617         * socket-io.c: 
5618         * process.c: Fix a bunch of signed/unsigned warnings from gcc
5619         4.1.1
5620
5621 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
5622
5623         * culture-info-table.h : oops, forgot to make it nsync with r61548.
5624
5625 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
5626
5627         * icall.c: Another fix for building mono in Visual Studio.
5628
5629 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
5630
5631         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
5632         
5633 2006-06-09  Martin Baulig  <martin@ximian.com>
5634
5635         * debug-mono-symfile.c: Put this back and really fix it this
5636         time. Sorry for all the trouble.
5637
5638 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
5639
5640         * icall.c (mono_class_get_throw): Fix a warning.
5641         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
5642         ReflectionTypeLoadException if needed. Fixes #78606.
5643
5644         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
5645         (mono_class_init): Ditto.
5646
5647         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
5648         ref_only exceptions.
5649         (mono_loader_clear_error): Make this work even if there is no error.
5650
5651 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
5652
5653         * object-internals.h marshal.c marshal.h icall.c: Implement method 
5654         Marshal.GetComSlotForMethodInfo using internal call.
5655
5656 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
5657
5658         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
5659         a function for signalling it.
5660
5661         * class.c (mono_class_from_typeref): Use the new kind of loader error when
5662         a referenced assembly is not found.
5663
5664         * loader.c (mono_loader_error_prepare_exception): Add support for 
5665         LOADER_ERROR_ASSEMBLY. Fix formatting.
5666
5667 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
5668
5669         * domain.c appdomain.c class-internals.h marshal.c: Add support 
5670         for VARIANT marshalling on windows and increment corlib version
5671         since Variant struct was added.
5672
5673 2006-06-03  Miguel de Icaza  <miguel@novell.com>
5674
5675         * debug-mono-symfile.c: Revert Martin's previous patch which broke
5676         stack trace line information:
5677
5678         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
5679         (Martin) when looking up B which is between A and C, return A not C.
5680
5681         Bug is #78573.
5682
5683         Thanks to Alexander Olk for tracking this down.
5684
5685 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
5686
5687         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
5688         
5689         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
5690         avoid clobbering its value.
5691         (mono_string_to_lpstr): Fix a warning on windows.
5692
5693 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
5694
5695         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
5696
5697         * reflection.c loader.c: Removed references to 'dummy' flag.
5698
5699         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
5700
5701         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
5702         it gets GC tracking.
5703
5704         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
5705         GC tracking.
5706         
5707         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
5708
5709         * marshal.c threadpool.c: Update callers of mono_async_result_new.
5710
5711         * appdomain.c: Bump corlib version.
5712
5713 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
5714
5715         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
5716         CEE_STIND_REF when working with object references.
5717
5718 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
5719
5720         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
5721         Fixes #78539.
5722
5723 2006-05-30  Miguel de Icaza  <miguel@novell.com>
5724
5725         * loader.c (method_from_memberref): Fix argument value for
5726         mono_loader_set_error_method_load (I was passing the MonoClass
5727         instead of the class name char *).
5728
5729 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
5730
5731         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
5732         CEE_STIND_REF when working with object references.
5733
5734 2006-05-30  Martin Baulig  <martin@ximian.com>
5735
5736         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
5737         mono_method_full_name() change and replace the ':' with a '.'
5738         here.
5739
5740 2006-05-30  Martin Baulig  <martin@ximian.com>
5741
5742         * debug-mono-symfile.c
5743         (mono_debug_symfile_lookup_location): Fix the algorithm:
5744         when looking up B which is between A and C, return A not C.
5745
5746 2006-05-29  Martin Baulig  <martin@ximian.com>
5747
5748         * mono-debug.h
5749         (MonoDebugMethodInfo): Make the typedef public.
5750         (MonoDebugSourceLocation): New public struct.
5751
5752         * mono-debug.c
5753         (mono_debug_source_location_from_address): Removed.
5754         (mono_debug_source_location_from_il_offset): Removed.
5755         (mono_debug_il_offset_from_address): Removed.
5756         (mono_debug_address_from_il_offset): Removed.
5757         (mono_debug_lookup_method): New public function.
5758         (mono_debug_lookup_source_location): New public function; replaces
5759         the old mono_debug_source_location_from_*() functions; see the
5760         inline documentation.
5761         (mono_debug_free_source_location): New public function.
5762         (mono_debug_print_stack_frame): New public function; see the
5763         inline documentation.
5764
5765         * debug-mono-symfile.c
5766         (mono_debug_find_source_location): Renamed into
5767         mono_debug_symfile_lookup_location(); only take a
5768         `MonoDebugMethodInfo *' and an `offset' argument; added inline
5769         documentation.
5770         (mono_debug_find_method): Renamed into
5771         mono_debug_symfile_lookup_method().
5772
5773 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
5774
5775         * assembly.c (mono_assembly_open_full): Dont overwrite the status
5776         returned by mono_image_open_full ().
5777
5778         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
5779         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
5780         #78517.
5781
5782         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
5783         #78518.
5784
5785 2006-05-27  Miguel de Icaza  <miguel@novell.com>
5786
5787         * class.c (mono_class_from_typeref): handle missing images
5788         earlier, deals with bug #78418.   Refactor code; 
5789
5790         Fix a warning introduced in my previous commit (some stale code
5791         from before I revisited my patch).
5792
5793         * class.c (mono_class_create_from_typedef): On failure, remove the
5794         class from the MonoImage->class_cache as the class is not
5795         initialized;   Fixes the leak pointed out by Paolo.
5796
5797 2006-05-25  Dick Porter  <dick@ximian.com>
5798
5799         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
5800         DeleteCriticalSections until I figure out which one may still be
5801         sometimes locked when mono_thread_cleanup is called.
5802
5803 2006-05-24  Dick Porter  <dick@ximian.com>
5804
5805         * threads.c (mono_thread_cleanup): Move the threading cleanup out
5806         of mono_thread_manage and back into its own function, so it can be
5807         called after the finalizer thread has finished.
5808
5809         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
5810
5811 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
5812
5813         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
5814         Fixes #78495.
5815
5816         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
5817         with non-blittable elements.
5818         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
5819
5820 2006-05-24  Martin Baulig  <martin@ximian.com>
5821
5822         * mono-debug-debugger.h (MonoDebuggerEvent): Added
5823         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
5824
5825         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
5826         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
5827         `mono_debugger_event_handler' to NULL.
5828
5829 2006-05-24  Martin Baulig  <martin@ximian.com>
5830
5831         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
5832
5833 2006-05-24  Martin Baulig  <martin@ximian.com>
5834
5835         * mono-debug-debugger.h
5836         (mono_debugger_create_notification_function): Added
5837         `MonoCodeManager *' argument.
5838
5839 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
5840
5841         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
5842
5843 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
5844
5845         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
5846         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
5847         implementation.
5848
5849 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
5850
5851         * icall.c: precise GC support: objects can't be stored in unmanaged
5852         memory anymore, even if they are kept alive by other references: since
5853         they can move the GC needs to be able to always find them.
5854
5855 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5856
5857         * object.c: precise GC support for static fields. Support
5858         for moving GCs: write barriers and pinned allocation for interned
5859         strings.
5860
5861 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5862
5863         * domain.c, domain-internals.h: precise GC support for the MonoDomain
5864         structure.
5865
5866 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5867
5868         * class.c, gc.c: sgen and precise GC updates.
5869
5870 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
5871
5872         * marshal.h, marshal.c: added write barrier wrapper and precise type
5873         fixes.
5874
5875 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
5876
5877         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
5878         support.
5879
5880 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
5881
5882         * reflection.c: precise and sgen GC updates.
5883
5884 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
5885
5886         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
5887
5888 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
5889
5890         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
5891
5892 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
5893
5894         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
5895         MONO_TYPE_OBJECT. Fixes #78462.
5896
5897 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
5898
5899         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
5900         and blittable types.
5901
5902 2006-05-17  Miguel de Icaza  <miguel@novell.com>
5903
5904         * class.c (mono_class_get_exception_for_failure): Implement parts
5905         of a TODO: if the loader error is set (instead of the class
5906         error), we return a Loader exception that can be properly thrown
5907         elsewhere.
5908
5909         This was exposed by some Winforms 2.0 code that I tried to run
5910         (Atsushi pointed me to it).
5911
5912 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
5913
5914         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
5915         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
5916         
5917         * marshal.c (emit_marshal_vtype): Add limited support for 
5918         UnmanagedType.LPStruct. Fixes #78427.
5919
5920         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
5921         Applied a patch from kangaroo to fix #77523.
5922
5923 2006-05-17  Martin Baulig  <martin@ximian.com>
5924
5925         * threads.c
5926         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
5927         (debugger_thread_created): Removed.
5928         (debugger_thread_exited): Removed.
5929
5930 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
5931
5932         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5933
5934         * object-internals.h (MonoReflectionResource): Sync with managed version.
5935
5936 2006-05-12  Wade Berrier <wberrier@novell.com>
5937
5938         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
5939
5940 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
5941
5942         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
5943         functions try to allocate from the image mempool.
5944
5945 2006-05-12  Dick Porter  <dick@ximian.com>
5946
5947         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
5948
5949 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
5950
5951         * object.c: The FieldGetter and FieldSetter methods require the full
5952         name of the class, not only the name. Fixes bug #78277.
5953
5954 2006-05-11  Miguel de Icaza  <miguel@novell.com>
5955
5956         * loader.c (method_from_memberref): Do not pass the NULL klass to
5957         mono_loader_set_error_() methods.  Pass the non-NULL value
5958         (class). 
5959
5960 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
5961
5962         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
5963         (mono_assembly_close): Null out assembly->image->references after freeing it.
5964
5965         * image.c (mono_image_close): Free image->references.
5966         
5967         * reflection.c (mono_image_basic_init): Fix a small memory leak.
5968
5969 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
5970
5971         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
5972         before checking if it's NULL (g_assert).
5973
5974 2006-05-10  Martin Baulig  <martin@ximian.com>
5975
5976         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
5977         I thought I already killed that two months ago, but now it somehow reappeared.
5978
5979 2006-05-10  Martin Baulig  <martin@ximian.com>
5980
5981         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
5982
5983 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
5984
5985         * reflection.c: Allocate memory for dynamically created methods in the image
5986         mempools.
5987
5988 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
5989
5990         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
5991         don't use the ad pointer before checking if it's NULL (g_assert).
5992
5993 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
5994
5995         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
5996         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
5997
5998         * marshal.c: Allocate all signatures from mempools.
5999
6000         * marshal.c: Allocate some more signatures from mempools.
6001
6002 2006-05-09  Miguel de Icaza  <miguel@novell.com>
6003
6004         * object.c (mono_load_remote_field): The code used to provide a
6005         temporary variable for returning results if the user did not
6006         provide a result pointer.  But our temporary variable was allocted
6007         on the satck.
6008
6009         Fix calling code to always pass a result area.   Coverity ID 103.
6010
6011 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
6012
6013         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
6014         value, not the old. Fixes #78312.
6015         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
6016
6017         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
6018         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
6019         per-image cache.
6020
6021         * assembly.c (mono_assembly_close): Free image->references.
6022
6023         * assembly.c (mono_assembly_names_equal): Fix a warning.
6024         (mono_assemblies_cleanup): Cleanup more global data.
6025
6026         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
6027
6028         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
6029         ptr_cache and image->modules.
6030
6031         * image.c (mono_image_init): Allocate array_cache lazily.
6032         
6033 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6034
6035         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
6036         behavior was changed recently and has bad side effects.
6037
6038 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
6039
6040         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
6041         
6042         * assembly.c (mono_assembly_close): Remove a debug printf.
6043
6044         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
6045
6046         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
6047         to also allow for temporary references between mono_image_open ()/close ().
6048
6049         * domain.c (get_runtimes_from_exe): Add a FIXME.        
6050
6051 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
6052
6053         * marshal.c: Fix support for dynamic methods.
6054
6055         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
6056
6057         * marshal.c (mono_marshal_cleanup): New cleanup function.
6058
6059         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
6060         image mempools.
6061
6062         * class.c (mono_class_init): Fix leaking class->nested_classes.
6063
6064         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
6065
6066         * image.c (mono_image_init): Initialize the new cashes.
6067
6068         * image.c (mono_image_close): Destroy the new cashes.
6069
6070         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
6071
6072         * mempool.c (mono_mempool_strdup): New helper function.
6073
6074         * class-internals.h: Add prototype for mono_loader_unlock ().
6075
6076         * domain.c (mono_jit_info_table_find): Fix a warning.
6077         (mono_debugger_check_runtime_version): Ditto.
6078
6079         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
6080         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
6081         functions to these modules.
6082
6083         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
6084         metadata modules.
6085         
6086         * marshal.c (mono_free_bstr): Fix a warning.
6087
6088         * assembly.c (mono_assembly_open_full): Fix another small leak.
6089
6090         * object.c: Fix some unload leaks in the remoting code.
6091
6092         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
6093         function.
6094
6095         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
6096
6097         * reflection.c: Fix some unload leaks in dynamic assemblies.
6098
6099 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
6100
6101         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
6102         * marshal.h: Add BSTR support on Win32
6103         * icall.c: Add BSTR icalls
6104         * metadata.h: Add BSTR enums
6105
6106 2006-04-28  Miguel de Icaza  <miguel@novell.com>
6107
6108         Work to catch the crash from #76795 and turn it into an
6109         exception.   As I stubbed out pieces of the VisualBasic support,
6110         I found a number of places where the code was failing and I added
6111         checks to those places. 
6112         
6113         * metadata.c (do_mono_metadata_parse_generic_class): Make this
6114         function return a status code.  If we fail to parse the signature
6115         from mono_metadata_parse_generic_inst, return FALSE.
6116
6117         * loader.c (mono_get_method_from_token): If we fail to load the
6118         method (mono_class_get) return NULL.   
6119
6120         * (method_from_memberref): Return NULL if we are unable to parse
6121         the method signature
6122
6123         (mono_loader_error_prepare_exception): Since we now use the
6124         loader_error flag internally to stop processing, and obtaining
6125         exceptions that might be thrown will walk this code path the
6126         proper way of going from a MonoLoaderError into a
6127         MonoException was convoluted.   This new routine encapsulates the
6128         process of turning the error into an exception and *clearing* the
6129         error afterwards.
6130         
6131 2006-04-27  Miguel de Icaza  <miguel@novell.com>
6132
6133         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
6134         with missing assemblies), and to cope with:
6135
6136                 * Missing fieldref from a non-existing assembly.
6137                 * Missing methodref from a non-existing assembly.
6138
6139         The first batch of work to address *some* of the issues from 76661.
6140         
6141         * object.c (mono_class_create_runtime_vtable): If we fail to
6142         initialize the class raise the exception here. 
6143
6144         * metadata.c (mono_class_get_overrides_full): If any methods fail
6145         to load return the failure to the caller.
6146
6147         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
6148         flagging assemblies that failed to load.   
6149
6150         Do not crash if we are unable to load the assembly.
6151
6152         (mono_assembly_close): Do nothing with REFERENCE_MISSING
6153         assemblies. 
6154
6155         * loader.c (mono_loader_set_error_type_load): Change the
6156         convention to always pass unallocated strings, so we make our own
6157         copies (I know our own code had duplicated strings before, but
6158         this keeps the normal conventions).
6159         (method_from_memberref): Call mono_loader_set_error_method_load
6160         for all possible failures of loading the class. 
6161         Remove assert, turn into a loader error.
6162
6163         (mono_loader_error_to_exception): Move this routine from mini
6164         (mini_loader_error_to_exception) there was no need to have that in
6165         mini. 
6166
6167         * class.c (mono_class_from_typeref): If we were not able to load
6168         the assembly with mono_assembly_load_reference, call the
6169         mono_loader_set_error_type_load to register the problem.
6170
6171         (mono_class_setup_fields): If we fail to load the type from
6172         mono_metadata_parse_type_full, call mono_class_set_failure and
6173         break from the loop.
6174
6175         If class->exception_type is set, we do not layout the fields as
6176         that might crash the runtime, and instead return (from breaking
6177         from the previous loop).
6178
6179         (mono_class_setup_vtable): This now returns a boolean indicating
6180         whether the table was properly setup.   The decision is driven by
6181         mono_class_get_overrides_full which might run into non-existing
6182         methods. 
6183         
6184         (mono_class_init): Returns TRUE on success or FALSE if there was a
6185         problem in loading the type (incorrect assemblies, missing
6186         assemblies, methods, etc).
6187
6188         When we call mono_class_setup_fields we also check for a potential
6189         error inside this call (either a class exception or a general
6190         loader exception).
6191
6192         (mono_class_create_from_typedef): If the parent fails to load
6193         (calling mono_class_get_full) return NULL.
6194         
6195         ** Important **
6196
6197         calls to mono_metadata_parse_type_full should be checked
6198         everywhere and set the mono_class_set_failure
6199         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
6200
6201         The current patch checks the places where my manually constructed
6202         tests show the errors are showing up, but we should do it
6203         everywhere. 
6204
6205         ** Important2 **
6206
6207         mono_class_init return values should be tested everywhere, like
6208         the previous case this is something that we should audit
6209         everywhere and not only on the cases exposed by the tests I
6210         created. 
6211
6212 2006-04-26  Miguel de Icaza  <miguel@novell.com>
6213
6214         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
6215         boolean parameter and instead pass the information on `options'
6216         parameter (FileOptions).
6217
6218         * icall.c: Register the new signature for MonoIO.Open.
6219
6220         * debug-helpers.c (dis_one): Trying to understand how coverity
6221         works.  Fix Run 5, item 78.
6222
6223 2006-04-26  Dick Porter  <dick@ximian.com>
6224
6225         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
6226         dereference.
6227
6228 2006-04-25  Martin Baulig  <martin@ximian.com>
6229
6230         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
6231
6232         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
6233         debugger_thread_created().
6234         (debugger_gc_push_all_stacks): Don't handle the main thread in any
6235         special way.
6236         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
6237         (mono_debugger_finalize_threads): New function; undo the effects
6238         of mono_debugger_init_threads().
6239         (mono_debugger_create_all_threads): Removed.
6240
6241 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
6242
6243         * image.c (mono_image_close): Tidy up trace messages.
6244
6245         * assembly.c (mono_assembly_close): Ditto.
6246
6247         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
6248         no longer references an already freed assembly. Fixes #78168.
6249
6250 2006-04-21  Dick Porter  <dick@ximian.com>
6251
6252         * threads.c (mono_thread_detach): Fix reference counting when
6253         detaching threads.
6254
6255 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
6256
6257         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
6258         #78155.
6259
6260 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
6261
6262         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
6263         (mono_type_to_stind): Ditto.
6264
6265         * marshal.c: Use the new helper functions to simplify code.
6266
6267         * image.c (mono_image_close): Add some code for help debug assembly unloading
6268         problems.
6269
6270         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
6271         image mempool.
6272
6273         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
6274         assembly was already loaded in another appdomain. Fixes #78083.
6275
6276 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
6277
6278         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
6279         referenced assemblies.
6280         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
6281
6282         * domain.c (mono_domain_free): Add a trace message.
6283
6284         * appdomain.c (add_assemblies_to_domain): Ditto.        
6285
6286         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
6287         field.  
6288
6289 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
6290
6291         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
6292
6293 2006-04-12  Martin Baulig  <martin@ximian.com>
6294
6295         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
6296         `USE_INCLUDED_LIBGC'.   
6297
6298 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
6299
6300         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
6301         the patch contains ../ and a small directory name later. Hopefully fixes
6302         #78035.
6303
6304 2006-04-10  Martin Baulig  <martin@ximian.com>
6305
6306         Clean up the debugger's thread-handling code.
6307
6308         The debugger's thread-handling code has been moved from
6309         ../mini/debug-debugger.c to threads.c.  We now iterate directly
6310         over the `threads' hash, keep track of exiting threads and also
6311         use proper locking.
6312
6313         We can now debug XSP and XSP based applications with the debugger.
6314
6315         * object-internals.h (MonoThread): Added `gpointer end_stack'.
6316
6317         * threads.h
6318         (MonoThreadCallbacks): Removed; this was only used by the debugger.
6319         (mono_install_thread_callbacks): Likewise.      
6320
6321         * threads.c (mono_thread_callbacks): Removed.
6322         (debugger_thread_created, debugger_thread_exited): New static functions.
6323         (start_wrapper): Call debugger_thread_created().
6324         (thread_cleanup): Call debugger_thread_exited().
6325         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
6326         (mono_debugger_init_threads): New public function.
6327         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
6328         iterate directly over the `threads' hash and also use proper locking.
6329
6330         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
6331
6332         * mono-debug-debugger.h
6333         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
6334
6335 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
6336
6337         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
6338         argument type=array. Fixes #78057.
6339
6340 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
6341
6342         * culture-info-table.h : regenerated. Fixed bug #69652.
6343
6344 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
6345
6346         * loader.c metadata.c: Reapply a variant r59116.
6347         
6348         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
6349
6350         * class.c (mono_class_setup_interface_offsets): New internal function.
6351
6352         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
6353         interfaces too. Fixes #77398.
6354
6355         * reflection.c (encode_cattr_value): Add support for 
6356         parameter type=object, argument type=array.
6357         (load_cattr_value): Ditto. Fixes #77916.
6358
6359         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
6360         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
6361
6362         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
6363         a byval char array and CharSet is Ansi.
6364
6365         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
6366
6367 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
6368
6369         * metadata.c: Add some locking comments.
6370         
6371         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
6372         mempool.
6373         (mono_metadata_free_method_signature): Don't free the signature itself.
6374
6375         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
6376
6377         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
6378         reference the same MonoImage.
6379         (mono_assembly_load_from_full): Add an assert.
6380
6381 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
6382
6383         * image.c (mono_image_close): Don't put the image we are about to free into the
6384         loaded_images_guid_hash.
6385
6386         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
6387         to reduce code duplication.
6388
6389         * marshal.c: Register the native functions called by this module as icalls, to
6390         somewhat centralize the creation of MonoMethodSignature's.
6391
6392         * loader.c (mono_method_signature): Add a cache for method signatures.
6393
6394         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
6395         the parameter attributes of a method.
6396         (mono_metadata_parse_method_signature_full): Refactored the computation of
6397         parameter attributes into a separate function. Also avoid one allocation in
6398         most cases.
6399
6400         * assembly.c (mono_assembly_close): Ditto.
6401
6402         * image.c (mono_image_close): Log trace messages with INFO level.
6403
6404         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
6405
6406         * image.c reflection.c: Correct reference counting of image modules.
6407         
6408         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
6409         of this function from the image mempool.
6410         
6411         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
6412         to allow more cached types to be used.
6413
6414         * mono-debug.c (mono_debug_add_method): Appled patch from
6415         David S. Miller  <davem@sunset.davemloft.net>: Access 
6416         minfo->lexical_blocks[] entry elements using read32().
6417
6418 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
6419
6420         * loader.c (mono_free_method): No longer free the method header for non-dynamic
6421         methods as it is allocated from the mempool.
6422
6423         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
6424         image mempool.
6425
6426         * metadata-internals.h: Add comments describing the reference counting scheme
6427         used for MonoImage and MonoAssembly.
6428
6429         * image.c assembly.c reflection.c: Rework reference counting of images and 
6430         assemblies so they are freed when the runtime is shut down. Free some 
6431         additional memory structures when an image is unloaded.
6432         
6433 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
6434
6435         * class.c loader.c reflection.c: Allocate more data structures in
6436         the image mempool.
6437
6438 2006-03-31  Miguel de Icaza  <miguel@novell.com>
6439
6440         * icall.c
6441         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
6442         build on pre glib 2.4 systems.
6443
6444 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
6445
6446         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
6447
6448         * icall.c: Fix some warnings.
6449
6450 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
6451
6452         * culture-info-table.h : regenerated.
6453
6454 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
6455
6456         * threads.c, object-internals.h, verify.c: changed the culture caching
6457         code to use a normal MonoArray for storage so the GC can keep track of
6458         them easily. Fixed bits of the cache logic, too and simplified the
6459         code.
6460
6461 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
6462
6463         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
6464         thread for non-Boehm GCs.
6465
6466 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
6467
6468         * domain.c, object.c, domain-internals.h: reduce the amount of memory
6469         needed to keep track of the data for static fields.
6470
6471 2006-03-29  Raja R Harinath  <rharinath@novell.com>
6472
6473         Fix #75172
6474         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
6475         for interface classes.  Use 'num_methods' instead.
6476         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
6477         before using '->vtable_size' field.
6478
6479 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
6480
6481         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
6482         doesn't contain managed pointers, so use a normal hashtable.
6483
6484 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
6485
6486         * reflection.c, class-internals.h, domain.c: fixed handling of types
6487         used as values for objects in custom attributes (bug #77915):
6488
6489 2006-03-24  Martin Baulig  <martin@ximian.com>
6490
6491         * class.c (mono_class_setup_fields): Added support for generic
6492         instances; fixes #77580.
6493
6494 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6495
6496         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
6497
6498 2006-03-24  Dick Porter  <dick@ximian.com>
6499
6500         * file-io.c (get_file_attributes): More stat macro breakage.
6501         Fixes bug 77759.
6502
6503 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
6504
6505         * profiler.c: added the file=filename option in the default profiler
6506         to output the profile data to filename.
6507
6508 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6509
6510         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
6511         bug #77877.
6512
6513 2006-03-22  Martin Baulig  <martin@ximian.com>
6514
6515         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
6516         allocated `MonoClassField *' in `fb->handle'.
6517
6518 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6519
6520         * class.c, image.c, metadata-internals.h: implemented new mechanism to
6521         allocate interface ID to save memory and allow better ID reuse on
6522         appdomain unload. setup_generic_vtable () removal from Martin.
6523
6524 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
6525
6526         * object.h, appdomain.c, domain.c, exception.c, icall.c,
6527         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
6528         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
6529         write barriers for reference stores with managed objects accessed with
6530         C structures in the runtime and in embedding programs.
6531
6532 2006-03-20  Raja R Harinath  <rharinath@novell.com>
6533
6534         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
6535         'interface_id' and 'max_interface_id' fields of MonoClasses
6536         representing open generic types.
6537
6538 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
6539
6540         * object.h, object.c, icall.c: added functions to deal with
6541         storing valuetypes that contain references in managed objects.
6542         * reflection.c, string-icalls.c, threads.c, marshal.c: small
6543         fixes and comments around uses of mono_array_addr ().
6544
6545 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
6546
6547         * object.h, icall.c, monitor.c: object.GetHashCode ()
6548         implementation that supports the moving garbage collector.
6549
6550 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
6551
6552         * icall.c, threads-types.h, threads.c: implemented finalizer for
6553         LocalDataStoreSlot.
6554
6555 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
6556
6557         * metadata.c (mono_type_size): Add a fixme.
6558         (mono_type_stack_size): Ditto.
6559
6560         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
6561         'type_forwarders' field.
6562
6563         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
6564         attribute from net 2.0.
6565
6566         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
6567         from class.c.
6568
6569         * class.c (mono_class_setup_fields): Fix a warning.
6570         
6571         * class.c (mono_class_from_name): Add support for assemblyref entries
6572         in the EXPORTEDTYPE table.
6573
6574         * reflection.c: Add support for handling type forwarders under net 2.0.
6575
6576         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
6577         
6578 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
6579
6580         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
6581         overwriting entries in ModuleBuild->types, also clean up the code
6582         a little. Fixes #77774.
6583
6584 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
6585
6586         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
6587         load friend assembly info when present.
6588
6589 2006-03-14  Raja R Harinath  <rharinath@novell.com>
6590
6591         Fix crasher on gtest-158.cs.
6592         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
6593         the return value if the MonoClass we want is yet in an
6594         inconsistent state.
6595         * class.c (mono_class_create_from_typedef): Add an comment
6596         explaining an order dependency between mono_class_setup_parent and
6597         mono_class_setup_mono_type.
6598
6599 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
6600
6601         * class.c: documentation updates and events bug fix.
6602
6603 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
6604
6605         * class.c: some cleanup, locking fixes.
6606
6607 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
6608
6609         * class.c: fix the generics code to setup nested
6610         type info to the instantiated type (bug #77770).
6611
6612 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
6613
6614         * marshal.c: fixed a few type correctness issues.
6615
6616 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
6617
6618         * loader.c: the Set/Get/Addrtess array methods should be public.
6619
6620 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
6621
6622         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
6623         
6624         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
6625         info->wrapper.
6626
6627 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
6628
6629         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
6630
6631         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
6632
6633         * mempool.c (mono_mempool_alloc): Speed this up a bit.
6634         (mono_mempool_alloc0): Ditto.
6635
6636 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6637
6638         * socket-io.c:
6639         (create_object_from_sockaddr): it was allocating 4 extra bytes
6640         for the AF_UNIX data. Fixes bug #77747.
6641
6642 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
6643
6644         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
6645
6646 2006-03-09  Dick Porter  <dick@ximian.com>
6647
6648         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
6649         Fixes bug 76966 again.
6650
6651 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
6652
6653         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
6654         names from r57532
6655         * appdomain.c: Bumped corlib version to 48 (due to r57532)
6656
6657 2006-03-07  Martin Baulig  <martin@ximian.com>
6658
6659         * object.c
6660         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
6661
6662 2006-03-07  Martin Baulig  <martin@ximian.com>
6663
6664         * class.c
6665         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
6666         regression introduced in r56970; see gtest-252.cs.
6667
6668         * loader.c (mono_get_method_constrained): Correctly handle generic
6669         methods; see gtest-253.cs.
6670
6671 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
6672
6673         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
6674
6675 2006-03-04  Martin Baulig  <martin@ximian.com>
6676
6677         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
6678         compute the parent type at runtime, just like we're already doing
6679         it for interfaces.
6680
6681         * reflection.c
6682         (mono_reflection_bind_generic_parameters): Don't compute the
6683         parent type anymore.
6684
6685         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
6686
6687 2006-03-04  Martin Baulig  <martin@ximian.com>
6688
6689         * mono-debug-debugger.h
6690         (mono_debugger_create_notification_function): Allocate memory at
6691         runtime and return a pointer to it.
6692
6693 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
6694
6695         * assembly.c: Fix windows build.
6696         
6697         * assembly.c: Fix build.
6698
6699         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
6700
6701         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
6702         
6703 2006-03-03  Dick Porter  <dick@ximian.com>
6704
6705         * process.c
6706         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
6707         Check parameters before dereferencing them.  Fixes Aaron's part of
6708         bug 77393.
6709
6710 2006-03-03  Raja R Harinath  <rharinath@novell.com>
6711
6712         Fix performance regression.
6713         * loader.c (find_method_in_class): Add 'from_class' argument.
6714         Rename 'klass' argument to 'in_class'.  The signature is compared
6715         against the method in 'in_class', and the corresponding method is
6716         returned from 'from_class'.
6717         (find_method): Walk both 'in_class' and 'from_class' in parallel.
6718         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
6719         type definition and generic instantiation in parallel.
6720         (mono_get_method_constrained): Update to changes.
6721
6722 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
6723
6724         * threads.c: make sure the domain is correct, too when doing
6725         mono_thread_attach ().
6726
6727 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
6728
6729         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
6730         windows. Fixes #77683.
6731
6732 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
6733
6734         * object.h, *: introduced specific way to set elements of an array
6735         of references to be used as write barrier. Still need to audit the
6736         uses of mono_array_addr.
6737
6738 2006-03-01  Miguel de Icaza  <miguel@novell.com>
6739
6740         * object-internals.h: New field to cache the assmebly name, patch
6741         from Tambet Ingo (tambet@ximian.com)
6742
6743 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
6744
6745         * decimal.h, class-internals.h, metadata-internals.h,
6746         file-io.h: mark a few function declarations as internal, to
6747         reduce the number of PLT entries.
6748
6749 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6750
6751         * file-io.c: fix typo in warning message.
6752
6753 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
6754
6755         * loader.c: on unix, lookup the "*A" version of a function
6756         if charset is auto as a second option before failing.
6757
6758 2006-02-28  Raja R Harinath  <rharinath@novell.com>
6759
6760         * class.h (mono_class_inflate_generic_method): Revert to two
6761         argument version.
6762         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
6763         (mono_class_inflate_generic_method_full): Add.
6764         * class.c (mono_class_inflate_generic_method_full): Rename from
6765         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
6766         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
6767         * loader.c, reflection.c: Update to changes.
6768
6769 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
6770
6771         * icall.c: const fixes and small improvements.
6772
6773 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6774
6775         * threadpool.c: for asynchronous connect(), enable the same workaround
6776         for BSD 6 as for the Mac. Fixes bug #77637.
6777
6778 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
6779
6780         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
6781         formatted classes. Fixes #77524.
6782
6783 2006-02-24  Raja R Harinath  <rharinath@novell.com>
6784
6785         * class.c (inflate_generic_type): Add a couple more
6786         micro-optimizations.
6787         (inflate_generic_context): Don't use the 'gmethod' from
6788         'inflate_with'.
6789         (mono_class_inflate_generic_method): If the method has generic
6790         parameters, but the passed-in context doesn't have a 'gmethod',
6791         create one.  Use the possibly simplified generic instantiation
6792         from the declaring class instead of the one passed in.
6793
6794 2006-02-24  Raja R Harinath  <harinath@gmail.com>
6795
6796         Make generic method signature and method header handling lazy.
6797         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
6798         (inflate_generic_header): Likewise.
6799         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
6800         parameter to avoid inflating types.
6801         (mono_get_inflated_method): Empty out.
6802         * class.h (mono_class_inflate_generic_method): Update to changes.
6803         * loader.c (mono_get_method_from_token): Don't parse signature for
6804         generic methods, nor methods of generic classes.
6805         (mono_method_signature): Rename from 'mono_method_signature'.
6806         Inflate signature on demand.
6807         (mono_method_get_header): Inflate method header on demand.
6808         * reflection.c: Update to changes.
6809
6810 2006-02-23  Raja R Harinath  <rharinath@novell.com>
6811
6812         * metadata.c (mono_metadata_inflate_generic_inst): If the
6813         instantiation is closed, don't bother expanding it in the new
6814         context.
6815         * class.c (inflate_generic_class): If the generic instantiation
6816         doesn't change after inflation, return the argument itself.
6817         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
6818         Add bounds checks.
6819         (inflate_generic_context): If neither the generic class nor the
6820         generic method instantiations change, return the original context.
6821         * reflection.c (mono_method_get_object): Do
6822         'mono_get_inflated_method' before accessing the ->klass field.
6823         (inflate_mono_method): Don't create a MonoGenericMethod unless
6824         necessary.
6825         (inflate_method): Don't pass a constructed type as the declaring
6826         type of a methodbuilder.
6827
6828 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
6829
6830         * object.c: fix memory overwrite.
6831
6832 2006-02-22  Dick Porter  <dick@ximian.com>
6833
6834         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
6835         it doesn't work any more.
6836         (mono_threads_request_thread_dump): Fix unused variable warnings.
6837
6838 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
6839
6840         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
6841         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
6842         the public header file.
6843
6844 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
6845
6846         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
6847
6848 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
6849
6850         * class-internals.h, object.c: reduce the size of MonoVTable
6851         and store the interface_offsets array at negative offsets.
6852
6853 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
6854
6855         * metadata.c: tweak table descriptors data structures to reduce
6856         size and runtime relocations.
6857
6858 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
6859
6860         * marshal.c: fix some types and opcodes to be type-safe
6861         in marshaling wrappers.
6862
6863 2006-02-21  Ankit Jain  <jankit@novell.com>
6864
6865         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
6866
6867 2006-02-21  Raja R Harinath  <rharinath@novell.com>
6868
6869         * metadata.c (get_constraints): Relax debugging checks for monodis.
6870
6871 2006-02-21  Ankit Jain  <jankit@novell.com>
6872
6873         * metadata.c (mono_metadata_load_generic_params): Move the code
6874         checking for ambiguous generic params from here to mono/dis/get.c
6875         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
6876
6877 2006-02-21  Raja R Harinath  <harinath@gmail.com>
6878
6879         Fix assertion triggered when compiling nemerle.
6880         * class.c (mono_get_shared_generic_inst): Rename from
6881         get_shared_inst and make non-static.
6882         * loader.c (mono_get_shared_generic_method): New.  Used to create
6883         the MonoGenericContext-equivalent of a MonoGenericContainer.
6884         (mono_get_method_from_token): Initialize the 'context' field of
6885         the created MonoGenericContainer.
6886         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
6887         * metadata.c (get_constraints): Add sanity check.
6888         * class-internals.h: Add new internal methods.
6889
6890         * reflection.c (verify_safe_for_managed_space): New sanity check.
6891         Currently checks that owner-less generic parameters aren't allowed
6892         in managed space.
6893         (mono_type_get_object): Use it.
6894         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
6895         that are now in mono_type_get_object.
6896         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
6897
6898 2006-02-19  Raja R Harinath  <harinath@gmail.com>
6899
6900         * metadata.c (mono_type_create_from_typespec): Rename from
6901         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
6902         argument and caching of types in the generic container.
6903         (unwrap_arrays, find_generic_param): Remove.
6904         * metadata-internals.h: Update.
6905         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
6906
6907 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
6908
6909         * class.c (mono_class_get_exception_for_failure): Fix a warning.
6910
6911         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
6912         return values. Fixes #77581.
6913
6914         * class.c (mono_fnptr_class_get): Switch name and name_space.
6915
6916         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
6917         classes and add support for [In, Out] attributes.
6918         (mono_marshal_free_asany): Ditto. Fixes #77524.
6919
6920 2006-02-18  Raja R Harinath  <harinath@gmail.com>
6921
6922         * class.c (mono_class_from_generic_parameter): Make more robust to
6923         incomplete MonoGenericContainers from monodis.
6924
6925 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6926
6927         * class-internals.h: added some more exception types.
6928         * class.c, metadata.c: added a few checks to handle missing
6929         types.
6930
6931 2006-02-17  Raja R Harinath  <rharinath@novell.com>
6932
6933         Use owner-less generic-params some more.
6934         * class.c (my_mono_class_from_generic_parameter): Remove.
6935         (mono_class_from_generic_parameter): Handle null image,
6936         param->name and param->owner.
6937         (mono_class_from_mono_type): Update.
6938         (mono_class_create_from_typespec): Remove 'container' parameter.
6939         If that parameter is non-null, the result is always inflated by
6940         'mono_class_get_full' anyway.
6941         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
6942         parameter.
6943         (mono_class_get_full): Update.
6944
6945         * class.c (inflate_generic_type) [GENERICINST]: If the generic
6946         instance is not open, don't bother inflating.
6947         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
6948         parse metadata for inflated classes.
6949         (_mono_class_get): Change GenericContext* parameter to
6950         GenericContainer*.
6951         (mono_class_create_from_typespec): Likewise.  Simplify, and
6952         implement trivially.  All the cases are handled in
6953         mono_class_from_mono_type.  Don't inflate returned class.
6954         (mono_class_get_full): Delegate GENERICINST optimization to
6955         inflate_generic_type.
6956         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
6957
6958 2006-02-16  Dick Porter  <dick@ximian.com>
6959
6960         * socket-io.c (create_object_from_sockaddr): Fix typo.
6961         (create_sockaddr_from_object): Check array lengths before
6962         potentially accessing items off the end.
6963         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
6964         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
6965         (ves_icall_System_Net_Sockets_Socket_Send_internal)
6966         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
6967         length checks to avoid wraparound overflows.
6968         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
6969         contents of the array of sockets
6970         (hostent_to_IPHostEntry2)
6971         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
6972         Check return value of inet_ntop ().
6973         (addrinfo_to_IPHostEntry): Fix typo
6974
6975 2006-02-16  Raja R Harinath  <rharinath@novell.com>
6976
6977         Type metadata parsing doesn't use generic-instantiation information.
6978         * metadata.c (mono_metadata_parse_array_full): Change
6979         MonoGenericContext* parameter to MonoGenericContainer*.
6980         (mono_metadata_parse_type_full): Likewise.
6981         (mono_type_create_from_typespec_full): Likewise.
6982         (mono_metadata_parse_mh_full): Likewise.
6983         (mono_metadata_parse_generic_inst): Likewise.
6984         (do_mono_metadata_parse_generic_class): Likewise.
6985         (do_mono_metadata_parse_type): Likewise.
6986         * metadata-internals.h: Update to changes.
6987         * class.c (mono_class_find_enum_basetype): Likewise.
6988         (mono_class_setup_fields): Likewise.
6989         (mono_class_create_from_typespec): Likewise.
6990         * loader.c (method_from_methodspec): Likewise.
6991         (mono_get_method_from_token): Likewise.
6992         (mono_method_get_header): Likewise.
6993
6994 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
6995
6996         * marshal.c: handle additional GENERICINST case (patch from
6997         Thong Nguyen <tum@veridicus.com>).
6998         Fix a few cases where LDIND_I/STIND_I was used for references.
6999
7000 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7001
7002         * reflection.c (mono_reflection_get_token): Remove unused variable.
7003
7004 2006-02-16  Martin Baulig  <martin@ximian.com>
7005
7006         * reflection.c (mono_reflection_get_token): Add support for fields
7007         in instantiated generic types.
7008
7009         * icall.c
7010         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
7011
7012 2006-02-15  Martin Baulig  <martin@ximian.com>
7013
7014         * icall.c
7015         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
7016         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
7017         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
7018         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
7019
7020 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
7021
7022         * class.c, metadata.c, metadata.h, object.c, icall.c,
7023         marshal.c: changed mono_type_get_underlying_type () to do
7024         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
7025         Fixed handling of instantiated generic valuetypes (bug #75479).
7026
7027 2006-02-15  Raja R Harinath  <rharinath@novell.com>
7028
7029         * metadata.c (mono_metadata_decode_signed_value): Simplify.
7030         Delegate to mono_metadata_decode_value, and work on the returned value.
7031
7032         * icall.c (ves_icall_MonoType_GetGenericArguments):
7033         Add consistency check here too.
7034         
7035 2006-02-15  Ankit Jain  <jankit@novell.com>
7036
7037         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
7038         char/short etc.
7039
7040 2006-02-15  Ankit Jain  <jankit@novell.com>
7041
7042         * metadata.c (mono_metadata_decode_signed_value): New function to decode
7043         signed values, used only for representing lower bounds of arrays.
7044         (mono_metadata_parse_array_full): Use new
7045         mono_metadata_decode_signed_value to decode lower bounds.
7046
7047 2006-02-14  Martin Baulig  <martin@ximian.com>
7048
7049         * reflection.c
7050         (mono_reflection_get_token): Support "MonoGenericMethod" and
7051         "MonoGenericCMethod" and allow generic instances / methods.
7052
7053 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
7054
7055         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
7056         to obtain the terminal size using an ioctl.
7057
7058         * object.c (mono_nullable_init): Revert this as nullable reference
7059         types are not valid.
7060         (mono_nullable_box): Ditto.
7061
7062 2006-02-09  Dick Porter  <dick@ximian.com>
7063
7064         * threads.c (mono_thread_detach): Drop a reference to the thread
7065         we're detaching.
7066
7067 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
7068
7069         * object.c (mono_nullable_init): Handle nullable reference types.
7070         (mono_nullable_box): Ditto. Fixes #77446.
7071
7072 2006-02-07  Martin Baulig  <martin@ximian.com>
7073
7074         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
7075
7076 2006-02-07  Ankit Jain  <jankit@novell.com>
7077
7078         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
7079         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
7080         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
7081         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
7082         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
7083         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
7084
7085 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
7086
7087         * class.c (mono_class_create_generic): Set type_token as well.
7088
7089         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
7090         compatible with MS.
7091
7092 2006-02-02  Martin Baulig  <martin@ximian.com>
7093
7094         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
7095         has never been used so far.
7096
7097 2006-02-02  Martin Baulig  <martin@ximian.com>
7098
7099         * mono-debug-debugger.h: Changed comment at the top of this file;
7100         the header is not installed, but it's safe to #include it from
7101         within the JIT.
7102
7103         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
7104         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
7105
7106 2006-02-02  Martin Baulig  <martin@ximian.com>
7107
7108         * mono-debug.h
7109         (MonoSymbolTable): Removed the `metadata_info' field.
7110
7111         * mono-debug.c
7112         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
7113
7114         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7115         (mono_debugger_add_builtin_types): Removed.
7116         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
7117         (mono_debugger_create_notification_function): We now operate on a
7118         pre-allocated area; take a `gpointer' and return `void'.
7119
7120         * mono-debug-debugger.c
7121         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
7122         (mono_debugger_add_builtin_types): Removed.
7123
7124 2006-02-02  Martin Baulig  <martin@ximian.com>
7125
7126         * threads.c (mono_debugger_create_all_threads): New public method.
7127
7128 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7129
7130         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
7131         breaks on several platforms.
7132
7133 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
7134
7135         * assembly.c: the VS.NET build doesn't supply default values for
7136         MONO_ASSEMBLIES and MONO_CFG_DIR.
7137
7138 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
7139
7140         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
7141         helper function.
7142
7143         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
7144
7145         * loader.c (method_from_memberref): Fix a warning.
7146
7147         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
7148
7149         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
7150         with explicit layout. Fixes #77433.
7151
7152 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
7153
7154         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
7155         max_interface_id is initialized before using it. Fixes #77398.
7156         (ves_icall_Type_GetInterfaces): Ditto.
7157
7158 2006-01-30  Raja R Harinath  <rharinath@novell.com>
7159
7160         * metadata.c (mono_metadata_parse_method_signature_full): Don't
7161         allocate memory for parameter attributes when parsing memberref
7162         signatures.
7163         * loader.c (mono_loader_set_error_method_load): Don't warn.
7164         (method_from_memberref): Ensure MissingMethodException gets thrown
7165         if method is not found.  Make warning more informative.
7166
7167 2006-01-29  Raja R Harinath  <harinath@gmail.com>
7168
7169         Fix #77397
7170         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
7171         return true if is byref.
7172         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
7173         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
7174         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
7175
7176 2006-01-27  Raja R Harinath  <rharinath@novell.com>
7177
7178         Fix tests/find-method.2.il
7179         * loader.c (find_method, find_method_in_class): Remove is_inflated
7180         argument.  Revert 2006-01-18 change.
7181         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
7182         is generic, search for method in its generic definition.
7183         * class.c (mono_class_setup_vtable_general): Print generic
7184         arguments of generic types in debugging printf.
7185
7186 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
7187
7188         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
7189
7190         * threads.c (mono_threads_request_thread_dump): New helper function.
7191
7192 2006-01-25  Raja R Harinath  <rharinath@novell.com>
7193
7194         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
7195
7196 2006-01-25  Ankit Jain  <jankit@novell.com>
7197
7198         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
7199         move definition to ..
7200         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
7201         
7202 2006-01-25  Ankit Jain  <jankit@novell.com>
7203             Raja R Harinath  <rharinath@novell.com>
7204
7205         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
7206         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
7207         as necessary.
7208
7209 2006-01-25  Martin Baulig  <martin@ximian.com>
7210
7211         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
7212         `MonoDebuggerThread' into debug-debugger.c.
7213
7214 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
7215
7216         * profiler.c: fix printing of data.
7217
7218 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
7219
7220         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
7221           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
7222
7223 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
7224
7225         * object.c: fix deadlock related to string interning.
7226
7227 2006-01-23  Martin Baulig  <martin@ximian.com>
7228
7229         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7230
7231         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
7232
7233 2006-01-23  Martin Baulig  <martin@ximian.com>
7234
7235         * mono-debug.h: Moved the prototypes of some functions which are
7236         used by the JIT here from mono-debug-debugger.h.
7237
7238 2006-01-21  Martin Baulig  <martin@ximian.com>
7239
7240         * Makefile.am: Don't install mono-debug-debugger.h.
7241
7242 2006-01-21  Martin Baulig  <martin@ximian.com>
7243
7244         * mono-debug-debugger.h: Enforce the private status of this header
7245         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
7246         Moved some stuff from mono-debugger-jit-wrapper.h here.
7247
7248 2006-01-20  Raja R Harinath  <rharinath@novell.com>
7249
7250         * class.c (mono_class_from_typeref): Add a sanity test to help
7251         catch lack of assembly load/search hooks.
7252
7253 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
7254
7255         * marshal.c (emit_struct_conv): Relax the fields with same offset
7256         check even more. Fixes #77230.
7257
7258 2006-01-18  Martin Baulig  <martin@ximian.com>
7259
7260         * loader.c (find_method_in_class): Added `gboolean is_inflated'
7261         argument; if false, we compare the uninstantiated signatures.
7262         (method_from_memberref): Compare the uninstantiated signatures;
7263         fixes #76417.
7264
7265 2006-01-18  Robert Jordan  <robertj@gmx.net>
7266
7267         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
7268         Clear the weak link. Fixes bug #77170.
7269
7270         * gc.c (mono_gchandle_free):
7271         Reflect *-gc.c changes (tiny optimization).
7272
7273 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
7274
7275         * metadata.c (mono_metadata_signature_dup): Applied patch from
7276         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
7277         Fixes #77288.
7278
7279 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
7280
7281         * marshal.c (emit_struct_conv): Allow fields with the same offset when
7282         marshalling from native to managed code. Fixes #77230.
7283
7284 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7285
7286         * threadpool.c: fix problem (Mac only) when more than one asynchronous
7287         connect. Fixes bug #77020.
7288
7289 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
7290
7291         * class.c: fixed id assignement for nested interfaces (bug #77275).
7292         Added also better info for --print-vtable debugging.
7293
7294 2006-01-12  Martin Baulig  <martin@ximian.com>
7295
7296         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
7297         interfaces on-the-fly; fixes #76625.
7298
7299         * class-internals.h
7300         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
7301         don't need that anymore.
7302
7303 2006-01-12  Miguel de Icaza  <miguel@novell.com>
7304
7305         * socket-io.c
7306         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
7307         To avoid initing the nested_classes when not needed I turned the
7308         PeerCredData as a toplevel internal class, as it has to be shared
7309         anyways. 
7310
7311         Fixes the CASA issue.
7312
7313 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
7314
7315         * domain.c: Accessors for MonoJitInfo
7316
7317         * profiler-private.h: Add jitinfo to the end jit hook
7318
7319         * profiler.[ch]: Define new hooks, called after jitting which give
7320         the MonoJitInfo that was compiled
7321
7322 2006-01-10  Martin Baulig  <martin@ximian.com>
7323
7324         * class.c (mono_class_setup_events): Add support for generic
7325         classes; fixes #76440.
7326
7327 2006-01-06  Raja R Harinath  <rharinath@novell.com>
7328
7329         Fix #77160.
7330         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
7331         on passed-in method.
7332
7333 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
7334
7335         * object.c (mono_runtime_invoke_array): Add Nullable support.
7336
7337         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
7338
7339 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
7340
7341         * file-io.c: Don't consider sockets as directory and avoid an endless
7342         loop. Fix bug #76966.
7343
7344 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
7345
7346         * object.c (mono_nullable_init): New helper function.
7347         (mono_nullable_box): Ditto.
7348
7349         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
7350
7351         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
7352
7353         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
7354         
7355 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
7356
7357         * class.c (mono_class_is_assignable_from): Make T assignable to 
7358         Nullable<T>.
7359
7360 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
7361
7362         * appdomain.c: Bump corlib version to 46.
7363         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
7364         serialization purpose) and changed ves_icall_System_Reflection_
7365         Assembly_get_code_base signature to accept a boolean (to escape, or 
7366         not, the assembly code base).
7367
7368 2005-12-23  Dick Porter  <dick@ximian.com>
7369
7370         * icall.c: 
7371         * threads-types.h: 
7372         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
7373         CreateEvent icall now returns "created" boolean parameter.
7374
7375 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
7376
7377         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
7378         #76967.
7379
7380         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
7381         when attr_klass is an interface. Fixes #77045.
7382
7383 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
7384
7385         * marshal.c (emit_struct_conv): Fix previous patch.
7386         
7387         * marshal.c (emit_struct_conv): Add a check for fields with the same
7388         offset.
7389
7390 2005-12-20  Raja R Harinath  <rharinath@novell.com>
7391
7392         Fix regression in Mono.C5.
7393         * class.c (mono_class_create_generic): If 'klass' is an interface
7394         set up the interface offsets.
7395         (mono_class_is_assignable_from): Don't throw away generic arguments.
7396
7397 2005-12-19  Raja R Harinath  <rharinath@novell.com>
7398
7399         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
7400         type parameters.
7401
7402 2005-12-15  Raja R Harinath  <rharinath@novell.com>
7403
7404         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
7405         dead store.
7406         (do_mono_metadata_parse_generic_class): Don't pass the current
7407         generic context when parsing the type being instantiated: it
7408         cannot use it, anyway.
7409
7410         * loader.c (method_from_memberref): Don't inflate a signature if
7411         it doesn't contain any type parameters.
7412
7413 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
7414
7415         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
7416
7417 2005-12-14  Martin Baulig  <martin@ximian.com>
7418
7419         * class.c
7420         (mono_type_get_name_recurse): Don't return null for type
7421         parameters and open generic classes.
7422         (mono_class_setup_methods): Don't exclude generic instances.
7423         (mono_get_unique_iid): Use different IDs for different
7424         instantiations of the same generic type.
7425         (mono_class_setup_vtable): Only use setup_generic_vtable() for
7426         open generic instances; create a normal vtable for closed generic
7427         instances.
7428         (mono_class_setup_vtable_general): We're now also called for
7429         closed generic instances.
7430
7431         * reflection.c
7432         (mono_reflection_bind_generic_parameters): Correctly use
7433         mono_metadata_lookup_generic_inst() everywhere.
7434
7435 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
7436
7437         * object.c (mono_class_create_runtime_vtable): Call 
7438         mono_class_setup_vtable ().
7439
7440         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
7441         function.
7442         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
7443         #76959.
7444
7445         * loader.c (mono_loader_set_error_type_load): Print the type load
7446         warnings to the console so they are more visible to the user.
7447         (mono_loader_set_error_method_load): Ditto.
7448
7449         * reflection.c (ensure_runtime_vtable): Revert the last change as it
7450         is still broken.
7451         
7452         * reflection.c (ensure_runtime_vtable): Fix build.
7453
7454         * reflection.c (ensure_runtime_vtable): Disable an optimization which
7455         doesn't work in all cases.
7456
7457 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
7458
7459         * object.c (mono_array_new_full): Treat a single dimensional array
7460         with 0 lower bounds as an szarray. Fixes #76973.
7461
7462         * reflection.c (custom_attr_visible): Really fix this.
7463
7464 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
7465
7466         * reflection.c (custom_attr_visible): Allow nested public attributes
7467         as well.
7468
7469         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
7470         interface check.
7471
7472 2005-12-12  Raja R Harinath  <harinath@gmail.com>
7473
7474         * class.c (set_generic_param_owner): Delete.
7475         (mono_class_create_from_typedef): Don't set ->owner field of
7476         generic parameters to "param containers" of enclosing classes.
7477         * reflection.c (mono_reflection_initialize_generic_parameter):
7478         Likewise.
7479
7480 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
7481
7482         * reflection.c (custom_attr_visible): Fix build.
7483
7484 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
7485
7486         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
7487         private attributes.
7488         
7489         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
7490         handling of null parameter defaults.
7491
7492 2005-12-09  Raja R Harinath  <rharinath@novell.com>
7493
7494         * class.c (mono_class_from_generic_parameter): Don't set
7495         klass->generic_container.
7496         (my_mono_class_from_generic_parameter): Likewise.
7497
7498 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
7499
7500         * reflection.c (load_public_key): Fix a warning.
7501         (method_encode_code): Fix unaligned accesses.
7502
7503 2005-12-07  Martin Baulig  <martin@ximian.com>
7504
7505         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
7506
7507         * reflection.c
7508         (write_generic_param_entry): Encode our custom attrs.
7509
7510         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
7511
7512 2005-12-07  Martin Baulig  <martin@ximian.com>
7513
7514         * reflection.c (encode_new_constraint): Removed; we don't use the
7515         `NewConstraintAttribute' anymore.
7516
7517 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
7518
7519         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
7520         not fire a TypeResolve event when Assembly.GetType () is called.
7521
7522 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
7523
7524         Beginning of support for nullable types in the runtime. Parts of
7525         this patch are from Martin.
7526
7527         * appdomain.c (MONO_CORLIB_VERSION): Bump
7528
7529         * domain.c (mono_init_internal): get the nullable type
7530
7531         * class.c (mono_class_is_nullable): New method
7532         (mono_class_get_nullable_param): New mehod
7533         (mono_class_create_generic): In types T? set cast_class to T
7534
7535         * class-internals.h (MonoDefaults): new nullable default class
7536         (mono_class_get_nullable_param, mono_class_get_nullable_param):
7537         new methods.
7538
7539 2005-12-05  Raja R Harinath  <rharinath@novell.com>
7540
7541         * metadata.c (select_container): New.  Refactor code to select the
7542         appropriate GenericContainer given the type of generic parameter
7543         we are looking for.
7544         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
7545         not a MonoGenericContext.  Use select_container.  Update parameters.
7546         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
7547         and MONO_TYPE_MVAR.
7548         (unwrap_arrays): Remove duplicate tests.
7549         (find_generic_param): Rename from 'has_same_context'.  Now walks a
7550         generic instantiated class to find any arguments that are generic
7551         parameters.
7552         (mono_type_create_from_typespec_full): Use find_generic_param to
7553         avoid evicting some generic instantiations from the typespec
7554         cache.
7555
7556 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
7557
7558         * reflection.c: fixed writing of doubles on ARM FPA.
7559
7560 2005-12-02  Robert Jordan  <robertj@gmx.net>
7561
7562         * icall.c: Fixed EventInfo.ReflectedType (#76829).
7563
7564 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7565
7566         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
7567         least on SUSE 10 they are not the same (on debian, they are just the
7568         same thing).
7569
7570 2005-12-01  Raja R Harinath  <rharinath@novell.com>
7571
7572         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
7573         DeclaringType for VARs and MVARs.
7574         * class.c (set_generic_param_owner): Fix initialization of owner
7575         fields.
7576
7577 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7578
7579         * icall.c: fixed Enum.ToObject() to correctly convert the values.
7580
7581 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7582
7583         * threadpool.c: workaround for a bug that shows up on the Mac:
7584         select()+connect() on a blocking socket is not like it should
7585         be, so we proceed to connect() in that case, wasting the I/O
7586         threadpool thread until connect succeedes. Fixes bug #75436.
7587
7588 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7589
7590         * threadpool.c: fix typo when setting file descriptor states.
7591
7592 2005-11-28  Raja R Harinath  <rharinath@novell.com>
7593
7594         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
7595         * metadata.c (mono_metadata_parse_method_signature_full): Don't
7596         create a temporary signature container.
7597         (mono_metadata_parse_generic_param): Update to changes.
7598         (mono_type_create_from_typespec_full): Update to changes.
7599         * loader.c (method_from_memberref): Don't use a
7600         MonoGenericContainer while parsing a memberref signature.
7601         (method_from_methodspec): Remove dead-store of the 'container'
7602         variable.  It's overwritten before use.
7603
7604         * metadata.c (mono_type_create_from_typespec_full): Make debugging
7605         checks tighter.
7606         (mono_metadata_parse_generic_param): Likewise.
7607         * loader.c (find_method_in_class): Does not need a
7608         MonoGenericContainer.  Use 'mono_method_signature' rather than
7609         'mono_method_signature_full'.
7610         (find_method, mono_get_method_constrained, method_from_memberref):
7611         Update to changes.
7612
7613         * metadata.c (mono_type_create_from_typespec_full): Ensure that
7614         owner-less generic-parameters are never evicted from the typespec
7615         cache.
7616
7617         * loader.c (method_from_memberref): Don't use the current context
7618         when parsing signatures.
7619         (method_from_methodspec, mono_get_method_from_token): Update to changes.
7620
7621         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
7622         side-effects in g_assert.
7623         * loader.c (mono_get_method_from_token): Resolve klass earlier so
7624         that we don't potentially lose information.
7625
7626 2005-11-26  Dick Porter  <dick@ximian.com>
7627
7628         * icall.c:
7629         * threads.c: icalls to implement basic (ie, not named)
7630         System.Threading.Semaphore.
7631
7632 2005-11-24  Dick Porter  <dick@ximian.com>
7633
7634         * process.c
7635         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7636         Use GetProcessId() if it's available.
7637
7638 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
7639
7640         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
7641
7642 2005-11-23  Raja R Harinath  <rharinath@novell.com>
7643             Ankit Jain  <jankit@novell.com>
7644
7645         * loader.c (mono_get_method_from_token): Initialize 'method' field
7646         of all generic parameters before parsing the signature.  Remove
7647         code that "fixed"-up MVAR references.
7648
7649 2005-11-23  Ankit Jain  <jankit@novell.com>
7650
7651         * metadata.c (mono_metadata_has_generic_params):
7652         (mono_metadata_load_generic_param_constraints):
7653         (mono_metadata_load_generic_params): Move duplicate code ...
7654         (mono_metadata_get_generic_param_row): ... here. Returns the
7655         first row-id in GenericParam table for a given owner (token).
7656         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
7657         prototype.
7658
7659 2005-11-23  Raja R Harinath  <rharinath@novell.com>
7660             Ankit Jain  <jankit@novell.com>
7661
7662         * metadata.c (mono_metadata_class_equal): Pass signature_only when
7663         comparing VARs too.
7664         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
7665         type->data.generic_param only if the type is an MVAR.
7666         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
7667         leak owner-less VARs and MVARs into managed space.
7668
7669 2005-11-21  Martin Baulig  <martin@ximian.com>
7670
7671         * class-internals.h
7672         (MonoMethod): Moved the `generic_container' here from
7673         `MonoMethodNormal' since we now also need it for
7674         `MonoMethodPInvoke';
7675         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
7676         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
7677         an union containing both `MonoMethodNormal' and
7678         `MonoMethodPInvoke'.
7679
7680         * loader.c
7681         (mono_get_method_from_token): Allow implementing generic methods
7682         as interncalls.
7683
7684         * threads.c
7685         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
7686         icall.
7687
7688 2005-11-17  Dick Porter  <dick@ximian.com>
7689
7690         * icall.c: 
7691         * process.h: 
7692         * process.c: Split the Process Start_internal icall into
7693         ShellExecuteEx_internal and CreateProcess_internal, which are
7694         called depending on whether UseShellExecute is true.  Fixes bug
7695         76670.
7696
7697         * appdomain.c (MONO_CORLIB_VERSION): Incremented
7698
7699 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
7700
7701         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
7702         'msize' parameters, use the information in 'mspec' instead.
7703         (emit_object_to_ptr_conv): Ditto.
7704
7705         * marshal.c (emit_struct_conv): Handle explicit layout structs with
7706         fields out of order. Fixes #76733.
7707
7708 2005-11-17  Ankit Jain  <jankit@novell.com>
7709
7710         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
7711
7712 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
7713
7714         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
7715           bug #76575.
7716
7717 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
7718
7719         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
7720         for types with non-auto layout. Fixes #76717.
7721
7722 2005-11-16  Ankit Jain  <jankit@novell.com>
7723
7724         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
7725         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
7726         if generic_context is null.
7727           (mono_metadata_generic_param_equal): param->owner can be null.
7728           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
7729         null.
7730
7731 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
7732
7733         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
7734         the correct value.
7735
7736 2005-11-15  Martin Baulig  <martin@ximian.com>
7737
7738         * object.c (set_value): Use mono_class_from_mono_type() instead of
7739         the hack for generic instances; fixes #76136.
7740
7741 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
7742
7743         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
7744         fields.
7745
7746         * image.c (load_metadata_ptrs): Initialize the new fields.
7747
7748         * reflection.c (create_dynamic_mono_image): Ditto.
7749
7750         * reflection.c (build_compressed_metadata): Use the new fields.
7751
7752         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
7753         icall.
7754
7755         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
7756         icall.
7757         
7758 2005-11-15  Ankit Jain  <jankit@novell.com>
7759             Raja R Harinath  <harinath@gmail.com>
7760
7761         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
7762         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
7763         new per-generic_container cache if the cached MonoType's context matches
7764         the current context.
7765           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
7766         to the expected context.
7767           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
7768
7769 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7770
7771         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
7772         we changed the signature of an icall.
7773         * icall.c: Modify to mono_double_ParseImpl return true/false 
7774         depending on the success, instead of throwing the exception. This will
7775         help us in Double.TryParse methods.
7776         
7777 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
7778
7779         * marshal.c (emit_marshal_object): Throw an exception when
7780         marshalling 'object' instead of crashing. Fixes #76696.
7781
7782 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
7783
7784         * class-internals.h: Add prototype for mono_type_get_full_name ().
7785
7786 2005-11-11  Dick Porter  <dick@ximian.com>
7787
7788         * threads.c (mono_thread_manage): Make sure the main thread has
7789         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
7790
7791 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
7792
7793         * loader.c (mono_loader_set_error_type_load): Log a warning to the
7794         console about the missing type.
7795         (mono_loader_set_error_method_load): Ditto.
7796
7797 2005-11-09  Miguel de Icaza  <miguel@novell.com>
7798
7799         * mono-config.c (mono_get_config_dir): Set the system defaults if
7800         none is specified.
7801
7802         * assembly.c (mono_set_dirs): New API entry point to set the
7803         assembly and the config directory in one call
7804
7805 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
7806
7807         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
7808         the ftnptr was created from a delegate in a domain other than the
7809         current domain. Fixes #75377.
7810
7811         * exception.h exception.c: Add mono_get_exception_not_supported ().
7812
7813 2005-11-08  Martin Baulig  <martin@ximian.com>
7814
7815         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
7816
7817 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
7818
7819         * security-manager.h: Added definitions to deal with strongname key 
7820         pairs bigger (and smaller) than 1024 bits.
7821         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
7822         adjust wrt the public key length being used.
7823
7824 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
7825
7826         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
7827           Windows build (r51396-51397).
7828
7829 2005-11-03  Martin Baulig  <martin@ximian.com>
7830
7831         * class.c (mono_class_setup_vtable_general): Also add generic
7832         methods to the vtable; fixes #76581.
7833
7834 2005-11-01  Miguel de Icaza  <miguel@novell.com>
7835
7836         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
7837         sure that we lookup GetString method from the System.Text.Encoding
7838         class, not the derived class or we get an empty method.
7839
7840         Fixed class #76612.
7841
7842 2005-10-25  Miguel de Icaza  <miguel@novell.com>
7843
7844         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
7845         if it has been previously set (embedders). 
7846
7847         Make mono_set_rootdir available also on Unix.
7848
7849 005-10-24  Robert Jordan  <robertj@gmx.net>
7850
7851         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
7852
7853 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
7854
7855         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
7856         only calls which are made to native code use this flag.
7857
7858         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
7859
7860 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
7861
7862         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
7863         Add support for FieldBuilders.
7864
7865 2005-10-29  Martin Baulig  <martin@ximian.com>
7866
7867         * mono-debug.c
7868         (mono_debug_using_mono_debugger): New public method; returns
7869         whether we're running inside the debugger.
7870
7871 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
7872
7873         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
7874         for Method/Constructor/FieldBuilders.
7875
7876 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
7877
7878         * reflection.c (module_add_cattrs): Save custom attributes for global methods
7879         and fields as well.
7880
7881 2005-10-26  Martin Baulig  <martin@ximian.com>
7882
7883         * mono-debug-debugger.c
7884         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
7885
7886 2005-10-24  Raja R Harinath  <harinath@gmail.com>
7887
7888         * icall.c (base64_to_byte_array): Don't pass an out-of-range
7889         integer to isspace.
7890
7891 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
7892
7893         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
7894         when passing valuetypes byref. Fixes #76502.
7895
7896 2005-10-19  Jackson Harper  <jackson@ximian.com>
7897
7898         * profiler.c: Don't put a . in front of types that are not in a
7899         namespace.
7900
7901 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
7902
7903         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
7904
7905 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
7906
7907         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
7908         #76436.
7909         (mono_marshal_get_ldflda_wrapper): Fix a warning.
7910
7911 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7912
7913         * assembly.c metadata-internals.h icall.c: Define an additional
7914         parameter for mono_assembly_name_parse_full, so we can avoid creating
7915         S.R.AssemblyName.Version when no version info wasn't passed.
7916         
7917 2005-10-09  Miguel de Icaza  <miguel@novell.com>
7918
7919         * class.c (mono_type_get_full_name): Reimplement method that was
7920         removed. 
7921
7922         * image.c: Some docs
7923
7924 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
7925
7926         * profiler.c (output_newobj_profile): Fix printing of Total memory
7927         on x86.
7928
7929 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
7930
7931         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
7932
7933 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
7934
7935         * threads.c: remove debug output.
7936
7937 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
7938
7939         * threads.c (mono_thread_manage): Fix crashes if more than 64
7940         threads need to be aborted. Hopefully fixes #75899.
7941
7942         * assembly.c (mono_stringify_assembly_name): New helper function.
7943
7944         * class.c: Use mono_stringify_assembly_name instead of the similar
7945         static function.
7946
7947         * assembly.h assembly.c: Add support for calling a postload search 
7948         hook if an assembly cannot be loaded.
7949
7950         * appdomain.c: Register new search hooks which call the AssemblyResolve
7951         events in AppDomain. Fixes #75231
7952
7953 2005-10-07  Martin Baulig  <martin@ximian.com>
7954
7955         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
7956         methods without debug info.
7957
7958 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
7959
7960         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
7961         wrappers.
7962
7963 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7964
7965         * file-io.c: now that we return symlinks, use lstat and, when the file
7966         is a symbolic link, stat, to get the file attributes. Also avoid the
7967         conversion to/from utf16/external.
7968
7969 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
7970
7971         * class.c (mono_class_layout_fields): Compute klass->has_references
7972         correctly if an embedded valuetype is not yet initialized. Fixes
7973         #76331.
7974
7975 2005-10-04  Martin Baulig  <martin@ximian.com>
7976
7977         * metadata.c
7978         (mono_metadata_load_generic_param_constraints): New public
7979         function; splitted the constraints loading out from
7980         mono_metadata_load_generic_params().
7981
7982         * class.c (mono_class_create_from_typedef): Call
7983         mono_metadata_load_generic_param_constraints() after setting up
7984         the type and creating our parent; fixes #75329.
7985
7986 2005-10-04  Martin Baulig  <martin@ximian.com>
7987
7988         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
7989         non-dynamic parent classes.
7990
7991 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
7992
7993         * file-io.c : win32 build fix (ETXTBSY seems not found).
7994
7995 2005-10-04  Martin Baulig  <martin@ximian.com>
7996
7997         * reflection.c
7998         (mono_image_get_methodspec_token): Make the cache actually work;
7999         fixes #75974.
8000
8001 2005-10-04  Martin Baulig  <martin@ximian.com>
8002
8003         * class.c (mono_class_name_from_token): Removed the unneccessary
8004         `MonoGenericContext *' argument.
8005
8006 2005-10-04  Martin Baulig  <martin@ximian.com>
8007
8008         * loader.c
8009         (method_from_methodspec): Make the caching work again; fixes the
8010         performance regression from #76262.
8011
8012 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8013
8014         * file-io.c:
8015         * file-io.h:
8016         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
8017         GetFileSystemEntries that performs the same work but without going
8018         into io-layer, locking, etc.
8019
8020 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
8021
8022         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
8023         ThreadState_Stopped as well. Fixes #76047.
8024
8025 2005-09-29  Martin Baulig  <martin@ximian.com>
8026
8027         * class.c
8028         (inflate_generic_context): If the new context has a `gmethod', set
8029         its `container' that that gmethod's `container'.
8030
8031         * metadata.c
8032         (mono_metadata_parse_generic_param): Simplify things;
8033         `generic_container = generic_context->container;' is just fine.
8034
8035         * loader.c (method_from_methodspec): Code cleanups.
8036
8037 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
8038
8039         * decimal.c: fix warning (and let gcc generate correct
8040         code on ARM with optimizations).
8041
8042 2005-09-28  Martin Baulig  <martin@ximian.com>
8043
8044         * loader.c
8045         (method_from_memberref): Added `MonoGenericContext *class_context'
8046         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
8047         (method_from_methodspec): If we're a memberref, use the enclosing
8048         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
8049
8050 2005-09-28  Martin Baulig  <martin@ximian.com>
8051
8052         * object.c (mono_runtime_invoke_array): Added support for
8053         MONO_TYPE_GENERICINST; fixes #75917.
8054
8055 2005-09-27  Martin Baulig  <martin@ximian.com>
8056
8057         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
8058         `k->byval_arg.type' to determine the actual type.
8059
8060         * loader.c (method_from_methodspec): Removed some hacks.
8061
8062 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
8063
8064         * class-internals.h (mono_field_is_deleted): Do the test for
8065         rtspecialname before we check the actual name of the field. This
8066         prevents us from dereferencing a pointer into the string table,
8067         saving us from accessing a few pages
8068
8069         * *.c: Replace the use of {Enter,Leave}CriticalSection with
8070         macros. This will allow a deadlock debugger to easily be plugged
8071         in.
8072
8073 2005-09-27  Martin Baulig  <martin@ximian.com>
8074
8075         * loader.c (method_from_methodspec): Create a "signature"
8076         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
8077
8078 2005-09-27  Martin Baulig  <martin@ximian.com>
8079
8080         * class.c
8081         (inflate_generic_class): Correctly set the new context's
8082         container.
8083
8084         * loader.c
8085         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
8086         instead of a `MonoGenericContext *'.
8087         (mono_method_signature_full): Take a `MonoGenericContainer *'
8088         instead of a `MonoGenericContext *'.
8089
8090         * metadata.c
8091         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
8092         instead of a `MonoGenericContext *'.
8093         (mono_metadata_parse_method_signature_full): Likewise.
8094
8095 2005-09-26  Martin Baulig  <martin@ximian.com>
8096
8097         * class.c
8098         (mono_class_from_generic_parameter): Set `klass->generic_container'
8099         (mono_class_from_generic_parameter): Likewise.
8100         (mono_bounded_array_class_get): We inherit the generic container
8101         from the element class.
8102
8103         * loader.c
8104         (find_method, find_method_in_class): Take a `MonoGenericContext *'
8105         argument rather than computing it here.
8106         (method_from_memberref): Correctly set the generic context before
8107         parsing the signature.  Fixes #75681.
8108
8109 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
8110
8111         * object.c (mono_class_has_special_static_fields): Fix warnings.
8112
8113 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8114
8115         * assembly.c: Add parse_public_key function, to
8116         par the public keys. Also added mono_assembly_name_parse_full,
8117         to define it the parsed key should be freed or not.
8118         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
8119         to parse a long format assembly name.
8120         * metadata-internals.h: Keep mono_assembly_name_parse_full as
8121         private, since calling it to preserve the key requires
8122         freeing it manually.
8123         
8124 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
8125
8126         * locales.c : removed HAVE_ICU part.
8127
8128 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
8129
8130         * object.c (mono_class_create_runtime_vtable): Avoid calling 
8131         field_is_special_static if the klass has no special static fields.
8132
8133         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
8134         (MonoCachedClassInfo): Likewise.
8135
8136         * object.c (mono_class_has_special_static_fields): New helper function.
8137
8138 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8139
8140         * class.c (mono_class_create_from_typedef): Don't call 
8141         interfaces_from_typedef_full for enums.
8142         (mono_class_create_from_typedef): Compute the base types of enums directly
8143         without calling mono_class_setup_fields ().
8144         (mono_class_find_enum_basetype): New helper function.
8145
8146         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
8147         one place inside the string heap.
8148         
8149 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
8150
8151         * class.c: locking fixes, code cleanups, some docs added.
8152         Allocate some data structures in the image mempool.
8153
8154 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8155
8156         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8157         the example code.
8158         
8159 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
8160
8161         * class-internals.h, class.c, reflection.c: reduce memory taken by
8162         MonoClass.
8163
8164 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
8165
8166         * metadata.c, metadata.h, loader.h: documentation updates, code and
8167         API cleanups.
8168
8169 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8170
8171         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8172         the example code.
8173
8174         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
8175         page faults caused by the runtime while reading metadata.
8176
8177 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8178
8179         * socket-io.c: the field names were changed 3 months ago and no one
8180         realized until bug #76077 got filed!
8181
8182 2005-09-20  Martin Baulig  <martin@ximian.com>
8183
8184         * icall.c (assembly_icalls): Removed some unused debugger icalls.
8185
8186 2005-09-20  Martin Baulig  <martin@ximian.com>
8187
8188         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
8189         write the rank into the class entry.
8190
8191 2005-09-20  Martin Baulig  <martin@ximian.com>
8192
8193         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
8194
8195 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
8196
8197         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8198
8199         * icall.c (custom_attrs_defined_internal): New icall.
8200
8201         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
8202         function.
8203         (mono_custom_attrs_construct_by_type): New helper function.
8204
8205 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
8206
8207         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
8208         terminate the resulting string. Fixes #76123.
8209
8210 2005-09-16  Martin Baulig  <martin@ximian.com>
8211
8212         * mono-debug.c
8213         (mono_debug_add_method): Ignore inflated methods for the moment.
8214
8215 2005-09-14  Martin Baulig  <martin@ximian.com>
8216
8217         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
8218
8219 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
8220
8221         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
8222         return a success/failure indication.
8223         (mono_metadata_interfaces_from_typedef_full): Ditto.
8224         (get_constraints): Ditto.
8225
8226 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
8227
8228         * marshal.c (emit_marshal_array): Fix handling of null arrays.
8229         
8230         * marshal.c (emit_marshal_array): Add support for returning string
8231         arrays from delegates. Fixes #76063.
8232
8233         * marshal.c: Use the emit_ldloc/stloc macros where possible.
8234
8235 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
8236
8237         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
8238         icall.
8239
8240 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
8241
8242         * reflection.c icall.c: Fix after mono_get_exception_type_load
8243         signature change.
8244
8245         * assembly.c (mono_assembly_get_assemblyref): New helper function.
8246         (mono_assembly_load_reference): Use the new helper.
8247
8248         * class-internals.h (MonoLoaderError): New structure containing 
8249         information about type loading errors.
8250
8251         * class-internals.h loader.c: Add APIs to store per-thread loader
8252         error information.
8253
8254         * loader.c class.c: Set the loader error if needed.
8255
8256         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
8257
8258 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
8259
8260         * decimal.c: fixed to handle the broken ARM fp format.
8261
8262 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
8263
8264         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
8265         broken.
8266
8267 2005-09-06  Martin Baulig  <martin@ximian.com>
8268
8269         * domain.c (supported_runtimes): Added v2.0.50727.
8270
8271 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
8272
8273         * culture-info.h: reduce the size of some structures.
8274
8275 2005-09-05  Martin Baulig  <martin@ximian.com>
8276
8277         Reflect latest API changes in the August CTP.
8278
8279         * icall.c
8280         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
8281         ("MonoType.HasGenericArguments"): Removed.
8282         ("MonoMethod.BindGenericParameters"): Renamed to
8283         "MakeGenericMethod".
8284         ("MethodBuilder.BindGenericParameters"): Renamed to
8285         "MakeGenericMethod".    
8286
8287 2005-09-05  Martin Baulig  <martin@ximian.com>
8288
8289         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
8290
8291 2005-09-05  Martin Baulig  <martin@ximian.com>
8292
8293         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8294
8295         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
8296         generic_container is non-NULL.
8297
8298 2005-09-05  Martin Baulig  <martin@ximian.com>
8299
8300         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8301
8302         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
8303
8304 2005-08-29  Michal Moskal  <malekith@nemerle.org>
8305
8306         * reflection.c (encode_locals,
8307         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
8308         for large generic types.
8309
8310 2005-09-05  Martin Baulig  <martin@ximian.com>
8311
8312         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8313
8314         * class.c (mono_dup_array_type): New public method.
8315         (mono_metadata_signature_deep_dup): New public method.
8316         (dup_type): Correctly duplicate array and function types.
8317
8318 2005-09-05  Martin Baulig  <martin@ximian.com>
8319
8320         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8321
8322         * reflection.c (get_default_param_value_blobs): Handle generic types
8323         and generic methods.
8324
8325 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
8326
8327         * class.c: Fixed error reporting (method/class were inversed) for 
8328         inheritance demands.
8329         * security-manager.c|h: Added the AppDomain when calling the managed
8330         System.Security.SecurityManager.InheritanceDemand method.
8331
8332 2005-09-01  Raja R Harinath  <rharinath@novell.com>
8333
8334         * reflection.c (encode_marshal_blob): 'marshaltype' and
8335         'marshaltyperef' are alternate sources for the custom marshaler
8336         name.
8337
8338 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
8339
8340         * class.c: fix creation of array classes with rank == 1
8341         (patch by Ankit Jain <jankit@novell.com>).
8342
8343 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
8344
8345         * object.c: fix check for creating the bound data for arrays vs
8346         szarrays.
8347
8348 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8349
8350         * object.c: configuration file name is now based on the executable name,
8351         not the image name. Fixes bug #75931.
8352
8353 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
8354
8355         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
8356         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
8357
8358 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
8359
8360         * rand.c: Use wincrypt.h instead of WinCrypt.h.
8361
8362 2005-08-24  Ankit Jain  <jankit@novell.com>
8363             Raja R Harinath  <rharinath@novell.com>
8364
8365         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
8366           called by it recursively.
8367           (mono_class_init): Remove special case in pending_init handling, since it's
8368           superseded by the fix to mono_class_from_typeref.
8369
8370 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
8371
8372         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
8373         BROKEN_THREAD_START stuff.
8374
8375 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
8376
8377         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
8378         trampoline.
8379
8380         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
8381         
8382         * object.c (mono_delegate_ctor): Replace the original function address with
8383         a delegate trampoline.
8384
8385 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
8386
8387         * icall.c: add boolean argument to base64_to_byte_array and 
8388         InternalFromBase64String to control whether a whitespace-only string
8389         is allowed (or should casue a FormatException to be thrown). We need
8390         this as the behavior has changed between MS.NET 1.x and 2.0, and we
8391         to match the MS behaviour in both profiles.
8392         * appdomain.c: Bump corlib version.
8393
8394 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8395
8396         This patch implements a big portion of publisher policy
8397         support, used to bind assembly versions and redirect
8398         one assembly from version A to version B.
8399
8400         * assembly.c:
8401         New GSList loaded_assembly_bindings, for storing the cached
8402         assembly bindings.
8403         (assembly_binding_maps_name): New static function for checking if a 
8404         assembly binding information maps an assembly name.
8405         (mono_assembly_binding_info_free): New function for freeing
8406         assembly binding information resources.
8407         (get_publisher_policy_info): New static function for retrieving 
8408         assembly binding information from a MonoImage.
8409         (compare_versions): New static function for comparing an assembly
8410         binding information data and the version of an assembly name.
8411         (check_policy_versions): New static function for checking if an
8412         assembly binding info mapping an assembly name is valid for it.
8413         (mono_assembly_load_publisher_policy): New static function for
8414         loading the 'policy.major.minor.MyAssembly' image for an assembly
8415         with an assembly name 'aname'.
8416         (mono_assembly_bind_version): New static function for updating
8417         assembly redirection.
8418         (mono_assembly_apply_binding): New static function for applying
8419         assembly binding.
8420         (search_binding_loaded): New static function for searching 
8421         loaded assembly binding infos in the cache domain.
8422         (mono_assembly_load_full): Don't apply assembly binding for
8423         reflection only assemblies.
8424
8425         * metadata-internals.h: Add MonoAssemblyBindingInfo,
8426         which contains information about assembly binding. Also
8427         declare signature for mono_config_parse_publisher_policy ()
8428         function, used to retrieve pub policy info.
8429         
8430         * mono-config.c:
8431         (publisher_policy_start): New static function used to parse publisher 
8432         policy config files.
8433         (publisher_policy_parser): New static MonoParseHandler containing 
8434         the functions used when parsing config files.
8435         (mono_config_parse_publisher_policy): New function for parsing
8436         publisher policy files.
8437         
8438 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
8439
8440         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
8441
8442         * marshal.c (mono_delegate_free_ftnptr): Ditto.
8443
8444         * object.c (mono_get_addr_from_ftnptr): New helper function.
8445
8446         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
8447
8448         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8449
8450 2005-08-19  Dick Porter  <dick@ximian.com>
8451
8452         * threads.c, threads.h, appdomain.c, appdomain.h,
8453         profiler-private.h, monitor.c, object.c, object-internals.h,
8454         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
8455         store the thread ID, so it can hold a 64 bit value if needed.
8456
8457 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
8458
8459         * reflection.c (mono_reflection_create_dynamic_method): Store the
8460         handle class into the method references as well so ldtoken works in
8461         dynamic methods.
8462
8463         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
8464         types.
8465
8466 2005-08-19  Ankit Jain <jankit@novell.com>
8467
8468         Fix #75847.
8469         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
8470           here rather than using the method signature of a arbitrary function
8471           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
8472           two arguments.
8473           Hack done with Harinath.
8474
8475 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8476
8477         * threadpool.c: disable printing stack traces when we get a exception
8478         in a threadpool thread. I need to do more testing to figure out which
8479         cases actually print this. Fixes bug #75828.
8480
8481 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8482
8483         * icall.c: there might be ignored whitespace after the last '='. This
8484         fixes length computation and bug #75840.
8485
8486 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
8487
8488         * assembly.c (mono_assembly_load_full): Consider .exe extension as
8489         well. Fixes #75809.
8490
8491         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
8492         #75784.
8493         
8494         * reflection.c (create_custom_attr_data): Ditto.
8495
8496 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
8497
8498         * locales.c, culture-info.h : removed RegionLCIDMap.
8499         * culture-info-tables.h : regenerated.
8500
8501 2005-08-16  Martin Baulig  <martin@ximian.com>
8502
8503         * class.c (mono_type_get_name_recurse): Small fix.
8504
8505 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
8506
8507         * locales.c : indentation fixie.
8508
8509 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
8510
8511         * object-internals.h,
8512           locales.h,
8513           locales.c,
8514           culture-info.h,
8515           icall.c : added RegionInfo table support.
8516         * culture-info-table.h : regenerated for region support.
8517
8518 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
8519
8520         * reflection.c (resolve_object): handle all kinds of MonoMethod
8521         including generic ones
8522
8523 2005-08-12  Ankit Jain <jankit@novell.com>
8524
8525         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
8526           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
8527
8528 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
8529
8530         * process.c: Don't close a thread handle when it's NULL. This is a
8531         workaround for bug #75733.
8532
8533 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
8534
8535         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
8536
8537 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
8538
8539         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
8540
8541 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8542
8543         * threadpool.c: if a work item in the thread pool has a callback that
8544         catches a exception, don't propagate it after invoking the callback.
8545         Fixes bug #75336.
8546
8547 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
8548
8549         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
8550
8551         * class-internals.h (MonoCachedClassInfo): Add some new fields.
8552
8553         * class.c (mono_class_init): Load field info lazily in the AOT case.    
8554
8555         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
8556
8557 2005-08-03  Ankit Jain  <jankit@novell.com>
8558
8559         Fix #75683.
8560         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
8561           PInvoke calling convention is 0.
8562
8563 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
8564
8565         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
8566         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
8567
8568 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
8569
8570         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
8571         to handle threads not started by the GC (patch by Michael Meeks
8572         <michael.meeks@novell.com>).
8573
8574 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
8575
8576         * reflection.c: Make buffer used in emitting types larger for some
8577         big generic types (patch by Michal Moskal).
8578
8579 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
8580
8581         * mono-debug.c: Fix some (not all) alignment problems.
8582
8583 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8584
8585         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
8586         Invoke mono_image_load_from_data_full passing the refonly
8587         parameter.
8588
8589         * assembly.c
8590         (mono_assembly_open_from_bundle): Add the refonly argument, 
8591         in order to pass it to other methods it calls to.
8592         (do_mono_assembly_open): Add the refonly argument, in order 
8593         to pass it to other methods it calls to.
8594         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
8595         the refonly parameter to it.
8596
8597         * image.c: Add loaded_images_refonly_hash and
8598         loaded_images_refonly_guid_hash to cache the reflection
8599         only loaded images.
8600         (mono_images_init): Initialize the hash tables used for
8601         caching the reflection only images.
8602         (load_modules): Invoke mono_image_open_full passing the refonly
8603         parameter to load the modules the correct way.
8604         (build_guid_table): Add the refonly argument, to re-build the 
8605         correct hash table.
8606         (do_mono_image_open): Added the refonly argument, in order to
8607         define it for the loaded image.
8608         (mono_image_loaded_full): New function, which receives an
8609         additional parameter to look for the image in the refonly or
8610         non-refonly section.
8611         (mono_image_loaded): Updated, using mono_image_loaded_full.
8612         (mono_image_loaded_by_guid_full): The same case that happens
8613         with mono_image_loaded_full.
8614         (mono_image_loaded_by_guid): Likewise.
8615         (register_image): Use the ref_only variable inside MonoImage
8616         to decide in which hash table store the current image.
8617         (mono_image_open_from_data_full): Rename
8618         mono_image_open_from_data to mono_image_open_from_data_full,
8619         adding the refonly argument, to define the ref_only variable 
8620         inside MonoImage.
8621         (mono_image_open_from_data): Return 
8622         mono_image_open_from_data_full.
8623         (mono_image_open_full): Rename mono_image_open to
8624         mono_image_open_full, receiving the new refonly argument,
8625         to pass it to inner methods.
8626         (mono_pe_file_open): Update this function, to open
8627         a MonoImage as a non-refonly image.
8628         (mono_image_close): Use the refonly variable inside
8629         MonoImage to remove the image from the correct caches.
8630
8631         * image.h: Add the signatures of mono_image_open_full,
8632         mono_image_open_from_data_full, mono_image_loaded_full,
8633         mono_image_loaded_by_guid_full.
8634
8635         * metadata-internals.h: Add the ref_only field to 
8636         MonoImage.
8637         
8638 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8639
8640         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
8641         Fix the last behavior, which used to load the assemblies and
8642         extract MonoReflectionAssemblyName information, instead of
8643         extract it from the metadata tables. Needed for Reflection
8644         Only assemblies.
8645         
8646 2005-07-29  Martin Baulig  <martin@ximian.com>
8647
8648         * mono-debug-debugger.c
8649         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
8650         not initialized.
8651
8652         * mono-debug.c
8653         (mono_debug_address_from_il_offset): Check whether we have
8654         debugging support before attempting to take the lock.
8655         (mono_debug_source_location_from_address): Likewise.
8656         (mono_debug_source_location_from_il_offset): Likewise.
8657         (mono_debug_il_offset_from_address): Likewise.
8658         (mono_debug_address_from_il_offset): Likewise.
8659
8660 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
8661
8662         * class.c (mono_class_from_name_case): Add support for dynamic images.
8663         Fixes #75650.
8664
8665         * object.c (mono_class_compute_gc_descriptor): Add a workaround
8666         for #75479.
8667
8668 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
8669         
8670         * reflection.c (mono_method_get_object): Fix warning.
8671
8672 2005-07-28  Martin Baulig  <martin@ximian.com>
8673
8674         * mono-debug.c
8675         (mono_debug_add_wrapper): Also write the wrapper type.
8676
8677 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
8678
8679         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
8680         
8681         * class.c (mono_class_init): Avoid reading nested classes if the AOT
8682         data indicates the class has none.
8683
8684 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
8685
8686         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
8687         loader lock with the debugger lock. Prevents deadlocks for beagle.
8688
8689         Beagle can now run on an smp box for a weekend without any
8690         issues. Woohoo!
8691
8692 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
8693
8694         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
8695         in a module. Fixes #75629.
8696
8697 2005-07-26  Martin Baulig  <martin@ximian.com>
8698
8699         * mono-debug.c (mono_debug_add_wrapper): New static method.
8700         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
8701         interncall or a wrapper.
8702
8703         * mono-debug.h (MonoDebugWrapperData): New public typedef.
8704         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
8705         (MONO_DEBUGGER_VERSION): Bump to 51.
8706
8707         * mono-debug-debugger.c
8708         (mono_debugger_add_type): Removed this empty function.
8709         (mono_debugger_add_method): Likewise.
8710
8711 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
8712
8713         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
8714         before accessing method->slot.
8715
8716 2005-07-21  Jb Evain  <jbevain@gmail.com>
8717
8718         * reflection.c (method_encode_clauses/class): Handle filters clauses.
8719         Fixes #75010.
8720
8721 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
8722
8723         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
8724         #75587.
8725
8726 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
8727
8728         * image.h image.c: Add mono_image_get_guid () API function.
8729
8730 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
8731
8732         There were issues when multiple threads tried to load
8733         assemblies. A deadlock was created between assemblies_mutex and
8734         mono_domain_assemblies_lock. This fixes the issue by making the
8735         assembly ref counting be lock free. See bug 75586.
8736         
8737         * image.c (mono_image_close): The add ref function here was using
8738         Interlocked operations while the unref was using a mutex and a
8739         --. I don't think this was ever a bug that would be exposed in a
8740         non-pendantic way (ie, by an embedder doing a ref on one thread
8741         and an unref on another), but for the sake of correctness, this is
8742         now Interlocked.
8743
8744         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
8745         (mono_assembly_load_reference): Call mono_assembly_addref rather
8746         than touching the refcount ourselves.
8747         (mono_assembly_close): Use InterlockedDecrement to unref the
8748         assembly. Don't acquire the lock unless it is actually needed.
8749
8750 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
8751
8752         * class.c (mono_class_layout_fields): Fix calculation of has_references
8753         for generic types.
8754
8755 2005-07-12  Martin Baulig  <martin@ximian.com>
8756
8757         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8758
8759         * metadata.c
8760         (mono_type_hash): Provide better hashing for generic instances.
8761         (mono_generic_inst_hash): Improve hashing.
8762         (mono_generic_class_hash): Likewise.
8763
8764         * reflection.c (mymono_metadata_type_hash): Improve hashing for
8765         generic instances.
8766
8767 2005-07-12  Martin Baulig  <martin@ximian.com>
8768
8769         * reflection.c (mono_reflection_create_runtime_class): Remove the
8770         hack for generic type definitions and non-`Run' assemblies.
8771         (mono_reflection_bind_generic_parameters): Also use
8772         `klass->wastypebuilder' to check for TypeBuilders.
8773
8774 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
8775
8776         * class.c (mono_class_layout_fields): Fix calculation of has_references
8777         for generic types.
8778
8779         * class.c (inflate_generic_class): Fix a leak.
8780         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
8781         for generic types.
8782
8783 2005-07-11  Martin Baulig  <martin@ximian.com>
8784
8785         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
8786         on error.
8787
8788 2005-07-11  Martin Baulig  <martin@ximian.com>
8789
8790         * loader.c (find_method): Also lookup in
8791         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
8792
8793 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
8794
8795         * appdomain.c (mono_domain_unload): Don't free the error message
8796         before passing it to mono_get_exception_...
8797
8798         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
8799         
8800 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
8801
8802         * threads.c: try to better guess an available RT signal (bug #75387).
8803
8804 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
8805
8806         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
8807         and CACHE_OBJECT.
8808
8809 2005-07-07  Martin Baulig  <martin@ximian.com>
8810
8811         * class.c (mono_type_get_name_full): Return NULL for
8812         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
8813         fixes #75408.
8814
8815 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
8816
8817         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
8818         exit the appdomain as well being aborted.
8819
8820         * threadpool.c: Create all threadpool threads inside the root appdomain, and
8821         change back to the root domain after calling managed code. This enables
8822         appdomains using threadpools to be unloaded.
8823
8824 2005-07-07  Martin Baulig  <martin@ximian.com>
8825
8826         * class-internals.h
8827         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
8828         into `MonoDynamicGenericClass' since we only need it for dynamic
8829         types.
8830
8831         * reflection.c (mono_class_bind_generic_parameters): We don't need
8832         to compute the `parent' here.
8833
8834 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
8835
8836         * culture-info-table.h : regenerated.
8837
8838 2005-07-06  Martin Baulig  <martin@ximian.com>
8839
8840         * icall.c
8841         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
8842
8843         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
8844
8845 2005-07-06  Martin Baulig  <martin@ximian.com>
8846
8847         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
8848         we're doing a signature-only comparision; fixes #74945.
8849
8850 2005-07-06  Martin Baulig  <martin@ximian.com>
8851
8852         * class-internals.h (MonoGenericClass): Moved some things out into
8853         a new `MonoInflatedGenericClass' type.  
8854         (MonoInflatedGenericClass): New type; the `klass' of a
8855         `MonoGenericClass' is now computed lazyly in
8856         mono_get_inflated_generic_class().      
8857
8858         * class.c (mono_get_inflated_generic_class): New public function.
8859         (mono_class_inflate_generic_method): Removed the unused
8860         `MonoClass *' argument.
8861         (setup_generic_vtable): Don't call mono_get_inflated_method() on
8862         all the methods.
8863         (mono_class_create_generic): Make this static and merge it with
8864         mono_class_create_generic_2(); we're now called automatically from
8865         mono_get_inflated_generic_class().
8866
8867         * loader.c (mono_method_signature): Call
8868         mono_get_inflated_method() here.
8869
8870 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
8871
8872         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
8873         type of fields with RVA.
8874
8875         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
8876         for this pseudo class.
8877         (my_mono_class_from_generic_parameter): Likewise.
8878         (mono_class_init): Allow interfaces to have cctors.
8879
8880 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
8881
8882         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
8883         lazily for AOT methods.
8884
8885 2005-07-05  Martin Baulig  <martin@ximian.com>
8886
8887         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
8888         returns FALSE for a successful match, not TRUE.
8889
8890 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
8891
8892         * loader.c (mono_method_get_index): Optimize this a bit.
8893
8894 2005-07-04  Martin Baulig  <martin@ximian.com>
8895
8896         * class.c
8897         (class_compute_field_layout): Move the check for generic type
8898         definitions into mono_class_layout_fields().  Fixes #74684.
8899         (mono_class_from_generic_parameter): Correctly compute
8900         `klass->parent'; fixes #75457.
8901
8902         * reflection.c (register_assembly, register_module): Make sure
8903         `domain->rejobject_hash' is already created.
8904
8905 2005-07-02  Martin Baulig  <martin@ximian.com>
8906
8907         * class-internals.h
8908         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
8909         `MonoDynamicGenericClass'.      
8910
8911 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
8912
8913         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
8914         returned by a field getter is null, since null is a valid value.
8915
8916 2005-07-01  Martin Baulig  <martin@ximian.com>
8917
8918         * reflection.c (mono_reflection_generic_class_initialize): Update
8919         the `dgclass->fields [i].parent' to the correct class.
8920         (mono_image_get_fieldref_token): Use the declaring type, not the
8921         reflected type.
8922
8923 2005-07-01  Martin Baulig  <martin@ximian.com>
8924
8925         * loader.c (find_method): Also look in the interfaces; fixes #75429.
8926
8927 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
8928
8929         * threads.c (thread_cleanup): assert that thread != NULL
8930         (wait_for_tids_or_state_change): We were using the wrong variable
8931         when accessing wait->threads. `i' was always out of the bounds of
8932         the array.
8933
8934 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8935
8936         * loader.c: map user32 and kernel32 to libMonoSupportW
8937
8938 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
8939
8940         * appdomain.c (unload_thread_main): Mark this as WINAPI.
8941
8942 2005-06-28  Martin Baulig  <martin@ximian.com>
8943
8944         * loader.c (method_from_methodspec): Fix #75334.
8945
8946 2005-06-28  Martin Baulig  <martin@ximian.com>
8947
8948         Fix #74953 - Arrays now implement the generic IList<T> interface
8949         on the 2.0 platform.
8950
8951         * class-internals.h (MonoDefaults): Added `generic_array_class'.
8952
8953         * reflection.c (mono_class_bind_generic_parameters): New public
8954         function; similar to mono_reflection_bind_generic_parameters(),
8955         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
8956
8957         * domain.c (mono_init_internal): Try to initialize.
8958         `mono_defaults.generic_array_class' here; this'll only succeed if
8959         we're using the 2.0 corlib.
8960
8961         * icall.c
8962         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
8963         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
8964         (mono_lookup_internal_call): Added support for nested classes.
8965
8966         * loader.c
8967         (mono_get_method_from_token): Set `result->signature->pinvoke' if
8968         we're an interncall and have generic arguments.
8969
8970         * class.c
8971         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
8972         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
8973         instance of System.Array.InternalArray<T> for arrays, so they
8974         implement the generic IList<T> interface.
8975
8976 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
8977
8978         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
8979         (chastamar@yahoo.com). Fixes #75374.    
8980
8981 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
8982
8983         * culture-info-table.h: regenerated.
8984
8985 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8986
8987         * icall.c: handle spaces correctly for base64 strings.
8988
8989 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
8990
8991         * *.c: Kill some warnings.
8992
8993 2005-06-23  Duncan Mak  <duncan@novell.com>
8994
8995         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
8996         that this builds on Solaris 10 (x86).
8997
8998 2005-06-23  Martin Baulig  <martin@ximian.com>
8999
9000         * class.c
9001         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
9002         generic type definitions.
9003
9004 2005-06-23  Martin Baulig  <martin@ximian.com>
9005
9006         Fix #75331.
9007
9008         * metadata.c (mono_class_get_overrides): Renamed to
9009         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
9010         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
9011         pass it to mono_get_method_full().
9012
9013 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
9014
9015         * reflection.c (mono_reflection_create_runtime_class): take the
9016         mono_domain_lock in this method. Prevents deadlocks
9017
9018 2005-06-22  Martin Baulig  <martin@ximian.com>
9019
9020         * loader.c (method_from_methodspec): Fix #75330.
9021
9022 2005-06-22  Martin Baulig  <martin@ximian.com>
9023
9024         * reflection.c (type_get_qualified_name): Use
9025         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
9026         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
9027         argument; use it if we don't have an assembly name.
9028
9029 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
9030
9031         * object.c: In mono_message_init, set "copy out" flag for in
9032         parameters with the [Out] flag.
9033
9034 2005-06-21  Martin Baulig  <martin@ximian.com>
9035
9036         * class.c
9037         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
9038         and MONO_TYPE_PTR.
9039
9040 2005-06-21  Martin Baulig  <martin@ximian.com>
9041
9042         * class.c (mono_class_init): Don't initialize `class->fields' for
9043         generic instances since they're initialized again in
9044         compute_field_layout(). 
9045         (compute_field_layout): Set the field's `generic_info' here; fix
9046         #75320. 
9047
9048 2005-06-21  Martin Baulig  <martin@ximian.com>
9049
9050         * class-internals.h
9051         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
9052
9053         * metadata.c (mono_metadata_generic_method_equal): Also
9054         distinguish the `generic_class'; fixes #75334.
9055
9056 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9057
9058         * domain.c:
9059         * appdomain.c:
9060         * domain-internals.h:
9061         * reflection.c: 'domain_assemblies' field is now protected by its own
9062         lock. Don't call into managed code to run the AssemblyLoad event if we
9063         now there are no registered delegates for it.
9064
9065 2005-06-20  Martin Baulig  <martin@ximian.com>
9066
9067         * class.c (mono_class_is_assignable_from): Use a custom version of
9068         mono_class_has_parent() to make things work for generic instances;
9069         fix #75300.
9070
9071 2005-06-20  Martin Baulig  <martin@ximian.com>
9072
9073         * loader.c (method_from_methodspec): Apply a patch from
9074         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
9075
9076 2005-06-20  Martin Baulig  <martin@ximian.com>
9077
9078         * class.c (mono_class_init): Reverted Zoltan's last change; it
9079         breaks generics.
9080
9081 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
9082
9083         * threads.c (wait_for_tids_or_state_change): Add missing locking.
9084
9085 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9086
9087         * socket-io.c: fix the index in the socket array for writable/error
9088         sockets. Fixes bug #75306.
9089
9090 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
9091
9092         * class.c (mono_class_init): Allow interfaces to have static ctors.
9093
9094 2005-06-17  Martin Baulig  <martin@ximian.com>
9095
9096         * loader.c (method_from_methodspec): Use `context->container' when
9097         parsing the `gmethod->inst'.
9098
9099 2005-06-17  Martin Baulig  <martin@ximian.com>
9100
9101         * class.c (mono_type_get_name_recurse): Don't add the assembly
9102         name for type arguments.
9103
9104 2005-06-15  Martin Baulig  <martin@ximian.com>
9105
9106         * reflection.c (mono_image_get_inflated_method_token): Encode
9107         correct klass; fixes #75260.
9108
9109 2005-06-13 Michal Moskal <malekith@nemerle.org>
9110
9111         * icall.c: Make GetCorrespondingMethod/Constructor take
9112         MonoReflectionMethod method not MonoMethod. Removed
9113         MonoType.GetCorrespondingField, and make
9114         MonoGenericType.GetCorrespondingField take name not
9115         MonoClassField.
9116
9117 2005-06-13  Michal Moskal <malekith@nemerle.org>
9118
9119         * reflection.c (field_encode_signature, encode_locals):
9120          Make sizes of buffers for types larger (for big generic types).
9121          (create_generic_typespec,
9122          mono_reflection_sighelper_get_signature_local,
9123          mono_reflection_sighelper_get_signature_field):
9124          Add asserts for too small buffers.
9125
9126 2005-06-15  Martin Baulig  <martin@ximian.com>
9127
9128         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
9129         if our parent is not a dynamic type.
9130
9131 2005-06-15  Martin Baulig  <martin@ximian.com>
9132
9133         * class-internals.h (MonoTypeNameFormat): New enum.
9134
9135         * class.c
9136         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
9137         (mono_type_get_full_name): Removed.
9138         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
9139         argument instead of the boolean's.
9140
9141         * icall.c (ves_icall_System_MonoType_getFullName):
9142         Added `gboolean assembly_qualified'.    
9143
9144         * reflection.h
9145         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
9146
9147         * reflection.c (mono_reflection_parse_type): Parse the new type
9148         name format.
9149
9150 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9151
9152         * icall.c: no need to convert from utf16 to utf8 and then back again
9153         after the call to GetLogicalDrives.
9154
9155 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9156
9157         * icall.c: frombase64. Fix problems exposed by new tests.
9158
9159 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9160
9161         * icall.c: added internal calls for converting char [] and strings in
9162         base64 into byte [].
9163
9164 2005-06-10  Martin Baulig  <martin@ximian.com>
9165
9166         * class.c (mono_class_create_generic_2): Read the nested classes
9167         from the metadata rather than from `gklass->nested_classes' since
9168         `gklass' might not be initialized yet.
9169
9170 2005-06-09  Duncan Mak  <duncan@novell.com>
9171
9172         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
9173         all public headers. Fixes #74919.
9174
9175 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
9176
9177         * domain.c: The key for proxy_vtable_hash is now a pointer
9178         array. Added new GHashFunc and GCompareFunc functions for this.
9179
9180         * class.h: The list of interfaces in MonoRemoteClass is known in
9181         advance and can't grow (we create a new MonoRemoteClass if needed),
9182         so now the interface array can be allocated together with
9183         MonoRemoteClass.
9184         
9185         * object.c: Added a new method create_remote_class_key.
9186         Fixed mono_remote_class so it does not depend on
9187         mono_upgrade_remote_class.
9188         Removed extend_interface_array.
9189         Added new method clone_remote_class(), which makes a copy of a remote
9190         class and adds a new interface or class to it.
9191         mono_upgrade_remote_class() now creates a new remote class (or gets
9192         it from the cache) if an vtable upgrade is needed. In this way
9193         we make sure that other objects sharing the same remote class
9194         don't get the new vtable with unwanted interfaces.
9195         
9196         * object-internals.h:
9197         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
9198         
9199         * marshal.c: Track changes in mono_upgrade_remote_class().
9200
9201 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
9202         * icall.c: Add runtime methods for obtaining members of inflated
9203         class, which were created from supplied non-inflated members. It
9204         is used in internal Get{Method,Constructor,Field} methods in
9205         System.Type
9206
9207 2005-06-09  Martin Baulig  <martin@ximian.com>
9208
9209         * reflection.c
9210         (mono_reflection_bind_generic_method_parameters): Fix #75169.
9211
9212 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9213         * reflection.c (mono_image_basic_init): Define
9214         Version in MonoDynamicAssembly. 
9215         
9216 2005-06-08  Martin Baulig  <martin@ximian.com>
9217
9218         Fix #75136.
9219
9220         * loader.c
9221         (mono_method_signature_full): New public method; takes a
9222         `MonoGenericContext *'.
9223         (find_method): Use mono_method_signature_full() and pass the
9224         klass'es context to it.
9225
9226         * class.c (mono_class_is_inflated_method): Use
9227         mono_method_signature_full() and pass the context to it.
9228
9229 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
9230
9231         * object.c: add proper locking in mono_remote_class_vtable(),
9232         fixes possible memory corruption.
9233
9234 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
9235
9236         * marshal.c (mono_remoting_marshal_init): set
9237         initialized after initialization.
9238
9239 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9240
9241         * locales.c : hush.
9242
9243 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
9244
9245         * object.c (extend_interface_array): fix really silly
9246         memory corrupting / comparison bug.
9247
9248 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9249
9250         * reflection.c: Functions added to support the creation
9251         of CustomAttributeData, which includes Attribute data
9252         used by ReflectionOnly methods.
9253
9254         * reflection.h:  mono_reflection_get_custom_attrs_data and
9255          mono_custom_attrs_data_construct added (functions exposed).
9256
9257          * icall.c: Added mono_reflection_get_custom_attrs_data
9258          as icall.
9259         
9260 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
9261
9262         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
9263         lupus's request.
9264
9265 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
9266
9267         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
9268
9269         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
9270         dynamic DllImportAttribute.
9271
9272         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
9273         dynamic DllImportAttribute.
9274
9275         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
9276         Fixes #75162.
9277
9278 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9279
9280         * threads.c: avoid segfault when an unstarted thread is aborted.
9281
9282 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
9283
9284         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
9285         Returns the name and version of the runtime for reporting.
9286
9287 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9288
9289         * appdomain.c: bump corlib version.
9290         * object-internals.h: new field in MonoReflectionAssembly.
9291
9292 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9293
9294         * object-internals.h: Carlos forgot to add this field.
9295
9296 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9297
9298         * icall.c: Added create_version to create instances
9299         of Version of MonoReflectionAssemblyName. This change helps
9300         the AssemblyName tests to keep running fine.
9301         
9302 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
9303   
9304         * object.c (mono_method_return_message_restore): A somehow less
9305         intrusive fix for #75138.
9306
9307 2005-06-03  Raja R Harinath  <rharinath@novell.com>
9308
9309         * object.c (mono_method_return_message_restore): Fix computation
9310         of expected number of out args.
9311
9312 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
9313
9314         * reflection.c (mono_image_get_method_info): Fix the case when the
9315         charset is empty.
9316
9317 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
9318
9319         * object.c: Added missing null check in
9320           mono_method_return_message_restore.
9321
9322 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
9323
9324         * reflection.c (mono_image_get_method_info): Handle the case when
9325         dllentry is empty.
9326
9327 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
9328
9329         * object.c: When creating the vtable for a proxy, take into account
9330         all inherited interfaces, not only the ones registered in
9331         iclass->interfaces. This fixs bug #74996.
9332         Also, in mono_method_return_message_restore, verify that the array
9333         of out args has the expected lengh.
9334
9335 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9336
9337         * socket-io.c: update the timeout in Poll when the call is interrupte.
9338
9339 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9340
9341         * socket-io.c: support abort/suspend in Select_internal after last
9342         change.
9343
9344 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9345
9346         * threadpool.c: remove warning.
9347
9348 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9349
9350         * icall.c:
9351         * socket-io.[ch]: Select_internal uses poll() now when available, thus
9352         removing the 1024 limit from select(). Runtime part of the fix for
9353         bug #71203.
9354
9355 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9356
9357         * socket-io.c: when resolving the addresses for the same
9358         host returned by gethostname(), get the local IPs from the interface
9359         list. Loopback addresses are discarded if the are interfaces up with
9360         non-loopback ones. Fixes bug #63265.
9361
9362 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
9363
9364         * appdomain.c, verify.c, object-internals.h, reflection.c:
9365         bumped corlib number to 36, and added new extra_flags field
9366         to ReflectionMethodBuilder and friends.  Fixes #75060.
9367
9368 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
9369
9370         * gc.c: register a new weak link only if the object is non-null
9371         (fixes bug#75047).
9372
9373 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9374
9375         * culture-info.h : short time pattern too.
9376
9377 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9378
9379         * culture-info.h : expand long time pattern string length.
9380
9381 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9382
9383         * culture-info-table.h : update (more French date format; #72788).
9384
9385 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
9386
9387         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
9388         the method is static. Fixes #75029.
9389
9390 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
9391
9392         * reflection.c: Update the table_idx field of method builders after
9393         saving the module, since it can change. This is a workaround for
9394         bug #74914. 
9395
9396 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9397
9398         * culture-info-table.h : update (additional French date format).
9399
9400 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
9401
9402         * icall.c (ves_icall_type_Equals): Revert last change.
9403         
9404         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
9405
9406         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
9407
9408 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
9409
9410         * class-internals.h: Added executioncontext_class field to 
9411         MonoDefaults structure.
9412         * domain.c: Cache System.Threading.ExecutionContext class in 
9413         mono_defaults.
9414         * object.c: Capture the ExecutionContext for asynchroneous calls in
9415          mono_async_result_new.
9416         * object-internals.h: Added execution_context and original_context 
9417         fields to MonoAsyncResult. Added execution_context to MonoThread.
9418         * security-manager.c|.h: Added mono_get_context_capture_method to 
9419         return the capture method (if required by the security manager or by
9420         the framework version used).
9421         * threadpool.c: Apply capture (if present) ExecutionContext in 
9422         mono_async_invoke and revert to original context after it completes.
9423
9424 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
9425
9426         * culture-info-table.h : updated (real hacky solution for zh-CHT).
9427
9428 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
9429
9430         * culture-info-table.h : zh-CHT related workaround.
9431
9432 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
9433
9434         * marshal.c (emit_marshal_custom): Add some error checking and call the
9435         methods in the ICustomMarshaler interface. Fixes #74875.
9436         
9437         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
9438         native->managed wrappers.
9439
9440 2005-05-12  Martin Baulig  <martin@ximian.com>
9441
9442         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
9443         here and use the loader lock.
9444
9445         * mono-debug.c: Properly lock when the debugger is not attached.
9446         (mono_debug_init): Release the initial lock if we're not running
9447         in the debugger.
9448
9449 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
9450
9451         * marshal.c (emit_marshal_custom): Pass through NULL values without
9452         calling the custom marshalling routines.
9453
9454         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
9455         conversion in structures. Fixes #74882.
9456
9457 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
9458
9459         * culture-info-table.h : zh-* cultures were missing.
9460
9461 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
9462
9463         * threads.c: Added a new event background_change_event which is signaled
9464         when a thread changes its background mode.
9465         Moved here several checks previously done in managed code. The checks
9466         require the thread lock, and using the thread lock in managed code
9467         can result in deadlocks.
9468         Merged Start_internal and Thread_internal into a single method. Now 
9469         Thread_internal does all work of creating and starting a thread.
9470         Added icalls for setting and getting the state of the object. Moved from
9471         managed code to avoid locking there.
9472         Added wait_for_tids_or_state_change() which is called instad of
9473         wait_for_tids when waiting for non-backround threads to end. This method
9474         will return if one of the threads ends or the background_change_event
9475         is signaled.
9476         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
9477         the background mode. This method signals the background_change_event
9478         event.
9479         * icall.c:
9480         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
9481         removed Start_internal.
9482         
9483 2005-05-11  Martin Baulig  <martin@ximian.com>
9484
9485         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
9486         to order of some fields to get proper alignment on 64-bit machines.
9487
9488 2005-05-11  Martin Baulig  <martin@ximian.com>
9489
9490         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
9491         changes as they're broken and completely fuck up the debugger.
9492
9493         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
9494
9495 2005-05-10  Martin Baulig  <martin@ximian.com>
9496
9497         * reflection.c (mono_reflection_generic_class_initialize): Don't
9498         call mono_class_setup_parent() here.
9499
9500 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9501
9502         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
9503         send/receive timeout use an integer in milliseconds. We were using a
9504         struct timeval.
9505
9506 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9507
9508         * locales.c:
9509         (internal_get_cultures): reserve the first slot of the array for the
9510         InvariantCulture, which will be filled in managed code.
9511
9512 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
9513
9514         * reflection.c (mono_image_fill_module_table): Initialize the
9515         GENERATION field as well.
9516
9517 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9518
9519         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
9520         Monitor.Enter on the object.
9521
9522 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
9523
9524         * threads.c: Enable the wait for running threads when exiting.
9525         * icall.c: Suspend all threads before exiting.
9526
9527 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
9528
9529         * assembly.c (mono_assembly_load_reference): Fix warning.
9530
9531 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9532
9533         * threadpool.c: changed the default number of threads per cpu. From now
9534         on, the default will be 20 + (5 * number of cpus) instead of 50.
9535
9536 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
9537
9538         * loader.c (mono_method_get_signature_full): Add locking here.
9539
9540 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
9541
9542         * appdomain.c: Moved methods for parsing and freeing assembly
9543         names to assembly.c.
9544         * assembly.c, domain-internals.h: Created public methods for parsing
9545         assembly names. Fixed mono_assembly_load_with_partial_name:
9546         it now finds the best match, taking into account the version,
9547         token and culture specified in the partial name. Also return
9548         the latest version if no version information is specified.
9549
9550 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
9551
9552         * threadpool.c: replace check for SocketAsyncCall class.
9553
9554 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9555
9556         * threadpool-internals.h:
9557         * Makefile.am: added threadpool-internals.h
9558
9559         * threadpool.c: call mono_unhandled_exception on exceptions not handled
9560         that happen in threadpool threads (tested on MS).
9561         (mono_thread_pool_remove_socket): new function that dispatch any pending
9562         AIO call on a socket that is closing. By now only epoll really needs it,
9563         as select/poll wake up when the socket closes.
9564
9565
9566         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
9567
9568 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
9569
9570         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
9571
9572 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
9573
9574         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
9575
9576 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
9577
9578         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
9579         has an abort request, convert it into a suspend request.
9580
9581 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
9582
9583         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
9584         warning for the usage of `UnmanagedFunctionPointerAttribute' which
9585         is not supported yet.
9586
9587 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9588
9589         * image.c: register assemblies loaded from data (bundles) in the loaded
9590         assemblies hash. Fixes bug #74772.
9591
9592 2005-04-29  Martin Baulig  <martin@ximian.com>
9593
9594         * class.c (mono_type_get_name_recurse): Update to the new naming
9595         schema from the latest .NET 2.x beta2.
9596         (mono_class_setup_vtable_general): If we're a generic instance,
9597         copy the vtable from our generic type definition and inflate all
9598         the methods in it.
9599
9600         * loader.c (find_method): Update to the new naming schema from the
9601         latest .NET 2.x beta2.
9602
9603 2005-04-29  Raja R Harinath  <harinath@gmail.com>
9604
9605         * class.c (mono_class_init): Add a mono_loader_unlock to the
9606         #74734 fix.
9607
9608 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
9609
9610         * icall.c (ves_icall_System_Environment_Exit): Remove the 
9611         suspend_all_other_threads () call for the time being, since it can hang.
9612
9613         * threads.c (mono_thread_manage): Similarly, disable the waiting for
9614         the background threads to exit, since it can also hang.
9615
9616         * class.c (mono_class_init): Applied patch from Ankit Jain 
9617         (radical@gmail.com). Avoid pending init errors when a field refers
9618         to a nested class using a typeref. Fixes #74734.
9619
9620         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
9621         this for dynamic modules.
9622
9623 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9624
9625         * threads.c: don't wait for threads that are in the process of aborting
9626         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
9627         and waiting for background threads to finish. This makes xsp and
9628         mod-mono-server exit without random length delays and/or hangs.
9629
9630 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9631
9632         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
9633
9634 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
9635
9636         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
9637         dynamic types to prevent infinite loops. Fixes #74727.
9638
9639         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
9640         ..._is_assignable_to.
9641
9642 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
9643
9644         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
9645
9646 2005-04-25  Martin Baulig  <martin@ximian.com>
9647
9648         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
9649
9650         * domain.c
9651         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
9652
9653         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
9654
9655         * reflection.c (build_compressed_metadata): Set metadata header
9656         version to 2.0.
9657
9658 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
9659
9660         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
9661         number into an integral and a decimal part. Fixes #70473.
9662
9663         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
9664
9665 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
9666
9667         * culture-info-table.h : reflected the latest locale-builder output.
9668
9669 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9670
9671         * threadpool.c: check for SuspendRequested too when deciding if
9672         mono_thread_interruption_checkpoint should be called.
9673
9674 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9675
9676         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
9677         * threads.c: remove interruption_mutex and use Interlocked instead. When
9678         suspending all the threads, wait for all the suspended events at once.
9679         If we're shutting down and get an APC that is going to be queued,
9680         call mono_thread_execute_interruption immediately, as the thread might
9681         be sleeping on a pthread condition or mutex.
9682
9683         * icall.c: call mono_runtime_set_shutting_down before suspending the
9684         threads.
9685
9686         Fixes bug #74693. And now xsp is happier when exiting.
9687
9688 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
9689
9690         * loader.c (mono_stack_walk): Fix #74690.
9691
9692 2005-04-22  Martin Baulig  <martin@ximian.com>
9693
9694         * mono-debug.h (MonoDebugMethodJitInfo): Added
9695         `MonoDebugMethodJitInfo *jit'.
9696
9697         * mono-debug.c (mono_debug_read_method): Cache the
9698         MonoDebugMethodJitInfo in `address->jit'.
9699         (mono_debug_free_method_jit_info): New public method.
9700
9701 2005-04-22  Martin Baulig  <martin@ximian.com>
9702
9703         * class.c (mono_class_is_assignable_from): Disallow
9704         type parameter -> interface.
9705
9706 2005-04-21  Dick Porter  <dick@ximian.com>
9707
9708         * threads.c (mono_thread_create): Turn an assertion into an error.
9709
9710 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
9711
9712         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
9713         
9714         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
9715         Fix some gcc 4.0 warnings.
9716
9717 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
9718
9719         * file-io.c: fix alt dir separator char on unix systems
9720         and cleanup (fixes bug #71214).
9721
9722 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
9723
9724         * marshal.c: Use CALLVIRT instead of CALL when dispatching
9725         a call to a remote domain, since the method may be an
9726         interface method in the client domain. This fixes bug #74192.
9727
9728 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9729
9730         * threadpool.c: recv/send are now performed before going back to managed
9731         code to save one transition.
9732
9733 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9734
9735         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
9736
9737         * metadata/threadpool.c: removed hack to workaround the bug above.
9738
9739         Fixes bug #74618.
9740
9741 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
9742
9743         * reflection.c reflection.h: Fix handling of parameter defaults in
9744         dynamic methods. Also fixes handling of parameter attributes.
9745         Fixes #74609.
9746
9747         * mono-debug.c (mono_debug_close_image): Fix warning.
9748
9749 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9750
9751         * socket-io.h: replaced old unused field with new 'blocking'.
9752         * threadpool.c: restore socket blocking state on windows(tm).
9753
9754 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
9755
9756         * icall.c: don't return the codebase in the AssemblyName[] returned by
9757         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
9758         * object-internals.h: Removed FIXME (fields were presents) and fixed
9759         versioncompat declaration.
9760
9761 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9762
9763         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
9764         not closed, so don't cleanup when it happens.
9765
9766 2005-04-13  Chris Toshok  <toshok@ximian.com>
9767
9768         * mono-debug-debugger.h: change prototype for
9769         mono_debugger_lookup_type.
9770
9771         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
9772         this function, although it should probably be named
9773         mono_debugger_init_type.
9774
9775 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9776
9777         * threadpool.c: fix non-AIO case.
9778
9779 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
9780
9781         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
9782         the built-in profiler to measure just JIT compilation times.
9783
9784 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9785
9786         * threadpool.c: the epollfd might be closed by another thread at
9787         any time, so ignore EBADF at treat it as a "we're closing" sign.
9788
9789 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9790
9791         * threadpool.c: release the semaphores with a count equals to the number
9792         of working threads in both IO and regular pools. Fixed typo that messed
9793         up the count of IO pool threads. Don't initialize the pipe handles if
9794         we're using epoll.
9795
9796 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9797
9798         * threadpool.c: some systems don't like a NULL when deleting the socket
9799         from epoll.
9800
9801 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9802
9803         * threadpool.c: fix semaphore allocation.
9804
9805 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9806
9807         * threadpool.c: added epoll() based implementation for asynchronous IO
9808         that is used instead of the default poll() when available.
9809         It can be disabled by setting MONO_DISABLE_AIO.
9810
9811 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9812
9813         * threadpool.c: windows needs 'closesocket' and instead of returning
9814         0 when the stream is closed while in select, it returns -1. Fixes bug
9815         #74573.
9816
9817 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
9818
9819         * class.c (class_compute_field_layout): Fix the regression caused by
9820         the previous try.
9821
9822 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9823
9824         * threadpool.c: separate pool for socket async. IO.
9825         * threadpool.h: mono_max_worker_threads is not a global any more.
9826
9827 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
9828
9829         * class.c (class_compute_field_layout): Fix #74549.
9830
9831 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9832
9833         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
9834         use 2 connected sockets instead.
9835
9836 2005-04-08  Miguel de Icaza  <miguel@novell.com>
9837
9838         * mono-config.c: Add new entry point for mkbundle
9839         mono_config_parse_memory. 
9840
9841 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9842
9843         * threadpool.c: removed another unused function.
9844
9845 2005-04-08  Ankit Jain  <radical@corewars.org>
9846
9847         * reflection.c (get_default_param_value_blobs): Add 'types'
9848         parameter to get the types encoded in the constant table.
9849         (mono_param_get_objects): Use the type from the constant table,
9850         not the type of the parameter, when creating default values.
9851         Handle null default values correctly.
9852
9853 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9854
9855         * file-io.c:
9856         * file-io.h:
9857         * threadpool.c:
9858         * threadpool.h:
9859         * icall.c:
9860         * socket-io.c: removed dead code for async IO.
9861
9862 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9863
9864         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
9865
9866         * threadpool.c: intercept socket async. calls and pass them to a thread
9867         that is polling and dispatching the job items to the threadpool as
9868         socket become ready. Fixes bugs #71217, #71933.
9869
9870         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
9871         between char and short/ushort arrays.
9872
9873         * socket-io.c: remove dead code.
9874
9875 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
9876
9877         * locales.c,
9878           icall.c : removed InternalToUpper_Comp() and
9879           InternalToLower_Comp().
9880
9881 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
9882
9883         * char-conversions.h : The tables were incorrectly generated. Should
9884           be generated against invariant culture.
9885
9886 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
9887
9888         * object.c (mono_runtime_invoke_array): Fix return value when 
9889         passing pre-created valuetype objects to ctors.
9890
9891         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
9892         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
9893         Fixes #74338.
9894
9895 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
9896
9897         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
9898         only used with --security and hides the wrong corlib version error.
9899
9900 2005-03-30  Joshua Tauberer  <tauberer@for.net>
9901
9902         * class.c: Changed mono_class_name_from_token so that types
9903         outside of a namespace don't have an initial period.  Improved
9904         the g_warning message used in _mono_class_get when loading
9905         fails.
9906         * assembly.c: In mono_assembly_load_reference, when an assembly
9907         can't be found, "No such file or directory" is misleading and
9908         unhelpful because a few paths were checked for the presence of
9909         the assembly.  When that happens (ENOENT), display a nicer
9910         message indicating the directories that were searched.  In all
9911         cases, the warning is made easier to read for non-hackers.
9912
9913 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
9914
9915         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
9916         project/solution.
9917         * appdomain.h|domain.c: Removed inline from functions.
9918         * appdomain.c: Reduced warnings when compiling on windows.
9919         * icall.c: Fixed output_debug declaration to gunichar2*.
9920         * mono-config.c: Reduced warnings when compiling on windows.
9921         * rand.c: Added missing "windows.h". Added missing return value.
9922         * rawbuffer.c: Added missing winsock2.h for windows.
9923         * sysmath.h: Added mono-compiler.h header to allow/ease 
9924         compilation with non-GCC compilers.
9925         * threads.c: Fixed declarations to compile with VS.NET C compiler.
9926         Removed cast warnings.
9927
9928         Adapted from the work of J Lothian (for VC6).
9929
9930 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
9931
9932         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
9933         from default_path.
9934
9935 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
9936
9937         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
9938         the 2.0 profile.
9939
9940 2005-03-27  Raja R Harinath  <harinath@gmail.com>
9941
9942         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
9943         has to be in $(exec_prefix).  $(prefix) is for arch-independent
9944         stuff, and it would probably use $(prefix)/share rather than
9945         $(prefix)/lib.
9946
9947 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9948
9949         * console-io.c: added 2 includes that might be missing.
9950
9951 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
9952
9953         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
9954         profile.
9955
9956         * reflection.c (create_custom_attr): Allocate the params array using
9957         alloca so it gets GC tracking.
9958
9959 2005-03-23  Chris Toshok  <toshok@ximian.com>
9960
9961         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
9962         out some spew.
9963
9964 2005-03-24  Raja R Harinath  <rharinath@novell.com>
9965
9966         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
9967         changes to pick up any changes in prefix, etc.
9968
9969 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
9970
9971         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
9972         
9973         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
9974         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
9975
9976 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
9977
9978         * class-internals.h object-internals.h class.c reflection.c: Extend the
9979         mono_lookup_dynamic_token () function to return the class of the
9980         token as well. 
9981
9982         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
9983         well. Fixes #73848.
9984
9985 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
9986
9987         * security-manager.c: Skip inheritance checks for intra-corlib
9988         class inheritance and method overrides. This skips a lot of checks
9989         and (anyway) permissions cannot work until corlib is loaded.
9990
9991 2005-03-23  Martin Baulig  <martin@ximian.com>
9992
9993         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
9994         MONO_TYPE_GENERICINST.  
9995
9996 2005-03-23  Martin Baulig  <martin@ximian.com>
9997
9998         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
9999
10000 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10001
10002         * class.c: added locking comments to some functions.
10003         Cache the interface offsets arrays (saves about 20 KB
10004         of runtime memory in a typical app).
10005         Reduce the time overhead in mono_class_setup_supertypes ().
10006
10007 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
10008
10009         * icall.c: speedup and fix leaks in GetMethodsByName and
10010         GetPropertiesByName.
10011
10012 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10013
10014         * reflection.c: some locking fixes.
10015
10016 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10017
10018         * metadata.c: added missing break in case statement.
10019
10020 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
10021
10022         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10023         typedbyref return values. Fixes #73941.
10024
10025 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
10026
10027         * security-manager.c|h: Added demandunmanaged method and 
10028         suppressunmanagedcodesecurity class to MonoSecurityManager.
10029         Renamed aptc class to allowpartiallytrustedcallers.
10030
10031 2005-03-17  Martin Baulig  <martin@ximian.com>
10032
10033         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
10034
10035 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10036
10037         * file-io.c: disabled file async. IO using aio_*. It uses the
10038         threadpool now. Workaround for bug #73718.
10039
10040 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10041
10042         * assembly.h, mono-config.c: added code to deal with bundled configs
10043         for bundled assemblies.
10044
10045 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
10046
10047         * *.c, private.h: cleanup, removing old private.h header file.
10048
10049 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
10050
10051         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
10052         and throw_on_unmappable_char attributes.
10053
10054 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
10055
10056         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
10057         _ProcessName_internal.
10058
10059 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
10060
10061         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
10062         #73631.
10063
10064         * icall.c threads.c threads-types.h: Remove slothash icalls as they
10065         are no longer used.
10066
10067 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
10068
10069         * object.c (compute_class_bitmap): Add support for generics. Fixes
10070         #73527.
10071
10072 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
10073
10074         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
10075
10076 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10077
10078         * filewatcher.c: commented out the code for windows watcher, as we don't
10079         use it (we use the managed implementation instead).
10080
10081 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
10082
10083         * object-internals.h (MonoThread): Remove 'unused1' field.
10084
10085         * appdomain.c: Bump corlib version.
10086
10087         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
10088
10089         * reflection.c (mono_reflection_create_runtime_class): Remove the
10090         AssemblyBuilder.Save optimization since it causes too many problems.
10091
10092 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
10093
10094         * exception.c|h: Added mono_get_exception_reflection_type_load to
10095         create a ReflectionTypeLoadException object.
10096         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
10097         to return NULL is a InheritanceDemand fails during reflection. Updated
10098         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
10099         ReflectionTypeLoadException if an InheritanceDemand fails during 
10100         reflection. Added icall mapping for GetLinkDemandSecurity.
10101         * security-manager.c|h: Added ves_icall_System_Security_
10102         SecurityManager_GetLinkDemandSecurity internal call to return the
10103         class and methods permissions set for a LinkDemand. Removed unused
10104         fields in MonoSecurityManager.
10105
10106 2005-03-10  Martin Baulig  <martin@ximian.com>
10107
10108         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
10109         it's a generic instance.
10110
10111 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
10112
10113         * reflection.c (mono_get_object_from_blob): Applied patch from
10114         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
10115
10116         * class.c (mono_class_is_assignable_from): Another try at fixing 
10117         #73469 without breaking anything.
10118
10119 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
10120
10121         * class.c: (mono_class_is_assignable_from): Revert the last changes
10122         since they don't work with generics.
10123         
10124         * class.c (mono_class_is_assignable_from): Fix build bustage.
10125
10126         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
10127         the managed IsAssignableFrom method. Fixes #73469.
10128
10129         * reflection.c (mono_reflection_call_is_assignable_from): New helper
10130         function.
10131
10132 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
10133
10134         * object.c (mono_load_remote_field_new): Fix returning uninitialized
10135         memory when the remoting callback does not sets the out arguments.
10136         Fixes #73007.
10137
10138         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
10139         by mistake.
10140
10141         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
10142
10143         * object-internals.h (MonoStackFrame): Sync with managed object layout.
10144
10145         * appdomain.c: Bump corlib version.
10146
10147 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
10148
10149         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
10150         function.
10151
10152         * threads.c (mono_thread_attach): Detect threads which are not started
10153         by the GC pthread wrappers.
10154
10155 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
10156
10157         * icall.c: Added new icall for RNG.
10158         * rand.c|h: Added new icall to open the RNG. This allows to share a 
10159         single handle on Linux to access /dev/urandom and fix #73183.
10160
10161 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
10162
10163         * object.c: setting the new vtable in a transparent proxy object must
10164         not change the GC descriptor.
10165
10166 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10167
10168         * object.c: fixed compilation without GCJ support.
10169         * reflection.c: for runtime-created types ensure klass->has_references
10170         is correct (bug #73215).
10171
10172 2005-03-02  Martin Baulig  <martin@ximian.com>
10173
10174         * class.c (mono_class_is_assignable_from): Make this work if
10175         `oklass' is a generic instance; fixes #72831.
10176
10177 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
10178
10179         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
10180         with hasthis set.
10181         
10182         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
10183
10184         * marshal.c: Reorganize native->managed marshalling code to also use
10185         the emit_marshal_... functions.
10186
10187 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10188
10189         * object.c: typed allocs have issues with bitmap sizes > 30,
10190         so check for max_set >= 30.
10191
10192 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
10193
10194         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
10195         managed code. Fixes #73012.
10196
10197         * metadata.h (MonoMarshalSpec): Add elem_mult field.
10198
10199         * metadata.c reflection.c: Load/Emit elem_mult as well.
10200         
10201         * metadata.h (MonoMarshalSpec): Add comment.
10202
10203         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
10204
10205         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
10206         num_elem to -1 if not given.
10207
10208         * object-internals.h (MonoReflectionMarshal): Add has_size field.
10209
10210         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
10211         given values.
10212
10213 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
10214
10215         * null-gc.c (mono_gc_free_fixed): Was not compilable.
10216
10217 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
10218
10219         * reflection.c (encode_marshal_blob): Encode param_num field as well.
10220
10221         * object-internals.h (MonoReflectionMarshal): Add param_num field.
10222
10223 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10224
10225         * object.c: generalized the reference bitmap creation
10226         and added hooks for the new GC.
10227         * class-internals.c: removed the gc_bitmap field from MonoClass.
10228
10229 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10230
10231         * domain.c: help the compiler to produce better code
10232         in mono_jit_info_table_find ().
10233
10234 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10235
10236         * object.c: make all allocations look typed.
10237
10238 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10239
10240         * socket-io.c: load Mono.Posix if it's not loaded already
10241         (fixes bug#73033).
10242
10243 2005-02-24  Martin Baulig  <martin@ximian.com>
10244
10245         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
10246         * reflection.c (dup_type): Likewise.
10247
10248 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
10249
10250         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
10251         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
10252
10253 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10254
10255         * domain.c, threads.c, object-internals.h: make the critical thread
10256         local vars use the fast access mode (even when we're compiled in
10257         a lib). Provide accessors to be used by the jit during codegen.
10258
10259 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10260
10261         * appdomain.c: Changed hook functios behavior to include
10262         support for the reflection only assemblies. Some icalls were changed
10263         to support the mentioned assemblies too. Signatures of static methods
10264         try_assembly_resolve and real_load now have an additional parameter:
10265         refonly.
10266
10267         * assembly.c: General changes to mono_assembly_ methods to support
10268         reflection only api. Functions mono_assembly_open, mono_assembly_load,
10269         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
10270         suffix, to support an additional gbool parameter to specify whether
10271         the assembli is reflection only or not. Created some new hook functions 
10272         to add support for reflection only assemblies. Signatures of static 
10273         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
10274         have now an additional parameter: refonly.
10275
10276         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
10277         indicating whether the assembly is reflection only or not.
10278
10279         * exception.c: Add mono_get_exception_invalid_operation.
10280
10281         * icall.c: Throw an InvalidOperationException when trying to invoke
10282         a property/method/event, or trying to set/get the value of a field.
10283         Also add an icall to retrieve the ref_only flag to the
10284         MonoReflectionAssembly.
10285
10286 2005-02-23  Chris Toshok  <toshok@ximian.com>
10287
10288         Part of fix for #72827.
10289         * mono-debug.c (mono_debug_add_method): add lexical block data to
10290         the info we write.  Kind of a hack at the moment - we copy the
10291         lexical block info from the MonoDebugMethodInfo to the
10292         MonoDebugMethodJitInfo here, before writing it.
10293         (mono_debug_read_method): read the lexical block info.
10294
10295         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
10296
10297         * debug-mono-symfile.h: add lexical block support.
10298
10299         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
10300         support.
10301
10302 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
10303
10304         * loader.c (mono_lookup_pinvoke_call): Fix warning.
10305
10306         * object.c (mono_runtime_free_method): Call mono_free_method () and
10307         put the TODOs there.
10308
10309         * loader.c (mono_free_method): Free up most memory allocated for 
10310         dynamic methods.
10311
10312 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
10313
10314         * reflection.c: properly flag a Type argument to a
10315         named custom attr value (bug #72248).
10316
10317 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10318
10319         * reflection.c: reduce code duplication in named custom
10320         attribute encoding.
10321
10322 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
10323
10324         * reflection.c: properly encode custom attrs of type object
10325         (bug #72649).
10326
10327 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
10328
10329         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
10330
10331 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
10332
10333         * socket-io.c: load System.dll if it's not loaded already
10334         (bug #72850 and #70477).
10335
10336 2005-02-21  Martin Baulig  <martin@ximian.com>
10337
10338         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10339         generic instances.
10340
10341 2005-02-21  Martin Baulig  <martin@ximian.com>
10342
10343         * reflection.c (mono_image_build_metadata): We also need to
10344         "fixup" the MethodImpl table after we computed the final method
10345         indices.  Call fixup_methodimpl() to do that.
10346         (fixup_methodimpl): New private method.
10347
10348 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10349
10350         * assembly.c: special case mscorlib.dll (bug#72536),
10351         patch from Carlos Alberto Cortez.
10352
10353 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
10354
10355         * threads-types.h threads.c: Fix build bustage.
10356
10357         * threads.c: Use a union for long<->double conversions.
10358
10359         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
10360         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
10361
10362         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
10363         containing the checkpoint call with NOT_TAKEN.
10364         
10365         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
10366         checkpoint before pushing the arguments, so they won't have to be
10367         spilled to stack.
10368
10369 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10370
10371         * domain.c, assembly.c, domain-internals.h: make some data
10372         const and relocation-free.
10373
10374 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
10375
10376         * object.c, appdomain.c, class-internals.h: introduce the
10377         MonoClassRuntimeInfo structure to hold the info needed to
10378         use a class at runtime. Made mono_class_vtable() lock-free
10379         for all the appdomains.
10380
10381 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
10382
10383         * metadata-internals.h, image.c: introduce a per-image mempool to
10384         be used for memory that has the same lifetime as the image.
10385
10386 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
10387
10388         * domain.c: In mono_init_internal(), instead of selecting the first
10389         runtime version supported by an executable, get a list of all
10390         supported versions and select the one for which an mscorlib exists
10391         (since even if the runtime supports a given version, it doesn't mean
10392         that the framework for that version is installed).
10393         Modified get_runtimes_from_exe to support this behavior.
10394         In supported_runtimes, added information about additional system
10395         assembly versions.
10396         
10397         * assembly.c: Added support for more than one system assembly version
10398         per runtime version. Updated the assembly list.
10399         In mono_assembly_remap_version, removed the initial version check,
10400         since we don't know to which version we need to compare until we
10401         get the version set on which the assembly is based.
10402         Moved the code for loading corlib into the new method
10403         mono_assembly_load_corlib(), so it can be used by the initialization
10404         code.
10405         
10406         * domain-internals.h: Updated data structures and added declaration
10407         for mono_assembly_load_corlib.
10408
10409 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
10410
10411         * reflection.c (resolve_object): Fix the creation of the signature in 
10412         the SignatureHelper case.
10413
10414         * assembly.c (mono_assembly_remap_version): Fix binary search.
10415         
10416 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
10417  
10418         * class.c: Added inheritance check when a method is overloaded (from a
10419         virtual method or when implementing an interface) and when a class is
10420         inherited. Added functions to set a failure for a class and to 
10421         retreive the exception from a failure.
10422         * class-internals.h: Added fields to MonoClass to keep the exception
10423         information status for inheritance (or other exceptions) to be thrown
10424         later (i.e. not at load time).
10425         * object.c: Throw the inheritance SecurityException when a type is to 
10426         be created with either class or method inheritance violations.
10427         * reflection.c|h: Fix when getting declsec from a class. Removed 
10428         unrequired code for class. Improved sanity in parameter naming.
10429         * security-manager.c|h: Added functions to check for class and method
10430         inheritance.
10431
10432 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
10433
10434         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
10435         and has_finalize in dynamic types as well.
10436
10437 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
10438
10439         * culture-info-table.h : fixed currency format for en-GB (and so on).
10440
10441 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
10442
10443         * gc.c: ensure the GC handles never have 0 as a value.
10444
10445 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
10446
10447         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
10448         a pointer to a struct to unmanaged code. Fixes #72625.
10449
10450 2005-02-16  Martin Baulig  <martin@ximian.com>
10451
10452         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
10453
10454 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
10455
10456         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
10457
10458 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
10459
10460         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
10461
10462         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
10463         UnmanagedFunctionPointerAttribute, use it for determining calling convention
10464         etc. Fixes #71471.
10465
10466         * reflection.c (mono_custom_attrs_get_attr): New helper function.
10467
10468         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
10469
10470 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
10471
10472         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
10473         changes to make the current context a field in MonoThread.
10474
10475 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
10476
10477         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
10478         the last change.
10479         
10480         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
10481         extracted from mono_marshal_get_native_wrapper.
10482
10483         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
10484         to create wrappers around native functions.
10485
10486         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
10487         delegates for arbitrary function pointers. Fixes #71472.
10488
10489 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
10490
10491         * threads.c: cleaned up the code a little.
10492
10493 2005-02-15  Martin Baulig  <martin@ximian.com>
10494
10495         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
10496         the data table.
10497
10498         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
10499         allocate larger chunks if needed.
10500
10501 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
10502
10503         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
10504         in by mistake.
10505
10506 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
10507
10508         * domain.c: keep the domains in an array and ensure the domain ids
10509         are kept small, so they can be used as indexes to domain-specific data
10510         with a small memory overhead.
10511
10512 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
10513
10514         * icall.c: Handle byref types in Type icalls. Fixes #72544.
10515
10516 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
10517
10518         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
10519
10520 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
10521
10522         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
10523
10524         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
10525         values.
10526
10527         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
10528         
10529 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
10530
10531         * domain-internals.h: add the hashtable here.
10532
10533         * class-internals.h: Remove `info' from MonoMethod
10534
10535         * domain.c: Add a new hashtable, jit_trampoline_hash
10536
10537 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
10538
10539         * object.c: don't set the value of static fields
10540         (fixes bug#72494).
10541
10542 2005-02-11  Martin Baulig  <martin@ximian.com>
10543
10544         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
10545         (mono_debug_add_method): Silently ignore the method if it's too big.
10546         (mono_debug_add_type): Likewise.
10547
10548 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
10549
10550         * threads.c, appdomain.c: remove #ifdefs from the code.
10551
10552 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
10553
10554         * metadata-internals.h: Added flags to MonoAssembly to cache the most
10555         common security informations. This allows us to stay in unmanaged code
10556         when doing LinkDemand and it's special cases (except for the first 
10557         time for initialization). The flags a very much used with --security.
10558         * reflection.c|h: Added code to get declarative security attributes 
10559         for LinkDemand and InheritanceDemand. This required to refactor the
10560         existing code for Demand.
10561         * security-manager.c|h: Added new method fields for the special cases
10562         of LinkDemand.
10563
10564 2005-02-10  Martin Baulig  <martin@ximian.com>
10565
10566         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
10567         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
10568
10569 2005-02-10  Martin Baulig  <martin@ximian.com>
10570
10571         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
10572         debugging code; this is almost a complete rewrite.
10573
10574         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
10575
10576 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10577
10578         * domain.c, object.h: expose mono_string_equal () and 
10579         mono_string_hash ().
10580         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
10581         it's implemented in managed code.
10582
10583 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10584
10585         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
10586         lo leak objects between appdomains.
10587
10588 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10589
10590         * assembly.c: old compilers compilation fix from 
10591         robertj@gmx.net (Robert Jordan).
10592
10593 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
10594
10595         * class-internals.h: Little reminder for the future.
10596
10597         * debug-helpers.c: Fix up wrapper_type_names
10598
10599 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10600
10601         * image.c, metadata-internals.h: when loading an image from a file,
10602         mmap all of it and use the same codepaths as when using a
10603         in-memory image: the code is simpler and we use less memory
10604         (both writable and readonly).
10605
10606 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
10607
10608         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
10609         API to alloc runtime data structures that need to be tracked by the
10610         GC and contain pointers.
10611         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
10612         make the code more readable and eventually use a different GC.
10613
10614 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
10615
10616         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
10617         for out arguments.
10618         
10619 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
10620
10621         * object.c: In release_type_locks(), don't release the cctor lock
10622         if it has already been released. This fixes a crash in the
10623         thread5 test.
10624
10625 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10626
10627         * gc.c, marshal.c, icall.c: register a delegate for finalization
10628         only when the native function pointer has been allocated for it.
10629
10630 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
10631
10632         * object.c: cleaned up some code, allocate objects that are
10633         pointer free with the atomic malloc variant. Allocate memory
10634         for static data from the mempool if it's pointer-free.
10635         Allocate the bounds array at the end of the array data, when needed.
10636         * object-internals.h, object.h: move a private function in a private
10637         header.
10638         * class.c: handle missing case in tracking references in fields.
10639
10640 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
10641
10642         * class.c, class-internals.h: keep track if a type has
10643         reference fields in either the instance or static fields.
10644
10645 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
10646
10647         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
10648         and renamed to MonoRuntimeInfo. Added fields to store the expected
10649         framework assembly version. Changed mono_get_framework_version and
10650         mono_get_runtime_version for a single mono_get_runtime_info method.
10651         
10652         * assembly.c: Added method to remap system assembly versions to the
10653         current executing runtime version. Removed old mapping code.
10654         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
10655         
10656         * icall.c, reflection.c: Track api changes.
10657
10658 2005-02-06  Miguel de Icaza  <miguel@novell.com>
10659
10660         * loader.c (method_from_memberref): Improve error reporting,
10661         produce the class name instead of the typeref/typedef index. 
10662
10663 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
10664
10665         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
10666
10667 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
10668
10669         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
10670         stdcall and charset name mangling.  Reorganize the code and add
10671         some tracing stuff.
10672
10673 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
10674
10675         * monodiet.c: More iters!
10676
10677         * marshal.c: Iter usage.
10678
10679         * icall.c: Iter usage.
10680
10681         * object.c: Use iters.
10682
10683         * debug-helpers.c: More iters
10684
10685 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
10686
10687         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
10688         under win32.
10689
10690 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
10691
10692         * mono-debug-debugger.c: use iters
10693
10694         * class.c, class-internals.h: mono_class_setup_events is static
10695         now
10696
10697         * All callers: use iters
10698
10699 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
10700
10701         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
10702         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
10703
10704 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
10705
10706         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
10707
10708         * marshal.h: Add prototypes for ldfld/stfld_remote.
10709
10710         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
10711         this is called during startup.
10712         
10713 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
10714
10715         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
10716         MonoThreadsSync struct private in monitor.c. Changed the way
10717         MonoThreadsSync is allocated so it's faster and there is no
10718         need to keep track of it with a finalizer and it uses less memory.
10719         This also finally allows us to allocate mono objects as ptrfree when
10720         there are no reference fields.
10721
10722 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
10723
10724         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
10725         disappearing link to the GC interface and use them to simplify
10726         the gchandles code.
10727
10728 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
10729
10730         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
10731         stfld_remote which call mono_load/store_field_new. This allows methods
10732         calling ldfld/stfld wrappers to be AOTed.
10733
10734         * console-io.c: Include sys/filio.h under solaris.
10735         
10736         * console-io.c: Include curses.h if needed correctly.
10737
10738 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
10739         
10740         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
10741         method->klass as well.
10742
10743         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
10744
10745         * class.c (mono_class_init): Switch on lazy initialization of 
10746         methods.
10747
10748         * class.c (mono_class_get_finalizer): Handle the case when the 
10749         finalizer is inherited.
10750
10751 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10752
10753         * console-io.c: <curses.h> is needed by term.h on solaris.
10754
10755 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
10756
10757         * icall.c, class-internals.h, monodiet.c, class.c: Remove
10758         mono_class_setup_properties where possible. Remove this ftn from
10759         the header file, and make it static.
10760
10761 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
10762
10763         * loader.c: Add missing setup_... call.
10764
10765         * class.c: Add missing setup_... calls.
10766
10767         * class.c (mono_class_init): Switch on lazy initialization of 
10768         the generic vtable.
10769         
10770         * class.c (mono_class_init): Fix generics broken by the recent changes.
10771
10772         * monodiet.c (handle_type): Add missing setup_... calls.
10773
10774         * class.c: Back out garbage in previous patch.
10775         
10776         * class.c: Add missing setup_... calls.
10777
10778         * class.c (mono_class_get_method_from_name_flags): Avoid calling
10779         mono_class_setup_methods () if possible.
10780
10781         * class-internals.h (MonoClass): Add 'has_cctor' flag.
10782
10783         * class-internals.h (MonoCachedClassInfo): New structure.
10784
10785         * class.c: Initialize properties and events fields of MonoClass lazily.
10786
10787         * class.c: Add infrastructure for lazily initializing the methods and
10788         vtable fields of MonoClass. Not yet used.
10789
10790         * class.c (mono_class_get_finalizer): New helper function.
10791
10792         * class.c: Add infrastructure for loading some class related data from
10793         an AOT file.
10794
10795         * object.c: Add infrastructure for initializing the vtable from data
10796         in the AOT file.
10797
10798         * gc.c (run_finalize): Use mono_class_get_finalizer ().
10799
10800         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
10801         appropriate initialization function before accessing parts of the
10802         MonoClass structure.
10803
10804         * marshal.c: Fix warnings.
10805         
10806         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
10807
10808         * mono-debug-debugger.c (get_exception_message): Use 
10809         mono_class_get_method_from_name_flags ().
10810
10811 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
10812
10813         * reflection.c, appdomain.c: Replace a few manual searches that
10814         Zoltan missed. (Paolo approved this part of my initial patch).
10815
10816 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
10817
10818         * profiler.c: disable recording statistical events at report time.
10819
10820 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10821
10822         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
10823         to byteswap arrays of enum values, too (bug #72080).
10824
10825 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
10826
10827         * appdomain.c (set_domain_search_path): Allow this to be called if
10828         domain->setup is not yet set.
10829
10830         * loader.c (mono_method_get_index): New helper function.
10831
10832         * loader.c reflection.c: Use mono_method_get_index ().
10833
10834         * class.c (mono_class_get_method_from_name_flags): New helper method.
10835
10836         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
10837         this.
10838
10839         * class.c (mono_class_get_cctor): New helper method.
10840
10841         * string-icalls.c object.c class.c marshal.c reflection.c: Use
10842         mono_class_get_method () to look up methods.
10843
10844 2005-02-01  Miguel de Icaza  <miguel@novell.com>
10845
10846         * console-io.c: Fix the build, this should work on Windows.
10847
10848 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
10849
10850         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
10851         be set to null to keep things valid
10852
10853 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10854
10855         * icall.c: added Console 2.0 icalls.
10856         * Makefile.am: added console-io.[ch]
10857         * console-io.[ch]: internal calls for Console 2.0 API.
10858
10859 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10860
10861         * class.c: make sure we consider all the interfaces
10862         when calculating max_interface_id (bug found by
10863         Jeroen Frijters running ikvm).
10864
10865 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
10866
10867         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
10868         valuetype fields to null.
10869
10870         * object.c (set_value): Ditto. Fixes #71669.    
10871
10872 2005-01-31  Martin Baulig  <martin@ximian.com>
10873
10874         * metadata.c (mono_metadata_has_generic_params): New public
10875         function; checks whether something is a generic method.
10876
10877 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
10878
10879         * appdomain.c: fix infinite recursion when adding assemblies.
10880
10881 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
10882
10883         * object.c: Fix small typo to return all items for Environment.
10884         GetCommandLineArgs.
10885
10886 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10887
10888         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
10889         reflection.c: more domain and assembly-unload related fixes
10890         and memory leaks plugs.
10891
10892 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
10893
10894         * 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.
10895
10896 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
10897
10898         * loader.c (mono_method_signature): Make this method lazy
10899         (mono_get_method_from_token): Don't computate the signature here.
10900
10901         Doing this saves quite a bit of memory. I got 90 kb on starting up
10902         monodoc. It should also save some disk reads on startup.
10903
10904         * *: MonoMethod->signature might be NULL now. You *MUST* use
10905         mono_method_signature.
10906
10907 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
10908
10909         * object.c (mono_runtime_get_main_args): Return an array from the
10910         current domain here. Fixes #71938.
10911
10912 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
10913
10914         * monitor.c: formatting changes to comply with the
10915         mono coding style and remove #ifdefs from the code.
10916
10917 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10918
10919         * metadata.c, private.h: remove some unneeded data
10920         and use a more compact representation for table schemas.
10921
10922 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
10923
10924         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
10925         to get a better distribution in hash tables.
10926         * *.c: use mono_aligned_addr_hash() where appropriate.
10927         * assembly.c: make var static.
10928
10929 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
10930
10931         * domain-internals.h: Put MonoJitInfo on a diet.
10932
10933         * domain.c: Fix a warning.
10934
10935 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10936
10937         * gc.c: rework the gc handles code to reuse handles
10938         when freed.
10939
10940 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
10941
10942         * domain.c: fixed long standing bug in mono_string_equal() which
10943         was brought to light with the ldstr changes.
10944
10945 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
10946
10947         * reflection.c: Remove warning by adding missing include for marshal.h
10948
10949 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10950
10951         * domain.c, object.c: change the ldstr_table to hold
10952         MonoString* as keys: makes the runtime isinterned lookup
10953         faster and simplifies memory management.
10954
10955 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
10956  
10957         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
10958         possible to add imperative security checks before calling the icall.
10959         * reflection.c: Return security attributes on the original MonoMethod
10960         (and not the wrapped one). This fix permissions on icalls.
10961
10962 2005-01-25  Dick Porter  <dick@ximian.com>
10963
10964         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
10965         the check for mktime() support actually test the mktime() return
10966         value.  "Fixes" bug 71682, though the output is still different to
10967         MS.
10968
10969 2005-01-25  Martin Baulig  <martin@ximian.com>
10970
10971         * class.c (mono_class_is_assignable_from): Make this work for
10972         generic instances.
10973
10974 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
10975
10976         * marshal.c (mono_string_utf8_to_builder)
10977         (mono_string_builder_to_utf16): We might not have ownership of the
10978         string. In thise case, we need to create a new buffer.
10979
10980         * object-internals.h (mono_stringbuilder_capacity): sb->str might
10981         be null, in which case, use the default capacity.
10982
10983 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10984
10985         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
10986         GC events to the profiler.
10987
10988 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10989
10990         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
10991         if you don't want the GC to run.
10992
10993 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
10994
10995         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
10996         start providing a GC API and keeping different implementations in
10997         their own file.
10998         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
10999
11000 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
11001
11002         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
11003         mmap rather than allocating a huge buffer.
11004         (mono_debug_close_mono_symbol_file): Free the buffer allocated
11005         above.
11006
11007 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
11008
11009         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
11010         and CheckExecutionRights.
11011         * reflection.c|h: Keep the index of the declarative security to be 
11012         used, instead of the pointer, when AOT compiler is used. Also add 
11013         class initialization when requesting demands.
11014         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
11015         CheckExecutionRights. Both properties are now FALSE by default, and
11016         unmodifiable, unless the --security option is used.
11017
11018 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11019
11020         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
11021         reflection.c: properly refcount images and assemblies, many leaks fixed.
11022
11023 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11024
11025         * threadpool.c: increase the timeout for threads in the thread pool to
11026         10s.  Fixes bug #67159.
11027
11028 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
11029
11030         * class-internals.h: Sun's compiler insists on explicit
11031         signed on bit fields to handle then correctly.
11032
11033 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
11034
11035         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
11036         Make the size of the array fit only the number of invalid path
11037         chars that we have.
11038
11039         * class.c (_mono_class_get): Improve the error reporting when a
11040         class referenced is not found, to assist debugging. 
11041
11042 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
11043
11044         * threads.c: fix off-by-one error.
11045         * domain.c: free data allocated in the domain.
11046
11047 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
11048
11049         * reflection.c (mono_method_body_get_object): Fill out exception info
11050         as well.
11051
11052         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
11053         structure.
11054         
11055 2005-01-19  Martin Baulig  <martin@ximian.com>
11056
11057         * loader.c (mono_get_method_constrained): Make this work again.
11058
11059 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
11060
11061         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
11062         guint16 to match the managed side.
11063
11064         * reflection.c (mono_reflection_body_get_object): Fill out local
11065         variables array.
11066
11067         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
11068         as well.
11069
11070         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
11071         'local_var_sig_token'.
11072
11073 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
11074
11075         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
11076         System.Drawing.
11077
11078         * reflection.c (mono_method_body_get_object): Handle abstract and
11079         runtime methods.
11080
11081 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
11082
11083         * marshal.c, loader.c, class-internals.h, reflection.c:
11084         store the emthod data for a wrapper in an array instead of a list.
11085
11086 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
11087
11088         * marshal.c: change the code to allocate memory more
11089         conservatively for method wrappers.
11090
11091 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
11092
11093         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
11094         fields from MonoClass to the marshal info structure where they belong.
11095
11096 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11097
11098         * class.c, object.c, class-internals.h, marshal.c: rearrange
11099         some fields and tweak some types to lower memory usage.
11100
11101 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
11102
11103         * threads.c (signal_thread_state_change): Handle the case when the
11104         target thread is the current thread.
11105
11106         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
11107
11108         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
11109         emit_ptr_to_object_conv. 
11110
11111         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
11112         marshalling. Fixes #71352.
11113
11114 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11115
11116         * metadata.h, blob.h: move table enum to blob.h so it can be included
11117         in any header.
11118         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
11119         cut the size of MonoImage/MonoDynamicImage.
11120
11121 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
11122
11123         * profiler.c (mono_profiler_install_simple): Fix default arguments.
11124
11125 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11126
11127         * reflection.c, reflection.h, icall.c: add a function to check
11128         if an attribute type is defined for a metadata object.
11129
11130 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
11131
11132         * object-internals.h: Added some needed fields from StringBuilder class.
11133         * marshal.c: Set the maxCapacity when creating a StringBuilder.
11134
11135 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
11136
11137         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
11138         threads before shutting down the runtime.
11139
11140         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
11141
11142 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11143
11144         * object-internal.h, threads.c: implement stacksize and 
11145         parameterized thread start functionality (requires
11146         matching corlib). Marked broken code for later removal.
11147
11148 2005-01-12  Martin Baulig  <martin@ximian.com>
11149
11150         * class-internals.h (MonoGenericClass): Moved the `initialized'
11151         flag to MonoDynamicGenericClass, removed `init_pending'.
11152         (MonoGenericInst): Added `is_reference' flag.
11153
11154 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
11155
11156         * reflection.c (mono_image_create_pefile): Only set the pe_offset
11157         inside the MSDOS header. Fixes #71201.
11158
11159         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
11160         gc thread.
11161         (mono_domain_finalize): Ditto.
11162
11163 2005-01-12  Martin Baulig  <martin@ximian.com>
11164
11165         * class.c (mono_get_shared_generic_class): Use the cache for
11166         non-dynamic generic classes.
11167
11168         * class-internals.h (mono_class_create_generic_2): Removed
11169         function prototype, this function is now static inside class.c.
11170
11171         * class.c (mono_class_create_generic_2): Made this static, only
11172         call it from mono_class_init() and mono_class_setup_parent().
11173         (collect_implemented_interfaces_aux): Call mono_class_init() on
11174         the interfaces we collect.
11175         (mono_class_setup_vtable): Call mono_class_init (class->parent).
11176
11177 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
11178
11179         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
11180         it a real thread handle.
11181
11182         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
11183         MonoJitExceptionInfo, since each catch clause needs its own variable.
11184         
11185 2005-01-11  Dick Porter  <dick@ximian.com>
11186
11187         * image.c (mono_pe_file_open): New variant on mono_image_open()
11188         that does not set up the CLI metadata; used for FileVersionInfo so
11189         it can get the data for windows binaries too.
11190         
11191         * process.c (process_read_string_block): Don't read off the end of
11192         the StringTable block.
11193
11194         These both fix bug 70766.
11195
11196 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
11197
11198         * gc.c: set some fields to NULL at GC cleanup time.
11199         * threads.c: if we quit the main thread, call exit ().
11200
11201 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
11202
11203         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
11204
11205 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
11206
11207         * threads.h, threads.c, object.c: added accessor and settor for
11208         main_thread. Handle it specially when exiting from it: wait
11209         for other foreground threads to exit.
11210
11211 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
11212
11213         * process.c, verify.c: remove some bloat.
11214
11215 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
11216
11217         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
11218         the calling convention to cdecl under win32.
11219
11220 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
11221
11222         * object.c (mono_object_get_size): New function to get the size of
11223         an object instance.
11224
11225         * profiler.c (simple_allocation): Use above.
11226
11227 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
11228
11229         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
11230         ves_icall_System_AppDomain_getRootDomain (as it's not required to
11231         get an appdomain by it's id and we can't assume the root's id is 0).
11232         * domain-internals.h: Change the function prototype to match.
11233         * icall.c: Change the icall table for AppDomain.
11234
11235 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
11236
11237         * locales.c (string_invariant_compare_char): Only compute
11238         GUnicodeTypes in the case where we need them.  Test for ordinality
11239         first and return if so.
11240
11241         From the commit:
11242
11243                 /*
11244                  * FIXME: here we must use the information from c1type and c2type
11245                  * to find out the proper collation, even on the InvariantCulture, the
11246                  * sorting is not done by computing the unicode values, but their
11247                  * actual sort order.
11248                  */
11249
11250 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
11251
11252         * loader.c: for P/Invoke methods, allow the "Internal" shared
11253         library name to refer to the calling process symbol namespace.
11254
11255 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
11256
11257         * Makefile.am: Add the security manager to the build.
11258         * security-manager.c|h: New. Initialization of the security manager.
11259
11260 2005-01-07  Dick Porter  <dick@ximian.com>
11261
11262         * threads.c: 
11263         * monitor.c: Update thread state during Monitor and WaitHandle
11264         waits.  Fixes bug 71031.
11265
11266 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
11267
11268         * reflection.c (property_encode_signature): Correctly handle when the
11269         property has no methods.
11270
11271 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
11272
11273         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
11274         
11275         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
11276         fields from mb, not rmb. Fixes #71017.
11277
11278         * marshal.c (emit_ptr_to_str_conv): Add support for 
11279         ByValTStr -> string conversion. Fixes #71015.
11280
11281         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
11282
11283         * mempool.c (mono_mempool_contains_addr): New helper function.
11284
11285 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
11286
11287         * metadata.c (mono_metadata_compute_size): Fix size calculation of
11288         HasSematics encoded fields.
11289         
11290         * metadata.c (mono_type_to_unmanaged): Improve error message for 
11291         invalid string marshalling.
11292
11293         * metadata.c: Fix warnings.
11294         
11295 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11296
11297         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
11298         profiler support.
11299
11300 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
11301
11302         * domain.c object.c domain-internals.h: Revert part of r38077 since the
11303         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
11304         tests.
11305
11306 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
11307
11308         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
11309         so methods containing these can be AOTed.
11310
11311 2005-01-03  Martin Baulig  <martin@ximian.com>
11312
11313         * loader.c (find_method): Removed the hack for generic instances.
11314         (method_from_memberref): If our parent is a generic instance, pass
11315         its generic type definition to find_method() and then inflate the
11316         method.
11317         (mono_get_method_constrained): Pass the generic type definition to
11318         find_method() and inflate the method later.
11319
11320         * class-internals.h (MonoStats): Added `generic_class_count'.
11321
11322         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
11323         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
11324
11325         * reflection.c (mono_custom_attrs_from_params): Don't ignore
11326         generic type definitions.
11327
11328 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
11329
11330         * loader.c icall.c: Fix warnings.
11331
11332 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
11333
11334         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
11335         blittable types. Fixes #70864.
11336
11337 2004-12-29  Martin Baulig  <martin@ximian.com>
11338
11339         * icall.c
11340         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
11341
11342         * reflection.c (mono_method_get_object): Create a
11343         "System.Reflection.MonoGenericMethod" for inflated methods; don't
11344         call mono_get_inflated_method().
11345
11346         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
11347
11348 2004-12-27  Martin Baulig  <martin@ximian.com>
11349
11350         * class-internals.h (MonoMethod): Added `is_inflated' flag.
11351         (MonoMethodInflated): Added `inflated' field.
11352
11353         * class.c (mono_class_inflate_generic_method): Don't really
11354         inflate the method here; just set the `is_inflated' flag in the
11355         MonoMethod.
11356         (mono_class_get_inflated_method): Actually inflate the method here
11357         if it's not already inflated; we use the MonoMethodInflated's new
11358         `inflated' field as a cache.
11359
11360 2004-12-26  Martin Baulig  <martin@ximian.com>
11361
11362         * class.c
11363         (inflate_generic_class): Moved some code out of inflate_generic_type().
11364         (mono_class_inflate_generic_method): If we're already inflated,
11365         inflate the context and use the declaring method; ie. make sure
11366         the declaring method of an inflated method is always the generic
11367         method definition.
11368         (mono_class_create_from_typedef): Create
11369         `class->generic_container->context->gclass'.
11370
11371 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
11372
11373         * metadata-internals.h, marshal.c, reflection.c: More
11374         MonoGHashTable->GHashTable.
11375
11376         * domain-internals.h, class.c: Change MonoGHashTable's into
11377         GHashTables for some cases where no gc stuff is used
11378
11379         All users: update apis
11380
11381 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
11382
11383         * metadata.c (builtin_types): Make this `const'. Makes this get
11384         put into the shareable section.
11385         (mono_metadata_init): Casts to make gcc happy.
11386
11387 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
11388
11389         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
11390
11391 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
11392
11393         * icall.c: Added an internal call to retrieve the position and length
11394         of assembly-level declarative security attributes (RequestMinimum, 
11395         RequestOptional and RequestRefuse). This is used by the Assembly class
11396         to re-create the corresponding permission sets.
11397
11398 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
11399
11400         * marshal.c: fix the stelemref wrapper to be type correct
11401         (and faster).
11402
11403 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
11404
11405         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
11406         to do key & 0x7fffffff. Hashtable already does this. It just
11407         results in longer code.
11408
11409 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
11410
11411         * appdomain.c: Bump corlib version.
11412         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
11413         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
11414         * reflection.c|h: Add functions to get declarative security infos
11415         (blob position and length) for assemblies, classes and methods.
11416
11417 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
11418
11419         * reflection.c: sort the constant table (bug #70693).
11420
11421 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
11422
11423         * object-internals.h, threads.c, domain.c: add accessors for
11424         the MonoThread and MonoDomain tls keys.
11425
11426 2004-12-18  Martin Baulig  <martin@ximian.com>
11427
11428         * class.c (inflate_generic_type): If we're inflating a generic
11429         instance, set `ngclass->context->container = context->container';
11430         ie. the container we inflated into.
11431
11432         * metadata.c (mono_metadata_parse_generic_param): Reflect above
11433         inflate_generic_type() changes.
11434
11435 2004-12-17  Martin Baulig  <martin@ximian.com>
11436
11437         * class-internals.h
11438         (MonoGenericClass): Replaced `MonoType *generic_type' with
11439         `MonoClass *generic_class'.  Removed `dynamic_info'; if
11440         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
11441         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
11442
11443 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
11444
11445         * exception.c (mono_exception_from_token): New helper function.
11446
11447 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
11448
11449         * assembly.c (mono_assembly_load_with_partial_name): Call 
11450         mono_assembly_loaded before invoking the preload hooks. Fixes
11451         #70564.
11452
11453         * object-internals.h (MonoThread): Change culture_info and 
11454         ui_culture_info into an array.
11455
11456         * threads.c: Cache culture info objects from more than one appdomain.
11457
11458         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
11459         current UI culture.
11460
11461 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
11462
11463         * threads.h threads.c appdomain.c: Clear the culture_info field of
11464         all threads during unloading if they point to an object in the dying
11465         appdomain.
11466
11467 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
11468
11469         * culture-info.h (TextInfoEntry): New struct
11470         * object-internals.h: sync with managed
11471         * locales.c: fill the `text_info_data' field
11472         * culture-info-tables.h: update
11473
11474 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
11475
11476         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
11477         collector.
11478
11479 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
11480
11481         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
11482         (ves_icall_ModuleBuilder_getMethodToken): Ditto
11483
11484 2004-12-12  Martin Baulig  <martin@ximian.com>
11485
11486         * mono-debug-debugger.c (write_type): If we're an enum and the
11487         builtin types have already been initialized, call mono_class_init().
11488
11489 2004-12-11  Martin Baulig  <martin@ximian.com>
11490
11491         * metadata.c (mono_metadata_load_generic_params): Added
11492         `MonoGenericContainer *parent_container' argument; automatically
11493         compute `container->is_method'; pass the correct owner to
11494         get_constraints().      
11495
11496         * reflection.c (compare_genericparam): Sort the GenericParam table
11497         according to increasing owners. 
11498
11499 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
11500
11501         * profiler.c: allow disabling the default profiler.
11502
11503 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
11504
11505         * decimal.c, icall.c: allow disabling System.Decimal support.
11506
11507 2004-12-09  Marek Safar <marek.safar@seznam.cz>
11508
11509         * reflection.c: Add support for null attribute arguments.
11510
11511 2004-12-09  Martin Baulig  <martin@ximian.com>
11512
11513         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
11514         names to get rid of compiler warnings.
11515
11516 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
11517
11518         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
11519         mono_marshal_load_type_info (). Fixes #69625.
11520         (mono_marshal_get_ptr_to_struct): Likewise.
11521
11522 2004-12-08  Martin Baulig  <martin@ximian.com>
11523
11524         * mono-debug.h: Bumped version number to 47.
11525
11526         * mono-debug-debugger.c
11527         (mono_debugger_event_handler, mono_debugger_event): Take two
11528         guint64 arguments insteed of a gpointer and a guint32.  
11529
11530 2004-12-08  Martin Baulig  <martin@ximian.com>
11531
11532         * debug-mono-symfile.h
11533         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
11534         `address' to `native_offset'.
11535
11536 2004-12-08  Martin Baulig  <martin@ximian.com>
11537
11538         * class.c (mono_class_create_from_typespec): Only inflate if we
11539         either have `context->gclass' or `context->gmethod'.
11540
11541 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
11542
11543         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
11544
11545         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
11546
11547         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
11548
11549         * reflection.c (mono_assembly_get_object): Remove the workaround put
11550         in for the release.
11551         
11552         * appdomain.c: Use the corlib_internal field from MonoAssembly.
11553
11554         * appdomain.c: Bump corlib version.
11555
11556         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
11557         be visible in other appdomains.
11558
11559 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
11560
11561         * threads.c: Interlocked inc and dec for longs were messed up,
11562         use a KISS based impl for this. Fixes 70234
11563
11564 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
11565
11566         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
11567
11568 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
11569
11570         * icall.c: fix to follow policy not to allow struct
11571         arguments in icalls.
11572
11573 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11574
11575         * process.c: make the patch that handles spaces in file paths work
11576         on mono/windows too.
11577
11578 2004-12-06  Martin Baulig  <martin@ximian.com>
11579
11580         * class.c (mono_class_create_generic): Call
11581         mono_class_setup_supertypes() if we're dynamic.
11582         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
11583
11584 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
11585
11586         * object-internals.h: Add new fields to MonoThread.
11587
11588         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11589
11590         * icall.c threads-types.h threads.c: Add new icalls.
11591
11592         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
11593
11594         * object-internals.h (MonoReflectionAssembly): Sync object layout with
11595         managed side.
11596
11597         * appdomain.c: Bump corlib version.
11598
11599         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
11600         internal assemblies. Fixes #69181.
11601
11602 2004-12-05  Martin Baulig  <martin@ximian.com>
11603
11604         * class.c (mono_class_inflate_generic_signature): Make this a
11605         no-op if `context' is NULL or we don't have any type parameters;
11606         also copy `sentinelpos'.        
11607
11608 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
11609
11610         * image.c: Add unbox_wrapper_cache.
11611
11612         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
11613
11614         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
11615         function generator.
11616         
11617         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
11618         Fixes #70173.
11619
11620         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
11621         
11622 2004-12-04  Martin Baulig  <martin@ximian.com>
11623
11624         * loader.c (mono_method_get_signature_full): New public function;
11625         like mono_method_get_signature(), but with an additional
11626         `MonoGenericContext *' argument.
11627
11628         * class.c (mono_class_inflate_generic_signature): Formerly known
11629         as inflate_generic_signature(); make this public.
11630
11631 2004-12-04  Martin Baulig  <martin@ximian.com>
11632
11633         * metadata.c
11634         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
11635         instead of a `MonoGenericContainer *'.  
11636         (mono_metadata_parse_array_full): Likewise.
11637         (mono_metadata_parse_signature_full): Likewise.
11638         (mono_metadata_parse_method_signature_full): Likewise.
11639         (mono_metadata_parse_generic_inst): Likewise.
11640         (mono_metadata_parse_generic_param): Likewise.
11641         (mono_metadata_parse_mh_full): Likewise.
11642         (mono_type_create_from_typespec_full): Likewise.
11643
11644 2004-12-03  Martin Baulig  <martin@ximian.com>
11645
11646         * class-internals.h (MonoGenericContainer): Replaced the
11647         `MonoGenericContext * pointer with a `MonoGenericContext'
11648         structure and made it the first element.
11649
11650 2004-12-03  Martin Baulig  <martin@ximian.com>
11651
11652         * class.c
11653         (inflate_generic_type): Set the `context->container' when creating
11654         a new MonoGenericContext.
11655         (mono_class_inflate_generic_method): Likewise.
11656         (mono_class_create_from_typespec): Just use `context->container'
11657         to get the container.
11658
11659         * loader.c (method_from_methodspec): Set `context->parent' from
11660         `context->container' - and if that's a method container, use its
11661         parent.  Also set the `context->container' when creating a new
11662         MonoGenericContext.
11663         (mono_get_method_from_token): Use just `context->container' to get
11664         the container.
11665
11666         * metadata.c (do_mono_metadata_parse_generic_class): Also set
11667         `gclass->context->container'.
11668
11669         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
11670         the `context->container' when creating a new MonoGenericContext.
11671
11672 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
11673
11674         * reflection.c (compare_genericparam): Sort params with identical
11675         owner by their number. Fixes gen-111 on sparc.
11676
11677 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
11678
11679         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
11680         around the domain changes.
11681
11682         * appdomain.c (mono_domain_unload): Handle the case when the thread
11683         calling Unload is itself being aborted during unloading. Fixes #70022.
11684
11685         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
11686
11687         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
11688         checkpoint_func as an icall so it gets a wrapper.
11689         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
11690         in the cross-appdomain wrappers too.
11691
11692         * threads.c (mono_thread_has_appdomain_ref): Make this public.
11693
11694         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
11695
11696         * reflection.c: Fix some memory leaks.
11697         
11698 2004-12-02  Martin Baulig  <martin@ximian.com>
11699
11700         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
11701
11702         * metadata.c (generic_class_cache): New static hashtable.
11703         (mono_metadata_lookup_generic_class): New public method.
11704
11705 2004-12-02  Martin Baulig  <martin@ximian.com>
11706
11707         * class.c (mono_class_create_from_typedef): Call
11708         mono_class_setup_parent() and mono_class_create_mono_type() before
11709         parsing the interfaces.
11710
11711 2004-12-02  Martin Baulig  <martin@ximian.com>
11712
11713         * metadata.c (generic_inst_cache): New static hashtable.
11714         (mono_metadata_lookup_generic_inst): New public function.
11715         (mono_metadata_inflate_generic_inst): New public function.
11716         (mono_metadata_parse_generic_inst): New public function.
11717         (do_mono_metadata_parse_generic_class): Use the new
11718         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
11719         since this'll also use the cache.
11720
11721         * reflection.c (mono_reflection_bind_generic_method_parameters):
11722         Use mono_metadata_lookup_generic_inst() to use the new cache.
11723
11724         * class.c (inflate_mono_type): Use
11725         mono_metadata_inflate_generic_inst() to inflate a generic
11726         instance; this'll also use the new cache.
11727
11728         * loader.c (method_from_methodspec): Use
11729         mono_metadata_parse_generic_inst() and
11730         mono_metadata_inflate_generic_inst() rather than parsing it
11731         manually, so we can use the new cache.
11732
11733 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
11734
11735         * threads.c (wait_for_tids): Do not incorrectly free threads when 
11736         the wait times out.
11737
11738 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
11739
11740         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
11741         iter->args based on whether parameters are passed in registers (i.e.
11742         MONO_ARCH_REGPARMS is defined)
11743
11744 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
11745
11746         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
11747         the exception message. Fixes #70070.
11748         (method_from_methodspec): Fix warnings.
11749
11750 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11751
11752         * process.c: (complete_path) return the path quoted
11753
11754 2004-12-01  Martin Baulig  <martin@ximian.com>
11755
11756         * class-internals.h (MonoGenericInst): New structure.
11757         (MonoGenericClass): Replaced `type_argc', `type_argv' and
11758         `is_open' with `MonoGenericInst *inst'.
11759         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
11760         `is_open' with `MonoGenericInst *inst'.
11761
11762 2004-11-30  Martin Baulig  <martin@ximian.com>
11763
11764         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
11765
11766         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
11767         to `generic_class_cache'.
11768
11769         * metadata.c
11770         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
11771         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
11772         (mono_generic_inst_is_valuetype): Renamed to
11773         mono_generic_class_is_valuetype().
11774
11775         * class-internals.h
11776         (MonoGenericInst): Renamed to MonoGenericClass.
11777         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
11778         (MonoClass): Renamed `generic_inst' to `generic_class'.
11779         (MonoGenericContext): Renamed `ginst' to `gclass'.
11780
11781         * object-internals.h
11782         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
11783
11784         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
11785         mono_reflection_generic_class_initialize().
11786
11787         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
11788         now known as "System.Reflection.MonoGenericClass".
11789         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
11790
11791 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
11792
11793         * class-internals.h: Added a flag field to MonoClass to cache the
11794         declarative security attributes actions associated with the class.
11795         * domain-internals.h: Added booleans to MonoJitInfo to cache the
11796         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
11797         applicable to the JITted method.
11798         * reflection.c|h: Added functions to extract (as flags) which security
11799         actions are available (declaratively) for a method, class or assembly.
11800         * metadata.c|h: Added functions to search the declarative security
11801         table in the metadata.
11802         
11803 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
11804
11805         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
11806         EXPORTEDTYPES are already in the class name cache, so there is no
11807         need to add extra code here to look at them. Just removes a bit of
11808         cruft.
11809
11810         (ves_icall_System_Environment_get_TickCount): No need for #if
11811         WINDOWS. We already have the code in io-layer.
11812
11813 2004-11-28  Martin Baulig  <martin@ximian.com>
11814
11815         * loader.c
11816         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
11817         Fixes gen-112.cs.
11818
11819 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
11820
11821         * assembly.c (do_mono_assembly_open): Instead of having a
11822         conditional WITH_BUNDLE, incorporate support for bundles here, by
11823         having a global `bundles' variable holding a pointer to the actual
11824         bundles. 
11825
11826         (mono_register_bundled_assemblies): New API call used by the
11827         bundle code. 
11828
11829         See mkbundle.1 for details.
11830         
11831 2004-11-27  Martin Baulig  <martin@ximian.com>
11832
11833         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
11834         the vtable for generic methods.
11835
11836 2004-11-26  Martin Baulig  <martin@ximian.com>
11837
11838         * metadata.c
11839         (mono_metadata_generic_method_hash): New public function.
11840         (mono_metadata_generic_method_equal): Likewise.
11841
11842         * class-internals.h
11843         (MonoGenericContainer): Added `GHashTable *method_hash'.
11844
11845         * reflection.c (ReflectionMethodBuilder): Added
11846         `MonoGenericContainer *generic_container'.
11847         (reflection_methodbuilder_to_mono_method): Don't create a new
11848         MonoGenericContainer each time we're called.
11849         (mono_reflection_bind_generic_method_parameters): Use
11850         `container->method_hash' to cache the results so we don't create a
11851         different method if we're called several times with the same
11852         arguments.
11853
11854         * loader.c (method_from_methodspec): Use the new
11855         `container->method_hash' here, too.
11856
11857 2004-11-26  Martin Baulig  <martin@ximian.com>
11858
11859         * class.c (inflate_generic_signature): Correctly compute
11860         `res->has_type_parameters'.
11861         (mono_class_vtable): Use the `has_type_parameters' flag to
11862         determine whether we're a generic method.
11863
11864         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
11865
11866 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
11867
11868         * object.c (mono_runtime_run_main): Fix a small memory leak.
11869
11870 2004-11-25  Martin Baulig  <martin@ximian.com>
11871
11872         * class.c (set_generic_param_owner): Fixed the loop.
11873
11874 2004-11-25  Martin Baulig  <martin@ximian.com>
11875
11876         * object.c (mono_class_vtable): Don't create any JIT wrappers for
11877         generic methods.
11878
11879 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
11880
11881         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
11882         names. Fixes #69787.
11883
11884 2004-11-24  Martin Baulig  <martin@ximian.com>
11885
11886         * class.c (mono_class_create_generic_2): If we don't have a
11887         `ginst->parent', inflate `gklass->parent' to get our parent.
11888
11889 2004-11-24  Martin Baulig  <martin@ximian.com>
11890
11891         * reflection.c (compare_genericparam): Correctly sort the
11892         GenericParam table; fixes #69779.
11893
11894 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
11895
11896         * reflection.c: When writing a PE file, don't create a huge
11897         buffer in memory. Just write the arrays we have to the file.
11898         This reduces memory usage.
11899
11900         * metadata-internals.h: MonoDynamicStream pefile is no longer used
11901         globally.
11902
11903 2004-11-17  Martin Baulig  <martin@ximian.com>
11904
11905         * class.c (mono_class_init): Don't setup `class->parent' for
11906         dynamic instances; moved this to mono_class_generic_2().
11907         (mono_class_create_generic): Also set `klass->inited' for dynamic
11908         generic instances.
11909         (mono_class_create_generic_2): Don't do anything for dynamic
11910         generic instances.  Set `klass->parent' here and also call
11911         mono_class_setup_parent() here. 
11912
11913         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
11914         `MonoType *parent' argument; set `ginst->parent' before calling
11915         mono_class_create_generic_2(), so we set the correct parent.
11916
11917 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
11918
11919         * reflection.c: allow getting attributes from ModuleBuilder
11920         (used by ikvm).
11921
11922 2004-11-17  Martin Baulig  <martin@ximian.com>
11923
11924         * class.c (mono_class_create_from_typedef): If a type parameter is
11925         inherited from an outer class, set its owner to that class.
11926
11927 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
11928
11929         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
11930           for (int*) written size. This fixes bug #69592.
11931
11932 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
11933
11934         * icall.c: Added IsAuthenticodePresnet internal call.
11935         * image.c|h: New function that check a MonoImage for an Authenticode
11936         signature in the certificate PE data directory.
11937         * security.c|h: New internal call to ask the runtime if an 
11938         Authenticode signature seems referenced in the PE header.
11939
11940 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
11941
11942         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
11943
11944         * reflection.c (mono_image_create_pefile): Free the assembly streams
11945         after writing out the assembly file.
11946
11947         * object.c (mono_runtime_run_main): Fix small memory leak.
11948
11949         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
11950         property access modifiers. Fixes #69389.
11951
11952 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
11953
11954         * domain.c, object.c, object-internals.h, domain-internals.h,
11955         object.h, marshal.c: keep dynamic code info per domain.
11956
11957 2004-11-15  Martin Baulig  <martin@ximian.com>
11958
11959         * class.c (mono_type_get_name_recurse): Put type arguments in
11960         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
11961         see bug #68387.
11962
11963 2004-11-15  Martin Baulig  <martin@ximian.com>
11964
11965         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
11966         (mono_class_setup_vtable): When computing `the_cname' for a
11967         generic instance, don't include the namespace since we'd otherwise
11968         add it twice.
11969
11970 2004-11-15  Martin Baulig  <martin@ximian.com>
11971
11972         * class.c (mono_class_create_generic): Changed return type to void.
11973         (mono_class_create_generic_2): New public function; setup
11974         `class->method', `class->field' and `class->interfaces' here
11975         instead of in mono_class_init().
11976
11977         * class.h (mono_class_create_generic): Moved to class-internals.h.
11978
11979 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
11980
11981         * reflection.c (mono_image_create_pefile): take a file HANDLE.
11982         rather than writing to memory, write to this file. Right now,
11983         we are just writting into a buffer, and copying that. However
11984         we can avoid the buffer later.
11985
11986         (mono_dynamic_stream_reset): new function
11987
11988         * icall.c, object-internals.h: update for the above.
11989
11990 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
11991
11992         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
11993         have been using gc'd memory. First it is slower, unlikely
11994         the comment in the source code said, secondly, it increases
11995         our footprint to do it in the gc.
11996
11997         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
11998         the method so that it does not have to copy to managed code.
11999
12000 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
12001
12002         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
12003
12004 2004-11-12  Martin Baulig  <martin@localhost>
12005
12006         * reflection.c (mono_image_create_token): Allow generic method
12007         definitions here, since they may appear in an `.override'; see
12008         gen-98/gen-99 for an example.
12009
12010 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
12011
12012         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
12013         #69365.
12014
12015         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
12016         descriptive.
12017
12018 2004-11-11  Martin Baulig  <martin@ximian.com>
12019
12020         * class.c (mono_class_setup_vtable): In an explicit interface
12021         implementation, the method name now includes the arity.
12022
12023 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
12024
12025         * object.c (mono_array_full_copy): Fix warning.
12026
12027 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
12028
12029         * appdomain.c: Removed look_for_method_by_name(). Use the new method
12030         mono_class_get_method_from_name() instead.
12031         
12032         * class-internals.h: Added two new types of wrappers. 
12033         Added MonoRemotingTarget enum. Added new trampoline function type, which
12034         takes an additional MonoRemotingTarget value as parameter, so it is
12035         possible to request a trampoline for a specific target.
12036         
12037         * class.c: Added new mono_class_get_method_from_name() method.
12038         
12039         * class.h: In MonoRemoteClass, we can have now to vtables, one for
12040         general remoting sinks and one specific for cross domain calls.
12041         
12042         * debug-helpers.c: Added new wrapper names.
12043         
12044         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
12045         of a remote class.
12046         
12047         * image.c: Porperly delete value objects form the remoting invoke hashtable.
12048         
12049         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
12050         with several other methods (mono_marshal_get_xappdomain_dispatch,
12051         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
12052         and others) can generate a fast remoting wrapper for cross domain calls.
12053         More information can be found in docs/remoting.
12054         Other changes: Removed mono_find_method_by_name, and used
12055         mono_class_get_method_from_name instead.
12056         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
12057         is stored in the remoting invoke hashtable.
12058         
12059         * marshal.h: published the new method for getting the xdomain wrapper,
12060         and also added a method for getting the adequate wrapper for a given
12061         method and target.
12062         
12063         * object-internals.h, object.c: Added a couple of methods for capying and
12064         cloning arrays.
12065         Modified mono_install_remoting_trampoline, which takes the new remoting
12066         trampoline that has a remoting target as parameter.
12067         mono_class_proxy_vtable now also takes a remoting target as parameter, and
12068         will return the most suitable vtable for the target.
12069         Added mono_remote_class_vtable, which returns the vtable of a remote class
12070         (which can be the normal remoting vtable or the xdomain vtable).
12071         
12072         * threads.c: the xdomain invoke and dispatch wrappers must also be
12073         protected against interruptions.
12074
12075 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12076
12077         * icall.c: use memmove in BlockCopyInternal when the source and
12078         destination arrays are the same.
12079
12080 2004-11-09  Martin Baulig  <martin@ximian.com>
12081
12082         * class-internals.h (MonoGenericContainer): Removed `method' and
12083         `signature', replaced them with `is_method' and `is_signature'
12084         flags.  Added `context'.
12085
12086         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
12087         instead of a `MonoGenericContainer *'.
12088
12089         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
12090         for dynamic type parameters.
12091         (mono_metadata_load_generic_params): Setup `container->context'.
12092
12093         * reflection.c (mono_reflection_setup_generic_class): Setup
12094         `tb->generic_container->context'.
12095         (do_mono_reflection_bind_generic_parameters): Use
12096         mono_class_inflate_generic_type() to correctly inflate types,
12097         rather than using our own hack just for MONO_TYPE_VAR.
12098
12099 2004-11-09  Martin Baulig  <martin@ximian.com>
12100
12101         * class.c (mono_class_inflate_generic_method): Small fix; don't
12102         crash here.
12103
12104         * icall.c
12105         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
12106         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
12107         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
12108         (ves_icall_Type_BindGenericParameters): Likewise.
12109         (ves_icall_Type_get_IsGenericInstance): Likewise.
12110         (ves_icall_Type_GetGenericParameterPosition): Likewise.
12111         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
12112         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
12113         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
12114
12115 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
12116
12117         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
12118         assembly versions and public key tokens. Fixes #69113.
12119
12120 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
12121
12122         * metadata.c: fix bug introduced with the type cache changes
12123         on 2004-11-06.
12124
12125 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
12126
12127         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
12128         the MonoClass pointer instead of the token in exception clauses.
12129         * reflection.c: updates for the above and make the code not depend
12130         on the structure of MonoExceptionClause.
12131
12132 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
12133
12134         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12135         Add support for dynamic assemblies. Fixes #69114.
12136
12137         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
12138
12139 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
12140
12141         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
12142         since most only those methods use it. the code member of
12143         MonoMethodPInvoke was dead, so that can be removed too. Also,
12144         remove inline_count (again, not used), and move slot so that it
12145         can share bits with some other flags. This saves 8 bytes in the
12146         structure and gives us about 50 kb back for mcs helloworld.cs
12147
12148         * *.[ch]: Do naming changes for the above.
12149
12150         * loader.c (mono_method_get_header): Lazily init the header
12151         on first access.
12152         (mono_get_method_from_token): don't init the header here
12153         (mono_free_method): the header may never be allocated
12154
12155         Overall, this saves 150 kb of unmanaged allocations
12156         for mcs helloworld.cs. That accounts for 10% of the unmanaged
12157         memory at runtime.
12158         
12159         * loader.c, loader.h (mono_method_get_header): new accessor.
12160
12161         * *.[ch]: use the above method. Prepares us to lazily load
12162         the header.
12163
12164         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
12165         three warnings, which are actual bugs (see 69206).
12166
12167         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
12168         unused. Saves a cool 4 bytes / method.
12169
12170 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
12171
12172         * metadata.c (builtin_types): Add types for System.Object here.
12173         (mono_metadata_parse_type_full): Cache MonoType*'s that are
12174         for a class or valuetype from klass->this_arg or klass->byval_arg.
12175
12176         On mcs for a hello world, this gets us down from 21836 MonoType's
12177         to 14560.
12178
12179         (mono_metadata_free_type): Account for the above change.
12180
12181 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
12182
12183         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
12184         exception instead of asserting if name is null.
12185         (ves_icall_System_AppDomain_GetData): Ditto.
12186
12187 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
12188
12189         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
12190         EnumBuilder.
12191
12192         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
12193         Return NULL when the domain does not have entry_assembly set.
12194
12195         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
12196         Add a 'resource_modules' argument.
12197         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
12198
12199         * reflection.c (mono_reflection_create_runtime_class): Move setting
12200         of wastypebuilder here, so mono_get_type_object () returns a MonoType
12201         for enums too.
12202
12203         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
12204         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
12205         Throw an ArgumentNullException if 'ptr' is null.
12206
12207         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
12208         assemblies here. Fixes #69020.
12209
12210 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
12211
12212         * reflection.c (build_compressed_metadata): Fix the previous patch for
12213         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
12214         the stack.
12215
12216 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
12217
12218         * assembly.c (mono_assembly_names_equal): Allow a match if one of
12219         the cultures is false. Fixes #69090.
12220
12221         * reflection.c (build_compressed_metadata): Fix invalid memory read 
12222         detected by valgrind.
12223         
12224         * reflection.c (mono_reflection_get_type): Avoid triggering a 
12225         TypeResolve multiple times for the same type. Fixes #65577.
12226
12227 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
12228
12229         * marshal.c: Avoid using ldftn to call managed functions. It is
12230         much slower than just a call.
12231
12232         * reflection.c (mono_module_get_object): free the basename we
12233         allocate here from glib.
12234         
12235         * reflection.c (ensure_runtime_vtable): make sure to free
12236         overrides.  Also, we were allocating an array of MonoMethod not an
12237         array of MonoMethod*.
12238
12239         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
12240
12241         * image.c (mono_image_close): free image->guid here.
12242
12243 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
12244
12245         * reflection.c: Fix some spec conformance issues with the PE file
12246         structures so mcs compiled apps run on the Net 2.0 beta.
12247
12248 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
12249
12250         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
12251         Implement this. Fixes #67264.
12252
12253         * debug-helpers.h debug-helpers.c marshal.c: Move 
12254         mono_find_method_by_name to debug-helpers.c.
12255
12256 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
12257
12258         * object.c (mono_release_type_locks): type_initialization_hash is
12259         a GHashTable.
12260
12261         * reflection.c object.c object-internals.h: Fix warnings.
12262
12263         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
12264         without accessors. Fixes #61561.
12265
12266         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
12267         application base from the root domain if not set. Fixes #65641.
12268         (mono_runtime_init): Fix warning.
12269
12270 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12271
12272         * appdomain.c: call mono_thread_pool_init.
12273         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
12274         of worker threads based on the number of CPUs and the environment
12275         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
12276         for non-windows (windows) systems.
12277
12278 2004-10-27  Chris Toshok  <toshok@ximian.com>
12279
12280         * mono-debug-debugger.c (write_class): don't call mono_class_init
12281         here, as even with the check for (!klass->init_pending), we get
12282         into a situation where we're hitting cycles in class
12283         initialization.  Fixes #68816.
12284
12285 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
12286
12287         * image.c: Avoid overwriting values in the loaded_images_hash when an
12288         assembly is loaded multiple times. Fixes #61152.
12289
12290         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
12291         so multiple satellite assemblies for the same name can be loaded.
12292         Fixes #68259.
12293
12294         * mono_domain_assembly_preload: Actually return the loaded assembly, 
12295         not NULL.
12296
12297         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
12298         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
12299
12300         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
12301         pending finalizers are not invoked after the appdomain has been 
12302         unloaded. Fixes #67862.
12303
12304 2004-10-22  Martin Baulig  <martin@ximian.com>
12305
12306         * mono-debug-debugger.c
12307         (mono_debugger_runtime_invoke): Don't box valuetypes.
12308
12309 2004-10-22  Chris Toshok  <toshok@ximian.com>
12310
12311         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
12312         don't hide private methods.
12313
12314 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
12315
12316         * icall.c: Allows the runtime to "share" (when known) the public key
12317         token of an assembly. This avoid the need to recalculate the token 
12318         (from the public key) in managed code.
12319
12320 2004-10-21  Chris Toshok  <toshok@ximian.com>
12321
12322         * debug-helpers.c (append_class_name): argh, revert last patch.
12323         
12324 2004-10-21  Chris Toshok  <toshok@ximian.com>
12325
12326         * debug-helpers.c (append_class_name): use '+' as the delimiter,
12327         not '/', so that it matches what the debugger uses to look up
12328         methods.
12329
12330 2004-10-21  Martin Baulig  <martin@ximian.com>
12331
12332         * mono-debug-debugger.c (mono_debugger_throw_exception): New
12333         public method; this is called each time an exception is thrown and
12334         allows the debugger to use exception catch points.
12335
12336 2004-10-21  Martin Baulig  <martin@ximian.com>
12337
12338         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
12339         the stack pointer and the exception object in some struct and pass
12340         that to the debugger.
12341
12342 2004-10-21  Chris Toshok  <toshok@ximian.com>
12343
12344         * mono-debug-debugger.c (do_write_class): add instance/static
12345         event support.  We don't expose "raise" or "other" yet.
12346         (event_is_static): new method.
12347
12348 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
12349
12350         * mono-debug-debugger.c
12351         (mono_debugger_handle_exception): Remove
12352         bogus return value for fussy compilers.
12353
12354 2004-10-20  Martin Baulig  <martin@ximian.com>
12355
12356         * mono-debug-debugger.c
12357         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
12358         (mono_debugger_handled_exception): Likewise.
12359
12360 2004-10-20  Martin Baulig  <martin@ximian.com>
12361
12362         * mono-debug-debugger.h (MonoDebuggerEvent): Added
12363         MONO_DEBUGGER_EVENT_EXCEPTION.
12364
12365         * mono-debug-debugger.c (mono_debugger_handle_exception): New
12366         public function to send the debugger a notification for an
12367         exception and inform it about a catch/finally clause.
12368
12369 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
12370
12371         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
12372         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
12373         fix 2.95 build. 
12374
12375         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
12376
12377 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
12378
12379         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
12380         marshalled as [In,Out]. Fixes #58325.
12381
12382 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
12383
12384         * reflection.c (mono_method_body_get_object): Implement some fields.
12385
12386 2004-10-12  Martin Baulig  <martin@ximian.com>
12387
12388         * reflection.c (mono_reflection_bind_generic_parameters): Small
12389         fix, correctly retrieve our parent from a generic instance.
12390
12391 2004-10-12  Martin Baulig  <martin@ximian.com>
12392
12393         * metadata.c (mono_metadata_generic_param_equal): We always have
12394         an owner.
12395
12396         * class.c
12397         (mono_class_from_generic_parameter): We need to have an owner.
12398         (my_mono_class_from_generic_parameter): Likewise.
12399
12400         * reflection.c (mono_reflection_setup_generic_class): Renamed to
12401         mono_reflection_create_generic_class() and added a new
12402         mono_reflection_setup_generic_class().  
12403         (mono_reflection_initialize_generic_param): If we're a nested
12404         generic type and inherited from the containing class, set our
12405         owner to the outer class.
12406
12407 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
12408
12409         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
12410
12411         * reflection.c (mono_method_body_get_object): New function to create
12412         a MethodBody object.
12413
12414         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
12415
12416 2004-10-11  Martin Baulig  <martin@ximian.com>
12417
12418         * metadata.c (_mono_metadata_type_equal): Renamed to
12419         do_mono_metadata_type_equal() and made static.
12420
12421 2004-10-11  Martin Baulig  <martin@ximian.com>
12422
12423         * appdomain.c: Bump corlib version number to 28.
12424
12425 2004-10-10  Martin Baulig  <martin@ximian.com>
12426
12427         * class-internals.h
12428         (MonoGenericInst): Added `MonoGenericContainer *container'.
12429         (MonoGenericMethod): Likewise.
12430         (MonoGenericContext): Likewise.
12431         (MonoGenericParam): Added `MonoGenericContainer *owner'.
12432
12433         * metadata.c
12434         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
12435         (do_mono_metadata_parse_generic_inst): Likewise.
12436         (mono_metadata_parse_type_full): New public method.  This is the actual
12437         mono_metadata_parse_type() implementation - with an additional
12438         `MonoGenericContainer *' argument.
12439         (mono_metadata_parse_array_full): Likewise.
12440         (mono_metadata_parse_signature_full): Likewise.
12441         (mono_metadata_parse_method_signature_full): Likewise.
12442         (mono_metadata_parse_mh_full): Likewise.
12443         (mono_type_create_from_typespec): Likewise.
12444         (mono_metadata_interfaces_from_typedef_full): New public method;
12445         this is similar to the other _full() methods, but we take a
12446         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
12447         (mono_metadata_parse_generic_param): Take an additional
12448         `MonoGenericContainer *' argument and lookup the MonoGenericParam
12449         from that container.
12450         (mono_metadata_generic_param_equal): New static method to compare
12451         two type parameters.
12452         (_mono_metadata_type_equal): New static method; takes an
12453         additional `gboolean signature_only' argument - if true, we don't
12454         compare the owners of generic parameters.
12455         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
12456         with a TRUE argument - do a signature-only comparision.
12457
12458         * loader.c: Use the new _full() methods and pass the
12459         MonoGenericContainer to them.
12460
12461         * object-internals.h (MonoReflectionTypeBuilder): Added
12462         `MonoGenericContainer *generic_container' field.
12463         (MonoReflectionMethodBuilder): Likewise.
12464
12465 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
12466
12467         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
12468         case initial images of dynamic assemblies.
12469
12470         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
12471
12472         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
12473
12474         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
12475         length of event->other array.
12476         (typebuilder_setup_events): Ditto.
12477
12478         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
12479         'assembly_by_name' and add an 'assemblies' list.
12480
12481         * assembly.h assembly.c: Add a new search hook for determining whenever
12482         an assembly is already loaded. Use this instead of searching in the
12483         loaded_assemblies list.
12484
12485         * domain.c appdomain.c: Implement the new search hook so loaded 
12486         assemblies are now scoped by appdomain. Fixes #67727.
12487
12488 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
12489
12490         * threads.c (mono_thread_attach): Initialize synch_lock field so
12491         mono_thread_detach works again.
12492
12493         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
12494         'lib' too. Fixes #63130.
12495
12496 2004-10-06  Jackson Harper  <jackson@ximian.com>
12497
12498         * culture-info-tables.h: regenerated.
12499
12500 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
12501
12502         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
12503         implemented by other interfaces in the result. Fixes #65764.
12504         
12505         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12506         Handle unloadable modules without crashing.
12507
12508         * image.c (load_modules): Revert the previous patch since modules must
12509         have a fixed index inside the array.
12510         
12511         * image.c (load_modules): Don't include native modules in the modules
12512         array.
12513
12514 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
12515
12516         * reflection.h: Add param_defaults field.
12517
12518         * reflection.c: Add support for parameter defaults in dynamic methods.
12519         Fixes #64595.
12520
12521         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
12522         an empty string when a type has no namespace. Fixes #64230.
12523
12524 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
12525
12526         * tabledefs.h: Added "internal" security actions to support non-CAS
12527         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
12528         Note: they do not seems to be used anymore in 2.0 (new metadata format)
12529
12530 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
12531
12532         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
12533         constructor of abstract class. Fixes #61689.
12534
12535 2004-10-04  Martin Baulig  <martin@ximian.com>
12536
12537         * class-internals.h (MonoGenericContainer): New type.
12538         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
12539         `MonoGenericContainer *generic_container'.
12540         (MonoClass): Replaced `gen_params' and `num_gen_params' with
12541         `MonoGenericContainer *generic_container'.
12542
12543         * metadata.c (mono_metadata_load_generic_params): Return a
12544         `MonoGenericContainer *' instead of a `MonoGenericParam *';
12545         removed the `num' argument.
12546
12547 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
12548
12549         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
12550         for dynamic images.
12551
12552         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
12553         machine fields.
12554
12555         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
12556
12557         * reflection.c: Save pe_kind and machine values into the generated
12558         image file.
12559
12560         * appdomain.c: Bump corlib version number.
12561
12562         * object-internals.h: Reorganize layout of LocalBuilder.
12563
12564         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
12565         New helper function.
12566
12567         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
12568         created MonoType for dynamic types. Fixes #66180.
12569
12570 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
12571
12572         * threadpool.c: the ares hashtable needs a critical section around it.
12573         this prevents some nasty segfaults
12574
12575 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
12576
12577         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
12578         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
12579         bug 67324).
12580         
12581 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
12582
12583         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
12584         
12585 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
12586
12587         * image.c: Always canonicalize image file names, to avoid loading
12588         the same assembly twice when referenced using a relative path.
12589
12590 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
12591
12592         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
12593
12594         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
12595
12596         * marshal.c: Fix warnings.
12597
12598 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
12599
12600         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
12601         attempting to marshal the delegate_trampoline as the method_addr.
12602         This patch has a static hashtable of marshalled delegates so that 
12603         we can map delegate_trampoline addresses back to delegates.  This
12604         allows a delegate passed to managed code to be passed back into native
12605         code.  Fixes #67039
12606
12607 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
12608
12609         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
12610
12611         * reflection.c (method_encode_code): Align method headers properly.
12612         Fixes #66025.
12613
12614 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
12615
12616         * marshal.c: In the runtime invoke wrapper, reset the abort
12617         exception if it is cached. This avoids the automatic rethrowal of 
12618         the exception after the catch of the wrapper. Also check for pending
12619         interruptions before calling the managed method. This is done using
12620         the new method emit_thread_force_interrupt_checkpoint, since the
12621         normal checkpoint method is ignored when running the invoke wrapper.
12622         * object.c: If the abort exception is rethrown, set the abort_exc
12623         field of the thread, so it will be rethrown aftere every catch.
12624         * threadpool.c: Only run an interruption checkpoint if what has been
12625         requested is a stop of the thread (aborts will be ignored).
12626         * threads.c: By default, a thread will now never be interrumped while
12627         running the runtime invoke wrapper (this ensures that runtime_invoke
12628         will always return to the caller if an exception pointer is provided).
12629         There is a new special method mono_thread_force_interruption_checkpoint()
12630         to force an interruption checkpoint even if running a protected
12631         wrapper, which is used by the same runtime invoke wrapper to do a check
12632         at a safe point.
12633
12634 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
12635
12636         * object.c, object-internals.h: Implemented mono_release_type_locks,
12637         which releases the cctor locks held by a thread.
12638         * threads.c, threads.h: In thread_cleanup, release cctor locks held
12639         by a thread. Added mono_thread_exit() method to be used to safely stop
12640         a thread.
12641
12642 2004-09-28  Raja R Harinath  <rharinath@novell.com>
12643
12644         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12645         Move null check before dereference.  Avoid indexing beyond the end
12646         of the 'modules' array.
12647
12648 2004-09-28  Raja R Harinath  <rharinath@novell.com>
12649
12650         * metadata-internals.h (MonoImage): Add module_count field.
12651         * image.c (load_modules): Set image->module_count.
12652         (mono_image_load_file_for_image): Use image->module_count.
12653         * reflection.c (mono_image_load_module): Append to image->modules array 
12654         of dynamic assembly.
12655         (mono_module_get_object): Fix loop to actually increment index.
12656         Use image->module_count.
12657         * assembly.c (mono_assembly_load_references): Use image->module_count.
12658         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
12659         Likewise.
12660
12661 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
12662
12663         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
12664         Avoid assert on generic types.
12665
12666 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
12667
12668         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
12669
12670         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
12671
12672         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
12673         function to convert a MarshalSpec structure to its managed counterpart.
12674
12675         * reflection.c: Fix warnings.
12676         
12677         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
12678         field.
12679
12680         * icall.c (mono_create_icall_signature): Fix build.
12681
12682 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
12683
12684         * icall.c: Add MakePointType icall.
12685
12686         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
12687         warnings.
12688
12689 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12690
12691         * threadpool.c: reuse allocated slots in the queue.
12692
12693 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
12694
12695         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
12696
12697         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
12698
12699         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
12700         previous change.
12701
12702         * tabledefs.h: Add constants for pinvoke attributes BestFit and
12703         ThrowOnUnmappableChar.
12704
12705         * icall.c (ves_icall_Type_GetPacking): New icall.
12706
12707 2004-09-24  Martin Baulig  <martin@ximian.com>
12708
12709         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
12710
12711 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12712
12713         * appdomain.c:
12714         (mono_domain_set): allow setting a domain that is being unloaded.
12715         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
12716         being unloaded.
12717
12718 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
12719
12720         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
12721         the GetCustomAttributes icall.
12722
12723 2004-09-23  Martin Baulig  <martin@ximian.com>
12724
12725         * object-internals.h (MonoReflectionGenericParam): Replaced
12726         'has_ctor_constraint', `has_reference_type' and `has_value_type'
12727         with `guint32 attrs'.
12728
12729 2004-09-23  Martin Baulig  <martin@ximian.com>
12730
12731         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
12732
12733 2004-09-23  Martin Baulig  <martin@ximian.com>
12734
12735         * object-internals.h (GenericParameterAttributes): New enum.
12736
12737 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
12738
12739         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
12740         
12741         * class.c (init_events): Fill out event->other field.
12742
12743         * class.c: Fix warnings.
12744
12745         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
12746
12747 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
12748
12749         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
12750         walk which doesn't supply the IL offset.
12751
12752 2004-09-22  Martin Baulig  <martin@ximian.com>
12753
12754         * reflection.c (mono_reflection_setup_internal_class): If we're
12755         System.ValueType, System.Object or System.Enum, set
12756         `klass->instance_size' and create the vtable.
12757         (mono_reflection_create_internal_class): If we're an enum type,
12758         get the base class from our current corlib.
12759
12760 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
12761
12762         * reflection.h (MonoResolveTokenError): New type.
12763
12764         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
12765         icall.
12766
12767         * icall.c: Add an 'error' argument to the ResolveToken icalls.
12768
12769 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
12770
12771         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
12772         Support also calling constructors, but only for already allocated objects.
12773
12774 2004-09-17  Geoff Norton <gnorton@customerdna.com>
12775
12776         * reflection.c (type_get_qualified_name): If the klass is null
12777         return the typename to avoid a NullRefEx.
12778         (encode_cattr_value): Get the qualified name of the boxed type,
12779         not the underlying enumtype.  Fixes #62984.
12780
12781 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
12782
12783         * marshal.c: Fix problems with previous checkin.
12784
12785 2004-09-21    <vargaz@freemail.hu>
12786
12787         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
12788         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
12789
12790         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
12791
12792 2004-09-21  Geoff Norton <gnorton@customerdna.com>
12793
12794         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
12795         should only return a type for pointers, arrays, and passbyref types.
12796         Fixes bug #63841.
12797
12798 2004-09-21  Martin Baulig  <martin@ximian.com>
12799
12800         * domain.c (mono_debugger_check_runtime_version): New public
12801         function.
12802
12803         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
12804
12805 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
12806
12807         * reflection.c: Added missing sort to the declarative security 
12808         attributes table. MS implementation stops seeing the attributes if the
12809         token number regress in the table (as shown by ildasm and permview).
12810
12811 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
12812
12813         * object-internals.h (MonoReflectionModule): Add 'token' field.
12814         
12815         * reflection.c (mono_reflection_get_token): Add support for Module
12816         and Assembly.
12817         (mono_module_get_object): Set 'token' field.
12818         (mono_module_file_get_object): Set 'token' field.
12819
12820         * icall.c: Add new Assembly and Module icalls.
12821
12822         * appdomain.c: Bump corlib version.
12823
12824 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
12825
12826         * loader.h loader.c class.h class.c: Add helper functions for obtaining
12827         tokens of metadata objects.
12828
12829         * reflection.h reflection.c (mono_reflection_get_token): New function
12830         to obtain the token of a metadata object.
12831
12832         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
12833
12834 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
12835
12836         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
12837         
12838         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
12839
12840 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
12841
12842         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
12843         * object-internals.h: Added 3 MonoArray* members to MonoReflection
12844         AssemblyBuilder to access the permissions set in the class lib.
12845         * reflection.c: Added security attributes encoding step in 
12846         mono_image_build_metadata.
12847         * tabledefs.h: Added new security actions defined in 2.0:
12848         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
12849
12850 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
12851
12852         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
12853         macro parameter.
12854
12855 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
12856  
12857         * locales.c: nullify the ICU_collator member of CompareInfo when it is
12858           finalized. There where random SIGSEVs at program termination, when
12859           an object being finalized was trying to do a string comparison and
12860           the current culture was already finalized.
12861  
12862 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12863
12864         * threads.c: call thread_cleanup before finishing the thread if we get
12865         there.
12866
12867 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
12868
12869         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
12870         assemblies from the parent. Fixes #65665.
12871
12872 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
12873
12874         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
12875         modifiers.
12876
12877 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
12878
12879         * reflection.h: add prototype for mono_get_dbnull_object
12880         * reflection.c: add prototypes for get_default_param_value_blobs 
12881         and mono_get_object_from_blob for fussier compilers
12882
12883 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
12884  
12885         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
12886         false deadlock checks in class initialization.
12887  
12888 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
12889
12890         * image.c (mono_image_addref): Fix comment.
12891
12892         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
12893         possible.
12894
12895 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
12896
12897         * reflection.c (mono_param_get_objects): Modified to return
12898         ParameterInfo.DefaultValue object.
12899
12900         (get_default_param_value_blobs):
12901         (mono_get_object_from_blob):
12902         (mono_get_dbnull_object): New helper routines. 
12903
12904         * object.c (mono_get_constant_value_from_blob): New helper routine
12905         carved out from get_default_field_value ()
12906
12907         * object-internals.h (mono_get_constant_value_from_blob): Added
12908         function declaration.
12909
12910 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
12911
12912         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
12913         referenced assemblies. Fixes #62135.
12914
12915         * exception.h exception.c (mono_get_exception_file_not_found2): New
12916         helper function.
12917
12918 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
12919
12920         * class.h class.c: Add mono_type_get_underlying_type ().
12921
12922 2004-09-09  Geoff Norton <gnorton@customerndna.com>
12923
12924         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
12925         Fix GetTypes() to support dynamically created assemblies.
12926
12927 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
12928
12929         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
12930         
12931         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
12932         previous patch.
12933
12934         * reflection.h reflection.c loader.c: Allow dynamic construction of
12935         pinvoke methods. Fixes #65571.
12936         
12937         * reflection.c (mono_reflection_get_type): Revert previous change since
12938         it causes regressions.
12939
12940 2004-09-08  Martin Baulig  <martin@ximian.com>
12941
12942         * class.c (class_compute_field_layout): Don't call
12943         mono_class_layout_fields() for open generic instances.
12944
12945 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
12946         * threads.c appdomain.c: fix typo in GC macro
12947
12948 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12949
12950         * threads.c: don't call mono_thread_detach() in start_wrapper(),
12951         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
12952
12953 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
12954
12955         * image.c (mono_image_close): Applied patch from 
12956         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
12957         assembly is loaded multiple times from data.
12958         
12959         * image.c (mono_image_open): Fix warning.
12960
12961 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
12962
12963         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
12964         once. Fixes #58334.
12965         
12966         * reflection.c (mono_reflection_create_runtime_class): Initialize
12967         klass->nested_classes. Fixes #61224.
12968
12969 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
12970
12971         * threads.c: sched_yield() on exit, to allow threads to quit.
12972
12973 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
12974
12975         * object.c (mono_unhandled_exception): Remove leftover debug code.
12976
12977 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
12978
12979         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
12980
12981 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
12982
12983         * marshal.c (emit_marshal_array): Really null terminate string arrays.
12984         
12985         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
12986
12987 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
12988
12989         * marshal.c (emit_marshal_array): Null terminate string arrays.
12990         
12991         * marshal.c (raise_auto_layout_exception): Fix warning.
12992
12993         * reflection.c (mono_param_get_objects): Initialize the default value
12994         with DBNull.Value, not null. Fixes #62123.
12995
12996 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
12997
12998         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
12999         throw an exception with a cute explanation.
13000
13001 2004-09-06  Dick Porter  <dick@ximian.com>
13002
13003         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
13004         Close the new process's thread handle, as we don't use it.  The
13005         handle stays around forever otherwise.
13006
13007 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13008
13009         * object.c (arith_overflow): Fix warning.
13010
13011         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
13012         calling conventions in method refs. Fixes #65352.
13013
13014         * reflection.c: Fix warnings.
13015
13016 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13017
13018         * icall.c: Add a new icall for Array.Clear
13019
13020 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13021
13022         * object.c: When allocating an array, we have to throw
13023         an overflow exception if any of the lengths are < 0.
13024
13025 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13026
13027         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
13028         properly. Also move implementation of string array marshalling to 
13029         managed code. Fixes #42316.
13030
13031 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13032
13033         * assembly.c: provide more information when loading an assembly fails.
13034
13035 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13036
13037         * filewatcher.c: don't expect the development fam package to be
13038         installed.
13039
13040 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
13041
13042         * marshal.c: Make a copy of the signature cookie since it will be
13043         freed by the caller.
13044         
13045         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
13046
13047         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
13048
13049         * metadata.c (mono_metadata_free_marshal_spec): New function to free
13050         marshal specs.
13051
13052         * marshal.c: More refactoring.
13053         
13054         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
13055         smaller functions.
13056
13057 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
13058
13059         * object.c: In mono_message_invoke, fill the output parameter array after
13060           calling the managed method (it was done before the call). This fixes
13061           bug #59299.
13062
13063 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
13064
13065         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
13066         as well.
13067
13068 2004-09-02  Martin Baulig  <martin@ximian.com>
13069
13070         * class.c (mono_class_instance_size): Don't allow generic type
13071         definitions or open generic instances.
13072         (mono_class_array_element_size): If we're a value type, call
13073         mono_class_instance_size() on the original class.
13074
13075         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
13076         handle generic instances.
13077
13078         * mono-debug-debugger.c (write_type): Handle generic instances
13079         like classes.
13080
13081 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
13082
13083         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
13084         the allocation request fails. Fixes #65089.
13085
13086         * object.c (mono_runtime_free_method): Do not call mono_free_method.
13087         
13088         * object.c (mono_runtime_free_method): New function to free a dynamic
13089         method.
13090
13091         * marshal.c (mono_delegate_free_ftnptr): New function to free the
13092         delegate trampoline.
13093
13094         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
13095         with hasthis as dynamic,
13096
13097         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
13098
13099         * domain.c (mono_jit_info_table_remove): New function to remove an
13100         entry from the jit info table.
13101
13102         * class-internals.h (MonoMethod): Add 'dynamic' field.
13103
13104         * loader.c: Fix warnings.
13105
13106 2004-09-01  Martin Baulig  <martin@ximian.com>
13107
13108         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
13109         instead of mono_debugger_lock() because the latter one is a no-op
13110         unless running in the debugger.
13111
13112 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
13113
13114         * class.c (class_compute_field_layout): Classes with auto-layout or
13115         reference fields are not blittable.
13116         
13117 2004-09-01  Dick Porter  <dick@ximian.com>
13118
13119         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
13120         mono_image_get_filename() to get the assembly location.
13121
13122         * icall.c:
13123         * metadata.h: Fix compile warnings
13124
13125 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
13126
13127         * class.c (class_compute_field_layout): System.Object is blittable.
13128
13129         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
13130         as in/out. Fixes #59909.
13131
13132 2004-09-01  Martin Baulig  <martin@ximian.com>
13133
13134         * metadata.h (MONO_TYPE_ISREFERENCE): Call
13135         mono_metadata_generic_inst_is_valuetype() if we're a generic
13136         instance to check whether our underlying type is a reference type.
13137
13138 2004-09-01  Martin Baulig  <martin@ximian.com>
13139
13140         * metadata.c (mono_type_size): If we're a generic instance, call
13141         mono_class_value_size() for value types.
13142
13143 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
13144
13145         * marshal.c: Implement more custom marshalling functionality. Fixes
13146         #64915.
13147
13148 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
13149
13150         * mono-debug.c, debug-mono-symfile.c: add some locking love.
13151
13152 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
13153
13154         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
13155
13156         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
13157
13158         * icall.c: Fix some warnings.
13159
13160         * threads.c (abort_appdomain_thread): Fix unref errors.
13161         (mono_thread_current): Fix THREAD_DEBUG define.
13162
13163 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
13164
13165         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
13166
13167         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
13168
13169 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
13170
13171         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
13172         string arrays.
13173
13174 2004-08-28  Martin Baulig  <martin@ximian.com>
13175
13176         * metadata.c
13177         (mono_metadata_generic_inst_is_valuetype): New public function.
13178
13179         * metadata.h (MONO_TYPE_ISSTRUCT): Call
13180         mono_metadata_generic_inst_is_valuetype() if we're a generic
13181         instance to check whether our underlying type is a valuetype.
13182
13183 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
13184
13185         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
13186         #63768.
13187
13188 2004-08-25  Martin Baulig  <martin@ximian.com>
13189
13190         * loader.c (mono_get_method_from_token): Abstract methods can also
13191         be generic and thus have type parameters.
13192
13193         * metadata-internals.h
13194         (MonoDynamicImage): Added `GPtrArray *gen_params'.
13195
13196         * reflection.c (mono_image_get_generic_param_info): Don't create a
13197         metadata row, just add an entry to the `gen_params' array.
13198         (build_compressed_metadata): Sort the `gen_params' array and then
13199         actually create the metadata.
13200
13201 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13202
13203         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
13204
13205 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
13206
13207         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
13208
13209 2004-08-24  Martin Baulig  <martin@ximian.com>
13210
13211         * class.cs (mono_class_is_subclass_of): Like an interface, a
13212         generic instance also derives from System.Object.
13213
13214 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
13215
13216         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
13217         custom modifiers to be in any order. Fixes #61990.
13218
13219 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
13220
13221         * object.c: Register mono_object_new_fast icall.
13222         
13223         * object.c (mono_class_get_allocation_ftn): Return to calling
13224         mono_object_new_fast, since it seems faster to compute the object 
13225         size in unmanaged code than passing it as a parameter.
13226
13227         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
13228
13229         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
13230         this function with Boehm as the oom handler, so we don't have to check
13231         the result of GC_malloc.
13232
13233         * object.c: Remove checks for oom.
13234
13235         * object.h object.c (mono_class_get_allocation_ftn): New function to
13236         return the icall which can be used to allocate an instance of a given
13237         class. 
13238
13239         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
13240
13241         * class-internals.h: Add 'enabled' field.
13242
13243 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
13244
13245         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
13246
13247 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
13248         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
13249         value 0x0010.
13250
13251 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
13252
13253         * appdomain.c: use the Tls function for appdomain too,
13254         at Zoltan's request. Actually return in mono_context_get
13255
13256         * appdomain.c, profiler.c, threads.c: use __thread
13257
13258 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
13259
13260         * appdomain.c threads.c: Call GC_CreateThread on windows.
13261
13262         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
13263         multiple libraries since this don't work on windows.
13264
13265 2004-08-18  Martin Baulig  <martin@ximian.com>
13266
13267         * class-internals.h
13268         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
13269         MonoMethodHeader.
13270
13271         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
13272         MonoMethodNormal since we also need it for abstract and interface
13273         methods.
13274
13275         * reflection.c
13276         (build_compressed_metadata): Sort the GenericParam table.
13277         (mono_image_create_token): Added `gboolean create_methodspec'
13278         argument; this is false when generating a MethodImpl token.
13279         (reflection_methodbuilder_to_mono_method): Abstract and interface
13280         methods may also have generic parameters.
13281
13282 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
13283
13284         * appdomain.c: thread local alloc
13285
13286 2004-08-17  Martin Baulig  <martin@ximian.com>
13287
13288         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
13289
13290         * icall.c
13291         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
13292         argument.
13293
13294         * class.c (mono_type_get_full_name): New public function.
13295         (mono_type_get_name): Don't include the type arguments.
13296
13297 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
13298
13299         * Makefile.am: Build static versions of libmetadata and libmonoruntime
13300         for inclusion into the mono executable.
13301
13302 2004-08-16  Martin Baulig  <martin@ximian.com>
13303
13304         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
13305         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
13306
13307 2004-08-14  Martin Baulig  <martin@ximian.com>
13308
13309         * class.c (dup_type): Also copy the `byref' field.
13310
13311 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
13312
13313         * reflection.c (create_dynamic_mono_image): Revert the last change 
13314         since it breaks bootstrap.
13315
13316 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
13317
13318         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
13319
13320         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
13321         not free them with g_free.
13322
13323 2004-08-11  Martin Baulig  <martin@ximian.com>
13324
13325         * reflection.c (mono_reflection_setup_internal_class): Also call
13326         mono_class_setup_mono_type() if we already have a `tb->type.type'.
13327
13328 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
13329
13330         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
13331         called during default (first) AppDomain creation. Keep track of
13332         Evidence when loading assemblies.
13333
13334 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
13335
13336         * opcodes.c, opcodes.h: reduce runtime relocations.
13337
13338 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
13339
13340         * culture-info.h, locales.c: fixes and chages to sue the new
13341         optimized format of the locale data.
13342         * culture-info-tables.h: regenerated.
13343
13344 2004-08-06  Geoff Norton <gnorton@customerdna.com>
13345         
13346         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
13347
13348 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
13349
13350         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
13351         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
13352         * domain-internals.h: icall declaration.
13353         * icall.c: icall registration.
13354         * object-internals.h: New fields in MonoAssembly for CAS.
13355
13356 2004-08-05  Duncan Mak  <duncan@ximian.com>
13357
13358         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
13359         CEE_LDELEM_ANY.
13360
13361 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
13362
13363         * reflection.c: fix to deal with object[] arrays in custom ctors
13364         (bug #62550).
13365
13366 2004-08-05  Martin Baulig  <martin@ximian.com>
13367
13368         * class.c (mono_class_array_element_size): Added support for
13369         generic instances and correctly handle "recursive" types.
13370
13371 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
13372
13373         * assembly.c: Fix warnings.
13374
13375 2004-08-04  Martin Baulig  <martin@ximian.com>
13376
13377         * class.c
13378         (mono_type_get_name_recurse): Added `gboolean include_arity'
13379         argument specifying whether or not we should include the generic
13380         arity in the type name.
13381         (_mono_type_get_name): New static function.
13382         (mono_class_setup_vtable): If we're a generic instance, don't
13383         include the generic arity in the names of explicit method
13384         implementations.        
13385
13386 2004-08-03  Martin Baulig  <martin@ximian.com>
13387
13388         * class.c (mono_type_get_name_recurse): Enclose the generic type
13389         arguments in `<', '>'.
13390
13391 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13392
13393         * gc.c: make GC warning messages use the trace API, they are just
13394         noise to most of the users.
13395
13396 2004-08-03  Martin Baulig  <martin@ximian.com>
13397
13398         * debug-mono-symfile.c (read_string): Correctly read the string.
13399
13400 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
13401
13402         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
13403         
13404         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
13405         icalls.
13406         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
13407
13408 2004-07-30  Martin Baulig  <martin@ximian.com>
13409
13410         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
13411         Reflect latest symbol writer changes.   
13412
13413 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13414
13415         * object.c: always create an object if null is passed
13416         to Invoke() where a valuetype is expected.
13417
13418 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
13419
13420         * marshal.c (mono_marshal_init): make managed
13421         signatures match native ones better for 64bits.
13422
13423 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13424
13425         * appdomain.c: hack to build correctly the private bin path on windows.
13426         Fixes bug #61991.
13427
13428 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
13429
13430         * assembly.c: Load mscorlib from the correct framework directory
13431           (mono/<version>/mscorlib.dll).
13432         * appdomain.h: Added prototypes for new functions.
13433         * internals.h: Added some prototypes.
13434         * domain.c: When initializing the runtime, get from the executable and
13435           the configuration files the runtime version that the app supports.
13436           Added support methods for reading app.exe.config. Added list of versions
13437           supported by the JIT. Added two new methods: mono_init_from_assembly,
13438           which initializes the runtime and determines the required version from
13439           the provided exe file, and mono_init_version, which initializes
13440           the runtime using the provided version.
13441         * icall.c: Get machine.config from version-specific directory.
13442         * reflection.c: When generating an image, embed the version number
13443           of the current runtime.
13444
13445 2004-07-28  Dick Porter  <dick@ximian.com>
13446
13447         * socket-io.c
13448         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
13449         returned sockaddr size before creating the remote address object.
13450         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
13451         61608.
13452
13453 2004-07-28  Dick Porter  <dick@ximian.com>
13454
13455         * locales.c (string_invariant_compare_char): Fix invariant char
13456         compares between upper and lower cases.  Fixes bug 61458.
13457
13458 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
13459         
13460         * marshal.c: actually cache stelem.ref wrappers.
13461         
13462 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
13463
13464         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
13465         sections and remove the mono_cli_rva_map () function.
13466
13467 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
13468
13469         * debug-mono-symfile.c: fix one more endianess issue, from a patch
13470         by Geoff Norton (<gnorton@customerdna.com>).
13471
13472 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13473
13474         * class.c: fix class loads for pointer types (typeof(int) !=
13475         typeof(int*)).
13476
13477 2004-07-27  Martin Baulig  <martin@ximian.com>
13478
13479         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
13480         reading the debugging information from an external ".mdb" file.
13481
13482 2004-07-24  Martin Baulig  <martin@ximian.com>
13483
13484         * reflection.c (mono_image_get_type_info): Only write a class
13485         layout entry if we actually have a size or a packing size.
13486
13487 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
13488
13489         * reflection.c (type_get_fully_qualified_name): 
13490         insert cast to get type checking of ?: with non-gcc compilers
13491
13492 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
13493
13494         * rand.c: use g_getenv for both lookups of
13495         MONO_EGD_SOCKET
13496
13497 2004-07-17  Martin Baulig  <martin@ximian.com>
13498
13499         * reflection.c (mono_reflection_bind_generic_method_parameters):
13500         Set `gmethod->reflection_info'.
13501
13502 2004-07-17  Martin Baulig  <martin@ximian.com>
13503
13504         * class.c (mono_class_create_from_typedef): Insert the newly
13505         created class into the hash table before computing the interfaces
13506         since we could be called recursively.
13507
13508 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
13509
13510         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
13511         function to implement stelem.ref in managed code
13512         * class-internals.h, debug-helpers.c: a new wrapper type
13513         for the above.
13514
13515 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13516
13517         * gc.c: allow GC handles to work even when no GC is compiled in.
13518         Fix part of bug #61134 (GetAddrOfPinnedObject).
13519
13520 2004-07-13  Peter Williams  <peter@newton.cx>
13521  
13522         * process.c (complete_path): Make sure we don't attempt to execute
13523         directories.
13524  
13525 2004-07-12  Geoff Norton <gnorton@customerdna.com>
13526
13527         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
13528           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
13529           and will add/subtract the hour if needed
13530
13531 2004-07-12  Martin Baulig  <martin@ximian.com>
13532
13533         * reflection.c (mono_field_get_object): If we have
13534         `field->generic_info', take the attributes from
13535         `field->generic_info->generic_type'.    
13536
13537 2004-07-12  Martin Baulig  <martin@ximian.com>
13538
13539         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
13540         This function must be called before initializing the runtime.
13541         (mono_debug_init_1): New function; call this after initializing
13542         the runtime, but before loading the assembly.  It tells the
13543         debugger to load corlib and the builtin types.
13544
13545         * mono-debug-debugger.c: Did some larger changes in the debugging
13546         code; support recursive class declarations, make sure we actually
13547         add all classes.
13548
13549 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13550
13551         * debug-helpers.c: undo my previous patch and fixed the real issue in
13552         ../mini/exceptions-x86.c
13553
13554 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13555
13556         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
13557         when no HOME env. variable was set and a NullRef was thrown in a .cctor
13558         called from other .cctors.
13559
13560 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
13561
13562         * loader.c: Removed the mono_loader_wine_init hack now that we are
13563         doing a managed version of Windows.Forms.
13564
13565 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
13566
13567         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
13568         threadpool.c, threads.c: remove static data from rootset.
13569
13570 2004-07-09  Dick Porter  <dick@ximian.com>
13571
13572         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
13573         Don't do any more processing if the matched length was 0.  It was
13574         increasing the size of the string before.  Fixes bug 61167.
13575
13576 2004-07-09  Dick Porter  <dick@ximian.com>
13577
13578         * socket-io.h:
13579         * socket-io.c
13580         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
13581         Add support for SO_PEERCRED if its available.
13582
13583 2004-07-09  Peter Bartok <pbartok@novell.com>
13584         * loader.c: winelib.exe.so error message is now only displayed if
13585         MONO_DEBUG is set. To help us avoid questions when people are trying
13586         out the new Managed.Windows.Forms.
13587
13588 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
13589
13590         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
13591         for isinst and castclass wrappers.
13592
13593         * class-internals.h icall.c: Move registration and lookup of JIT icalls
13594         to libmetadata from the JIT, so they could be used by the marshalling
13595         code and the interpreter.
13596
13597         * marshal.c: Register marshalling related JIT icalls here instead of
13598         in mini.c. Use CEE_MONO_ICALL instead of the family of 
13599         CEE_MONO_PROC<x> opcodes to call marshalling functions.
13600
13601         * metadata.h: Remove unneeded marshalling conversions.
13602
13603         * opcodes.c: Update for new opcodes.
13604         
13605 2004-07-08  Martin Baulig  <martin@ximian.com>
13606
13607         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
13608         (mono_debug_get_domain_data): Make this function static.
13609
13610 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
13611
13612         * gc.c, object.h: add nice GC handle API for embedders.
13613
13614 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
13615
13616         * reflection.c: more changes for the new api
13617
13618         * object.c: When we reflect on a field w/ a constant value, it
13619         will not have a memory location, so we must access metadata. Also,
13620         allow easier reading of strings so that we can read them from
13621         the constant data.
13622
13623         * class.c (mono_class_layout_fields): no need for literal fields here.
13624
13625         * class-internals.h: api changes for const fields
13626
13627         * icall.c (ves_icall_get_enum_info): use new apis for const fields
13628
13629 2004-07-06  Martin Baulig  <martin@ximian.com>
13630
13631         * mono-debug.h: Increment version number to 44.
13632
13633         * mono-debug.c (mono_debug_add_wrapper): The second argument is
13634         now a gpointer, rewrote this whole method.
13635
13636         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
13637         function.  Add information about the wrapper in a new "misc table".
13638
13639         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
13640         for the new misc table.
13641
13642 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
13643
13644         * metadata-internals.h image.c: Add a cache for helper signatures.
13645
13646         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
13647
13648 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
13649
13650         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
13651         delegates from a delegate. Fixes #61033.
13652         
13653         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
13654         marshalling of stringbuilder arrays. Fixes #59900.
13655
13656 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
13657
13658         * icall.c: Add EnumBuilder:setup_enum_type icall.
13659
13660 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
13661
13662         * icall.c: Added a new icall for the property version of
13663         OffsetOfStringData.
13664
13665 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
13666
13667         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
13668         it has a constant size across platforms.
13669
13670         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
13671         stack trace.
13672
13673 2004-06-29  Martin Baulig  <martin@ximian.com>
13674
13675         * mono-debug.c (mono_debug_add_method): Protect the whole function
13676         in mono_debugger_lock(), not just parts of it.
13677
13678 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
13679
13680         * reflection.c: make sure padding bytes in heaps are zeroed.
13681
13682 2004-06-24  David Waite  <mass@akuma.org>
13683
13684         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
13685         image.c, loader.c, locales.c, marshal.c, metadata.c,
13686         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
13687         string-icalls.c, threads.c: change to C90-style comments from C99 /
13688         C++ -style
13689
13690 2004-06-24  Dick Porter  <dick@ximian.com>
13691
13692         * threads.c
13693         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
13694         return createdNew.  Fixes bug 60412.
13695
13696         * threads-types.h: 
13697         * icall.c: Add createdNew parameter to CreateMutex icall
13698
13699 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
13700
13701         * reflection.c, object-internals.h: save default value in params.
13702
13703 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13704
13705         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
13706         no need to build a new path combining that with the application base.
13707         Fixes bug #60442.
13708
13709 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
13710
13711         * reflection.c: fixed minor standard compliance issues.
13712
13713 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
13714
13715         * reflection.c: fixed issue with encoding some custom attributes
13716         (arrays in properties and fields, bug #60411).
13717
13718 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13719
13720         * reflection.c: fix start address when copying the public key token.
13721
13722 2004-06-23  Martin Baulig  <martin@ximian.com>
13723
13724         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
13725         the `exc' object in a static object to put it into the GC's root set.
13726
13727 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
13728
13729         * reflection.c: make mono_reflection_setup_internal_class ()
13730         callable a second time to setup a new parent class.
13731
13732 2004-06-23  Dick Porter  <dick@ximian.com>
13733
13734         * threads.c: Check for WAIT_IO_COMPLETION return values.
13735
13736 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
13737
13738         * appdomain.c: Removed the g_free on the public key token. Now copy 
13739         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
13740         * assembly.c: Added public key token string value when loading 
13741         assemblies. Fix bug #60439.
13742         * icall.c: Added missing informations (like public key) in 
13743         GetReferencedAssemblies. Fix #60519.
13744         * image.h: Changed definition for public key token from const char*
13745         public_tok_value to guchar public_key_token [17];
13746         * reflection.c: Updated for changes to public key token.
13747
13748 2004-06-22  Lluis Sanchez Gual
13749
13750         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
13751         for the field in base classes.
13752
13753 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
13754
13755         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
13756         mark headers as not supported, they are installed only for use by the
13757         debugger.
13758
13759 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
13760
13761         * *.c, *.h: avoid namespace pollution in public headers.
13762
13763 2004-06-21  Martin Baulig  <martin@ximian.com>
13764
13765         * exception.c (mono_get_exception_security): It's in
13766         "System.Security", not in "System".
13767
13768         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
13769         the exception classes.
13770
13771 2004-06-21  Martin Baulig  <martin@ximian.com>
13772
13773         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
13774         Protect the exception object from being finalized.
13775
13776 2004-06-21  Martin Baulig  <martin@ximian.com>
13777
13778         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
13779         public function.
13780
13781 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
13782
13783         * reflection.c: Load the assembly in mono_reflection_type_from_name,
13784         if it was not loaded before. Fix parts of #60439.
13785
13786 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
13787
13788         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
13789         code that was broken since Ben's change: wrappers are now
13790         dependent on the method signature only again.
13791
13792 2004-06-21  Martin Baulig  <martin@ximian.com>
13793
13794         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
13795         added interface support.
13796
13797 2004-06-21  Martin Baulig  <martin@ximian.com>
13798
13799         * class.c (mono_vtable_get_static_field_data): New public method.
13800
13801 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
13802
13803         * filewatcher.c : Windows build fix to be compliant with API changes.
13804
13805 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
13806
13807         * class.h, class.c: more accessors.
13808         * metadata.h, metadata.c: prepare for hiding MonoType and
13809         MonoMethodSignature: people should use the accessors from now on
13810         outside of the tree.
13811
13812 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
13813
13814         * *.c, *.h: more API cleanups.
13815
13816 2004-06-18  Jackson Harper  <jackson@ximian.com>
13817
13818         * assembly.c: Trace loading assemblies.
13819         * loader.c: Trace loading native libraries.
13820         * mono-config.c: Trace loading config files.
13821         
13822 2004-06-18  Dick Porter  <dick@ximian.com>
13823
13824         * locales.c: Tell ICU the lengths of strings, it can cope with
13825         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
13826
13827 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
13828
13829         * image.c: swapped name/filename;
13830
13831 2004-06-18  Martin Baulig  <martin@ximian.com>
13832
13833         * mono-debug-debugger.c (write_class): Write the parent class at
13834         the end of the header.
13835
13836 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
13837
13838         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
13839
13840 2004-06-17  Raja R Harinath  <rharinath@novell.com>
13841
13842         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
13843         (bundle_obj): New conditional define.
13844         (BUILT_SOURCES): Remove.
13845         ($(bundle_srcs)): Make parallel-make safe.
13846         (libmonoruntime_la_LIBADD): Make unconditional.
13847         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
13848         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
13849
13850 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
13851
13852         * culture-info-tables.h: It was inconsistent with the latest
13853           supp info files.
13854
13855 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
13856
13857         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
13858         be loaded.
13859
13860         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
13861         with gcc 2.95.
13862
13863 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
13864
13865         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
13866         cleaned up public header threads.h.
13867
13868 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
13869
13870         * Makefile.am, *.c, *.h: more API cleanups.
13871
13872 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
13873
13874         * Makefile.am: removed monosn from compilation.
13875         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
13876         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
13877         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
13878         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
13879         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
13880         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
13881
13882 2004-06-15  Jackson Harper  <jackson@ximian.com>
13883
13884         * assembly.c: Make locales lower case when searching the GAC for
13885         assemblies. gacutil will always make locales lowercase when
13886         installing so this effectively makes them case insensitive.
13887         
13888 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
13889
13890         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
13891         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
13892           parameter which allows to choose whether the wait can be interrupted or 
13893           not. Also added the method mono_monitor_enter(), which locks the monitor
13894           using an infinite wait and without allowing interruption.
13895           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
13896           interrupted.
13897         * object.h: Added new fields in MonoThread. suspend_event holds the event
13898           used to susped/resume the thread. synch_lock is the lock object to use for
13899           modifying the thread state.
13900         * threads.c: Use the new synch_lock object for locking, instead of "this",
13901           which can generate deadlocks.
13902           Moved thread state change in Thread.Sleep and Thread.Join from managed
13903           to unmanaged code. This avoids a deadlock when the thread was suspended
13904           just after acquiring the thread lock.
13905           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
13906           Implemented Thread.Suspend using an event instead of ThreadSuspend,
13907           which is not fully implemented in the io-layer.
13908         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
13909
13910 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
13911
13912         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
13913         threads-types.h: more API cleanups.
13914
13915 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
13916
13917         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
13918         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
13919         threadpool.c, threads.c: first pass at the exported API cleanup.
13920
13921 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
13922
13923         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
13924
13925 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13926
13927         * icall.c: added internalGetHome.
13928
13929 2004-06-14  Dick Porter  <dick@ximian.com>
13930
13931         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
13932         possible to return successfully when '.' or '..' were the only
13933         entries in a directory, but were skipped.  The MonoIOStat was not
13934         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
13935         Fixes bug 59574.
13936
13937 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
13938
13939         * reflection.c: make binaries run on .Net 1.1 by default.
13940
13941 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13942
13943         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
13944
13945 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
13946
13947         * marshal.c: keep track of struct size with explicit layout
13948         (bug #59979).
13949
13950 2004-06-12  Martin Baulig  <martin@ximian.com>
13951
13952         * mono-debug-debugger.c: Comment out a debugging g_message().
13953
13954 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
13955
13956         * reflection.c, reflection.h: do not free custom attrs that are cached.
13957         * icall.c: use braces to make code clearer.
13958
13959 2004-06-11  Martin Baulig  <martin@ximian.com>
13960
13961         * class.h (MonoInflatedField): New type.
13962         (MonoClassField): Replaced `MonoType *generic_type' with
13963         `MonoInflatedField *generic_info'.
13964
13965         * icall.c
13966         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
13967
13968 2004-06-11  Martin Baulig  <martin@ximian.com>
13969
13970         * reflection.c (mono_image_create_method_token): Correctly encode
13971         varargs methods.
13972
13973 2004-06-11  Martin Baulig  <martin@ximian.com>
13974
13975         * metadata.c (mono_metadata_parse_method_signature): When parsing
13976         a MethodDef which has VarArgs, also set sentinelpos if we don't
13977         have any parameters.
13978
13979 2004-06-11  Martin Baulig  <martin@ximian.com>
13980
13981         * verify.c (mono_method_verify): In CEE_CALL, use
13982         mono_method_get_signature() to get the method's signature, unless
13983         we're a PInvoke method.
13984
13985 2004-06-10  Jackson Harper  <jackson@ximian.com>
13986
13987         * assembly.c: Use <path>/lib/mono/gac for the extra paths
13988         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
13989         logical name as the supplied path is just a prefix to the gac not
13990         the direct path to it.
13991         
13992 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
13993
13994         * reflection.c: make the token for a created method match
13995         the token of the MethodBuilder it was created from
13996         (IKVM requires this behaviour now).
13997
13998 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
13999
14000         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
14001         reflection.c, socket-io.c: leak fixes.
14002
14003 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
14004
14005         * icall.c: handle sentinel pos in vararg methods in position different
14006         from 0.
14007
14008 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14009
14010         * culture-info-tables.h: freshly generated.
14011
14012 2004-06-09  Martin Baulig  <martin@ximian.com>
14013
14014         * loader.c (mono_get_method_constrained): Call `mono_class_init
14015         (constrained_class)'.   
14016
14017 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
14018
14019         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
14020         any methods. Fixes #59629.
14021
14022 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14023
14024         * culture-info-tables.h: reflecting locale-builder updates.
14025
14026 2004-06-08  Dick Porter  <dick@ximian.com>
14027
14028         * object.h:
14029         * locales.c: Fixed compile warnings, including a real bug in
14030         CompareInfo_internal_compare.
14031         
14032 2004-06-08  Dick Porter  <dick@ximian.com>
14033
14034         * locales.c
14035         (ves_icall_System_Globalization_CompareInfo_internal_index):
14036         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14037         Double-check the resuls of usearches, because ICU currently
14038         ignores most of the collator settings here.  Fixes bug 59720.
14039         
14040 2004-06-08  Dick Porter  <dick@ximian.com>
14041
14042         * locales.c
14043         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14044         Fix memory leak and segfault-causing typo.  No idea how this one
14045         lasted so long without being noticed.
14046
14047 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
14048
14049         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
14050         any methods. Fixes #59629.
14051
14052 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14053
14054         * assembly.c:
14055         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
14056         own the critical section before). Removed dead code (that's done
14057         in the preload hook).
14058
14059         (mono_assembly_load_with_partial_name): call the preload hook.
14060
14061 2004-06-08  Martin Baulig  <martin@ximian.com>
14062
14063         * metadata.c (mono_metadata_signature_alloc): Default
14064         `sentinelpos' to -1.
14065
14066         * reflection.c (mono_image_get_array_token): Likewise.
14067
14068 2004-06-08  Martin Baulig  <martin@ximian.com>
14069
14070         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
14071
14072         * metadata.c (mono_metadata_parse_method_signature): When parsing
14073         a MethodDef which has VarArgs, set sentinelpos.
14074
14075         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
14076         `gint16' since we're using -1 for non-varargs methods.
14077
14078         * reflection.c
14079         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
14080         (method_encode_signature): Added varargs support.
14081         (method_builder_encode_signature): Likewise.
14082         (mono_image_get_varargs_method_token): New static method.
14083         (mono_image_create_method_token): New public method; this is
14084         called via an icall instead of mono_image_create_token() when
14085         calling a varargs method.       
14086
14087 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
14088
14089         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
14090
14091 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14092
14093         * culture-info-tables.h : Reflecting the latest locale-builder that
14094           fixed empty array representation ({} to {0}).
14095
14096 2004-06-07  Jackson Harper  <jackson@ximian.com>
14097
14098         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
14099         looking up extra gac paths. This allows MONO_GAC_PATH to act
14100         exactly like a prefix.
14101         
14102 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
14103
14104         * reflection.c (mono_reflection_type_from_name): Make a copy of the
14105         type name before modifying it. Fixes #59405.
14106
14107 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14108
14109         * culture-info.h: added fields for "all datetime patterns".
14110         * locales.c: (  ves_icall_System_Globalization_CultureInfo
14111           _construct_datetime_format ()): fill xxx_patterns fields.
14112         * object.h: added fields for "all datetime patterns" to
14113           MonoDateTimeFormatInfo.
14114         * culture-info-tables.h: reflecting locale-builder updates.
14115
14116 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
14117
14118         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
14119         the event has no add and remove methods. Fixes #59629.
14120
14121 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
14122
14123         * object.c: Fixed possible integer overflow when allocating large
14124         strings.
14125
14126 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
14127
14128         * culture-info-tables.h: reflecting locale-builder updates.
14129
14130 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
14131
14132         * culture-info-tables.h: reflecting locale-builder updates.
14133
14134 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
14135
14136         * culture-info-tables.h: reflecting locale-builder updates.
14137
14138 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
14139
14140         * threads.c: Made Thread.Sleep abortable.
14141
14142 2004-06-02  Martin Baulig  <martin@ximian.com>
14143
14144         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
14145
14146         * debug-mono-symfile.h: Bumped symbol file version number to 37.
14147
14148 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
14149
14150         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
14151
14152 2004-05-30  Jackson Harper  <jackson@ximian.com>
14153
14154         * reflection.c: Do not hardcode assembly versions or public key
14155         tokens anymore. All of this except the corlib section was dead
14156         code anyways.
14157         
14158 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
14159
14160         * object.c (mono_runtime_invoke_array): Automatically create boxed
14161         objects for byref valuetypes if needed. Fixes #59300.
14162         
14163         * object.c (mono_method_return_message_restore): Handle 
14164         MONO_TYPE_OBJECT as well.
14165
14166 2004-05-28  Jackson Harper  <jackson@ximian.com>
14167
14168         * reflection.c: The modified type encoding was causing build
14169         problems. Reverted for now.
14170         
14171 2004-05-28  Jackson Harper  <jackson@ximian.com>
14172
14173         * reflection.c/h: Take an assembly ref so that we dont create
14174         fully qualified names when encoding types in the same assembly as
14175         the custom attribute being emitted.
14176         * appdomain.c: Increment version number.
14177         
14178 2004-05-26  Duncan Mak  <duncan@ximian.com>
14179
14180         * icall.c
14181         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14182         Set the full version number (major, minor, build, revision).
14183
14184 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
14185
14186         * marshal.c (emit_struct_conv): increment src/dst after blit
14187         (mono_marshal_get_managed_wrapper,
14188         mono_marshal_get_native_wrapper): make sure we have marshalling
14189         info before marshalling params (info computation affects
14190         blittable)
14191
14192         * class.c (class_compute_field_layout): correctly deal with
14193         blittable
14194         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
14195         value types (as per what windows dows by default)
14196         (mono_class_setup_mono_type): System.ValueType is blittable
14197         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
14198         blittable
14199
14200         * marshal.c (mono_marshal_load_type_info): flag types  as
14201         non-blittable if the native layout doesn't match the managed
14202         layout
14203
14204 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14205
14206         * appdomain.c: don't add stuff in the private search path that is
14207         above the application base. If application base is not set, there's
14208         no private search path.
14209
14210 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
14211
14212         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
14213         byref struct arguments in native->managed marshalling.
14214
14215 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
14216
14217         * marshal.c (mono_marshal_get_runtime_invoke): correctly
14218         cache methods using signature (special case for methods
14219         that are value type or string class)
14220         
14221         * image.c (mono_image_close): clean up allocated GSList's
14222         in runtime_invoke_cache.
14223
14224 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14225
14226         * mono-config.c: set the correct path for mono_cfg_dir on windows when
14227         there's no MONO_CFG_DIR environment variable defined.
14228
14229 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14230
14231         * threads.c: windows version must be >= 0x0500 to include OpenThread.
14232
14233 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
14234
14235         * threadpool.c: Really wait for 500ms after the async call, even if the wait
14236           is interrumped.
14237         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
14238           before waiting for it, and call CloseHandle after the wait to unref it.
14239           This will make sure that handles are not disposed too early.
14240
14241 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14242
14243         * appdomain.c:
14244         * appdomain.h:
14245         * icall.c: removed
14246         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
14247         needed now.
14248
14249         * object.c: se the application_base only for the domain that runs
14250         Main. Fixes bug #59216,
14251
14252 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14253
14254         * appdomain.c:
14255         * object.c: only the domain in which Main is run have
14256         SetupInformation.ConfigurationFile set, so moved a few lines from
14257         appdomain.c to object.c.
14258
14259 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14260
14261         * appdomain.c: we tried to load [name].(dll|exe), but according
14262         to bug #57710, we must also try [culture]/[name].(dll|exe) and
14263         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
14264         There's a test case attached to bug #58922.
14265
14266 2004-05-27  Dick Porter  <dick@ximian.com>
14267
14268         * icall.c:
14269         * file-io.c: Implemented icalls for locking and unlocking regions
14270         in a file.
14271         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
14272         FALSE on error (fixes both compiler warning and real bug.)
14273
14274 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
14275
14276         * culture-info-tables.h: reflecting locale-builder updates.
14277
14278           (Added missing ChangeLog entry for 05/26)
14279
14280 2004-05-27  Jackson Harper  <jackson@ximian.com>
14281
14282         * locales.c: Fix some cut and paste errors.
14283         
14284 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14285
14286         * mono-config.c: set the correct path for config. directory on windows.
14287
14288 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
14289
14290         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
14291           on win32.
14292
14293 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
14294
14295         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
14296         from pinvoke functions.
14297         
14298         * marshal.c (mono_ftnptr_to_delegate): Implement this.
14299
14300 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
14301
14302         * culture-info-tables.h: reflecting locale-builder updates.
14303
14304 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
14305
14306         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
14307         #59086.
14308
14309 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
14310
14311         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
14312         * icall.c: Modified icalls for RNG.
14313         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
14314         Windows (CryptoAPI).
14315
14316 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
14317
14318         * locales.c: Fix build.
14319
14320 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
14321
14322         * culture-info-tables.h: reflecting locale-builder updates.
14323
14324 2004-05-25  Jackson Harper  <jackson@ximian.com>
14325
14326         * locales.c: When creating the current culture use the $LANGs
14327         specific culture. So DateTimeFormat and NumberFormat entries are created.
14328         
14329 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
14330
14331         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
14332         a char array as parameter.
14333
14334 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
14335
14336         * image.c: In mono_image_open(), always use an absolute path name to
14337           look for already loaded images.
14338
14339 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
14340
14341         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
14342         missing in the windows build (like older cygwin include files).
14343
14344 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
14345
14346         * icall.c: Fixed check for possible integer overflow in Buffer_
14347         BlockCopy icall. Replaced comments style // by /* */.
14348
14349 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
14350
14351         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
14352         
14353         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
14354         check after MONO_VTADDR. Fixes pinvoke2.exe.
14355
14356         * marshal.h marshal.c metadata.h: Add beginnings of support for
14357         ftnptr -> delegate marshalling.
14358
14359 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
14360
14361         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
14362         * threads.c: Fix warnings.
14363
14364 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
14365
14366         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
14367         * icall.c: Registered icalls for Suspend and Resume.
14368         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
14369           Thread.Abort.
14370         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
14371         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
14372         * process.c: Use WaitForSingleObjectEx.
14373         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
14374           checkpoints.
14375         * threads.c, threads.h: Make use of new Ex wait methods. Improved
14376           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
14377           for Suspend and Resume. Added new mono_thread_stop, used for stoping
14378           background threads. Added basic support for Abort in Windows.
14379           Start new threads using a managed delegate invoke wrapper. This wrapper
14380           has an interruption checkpoint that is needed since an interruption
14381           can be requested before the thread leaves the unmanaged code that starts 
14382           the thread.
14383         * marshal.c: Added interruption checkpoint after every native call, and
14384           also before managed calls for wrappers called from unmanaged code to
14385           go into managed code.
14386         * object.h: Added new field in MonoThread to keep track of interruption
14387           requests.
14388
14389 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
14390
14391         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
14392         calls.
14393
14394 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14395
14396         * appdomain.c:
14397         * assembly.c:
14398         * gc.c:
14399         * locales.c:
14400         * mono-config.c:
14401         * rand.c: getenv -> g_getenv (windows!)
14402
14403         * process.c: complete_path is also used on non-windows platforms.
14404
14405 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14406
14407         * icall.c: new signature for Process_Start.
14408
14409         * process.[ch]: new signature for Process_Start. If we're on windows
14410         and UseShellExecute is false, we have to search for the program by
14411         ourselves if we don't get a full path.
14412
14413 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
14414
14415         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
14416         marshalling and call CleanUpNativeData if needed. Fixes #58646.
14417
14418 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14419
14420         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
14421         Fixes bug #58373.
14422
14423 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14424
14425         * process.c: use double quotes to quote program name and arguments on
14426         windows. Fixes bug #58575.
14427
14428 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14429
14430         * file-io.c: don't return "." and ".." when using windows Find*File.
14431
14432 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
14433
14434         * marshal.c: Don't pass wrappers to message init because method 
14435         addressed used to lookup metadata. part of remoting[2|3] fix.
14436
14437 2004-05-15  Jackson Harper  <jackson@ximian.com>
14438
14439         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
14440         path is essentially the same as MONO_PATH except that it points to
14441         GACs instead of lib directories.
14442         * loader.h: The user gac is gone so we dont need function to
14443         enable/disable it.
14444         * mono-config.c: user gac option is now gone.
14445         
14446 2004-05-15  Jackson Harper  <jackson@ximian.com>
14447
14448         * culture-info.h: Make defines more consistent, add calendar data
14449         to the culture info table.
14450         * culture-info-tables.h: Add basic calendar data. Basically
14451         everyone gets default gregorian until all the data is
14452         updated.
14453         * locales.c: Use the new consistent defines. Set calendar data for
14454         culture info objects.
14455         * object.h: add a field for calendar data to CultureInfo
14456         
14457 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
14458
14459         * image.c: image->runtime_invoke_cache is keyed on signatures now.
14460         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
14461         a signature.
14462         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
14463         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
14464         an extra param that is the pointer of the method to invoke. The IL for
14465         the invoke method is no longer specific to the method, but to the
14466         signature of the method. Thus, we can share the same code for multiple
14467         methods. This reduces the number of methods that have to be compiled.
14468
14469 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
14470
14471         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
14472
14473         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14474
14475         * icall.c: Optimize Buffer.BlockCopy.
14476
14477 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14478
14479         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
14480         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
14481         quote). Changed them to "MMMM yyyy".
14482
14483 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
14484
14485         * rand.c
14486         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
14487
14488 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
14489
14490         * reflection.h: Updated after changes to managed structures.
14491
14492         * appdomain.c: Bump corlib version.
14493
14494 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14495
14496         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
14497         windows.
14498
14499 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14500
14501         * Makefile.am: link to ../os/libmonoos.la on windows.
14502
14503         * assembly.c:
14504                 -If MONO_DEBUG, warn about non-existing directories in
14505                 MONO_PATH.
14506                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
14507                 compile time variable.
14508                 -Removed init_default_path and call mono_set_rootdir from
14509                 libmonoos.a instead (windows only).
14510
14511         * assembly.h: declare mono_assembly_getrootdir().
14512
14513         * domain.c:
14514         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
14515
14516         * loader.c: s/getenv/g_getenv/
14517
14518 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
14519
14520         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
14521
14522         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
14523
14524         * metadata.h: Add new marshalling conversions.
14525
14526         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
14527         function.
14528
14529         * reflection.c (mono_reflection_get_type): Lookup the type in all
14530         modules of a multi-module assembly. Fixes #58291.
14531
14532 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
14533
14534         * threads.c: Before aborting a background, set the StopRequested
14535         state.  This avoids throwing the Abort exception.
14536         In mono_thread_manage, don't continue with the shutdown until all
14537         aborted threads have actually stopped.
14538
14539 2004-05-10  Jackson Harper  <jackson@ximian.com>
14540
14541         * locales.c: Remove the modifier from culture names.
14542         
14543 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14544
14545         * Makefile.am: monosn is not installed any more. It has been deprecated
14546         in favor of sn.
14547
14548 2004-05-07  Jackson Harper  <jackson@ximian.com>
14549
14550         * locales.c
14551         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
14552         Fix array construction, add bailout if the length is 0.
14553
14554 2004-05-07  Dick Porter  <dick@ximian.com>
14555
14556         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
14557         machine doesn't have a DNS entry.  Patch by Urs Muff
14558         (umuff@quark.com), fixes bug 57928.
14559
14560 2004-05-06  Jackson Harper  <jackson@ximian.com>
14561
14562         * reflection.c: Handle null PublicTokens properly. alloc mem for
14563         assembly names culture so we dont crash when freeing it.
14564         
14565 2004-05-06  Jackson Harper  <jackson@ximian.com>
14566
14567         * assembly.c: Check the usergac when loading with partial names.
14568         
14569 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
14570
14571         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
14572         does nothing for now (not required for Linux/Windows) but the class
14573         library can call it (and a newer or modified runtime could need it).
14574         * icall.c: Registred icall.
14575
14576 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14577
14578         * loader.c: prints a message on module loading error we set MONO_DEBUG
14579         environment variable.
14580
14581 2004-05-05  Jackson Harper  <jackson@ximian.com>
14582
14583         * appdomain.c: Handle PublicKeyToken=null properly.
14584         
14585 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
14586
14587         * environment.c|h: Added icall ves_icall_System_Environment_
14588         GetOSVersionString to get the current OS version as a string.
14589         * icall.c: Registred icall.
14590
14591 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
14592
14593         * object.c: in mono_object_get_virtual_method(), take into account that
14594         non-virtual methods don't have a slot in the vtable. Check needed when
14595         the object is a proxy.
14596
14597 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
14598
14599         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
14600         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
14601
14602         * object.c (mono_class_compute_gc_descriptor): Fix warning.
14603
14604         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
14605         passed when a valuetype is expected.
14606
14607         * object.c (mono_unhandled_exception): Only set the exit code if the
14608         exception happens in the main thread. Fixes thread5.exe.
14609
14610         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
14611         invalid names. Fixes #58047.
14612
14613 2004-05-03  Jackson Harper  <jackson@ximian.com>
14614
14615         * assembly.c: This line was committed accidently and is unneeded.
14616         
14617 2004-05-03  Jackson Harper  <jackson@ximian.com>
14618
14619         * icall.c: Add new icall for Assembly::LoadWithPartialName
14620         * assembly.c/.h: new function that probes the GAC to load partial
14621         assembly names by Paolo Molaro.
14622         
14623 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14624
14625         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
14626         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
14627         (type_get_fully_qualified_name): Added PublicKeyToken when building a
14628         full type name.
14629
14630 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14631
14632         * appdomain.c: fixed check for 'neutral' culture and removed warning.
14633         * reflection.c: fix bug when parsing a full type name and Version is not
14634         the last thing in the string.
14635
14636 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
14637
14638         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
14639         crashes when it is freed.
14640
14641 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14642
14643         * assembly.c: print the compat warning to stderr.
14644
14645 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
14646
14647         * assembly.c (mono_assembly_load_references): Add a compatibility
14648         hack to run old applications that might be still referencing the
14649         3300-based assemblies, only do this for System.xxx.
14650
14651 2004-05-01  Jackson Harper  <jackson@ximian.com>
14652
14653         * appdomain.c: If the culture is neutral we set it to "".
14654         
14655 2004-04-29  Jackson Harper  <jackson@ximian.com>
14656
14657         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
14658
14659 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
14660  
14661         * string-icalls.c: added low overhead function for copying chars
14662         * icall.c: added needed icall for the above function
14663  
14664 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14665
14666         * icall.c: fix return value of get_global_assembly_cache.  Implemented
14667         Environment.GetLogicalDrives.
14668
14669 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
14670
14671         * rand.c: try and talk to egd or prngd
14672         for random bytes if opening devices fail.
14673
14674 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
14675
14676         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
14677         alignment for the type using the native alignment of its members 
14678         instead of using klass->min_align.
14679
14680         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
14681
14682 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14683
14684         * file-io.c:
14685         * socket-io.c: added check for sys/aio.h.
14686
14687 2004-04-28  Dick Porter  <dick@ximian.com>
14688
14689         * threads.c: Don't abort a thread thats already aborting, when
14690         terminating everything.
14691
14692 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14693
14694         * icall.c: added 2 new async calls for Socket.
14695
14696         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
14697         IO on *nix systems.
14698
14699         * threadpool.c: removed unused variable.
14700
14701 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
14702
14703         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
14704
14705 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14706
14707         * locales.c: put back string_invariant_tolower () and
14708         string_invariant_toupper ().
14709
14710 2004-04-26 David Waite <mass@akuma.org>
14711
14712         * file-io.h:
14713         * socket-io.h:
14714         * threads.h:
14715         * unicode.h: remove comma from end of enumeration declarations
14716
14717 2004-04-26 David Waite <mass@akuma.org>
14718
14719         * debug-mono-symfile.h:
14720         * decimal.c:
14721         * mono_debug.h:
14722         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
14723
14724
14725 2004-04-26  Jackson Harper  <jackson@ximian.com>
14726
14727         * appdomain.c: Increment version number.
14728         
14729 2004-04-26  Jackson Harper  <jackson@ximian.com>
14730
14731         * appdomain.c: Set assembly references public token value when
14732         PublicKeyToken is specified, not the hash_value. Free public token
14733         values when free assembly name data. Previously the public key
14734         token was hex decoded, however we are using hex encoded public key
14735         tokens, so this is not neccasary.
14736         * assembly.c: Lookup assemblies in the gac if their public token
14737         value is set. Add function to allow enabling user gac
14738         lookups. Specify whether or not the assembly was loaded from the
14739         GAC. Compare full assembly names when checking the cache for
14740         assemblies (Temporarily disabled see comment in code). Remove
14741         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
14742         specifies trace-loader they get extra info to stdout on the
14743         loading of assemblies.
14744         * image.h: Add a field for an assembly references public token
14745         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
14746         whether an assembly has been loaded from the GAC.
14747         * image.c: Remove a corlib -> mscorlib name mapping.
14748         * loader.h: Add function to enable/disable the user gac.
14749         * mono-config.c: Check if the usergac is enabled in the config
14750         file.
14751         * icall.c: New icall to determine whether or not an assembly has
14752         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
14753         * tabldefs.h: Add constant for assemblyref flag that specifies a
14754         full public key is used instead of a public token.
14755         * reflection.c: Remove mscorlib -> corlib mappings. Set
14756         PublicTokenValue instead of hash value. This value is a hex
14757         string so it does not need to be expanded.
14758
14759 2004-04-26  Martin Baulig  <martin@ximian.com>
14760
14761         * mono-debug-debugger.c (mono_debugger_initialize): Set
14762         `mono_debugger_initialized' before calling mono_debug_lock().
14763
14764 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
14765
14766         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
14767           InternalToUpper/InternalToLower.
14768         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
14769           removed invariant culture shortcut.  This is now done in managed code.
14770         * locales.c: (string_invariant_toupper/tolower) removed.
14771
14772 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14773
14774         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
14775         Added Poll internal call.
14776
14777         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
14778         call for Poll. Select was too heavy for polling a single socket.
14779
14780         * threadpool.[ch]: added mono_threadpool_cleanup.
14781         * threads.c: use it. Don't use Thread_Abort on windows.
14782
14783 2004-04-23  Martin Baulig  <martin@ximian.com>
14784
14785         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
14786
14787 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
14788
14789         * icall.c: Registred new icalls for key pair protection and added an
14790         icall for Environment.GetFolderPath on Windows.
14791         * security.c|h: Added new icalls for key pair protection.
14792
14793 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14794
14795         * socket-io.c: don't display the non-supported family warning for known
14796         families. Now this is not displayed on windows when checking support
14797         for IPv4/IPv6.
14798
14799 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14800
14801         * class.c: don't display the layout warning for static fields.
14802
14803 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
14804
14805         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
14806         * locales.c, locales.h: Added new icalls for culture-specific
14807         Char.ToLower and Char.ToUpper.
14808
14809 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14810
14811         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
14812         by David Waite.
14813
14814 2004-04-20  Martin Baulig  <martin@ximian.com>
14815
14816         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
14817         of the type name before passing it to mono_reflection_type_from_name().
14818
14819 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
14820
14821         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
14822         encodings here. Fixes #56965.
14823
14824 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
14825
14826         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
14827         fix test on strstr result not that I can see anything that
14828         relies on the result.
14829
14830 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
14831
14832         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
14833         Fixes #57081.
14834
14835         * marshal.c (mono_marshal_get_string_encoding): New helper function.
14836
14837         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
14838         function to determine which marshalling to use for strings. Fixes
14839         #56965.
14840
14841         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
14842
14843         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
14844
14845 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
14846
14847         * icall.c: #include mono-config.h
14848
14849 2004-04-15  Jackson Harper  <jackson@ximian.com>
14850
14851         * culture-info-tables.h: Fix date formats for en-US culture.
14852         
14853 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
14854
14855         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
14856         ThreadPool.SetMinThreads.
14857         * threadpool.c: Implemented ThreadPool.GetMinThreads and
14858         ThreadPool.SetMinThreads.
14859
14860 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
14861
14862         * mono-config.c: also load the .config file in the directory
14863         where the assembly was found.
14864
14865 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
14866
14867         * assembly.c: load per-assembly config files.
14868         * icall.c: decrapified code to get the config dir and moved to
14869         mono-config.c.
14870         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
14871         per-assembly config files. When doing a dll map lookup give precedence
14872         to the per-assembly data.
14873
14874 2004-04-14  Martin Baulig  <martin@ximian.com>
14875
14876         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
14877         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
14878         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
14879
14880         * mono-debugger-debugger.c: While the debugger is locked, remember
14881         whether the symbol tables have changes and send one single
14882         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
14883
14884 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
14885
14886         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
14887
14888         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
14889         function.
14890
14891         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
14892         account when marshalling string arrays. Fixes #56965.
14893
14894 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
14895
14896         * icall.c: Add new icalls mapping for security.
14897         * security.c|h: Add internal calls for WindowsIdentity,
14898         WindowsImpersonationContext and WindowsPrincipal.
14899
14900 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
14901
14902         * class.c: Added comment to ensure the System.MonoDummy class
14903         is removed when no longer necessary
14904
14905 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
14906
14907         * appdomain.c: Pass arguments to the bootstraping exceptions to
14908         minimize JITed methods at boot
14909
14910         * metadata.c (mono_exception_from_name_two_strings): Allow for the
14911         second string to be null.
14912
14913         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
14914         Change the protocol to minimize the JIT methods at startup.  Now
14915         it Returns the internal codepage, if the value of "int_code_page"
14916         is 1 at entry, and we can not compute a suitable code page
14917         number, returns the code page as a string.
14918
14919 2004-04-13  Jackson Harper  <jackson@ximian.com>
14920
14921         * culture-info-tables.h: Fix number of decimal digits for all
14922         english locales.
14923
14924 2004-04-13  Jackson Harper  <jackson@ximian.com>
14925
14926         * icall.c: Clairfy out of sync error message. It is not always
14927         your corlib that is out of sync.
14928
14929 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
14930
14931         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
14932         properties when only the set accessor is overriden. Fixes #55874.
14933
14934 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
14935
14936         * assembly.c (mono_assembly_load_references): Make this thread safe.
14937         Fixes #56327.
14938
14939 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
14940
14941         * monosn.c: Add missing initialization calls.
14942
14943 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
14944
14945         * locales.c:
14946         ves_icall_System_Globalization_CultureInfo_construct_number_format
14947         Fix g_assert so it compiles on fussier compilers re int/ptr
14948         mismatch
14949
14950 2004-04-08  Dick Porter  <dick@ximian.com>
14951
14952         * socket-io.h:
14953         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
14954         53992.  Also rearrange the code so that the internal calls return
14955         an error value and exceptions are thrown from managed code.
14956
14957         * icall.c: Add type info to the socket icalls.
14958
14959 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14960
14961         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
14962         owes me a beer.
14963
14964 2004-04-07  Martin Baulig  <martin@ximian.com>
14965
14966         * class.c (mono_class_from_generic_parameter): Don't default
14967         `klass->parent' to `mono_defaults.object_type'.
14968
14969 2004-04-07  Martin Baulig  <martin@ximian.com>
14970
14971         * reflection.c (mono_reflection_initialize_generic_parameter): Set
14972         `param->pklass->reflection_info'.       
14973
14974 2004-04-07  Jackson Harper  <jackson@ximian.com>
14975
14976         * culture-info-tables.h: Fix date separator symbol.
14977         
14978 2004-04-07  Martin Baulig  <martin@ximian.com>
14979
14980         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
14981         from System.Type to System.MonoType.
14982
14983 2004-04-07  Martin Baulig  <martin@ximian.com>
14984
14985         * reflection.h
14986         (MonoReflectionGenericParam): Added `has_reference_type' and
14987         `has_value_type' fields.
14988
14989         * reflection.c (mono_image_get_generic_param_info): Encode the
14990         correct flags if we have the `class' or `struct' constraint.
14991
14992 2004-04-07  Martin Baulig  <martin@ximian.com>
14993
14994         * reflection.h
14995         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
14996
14997 2004-04-07  Jackson Harper  <jackson@ximian.com>
14998
14999         * appdomain.c: Revert extra patches, just wanted to bump the
15000         version number.
15001         
15002 2004-04-07  Jackson Harper  <jackson@ximian.com>
15003
15004         * Makefile.am: Add culture-info private headers.
15005         * icall.c: Add new icalls for contructing locales.
15006         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
15007         * locales.h: Declare new culture info construction methods.
15008         * object.h: Add new fields used to avoid the CultureMap to
15009         MonoCultureInfo.
15010         * culture-info.h: Definition of structs used in the culture info
15011         tables.
15012         * culture-info-tables.h: Autogenerated tables that contain culture
15013         info data. This file was generated with the locale-builder tool.
15014         * appdomain.c: Incement corlib version number.
15015         
15016 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
15017
15018         * appdomain.c: (mono_runtime_init) move mono_thread_init
15019         to before mono_object_new calls so critical sections
15020         are initialized before use.
15021
15022 2004-04-07  Martin Baulig  <martin@ximian.com>
15023
15024         * icall.c
15025         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
15026         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
15027         (ves_icall_MonoGenericParam_initialize): Removed.
15028         (monogenericparam_icalls): Removed.
15029         (generictypeparambuilder_icalls): Added new table for
15030         System.Reflection.Emit.GenericTypeParameterBuilder.
15031
15032         * reflection.c
15033         (mono_reflection_define_generic_parameter): Removed.
15034         (mono_reflection_initialize_generic_parameter): This is now called
15035         from GenericTypeParameterBuilder's .ctor.
15036
15037 2004-04-06  Martin Baulig  <martin@ximian.com>
15038
15039         * class.c (mono_class_init): Don't inflate nested classes in a
15040         generic instance.
15041         (mono_type_get_name_recurse): Include the generic arguments for
15042         generic instances and generic type declarations.
15043         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
15044         (_mono_class_get_instantiation_name): Removed.
15045         (mono_class_create_generic): Always use `gklass->name' as our name.
15046
15047         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
15048
15049         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
15050         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
15051         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
15052         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
15053         closed generic methods here.
15054
15055         * reflection.c
15056         (mono_reflection_generic_inst_get_nested_types): Removed.
15057         (inflate_mono_method): Copy the generic parameters from the
15058         MonoMethodHeader into out MonoGenericMethod.
15059
15060 2004-04-06  Martin Baulig  <martin@ximian.com>
15061
15062         * row-indexes.h
15063         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
15064
15065         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
15066
15067         * reflection.c (build_compressed_metadata): If we have any entries
15068         in the GenericParam, MethodSpec or GenericParamConstraint tables,
15069         set the header version to 1.1.
15070
15071 2004-04-06  Martin Baulig  <martin@ximian.com>
15072
15073         * class.c (mono_class_init): If we're a generic instance,
15074         initialize our nested classes, too.
15075         (_mono_class_get_instantiation_name): Deal with the new `!%d'
15076         suffix. 
15077
15078 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15079
15080         * process.c: quote the argument passed to the shell on windows.
15081
15082 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
15083
15084         * threads.c (mono_alloc_special_static_data): Allow this to be
15085         called during startup.
15086
15087 2004-04-02  Martin Baulig  <martin@ximian.com>
15088
15089         * icall.c
15090         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
15091
15092 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
15093
15094         * icall.c: Fix build.
15095
15096 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
15097
15098         * Makefile.am: Added security.c|h.
15099         * icall.c: Added icall for get_UserName;
15100         * security.c: New file for security related icalls. Added function
15101         get_UserName for System.Environment (fix #56144).
15102         * security.h: New. Header file for security.c
15103
15104 2004-04-02  Dick Porter  <dick@ximian.com>
15105
15106         * icall.c: Deleted the icalls that were obsoleted some time ago
15107         by the ICU string code, and which were mixed into the icall
15108         rearranging.  Fixes bug 55969.
15109
15110         * string-icalls.h: 
15111         * string-icalls.c: Deleted the code that those icalls reference.
15112
15113 2004-04-01  Martin Baulig  <martin@ximian.com>
15114
15115         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
15116
15117         * class.c (mono_class_from_generic_parameter): Don't set 
15118         TYPE_ATTRIBUTE_INTERFACE.
15119         (my_mono_class_from_generic_parameter): Likewise.
15120
15121 2004-04-01  Martin Baulig  <martin@ximian.com>
15122
15123         * loader.c (find_method): Added an optional `MonoClass *ic'
15124         argument to search in a specific interface.
15125         (mono_get_method_constrained): New public function.
15126
15127 2004-04-01  Martin Baulig  <martin@ximian.com>
15128
15129         * reflection.c (mono_image_get_generic_field_token): Use the
15130         `handleref' cache here.
15131
15132 2004-04-01  Martin Baulig  <martin@ximian.com>
15133
15134         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
15135
15136         * reflection.c (create_generic_typespec): Use the `typespec' hash
15137         here, not the `typeref' one.    
15138
15139 2004-04-01  Martin Baulig  <martin@ximian.com>
15140
15141         * class.c (mono_class_inflate_generic_type): Moved the
15142         functionality into a new static inflate_generic_type() which
15143         returns NULL if it didn't do anything.  Only increment the
15144         `mono_stats.inflated_type_count' if we actually inflated
15145         something.
15146         (mono_class_get_full): Check the classes type to see whether we
15147         need to inflate it; also inflate MONO_TYPE_(M)VAR.
15148
15149 2004-04-01  Jackson Harper  <jackson@ximian.com>
15150
15151         * reflection.c: Set culture for assembly references.
15152         
15153 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
15154
15155         * reflection.[ch], icall.[ch], Fix support for pinning variables.
15156
15157 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15158
15159         * assembly.c:
15160         (do_mono_assembly_open): the critical section also covers
15161         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
15162
15163 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15164
15165         * threads.c:
15166         (mono_manage_threads): abort the background threads when finishing.
15167         Fixes bug #47232.
15168
15169 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15170
15171         * gc.c: only close the done_event handle if there was no timeout.
15172         C-ified comments.
15173
15174 2004-03-30  Martin Baulig  <martin@ximian.com>
15175
15176         * icall.c (icall_entries): It's called "System.Activator", not
15177         "System.Activation".    
15178
15179 2004-03-30  Martin Baulig  <martin@ximian.com>
15180
15181         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
15182         (mono_class_create_from_typespec): Likewise.
15183
15184 2004-03-30  Martin Baulig  <martin@ximian.com>
15185
15186         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
15187         `has_ctor_constraint' and `initialized'.
15188
15189 2004-03-30  Martin Baulig  <martin@ximian.com>
15190
15191         * reflection.c (encode_new_constraint): New static function to add
15192         the constructor constraint attribute to a type parameter.
15193         (encode_constraints): Call encode_new_constraint() if necessary.
15194
15195         * reflection.h
15196         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
15197
15198         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
15199         
15200 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
15201
15202         * reflection.c, icall.c: add support for pinning variables. 
15203
15204 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
15205
15206         * marshal.c (mono_marshal_get_managed_wrapper):
15207         init bool local with zero rather than null.
15208
15209 2004-03-29  Martin Baulig  <martin@ximian.com>
15210
15211         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
15212         the "official" behavior here.
15213         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
15214
15215 2004-03-29  Martin Baulig  <martin@ximian.com>
15216
15217         * icall.c: Reflect latest API changes.
15218
15219 2004-03-29  Martin Baulig  <martin@ximian.com>
15220
15221         * loader.c (mono_get_method_from_token): Also call
15222         mono_metadata_load_generic_params () for abstract and interface
15223         methods; replace the type arguments in the method signature with
15224         the ones which are loaded from the metadata.
15225
15226 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
15227
15228         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
15229         of the lock is not the current thread. MS.NET don't do it, in spite of
15230         what the documentation says. See bug #56157.
15231
15232 2004-03-28  Martin Baulig  <martin@ximian.com>
15233
15234         * class.c (mono_class_init): Don't call init_properties() and
15235         init_events() for generic instances; set `prop->parent' when
15236         inflating properties.
15237
15238         * reflection.c (mono_generic_inst_get_object): Call
15239         `mono_class_init (ginst->klass)'.
15240         (mono_type_get_object): Only create a MonoGenericInst if your
15241         generic type is a TypeBuilder.
15242         (do_mono_reflection_bind_generic_parameters): Only set
15243         `ginst->is_dynamic' if our generic type is a TypeBuilder.
15244
15245 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
15246
15247         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
15248         Fixes #56091.
15249
15250 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15251
15252         * icall.c: added Kill_internal icall.
15253         * process.[ch]: added Kill_internal icall.
15254
15255 2004-03-25  Martin Baulig  <martin@ximian.com>
15256
15257         * class.h (MonoStats): Added `generic_instance_count',
15258         `inflated_method_count', `inflated_type_count' and
15259         `generics_metadata_size'.       
15260
15261 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15262
15263         * reflection.c: no warnings now.
15264
15265 2004-03-25  Martin Baulig  <martin@ximian.com>
15266
15267         * class.c (mono_class_get_full): New public function; does a
15268         mono_class_get(), but also takes a `MonoGenericContext *'.
15269
15270         * loader.c (mono_field_from_memberref): Renamed to
15271         `field_from_memberref', made static and added `MonoGenericContext *'
15272         argument.
15273         (mono_field_from_token): Added `MonoGenericInst *' argument.
15274         (method_from_memberef): Likewise.
15275         (mono_get_method_from_token): Likewise.
15276         (mono_get_method_full): New public function; does a
15277         mono_get_method(), but also takes a `MonoGenericContext *'.
15278
15279         * verify.c (mono_method_verify): Get the method's generic context
15280         and pass it to mono_field_from_token(), mono_get_method_full() and
15281         mono_class_get_full().
15282
15283 2004-03-25  Martin Baulig  <martin@ximian.com>
15284
15285         * class.c (mono_class_inflate_generic_type): Take a
15286         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
15287         `MonoGenericMethod *'.
15288
15289 2004-03-25  Martin Baulig  <martin@ximian.com>
15290
15291         * loader.h (MonoMethodInflated): Store the MonoGenericContext
15292         instead of the MonoGenericMethod here.
15293
15294 2004-03-25  Martin Baulig  <martin@ximian.com>
15295
15296         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
15297         each time we create a new MonoGenericInst, we also create a new
15298         context which points back to us.
15299
15300         * class.c (inflate_method): Use `ginst->context' instead of
15301         creating a new context.
15302
15303         * loader.c (method_from_memberref): Use
15304         `klass->generic_inst->context' instead of creating a new context.
15305
15306 2004-03-25  Martin Baulig  <martin@ximian.com>
15307
15308         * class.h (MonoGenericContext): New struct.
15309         (MonoGenericMethod): Removed `generic_inst'.
15310
15311         * class.c (mono_class_inflate_generic_method): Take a
15312         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
15313
15314 2004-03-25  Martin Baulig  <martin@ximian.com>
15315
15316         * loader.h (MonoMethodInflated): New typedef.
15317
15318         * metadata.h (MonoMethodSignature): Removed `gen_method', make
15319         `generic_param_count' consume just 30 bits, added `is_inflated'
15320         and `has_type_parameters' flags (one bit each).
15321
15322         * class.c (mono_class_inflate_generic_method): Create a
15323         MonoMethodInflated instead of a MonoMethodNormal and set
15324         `is_inflated' in the method signature.
15325
15326         * class.h (MonoGenericMethod): Removed `generic_method'.
15327
15328 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
15329
15330         * image.c: Make sure the name of a MonoImage is always an absolute path.
15331           This fixes bug #54415.
15332
15333 2004-03-24  Martin Baulig  <martin@ximian.com>
15334
15335         * class.c (mono_class_setup_vtable): If we're a generic instance,
15336         use our generic type's vtable size.
15337
15338 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
15339
15340         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
15341         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
15342         problems.
15343
15344 2004-03-23  Martin Baulig  <martin@ximian.com>
15345
15346         * class.h (MonoDynamicGenericInst): Added `int count_events' and
15347         `MonoEvent *events'.
15348
15349         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
15350         (typebuilder_icalls): Added "get_event_info"; calls
15351         mono_reflection_event_builder_get_event_info(). 
15352
15353         * reflection.c (mono_reflection_generic_inst_initialize): Added
15354         `MonoArray *events'.
15355         (mono_reflection_event_builder_get_event_info): New function.
15356
15357 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
15358
15359         * object.h: add mono_type_initialization_init
15360
15361         * object.c (mono_runtime_class_init): 
15362         implement class constructor synchronization rules
15363         to cope with threading issues.  
15364         add mono_type_initialization_init
15365
15366         * appdomain.c (mono_runtime_init): call 
15367         mono_type_initialization_init
15368
15369         * class.h: removing initializing field from MonoVTable
15370
15371 2004-03-23  Martin Baulig  <martin@ximian.com>
15372
15373         * class.c (my_mono_class_from_generic_parameter): Use
15374         `param->name' if it's not NULL. 
15375
15376 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
15377
15378         * class.c: do not insert non-virtual methods in the vtable.
15379         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
15380         that means the method is non-virtual. This never would have
15381         happened before.
15382
15383 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
15384
15385         * profiler.c: Added lock for accessing coverage_hash.
15386
15387 2004-03-22  Martin Baulig  <martin@ximian.com>
15388
15389         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
15390         `method->method->signature->generic_param_count != 0' to make it
15391         work for interface methods.
15392
15393 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15394
15395         * process.c: quote the string passed to the shell using g_shell_quote.
15396
15397 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15398
15399         * threads.c:
15400         (mono_threads_manage): don't remove the finalizer thread and self
15401         from the threads hash table so that mono_thread_manage can be called
15402         more than once.
15403
15404 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15405
15406         * process.c: quote the arguments when UseShellExecute is true. Fixes
15407         bug #55790.
15408
15409 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15410
15411         * threads.c: set mono_thread_detach as a cleanup routine for every
15412         thread. This way it's always executed upon thread termination, either
15413         aborted or finished normally. No more xsp hangs!
15414
15415 2004-03-17  Martin Baulig  <martin@ximian.com>
15416
15417         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
15418         `int count_nested' and a `MonoType **nested'.
15419
15420         * reflection.c (mono_reflection_bind_generic_parameters): Moved
15421         most of the functionality into a new static
15422         do_mono_reflection_bind_generic_parameters() and don't take a
15423         `MonoType *nested_in' argument any more.  Don't compute nested
15424         types here.
15425         (mono_reflection_generic_inst_get_nested_types): New public method
15426         to get nested types.
15427
15428         * class.c (mono_class_create_generic): Set `klass->nested_in' if
15429         we're a nested class.
15430
15431         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
15432         mono_reflection_generic_inst_get_nested_types() to compute the
15433         nested types.
15434
15435 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
15436
15437         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
15438         descriptive error message under windows.
15439         
15440 2004-03-17  Martin Baulig  <martin@ximian.com>
15441
15442         * class.c (dup_type): Added `const MonoType *original' argument;
15443         copy the attrs from the original type.
15444
15445 2004-03-17  Martin Baulig  <martin@ximian.com>
15446
15447         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
15448         `m->generic_inst_cache' here.
15449
15450 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
15451
15452         * exception.h exception.c: Add stack_overflow_exception.
15453
15454 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15455
15456         * threadpool.c:
15457         (overlapped_callback): call SetEvent *after* invoking the callback.
15458         No need to call CloseHandle.
15459
15460 2004-03-16  Martin Baulig  <martin@ximian.com>
15461
15462         * reflection.c (mono_image_get_fieldref_token): Take a
15463         `MonoReflectionField *' instead of a `MonoClassField *' and a
15464         `MonoClass *'; store the `MonoReflectionField *' in the hash.
15465
15466 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15467
15468         * appdomain.c: don't add the culture to the filename we're looking for
15469         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
15470
15471 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15472
15473         * locales.c: don't ignore symbols when doing case insensitive compares.
15474         Thanks Dick! Fixes bug #54046.
15475
15476         * threads.c: surround 'threads' usage with enter/leave in
15477         mono_thread_manage.
15478
15479 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
15480
15481         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
15482         implicitly marshalled as [Out]. Fixes #55450.
15483
15484         (mono_marshal_get_runtime_invoke): Zero out the result if there is
15485         an exception.
15486
15487 2004-03-16  Martin Baulig  <martin@ximian.com>
15488
15489         * class.c (mono_class_from_generic_parameter): Use the actual
15490         parameter name. 
15491
15492 2004-03-16  Martin Baulig  <martin@ximian.com>
15493
15494         * reflection.c (type_get_signature_size): New static function.
15495         Compues the size of the type in a method signature.
15496         (method_get_signature_size): New static function; calls
15497         type_get_signature_size() to compute the actual size of the
15498         method's signature.
15499         (method_encode_signature): Use method_get_signature_size() to get
15500         the signature's size rather than using `nparams * 10'.
15501
15502 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15503
15504         * file-io.h: define here WapiOverlapped on windows. I don't want the
15505         regular OVERLAPPED one.
15506
15507         * file-io.c:
15508         * threadpool.c: somehow, BindIoCompletionCallback is not found.
15509         Disabling AIO on windows.
15510
15511 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15512
15513         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
15514         bug #55385.
15515
15516 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15517
15518         * appdomain.c: upgraded corlib version.
15519
15520         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
15521         and BeginWrite. Allow opening files for asynchrnous operations.
15522
15523         * file-io.h: new struct that maps FileStreamAsyncResult.
15524         * icall.c: added new icalls.
15525         * process.[ch]: support setting child process environment variables
15526         and use the SHELL or COMSPEC when UseShellExecute is true.
15527
15528         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
15529         callback for async. IO is here and also BindHandle.
15530
15531         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
15532         from here.
15533
15534 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
15535
15536         * reflection.c (create_custom_attr): Allow len == 0.
15537
15538         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
15539         computation on big-endian machines.
15540
15541 2004-03-13  Martin Baulig  <martin@ximian.com>
15542
15543         * class.h (MonoGenericInst): Added `int count_ifaces'.
15544
15545         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
15546         `ginst->count_ifaces' instead `klass->interface_count' since we
15547         may get called before the vtable is created.
15548
15549         * loader.c (mono_method_get_param_names): If we're a generic
15550         instance, return and don't initialize the class.
15551
15552         * reflection.c (mono_reflection_setup_generic_class): Don't call
15553         ensure_runtime_vtable().
15554         (mono_reflection_bind_generic_parameters): Set
15555         `ginst->count_ifaces'.
15556
15557 2004-03-11  Jackson Harper <jackson@ximian.com>
15558
15559         * icall.c:
15560         * unicode.c:
15561         * unicode.h: Remove unused System.Char icalls.
15562         
15563 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
15564
15565         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
15566         code when we P/Invoke the first library in Windows.Forms, instead
15567         of when we first open the assembly.
15568
15569         * assembly.c: Drop the lookup from here.
15570
15571 2004-03-10  Martin Baulig  <martin@ximian.com>
15572
15573         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
15574         class for properties, fields and events.  Finally fixes #54945.
15575
15576 2004-03-10  Martin Baulig  <martin@ximian.com>
15577
15578         * metadata.c (mono_metadata_class_equal): New static function;
15579         checks whether two generic instances or two generic parameters are
15580         equal.
15581         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
15582         compare classes.        
15583
15584 2004-03-10  Martin Baulig  <martin@ximian.com>
15585
15586         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
15587
15588         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
15589         argument and write it into the `reflection_info' field.
15590
15591         * icall.c
15592         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
15593         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
15594
15595 2004-03-09  Jackson Harper  <jackson@ximian.com>
15596
15597         * char-conversions.h: use 8 bits for numeric data its all we need
15598         * icall.c: numeric data is only 8 bits now.
15599
15600 2004-03-09  Martin Baulig  <martin@ximian.com>
15601
15602         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
15603
15604         * class.c (init_properties, init_events): Initialize the new
15605         `parent' field.
15606
15607         * reflection.c (typebuilder_setup_properties): Likewise.
15608         (typebuilder_setup_events): Likewise.
15609
15610         * reflection.h (MonoEventInfo): Replaced `parent with
15611         `declaring_type' and `reflected_type'.
15612
15613         * icall.c (ves_icall_get_property_info): Distinguish between
15614         declaring and reflected type.
15615         (ves_icall_get_event_info): Likewise.
15616
15617 2004-03-09  Martin Baulig  <martin@ximian.com>
15618
15619         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
15620         (ves_icall_Type_GetField): Correctly set field->klass.
15621
15622 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
15623
15624         * loader.h: Fix warning.
15625
15626 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
15627
15628         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
15629         library routine if present.  Notice that it will still continue
15630         executing even if its missing, for those working on the Gtk#
15631         edition of Windows.Forms.
15632
15633         * assembly.c (do_mono_assembly_open): If loading the
15634         System.Windows.Forms call mono_loader_wini_init.
15635
15636 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
15637
15638         * class.h: Added MonoRemoteClass struct.
15639         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
15640         function for MonoStrings.
15641         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
15642         Added internal call for getting the proxy type.
15643         * marshal.c: Get the type of transparent proxies from its remote_class.
15644         Added methods that generate the IL for type checks and casts:
15645         mono_marshal_get_isinst, mono_marshal_get_castclass, 
15646         mono_marshal_get_proxy_cancast.
15647         * marshal.h: Declaration of the previous new methods.
15648         * object.c: Added new moethods for creating and updating MonoRemoteClass
15649         instances: mono_remote_class, mono_upgrade_remote_class, 
15650         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
15651         * verify.c: FIx transparent_proxy_fields layout.
15652         * appdomain.c: Bump corlib version.
15653
15654 2004-03-04  Jackson Harper  <jackson@ximian.com>
15655
15656         * icall.c: Add icall to access char conversion tables.
15657         * char-conversions.h: Character conversion tables.
15658         * Makefile.am: Add char-conversions.h private header file.
15659         
15660 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
15661
15662         * appdomain.c (unload_thread_main): Increase unloading timeout to
15663         10 sec as a temporary workaround for Nant problems.
15664
15665 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
15666
15667         * gc.c: Add checks for GC_enable and GC_disable.
15668
15669         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
15670         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
15671         (bug #54988).
15672         
15673 2004-02-27  Martin Baulig  <martin@ximian.com>
15674
15675         * reflection.c (mono_reflection_bind_generic_parameters): Take a
15676         `MonoReflectionType *' instead of a `MonoType *'.
15677
15678 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
15679
15680         * gc.c (run_finalize): Avoid finalizing the object representing the
15681         finalizer thread.
15682         (finalizer_thread): Fix warning.
15683
15684 2004-02-25  Martin Baulig  <martin@ximian.com>
15685
15686         * class.c (_mono_class_get_instantiation_name): Added `int offset'
15687         argument for nested types.
15688         (mono_class_create_generic): Added support for nested generictypes.
15689
15690         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
15691         `GList *nested'.
15692
15693         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
15694
15695         * reflection.c (method_encode_signature): Increase the minimum
15696         value of `size' from 10 to 11.
15697         (mono_reflection_bind_generic_parameters): Take `int type_argc'
15698         and `MonoType **types' arguments instead of the `MonoArray
15699         *types'; added `MonoType *nested_in'.  Recursively instantiate
15700         nested classes. 
15701
15702 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
15703
15704         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
15705         stack_overflow_ex members which are used by exception handling.
15706
15707         * appdomain.c (mono_runtime_init): Initialize the new members.
15708
15709         * gc.c (mono_gc_enable): New helper function.
15710         * gc.c (mono_gc_disable): New helper function.
15711
15712 2004-02-23  Martin Baulig  <martin@ximian.com>
15713
15714         * icall.c: I must have been really stupid - make it actually work
15715         this time ;-)
15716
15717 2004-02-23  Martin Baulig  <martin@ximian.com>
15718
15719         * loader.c (method_from_memberref): Only inflate the method if
15720         it's in another klass.
15721
15722 2004-02-23  Martin Baulig  <martin@ximian.com>
15723
15724         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
15725         (mono_class_init): If we're a generic instance and an interface,
15726         compute `class->interface_id'; also create `class->interfaces'
15727         here and inflate them.
15728
15729         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
15730         `ginst->is_open'.
15731         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
15732
15733         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
15734
15735 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
15736
15737         * reflection.c (method_encode_code): Improved the error message
15738         generated by the exception.
15739
15740 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15741
15742         * icall.c: Martin did not do what he said in the ChangeLog for
15743         2004-02-18, but put back the changes for properties and events.
15744         Commenting those changes out again and adding comment to bug #54518.
15745         
15746         * process.c: removed warning.
15747
15748 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
15749
15750         * marshal.c (emit_struct_conv): Print an error message instead of
15751         asserting when a type does not have the StructLayout attribute.
15752
15753 2004-02-20  Martin Baulig  <martin@ximian.com>
15754
15755         * reflection.c (mono_type_get_object): Also use the cache for
15756         generic instances.
15757         (mono_reflection_bind_generic_parameters): Always compute
15758         `ginst->ifaces'.        
15759
15760 2004-02-20  Martin Baulig  <martin@ximian.com>
15761
15762         * class.h (MonoGenericMethod): Removed `klass'.
15763
15764         * class.c (mono_class_inflate_generic_method): Added `MonoClass
15765         *klass' argument.
15766
15767 2004-02-20  Martin Baulig  <martin@ximian.com>
15768
15769         * reflection.c (method_encode_methodspec): Actually use the
15770         uninflated signature for the memberref.
15771
15772 2004-02-20  Martin Baulig  <martin@ximian.com>
15773
15774         * class.h (MonoGenericMethod): Removed `declaring'.
15775
15776         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
15777         is NULL, compute it here.
15778
15779 2004-02-20  Martin Baulig  <martin@ximian.com>
15780
15781         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
15782
15783         * metadata.c (mono_metadata_generic_inst_hash): New method.
15784         (mono_metadata_generic_inst_equal): New method.
15785
15786         * reflection.c (mono_reflection_bind_generic_parameters): Use the
15787         `klass->image->generic_inst_cache' cache to avoid creating
15788         duplicate MonoGenericInst's.
15789
15790         * class.c (mono_class_inflate_generic_type): Use the cache.
15791
15792 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
15793
15794         * object.c: fixed gc descriptor calculation for embedded valuetypes.
15795
15796 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15797
15798         * icall.c: added Socket.WSAIoctl icall.
15799
15800         * socket-io.[ch]: implemented
15801         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
15802
15803 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
15804
15805         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
15806
15807 2004-02-18  Urs C Muff  <umuff@quark.com>
15808
15809         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
15810         this work on PPC and other big-endian architectures.
15811
15812         * debug-mono-symfile.h: Prepended the names of all the `guint32'
15813         fields with an underscore to make sure they're only accessed by
15814         the read32() macro.
15815
15816 2004-02-18  Martin Baulig  <martin@ximian.com>
15817
15818         * icall.c: Put the klass->refclass changes back for methods and
15819         fields, but not for properties and events.  We're currently not
15820         distinguishing between DeclaringType and ReflectedType for
15821         properties and events, that's what caused the regressions.
15822
15823 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15824
15825         * object.c:
15826         (mono_async_result_new): the handle can be NULL.
15827
15828         * threadpool.c: Use an event instead of a semaphore, don't initialize
15829         it until needed. This saves quite a few semaphores from being created
15830         when using the threadpool.
15831
15832 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
15833
15834         * object.c (mono_string_is_interned_lookup): Fix interning of long
15835         strings. Fixes #54473.
15836
15837         * domain.c (ldstr_equal): Optimize if the two strings are equal.
15838
15839         * icall.c: Revert the klass->refclass changes since they introduce
15840         regressions (bug #54518).
15841
15842 2004-02-18  Martin Baulig  <martin@ximian.com>
15843
15844         * class.c (mono_class_init): If we're a generic instance and don't
15845         come from a TypeBuilder, inflate our members here.
15846         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
15847         (mono_class_create_generic): New public method.
15848         (mono_class_initialize_generic): Removed.
15849         (get_instantiation_name): Renamed to
15850         _mono_class_get_instantiation_name() and made it public.
15851
15852 2004-02-18  Martin Baulig  <martin@ximian.com>
15853
15854         * class.c (mono_class_inflate_generic_type): Clear the new
15855         instance's `nginst->klass' when inflating a generic instance.
15856         (mono_class_is_subclass_of): Added (basic) support for generic
15857         instances.
15858
15859 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
15860
15861         * appdomain.h, domain.c: use a MonoCodeManager instead of a
15862         MonoMempool to hold compiled native code.
15863
15864 2004-02-17  Martin Baulig  <martin@ximian.com>
15865
15866         * class.h (MonoDynamicGenericInst): Added `count_properties' and
15867         `properties'.
15868
15869         * reflection.c (mono_reflection_generic_inst_initialize): Added
15870         `MonoArray *properties' argument.
15871
15872         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
15873
15874 2004-02-17  Martin Baulig  <martin@ximian.com>
15875
15876         * icall.c (ves_icall_Type_GetFields): Renamed to
15877         ves_icall_Type_GetFields_internal() and added a
15878         `MonoReflectionType *rtype' argument; pass it to
15879         mono_field_get_object() to set the field's "reflected" type.
15880         (ves_icall_Type_GetConstructors): Likewise.
15881         (ves_icall_Type_GetEvents): Likewise.
15882         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
15883         argument; pass it to mono_method_get_object() to set the method's
15884         "reflected" type.       
15885
15886 2004-02-17  Martin Baulig  <martin@ximian.com>
15887
15888         * class.h (MonoDynamicGenericInst): New type.
15889         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
15890
15891         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
15892         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
15893         (ves_icall_MonoGenericInst_GetFields): New interncall.
15894
15895         * class.c (mono_class_from_generic): Don't call
15896         mono_class_initialize_generic() if this is a dynamic instance;
15897         ie. it's being created from a TypeBuilder.
15898         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
15899         `class->byval_arg.type'.
15900
15901         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
15902         to `inflate_method' and made static.
15903         (mono_reflection_inflate_field): Removed.
15904         (mono_reflection_generic_inst_initialize): New public method.
15905
15906         * reflection.h (MonoReflectionGenericInst): Removed `methods',
15907         `ctors' and `fields'; added `initialized'.
15908
15909 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
15910
15911         * debug-helpers.c (mono_method_full_name): Fix output for empty
15912         namespaces.
15913
15914 2004-02-12  Martin Baulig  <martin@ximian.com>
15915
15916         * class.h (MonoClassField): Added `MonoType *generic_type'.
15917
15918         * reflection.c (mono_image_get_fieldref_token): Added support for
15919         instantiated generic types.
15920         (field_encode_inflated_field): Removed.
15921         (mono_image_get_inflated_field_token): Removed.
15922         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
15923
15924         * reflection.h (MonoReflectionInflatedField): Removed.
15925
15926 2004-02-12  Martin Baulig  <martin@ximian.com>
15927
15928         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
15929         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
15930
15931         * reflection.c (mono_image_get_methodspec_token): Take a
15932         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
15933         (mono_image_create_token): Check whether we have a
15934         `method->signature->gen_method' and call
15935         mono_image_get_methodspec_token() if appropriate.
15936         (inflated_method_get_object): Removed.
15937         (mono_reflection_bind_generic_method_parameters): Return a
15938         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
15939         (mono_reflection_inflate_method_or_ctor): Likewise.
15940
15941         * reflection.h (MonoReflectionInflatedMethod): Removed.
15942
15943 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
15944
15945         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
15946         for custom valuetype marshalling.
15947
15948         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
15949
15950 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15951
15952         * icall.c: fixed WSAGetLastError_internal name.
15953
15954 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
15955
15956         * threads.c (mono_thread_attach): Allow this to be called multiple
15957         times for a thread.
15958         
15959         * threads.c (build_wait_tids): Do not wait for ourselves.
15960
15961         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
15962         appdomain list is empty.
15963
15964         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
15965         memory returned by mono_string_builder_to_utf16, since it points into
15966         managed memory. Thanks to Bernie Solomon for noticing this.
15967
15968         * icall.c: Add AppDomainSetup icalls.
15969
15970         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
15971
15972         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
15973         types.
15974
15975         * reflection.c (reflection_methodbuilder_to_mono_method): Save
15976         custom attributes to the method_aux struct. Also fix array indexes etc.
15977
15978         * loader.c (mono_method_get_param_names): Make dynamic case work again.
15979         
15980 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
15981
15982         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
15983         (both static and runtime) and reduce startup time.
15984
15985 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
15986
15987         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
15988         AsAny marshalling conversion instead of crashing.
15989
15990         * marshal.c: Fix warnings.
15991
15992 2004-02-09  Martin Baulig  <martin@ximian.com>
15993
15994         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
15995
15996         * reflection.h (MonoReflectionInflatedMethod): Removed the
15997         `declaring' field, it's now in the unmanaged MonoGenericMethod.
15998
15999         * reflection.c (method_encode_methodspec): Removed the `method'
16000         argument; we get it from `gmethod->declaring'.
16001         (inflated_method_get_object): Removed the `declaring' argument.
16002
16003 2004-02-09  Martin Baulig  <martin@ximian.com>
16004
16005         * class.h (MonoGenericMethod): New type.
16006         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
16007         `generic_method'.
16008
16009         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
16010         a `MonoGenericMethod *gen_method' one.
16011
16012         * class.c (mono_class_inflate_generic_type): Take an additional
16013         `MonoGenericMethod * argument.  This is only non-NULL if we're
16014         inflating types for a generic method.   
16015         (mono_class_inflate_generic_signature): Renamed to
16016         inflate_generic_signature() and made static; take a
16017         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16018         (inflate_generic_header): Take a `MonoGenericMethod *' argument
16019         instead of a `MonoGenericInst *' one.
16020         (mono_class_inflate_generic_method): Likewise.
16021
16022         * reflection.c (encode_generic_method_sig): Take a
16023         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16024         (method_encode_methodspec): Likewise.
16025         (inflated_method_get_object): Likewise. 
16026
16027         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
16028         field with a `MonoGenericMethod *gmethod' one.  
16029
16030 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
16031
16032         * class.h (mono_class_has_parent): add parens to expansion
16033         so you can ! this.
16034
16035 2004-02-08  Martin Baulig  <martin@ximian.com>
16036
16037         * image.h (MonoImage): Removed `generics_cache'.
16038
16039         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
16040         instead of a `MonoType *' argument; removed the `inflate_methods'
16041         argument.  Don't inflate methods here.
16042
16043         * loader.c (find_method): If it's a generic instance, call
16044         mono_class_init() on the `sclass->generic_inst->generic_type'.
16045
16046         * metadata.c (mono_type_size): Make this work on uninitialized
16047         generic instances; call it on the `ginst->generic_type's class.
16048
16049         * reflection.c (mono_reflection_bind_generic_parameters): Call
16050         mono_class_from_generic() to create the `ginst->klass'.
16051
16052 2004-02-08  Martin Baulig  <martin@ximian.com>
16053
16054         * class.h (MonoClass): Changed type of `generic_inst' from
16055         `MonoType *' to `MonoGenericInst *'.
16056
16057 2004-02-08  Martin Baulig  <martin@ximian.com>
16058
16059         * icall.c (ves_icall_Type_BindGenericParameters): Just call
16060         mono_type_get_object(), this is now creating a `MonoGenericInst'
16061         for MONO_TYPE_GENERICINST.
16062         (ves_icall_MonoGenericInst_GetParentType): Likewise.
16063         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
16064
16065         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
16066         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
16067         (inflated_method_get_object): Added `MonoClass *refclass' argument.
16068         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
16069         and reflected type.
16070
16071         * reflection.h (MonoReflectionInflatedMethod): Removed
16072         `declaring_type' and `reflected_type'.
16073
16074 2004-02-08  Martin Baulig  <martin@ximian.com>
16075
16076         * class.h (MonoGenericInst): Added `MonoType *parent' and
16077         `MonoType **ifaces'.
16078
16079         * reflection.h (MonoReflectionGenericInst): Removed `klass',
16080         `parent' and `interfaces'.
16081
16082         * reflection.c (mono_reflection_bind_generic_parameters): Take a
16083         `MonoType *' argument and return a `MonoType *'.
16084
16085         * icall.c
16086         (ves_icall_MonoGenericInst_GetParentType): New interncall.
16087         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
16088
16089 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
16090
16091         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
16092         valuetype marshalling.
16093
16094 2004-02-06  Martin Baulig  <martin@ximian.com>
16095
16096         * class.c
16097         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
16098         (my_mono_class_from_generic_parameter): Likewise.
16099
16100 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
16101
16102         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
16103         contents of the symbol files lazily.
16104
16105         * object.h (MonoThread): Add 'name' and 'name_len' fields.
16106
16107         * threads.h threads.c icall.c: New icalls for getting and setting the
16108         threads name.
16109
16110 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
16111
16112         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
16113         Raise an exception when the domain is not found.
16114
16115 2004-02-03  Martin Baulig  <martin@ximian.com>
16116
16117         * reflection.c (mono_image_get_methodspec_token): Use the
16118         uninflated signature; fixes gen-33.
16119
16120 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
16121
16122         * gc.c threads.c: Make the finalizer thread a normal managed thread so
16123         the finalizer code can use thread functionality.
16124
16125         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
16126         the finalizer thread.
16127
16128         * threads.c: Make some functions more robust.
16129
16130         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
16131
16132         * metadata.h: Add new marshalling conventions.
16133
16134         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
16135         stringbuilder marshalling. Fixes #53700.
16136
16137         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
16138
16139         * reflection.c (mono_image_get_type_info): Save declarative security
16140         info.
16141
16142         * reflection.c (mono_image_get_field_info): Handle uninitialized 
16143         unmanaged fields as well.
16144
16145         * appdomain.c: Bump corlib version.
16146
16147 2004-02-01  Martin Baulig  <martin@ximian.com>
16148
16149         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
16150         method type arguments.  
16151
16152 2004-01-30  Duncan Mak  <duncan@ximian.com>
16153
16154         * marshal.h: Add prototype for
16155         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
16156         and
16157         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
16158         fix the build.
16159
16160 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
16161
16162         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
16163         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
16164
16165 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
16166
16167         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16168         custom marshalling of valuetypes.
16169
16170         * marshal.c: Fix some warnings.
16171
16172 2004-01-29  Martin Baulig  <martin@ximian.com>
16173
16174         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
16175         for generic method parameters.
16176
16177         * reflection.c (method_encode_methodspec): Write the uninflated
16178         signature into the methodspec table.
16179         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
16180         is always the uninflated method.
16181         (reflection_methodbuilder_to_mono_method): Copy the generic
16182         parameters from the MethodBuilder into `header->gen_params'.
16183
16184 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
16185
16186         * class.c (mono_class_from_generic_parameter): Fix warning.
16187
16188 2004-01-27  Martin Baulig  <martin@ximian.com>
16189
16190         * class.c (mono_class_from_generic_parameter): Don't create
16191         `klass->methods' here.  
16192
16193 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
16194
16195         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
16196         extension since it does not work with libraries named lib<FOO>.dll.so.
16197
16198 2004-01-25  Martin Baulig  <martin@ximian.com>
16199
16200         * class.c (mono_class_inflate_generic_type): Added support for
16201         MONO_TYPE_GENERICINST.
16202
16203         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
16204         inflate methods on open constructed types.      
16205
16206 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16207
16208         * object.c: fire ProcessExit event in the root AppDomain after running
16209         Main. Fixes bug #53299.
16210
16211 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
16212
16213         * socket-io.c: include the new socket-wrappers.h header.
16214         Use the wrappers instead of the unix socket functions to make the code
16215         more clear.
16216
16217 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
16218
16219         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
16220
16221         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16222         Fixes #22532.
16223
16224 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
16225
16226         * reflection.c (mono_image_create_pefile): Handle the case when the
16227         entry point is not a MethodBuilder.
16228
16229         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16230         field to ReflectionMethod since it is not allways a builder.
16231
16232         * reflection.c (type_get_fully_qualified_name): New helper function to
16233         return the fully qualified name of a type.
16234
16235         * reflection.c (encode_marshal_blob): Always emit the fully qualified
16236         type name for custom marshallers.
16237
16238         * reflection.c (mono_marshal_spec_from_builder): Ditto.
16239
16240         * class.c (mono_class_setup_vtable): If a parent class already 
16241         implements an interface, use the implementing methods from that class.
16242         Fixes #53148.
16243
16244 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16245
16246         * threadpool.c: just return instead of ExitThread to allow for thread
16247         clean up earlier.
16248
16249 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
16250
16251         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
16252         when closing resource modules.
16253
16254         * reflection.c (mono_image_create_pefile): Handle the case when the
16255         entry point is not a MethodBuilder.
16256
16257         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16258         field to ReflectionMethod since it is not allways a builder.
16259
16260 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
16261
16262         * marshal.c (mono_marshal_get_managed_wrapper): 
16263         mono_marshal_alloc takes native int so CONV_I
16264         the arg for 64bits.
16265
16266 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
16267
16268         * reflection.c (fixup_cattrs): New function to fixup the methoddef
16269         tokens in the cattr table. Fixes #53108.
16270
16271 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16272
16273         * loader.c: don't trim ".dll" before looking up in the config file.
16274         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
16275
16276 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
16277
16278         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
16279         Return the module which contains the resource as well.
16280         (ves_icall_System_Reflection_Module_Close): New icall.
16281
16282         * appdomain.c: Bump corlib version number.
16283
16284         * image.c (mono_image_addref): New public function.
16285
16286         * assembly.c: Call mono_image_addref.
16287
16288         * reflection.c (mono_module_get_object): Increase reference count of 
16289         the image.
16290
16291         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16292         Fixes #22532.
16293
16294         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
16295         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
16296         proper exceptions on DllImport problems.
16297
16298 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
16299
16300         * class.c, metadata.c: eliminate CSIZE macro.
16301
16302 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
16303
16304         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
16305         * object.h: Added async_callback field in MonoAsyncResult.
16306         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
16307         * verify.c: Added async_callback in MonoAsyncResult layout.
16308
16309 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
16310
16311         * reflection.c (mono_reflection_get_custom_attrs): Add support
16312         for Modules.
16313
16314 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
16315
16316         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
16317         marshalling.
16318         (mono_marshal_method_from_wrapper): Add null pointer check.
16319
16320 2004-01-16  Martin Baulig  <martin@ximian.com>
16321
16322         * debug-mono-symfile.h: Set version number to 36 and reflect
16323         latest symbol writer changes.
16324
16325 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
16326
16327         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
16328         multi-dimensional arrays.
16329         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
16330         (mono_class_from_mono_type): Use bounded_array_class_get.
16331         
16332         * class.c (mono_bounded_array_class_get): New function which takes
16333         a 'bounded' bool argument to distinguish vectors from one dimensional
16334         arrays.
16335
16336         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
16337         bounded_array_class_get if the array has bounds.
16338
16339         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
16340         Search modules loaded using AssemblyBuilder:AddModule as well.
16341
16342 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16343
16344         * appdomain.c: increased corlib version.
16345         * filewatcher.c: removed g_print.
16346         * icall.c:
16347         (get_property_info): only allocate what is actually requested.
16348         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
16349
16350 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16351
16352         * Makefile.am: added filewatcher.[ch]
16353         * filewatcher.[ch]: FileSystemWatcher runtime support.
16354         * icall.c: added new FSW icalls.
16355
16356 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
16357
16358         * string-icalls.c: fix stringbuilder regression as suggested by
16359         Iain McCoy <iain@mccoy.id.au>.
16360
16361 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
16362
16363         * process.c (process_read_stringtable_block): Recognize '007f' as
16364         a language neutral stringtable block.
16365
16366 2004-01-12  Patrik Torstensson
16367
16368         * object.h (MonoStringBuilder) : Changed layout to support our
16369         new stringbuilder class.
16370         * marshal.c: Change marshalling to support the new layout of 
16371         string builder.
16372         * appdomain.c: increased version number because new layout of
16373         string builder.
16374
16375 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
16376
16377         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
16378         assembly name as an string instead of an AssemblyName, since it is
16379         easier to extract info from it.
16380
16381         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
16382         the culture subdirectories too. Fixes #52231.
16383
16384 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16385
16386         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
16387         It takes 2 new parameters with an optional name for the method to look
16388         for and case ignoring info.
16389
16390         * threadpool.c: removed unused variable.
16391
16392 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16393
16394         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
16395         It takes 2 new parameters with an optional name for the property to look
16396         for and case ignoring info.
16397         Fixes bug #52753.
16398
16399 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
16400
16401         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
16402         Fix #52451.
16403
16404 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16405
16406         * appdomain.c:
16407         * assembly.c: escape the uri before passing it to g_filename_from_uri.
16408         Fixes bug #52630.
16409
16410 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
16411
16412         * reflection.c: Add support for more than one unmanaged resource.
16413
16414         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
16415         in field->def_value, as done in all other cases.
16416
16417         * reflection.c (mono_reflection_get_custom_attrs): Add support for
16418         TypeBuilders.
16419
16420         * reflection.c (mono_reflection_create_runtime_class): Remove 
16421         errorneous assignment to klass->element_class, since it is already
16422         done in mono_reflection_setup_internal_class.
16423
16424 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16425
16426         * gc.c: added missing LeaveCriticalSection.
16427         * icall.c: indented a couple of lines.
16428         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
16429         if we call EndInvoke inside a callback. Fixes bug #52601.
16430
16431 2004-01-07  Martin Baulig  <martin@ximian.com>
16432
16433         * mono-debug-debugger.h
16434         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
16435
16436 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
16437
16438         * appdomain.c: Use messages in NotImplementedException.
16439
16440         * exception.c (mono_get_exception_not_implemented): Now this takes
16441         a message argument.
16442
16443         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
16444         exception instead of g_asserting an aborting when something is not
16445         implemented.
16446
16447         Add some inline docs.
16448
16449 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
16450
16451         * reflection.h: Update after changes to object layout.
16452
16453         * reflection.c: Implement saving of unmanaged aka win32 resources.
16454
16455         * appdomain.c: Bump version number.
16456
16457         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
16458         Handle missing domains gracefully.
16459
16460 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
16461
16462         * file-io.c : On Windows, there are much more invalid_path_chars.
16463
16464 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
16465
16466         * class.h, object.c: prepare for GetType () speedup.
16467
16468 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
16469
16470         * profiler.c: workaround for --profile null reference exception on
16471           cygwin. Patch by Patrik Torstensson.
16472
16473 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
16474
16475         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
16476         make work for unaligned access.
16477
16478 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
16479
16480         * class.c: small cleanup (class->fields [i] -> field).
16481         * image.c: check address of metadata is valid.
16482
16483 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
16484
16485         * assembly.h assembly.c (mono_assembly_loaded): New public function to
16486         search the list of loaded assemblies.
16487
16488         * reflection.c (mono_reflection_type_from_name): Use 
16489         mono_assembly_loaded instead of mono_image_loaded.
16490
16491         * reflection.c: Fix warnings.
16492
16493 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
16494
16495         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
16496         is dynamic. This is needed since an assembly can contain both dynamic and
16497         non-dynamic images.
16498
16499         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
16500         assembly->dynamic.
16501
16502         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
16503
16504         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
16505         to store modules loaded using AddModule.
16506
16507         * reflection.c (mono_image_fill_file_table): Generalize this so it works
16508         on Modules.
16509
16510         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
16511
16512         * reflection.c (mono_image_fill_export_table_from_module): New function to
16513         fill out the EXPORTEDTYPES table from a module.
16514
16515         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
16516         into a separate function. Also handle loaded non-dynamic modules.
16517
16518         * reflection.c (mono_image_basic_init): Fix memory allocation.
16519
16520         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16521
16522         * assembly.c (mono_assembly_load_references): Make this public.
16523
16524 2003-12-19  Martin Baulig  <martin@ximian.com>
16525
16526         * class.c (mono_class_initialize_generic): Made this static, take
16527         a `MonoGenericInst *' instead of a `MonoClass *'.
16528         (mono_class_from_generic): Call mono_class_initialize_generic()
16529         unless we're already initialized or being called from
16530         do_mono_metadata_parse_generic_inst().
16531
16532         * class.h (MonoGenericInst): Added `initialized' and
16533         `init_pending' flags.
16534
16535         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
16536         `mono_class_init (gklass)' or mono_class_initialize_generic()
16537         here; set `generic_inst->init_pending' while parsing the
16538         `type_argv'.
16539
16540 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
16541
16542         * locales.c: include string.h for memxxx prototypes
16543
16544 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
16545
16546         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
16547         constructor when accessing literal fields.
16548
16549 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
16550
16551         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16552
16553         * reflection.c (assembly_add_resource_manifest): New function to fill
16554         the MANIFESTRESOURCE table.
16555
16556         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
16557
16558         * reflection.h: Update to changes in class layout.
16559
16560         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
16561         Reenable call to mono_runtime_is_shutting_down ().
16562
16563         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
16564         determine if the runtime is shutting down.
16565
16566 2003-12-16  Jackson Harper <jackson@ximian.com>
16567
16568         * icall.c: comment out call to mono_runtime_is_shutting_down to
16569         fix build.
16570         
16571 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
16572
16573         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
16574         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
16575
16576 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
16577
16578         * reflection.c: move definition of swap_with_size
16579         to before its first call
16580
16581 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
16582
16583         * appdomain.c (mono_runtime_is_shutting_down): New public function.
16584
16585         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
16586         icall.
16587
16588         * object.c: Fix warnings.
16589
16590         * icall.c (ves_icall_Type_Get...): Only consider inherited static
16591         members if FlattenHierarchy is set.
16592
16593         * reflection.c (mono_image_add_decl_security): New function to emit
16594         declarative security.
16595
16596         * reflection.h reflection.c: Add support for declarative security.
16597
16598         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
16599         
16600 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
16601
16602         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
16603         
16604         * appdomain.c verify.c: Moved corlib version checking into its own
16605         function in appdomain.c since it needs to create vtables etc.
16606
16607 2003-12-13  Patrik Torstensson <p@rxc.se>
16608
16609         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
16610         instead of unwrapped server.
16611
16612 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
16613
16614         * verify.c (check_corlib): Fix field index.
16615
16616 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
16617
16618         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
16619         GetGacPath icall.
16620
16621 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
16622
16623         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
16624         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
16625         cope with sizeof(size_t) != sizeof(guint32).
16626
16627 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16628
16629         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
16630         in case of failure.
16631
16632 2003-12-10  Mark Crichton <crichton@gimp.org>
16633
16634         * icall.c: removed the GetNonZeroBytes.  We now handle this case
16635         in managed code.
16636
16637         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
16638
16639 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
16640
16641         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
16642         marked as deleted.
16643
16644 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
16645
16646         * verify.c (check_corlib): Handle the case when the version field is 
16647         initialized by a static constructor.
16648
16649 2003-12-08  Patrik Torstensson  <p@rxc.se>
16650
16651     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
16652
16653 2003-12-08  Martin Baulig  <martin@ximian.com>
16654
16655         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
16656         a MonoReflectionGenericParameter, also take the parameter index
16657         and name as arguments.
16658         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
16659         (ves_icall_MonoGenericParam_initialize): New interncall.
16660         (ves_icall_Type_make_byref_type): New interncall.
16661
16662         * reflection.h (MonoReflectionGenericParam): Derive from
16663         MonoReflectionType, not just from MonoObject.  Added `refobj' and
16664         `index' fields.
16665
16666         * reflection.c (mono_reflection_define_generic_parameter): Create
16667         and return a new MonoReflectionGenericParam; don't initialize the
16668         constraints here.
16669         (mono_reflection_initialize_generic_parameter): New public method;
16670         initializes the constraints and creates the `param->pklass'.
16671
16672 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
16673
16674         * reflection.h reflection.c: Use the new fields 'num_types', 
16675         'num_fields' and 'num_methods' to track the number of types etc.
16676
16677         * verify.c (check_corlib): Check corlib version number.
16678
16679 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
16680
16681         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
16682         function works on all methods.
16683
16684 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
16685
16686         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
16687         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
16688         the custom_type_info flag of the transparent proxy.
16689         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
16690         objects that supports IRemotingTypeInfo.
16691         * object.h: Added custom_type_info field in transparent proxy.
16692
16693 2003-12-06  Martin Baulig  <martin@ximian.com>
16694
16695         * class.c (mono_class_create_from_generic): Removed.
16696         (mono_class_from_generic): Check `ginst->klass' before doing
16697         anything else.  This is important to fully support "recursive"
16698         generic types.
16699
16700         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
16701         empty `generic_inst->klass' before doing anything else.
16702
16703 2003-12-06  Dick Porter  <dick@ximian.com>
16704
16705         * verify.c: 
16706         * object.h:
16707         * icall.c:
16708         * locales.c: Use C structs to access class fields.  Don't do a
16709         conversion between MonoString and UChar because both are
16710         platform-endian UTF-16.  Compare now takes startindex and count
16711         parameters.  Add a char overload for IndexOf.  Speed up the
16712         invariant string IndexOf.
16713
16714 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
16715
16716         * Makefile.am (monosn_LDADD): Fix parallel build.
16717
16718 2003-12-04  Martin Baulig  <martin@ximian.com>
16719
16720         * icall.c
16721         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16722         (ves_icall_Type_make_array_type): New interncall.       
16723
16724 2003-12-04  Martin Baulig  <martin@ximian.com>
16725
16726         * locales.c: also change it in the !HAVE_ICU case.
16727
16728 2003-12-04  Dick Porter  <dick@ximian.com>
16729
16730         * icall.c:
16731         * locales.c: construct_compareinfo is now in CompareInfo, not
16732         CultureInfo.
16733
16734 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
16735
16736         * image.c (mono_image_load_file_for_image): Cache loaded images in the
16737         image->files array.
16738
16739         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
16740         table as well.
16741
16742         * assembly.c (mono_assembly_load_references): Only load references
16743         once.
16744
16745         * class.c (mono_class_from_name): Avoid linear search of the 
16746         EXPORTEDTYPE table.
16747
16748         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
16749
16750 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
16751
16752         * image.h (MonoImage): Add 'field_cache' field.
16753
16754         * loader.c (mono_field_from_token): Cache field lookups.
16755         
16756         * reflection.c (mono_module_get_object): Fix name property.
16757
16758         * icall.c (ves_icall_get_enum_info): Update after changes to 
16759         mono_metadata_get_constant_index ().
16760
16761         * icall.c: Get rid of get_type_info icall, use a separate icall for
16762         each type property to avoid needless memory allocations. Fixes #51514.
16763
16764         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
16765         to avoid needless binary searches.
16766
16767         * class.c (class_compute_field_layout): Move the initialization of
16768         field->def_value to mono_class_vtable ().
16769
16770         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
16771         non-corlib types.
16772
16773         * object.c (mono_object_allocate): Make it inline.
16774
16775         * object.c (mono_object_allocate_spec): Make it inline.
16776         
16777 2003-12-02  Dick Porter  <dick@ximian.com>
16778
16779         * locales.c (create_NumberFormat): NumberFormatInfo construction.
16780         Patch by Mohammad DAMT (mdamt@cdl2000.com).
16781
16782 2003-12-01  Dick Porter  <dick@ximian.com>
16783
16784         * threads.c: Fix signature and call in CreateMutex and
16785         CreateEvent.
16786
16787 2003-12-01  Dick Porter  <dick@ximian.com>
16788
16789         * icall.c: 
16790         * locales.c: Implement string compares and searching
16791
16792         * object.h: Add extra Thread field
16793
16794 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
16795
16796         * reflection.c (fixup_method): Add support for MonoCMethod.
16797
16798 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
16799
16800         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
16801
16802         * reflection.c (assembly_name_to_aname): Allow extra characters in
16803         assembly names. Fixes #51468.
16804
16805 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
16806
16807         * exception.c (mono_exception_from_name_domain): New helper function.
16808
16809         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
16810         exception object in the correct domain.
16811
16812         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
16813         formatting + make a copy a the input data.
16814
16815         * loader.c (mono_get_method_from_token): Methods which contain
16816         native code do not have entries in the ImplMap.
16817
16818         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
16819         Thanks to Gonzalo for spotting this.
16820         
16821         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
16822         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
16823
16824         * assembly.h (mono_assembly_load_from): Split the second part of 
16825         assembly loading into a new public function.
16826
16827         * exception.h (mono_get_exception_bad_image_format): New function.
16828
16829 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
16830
16831         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
16832         Enumerate all modules inside a dynamic assembly. Fixes #51293.
16833         
16834         * icall.c: Add new icall for creating dynamic methods.
16835
16836         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
16837
16838         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
16839
16840         * reflection.c (mono_reflection_create_dynamic_method): New icall to
16841         create a dynamic method.
16842
16843         * reflection.c (resolve_object): New helper function.
16844
16845         * reflection.c: Generalize ReflectionMethodBuilder and the functions
16846         which manipulate it so they can also work on dynamic methods.
16847
16848         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
16849         creating the MonoReflectionMethodAux structure if it is not needed.
16850         
16851         * reflection.h verify.c: Update after changes to object layout.
16852
16853         * reflection.c (method_builder_encode_signature): Fix compilation on
16854         gcc 2.95.x.
16855
16856 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
16857
16858         * appdomain.h: Added support for context static fields. Added static_data
16859           field to MonoAppContext and renamed thread_static_fields to a more
16860           generic special_static_fields in MonoAppDomain, since it can now contain
16861           context static fields.
16862         * domain.c: Updated hashtable name.
16863         * object.c: Replaced field_is_thread_static() for a more generic
16864           field_is_special_static() which also checks for context static attribute.
16865           In mono_class_vtable(), added support for static context fields.
16866         * threads.c: Changed methods that manage thread static fields to more
16867           generic methods so they can be reused both for thread and context static
16868           data.
16869         * threads.h: Declared some new methods.
16870
16871 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
16872
16873         * reflection.h: Update after changes to the managed types.
16874
16875         * reflection.c (encode_custom_modifiers): New helper function.
16876
16877         * reflection.c (method_encode_signature): Emit custom modifiers.
16878
16879         * reflection.c (field_encode_signature): Emit custom modifiers.
16880
16881 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
16882
16883         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
16884
16885         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
16886         implementation.
16887
16888         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
16889         icall.
16890
16891         * object.c (mono_field_get_value_object): New function.
16892
16893         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
16894         specific.
16895
16896 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
16897
16898         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
16899         return a preallocated out-of-memory exception instance.
16900
16901         * object.c (out_of_memory): Use the new function.
16902
16903         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
16904         flag is before the custom modifiers. Fixes #49802.
16905
16906 2003-11-16  Martin Baulig  <martin@ximian.com>
16907
16908         * class.c (mono_class_is_open_constructed_type): Implemented the
16909         MONO_TYPE_GENERICINST case.
16910
16911 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
16912
16913         * assembly.c (mono_assembly_fill_assembly_name): New function to
16914         fill out the MonoAssemblyName structure.
16915         (mono_assembly_open): Use the new function.
16916
16917         * icall.c (fill_reflection_assembly_name): New helper function.
16918
16919         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
16920         new function.
16921
16922         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
16923
16924 2003-11-15  Martin Baulig  <martin@ximian.com>
16925
16926         * class.c (mono_class_is_open_constructed_type): New public
16927         function; checks whether a type is an open constructed type,
16928         ie. whether it still contains type parameters.
16929         (mono_class_inflate_generic_type): If we're a type parameter and
16930         the inflated type is also a MONO_TYPE_(M)VAR, return the original
16931         type.
16932
16933         * class.h (MonoGenericInst): Added `guint32 is_open'.
16934
16935         * loader.c (method_from_methodspec): Check whether we're an open
16936         or closed constructed type and set `ginst->is_open'.
16937
16938         * reflection.c (mono_reflection_bind_generic_parameters): Check
16939         whether we're an open or closed constructed type and set
16940         `ginst->is_open'.
16941         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
16942         from open constructed types.
16943
16944 2003-11-15  Martin Baulig  <martin@ximian.com>
16945
16946         * reflection.c (mono_reflection_bind_generic_parameters): If we're
16947         a generic instance (instead of a generic type declaration) with
16948         unbound generic parameters, bind them to our actual types.
16949
16950 2003-11-14  Martin Baulig  <martin@ximian.com>
16951
16952         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
16953
16954         * reflection.c (mono_reflection_bind_generic_parameters): If we're
16955         an interface type, populate `res->interfaces' with instantiated
16956         versions of all the interfaces we inherit.
16957
16958 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
16959
16960         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
16961         when MONO_PATH is set but doesn't contain the install dir.
16962
16963 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16964
16965         * icall.c:
16966         (ves_icall_Type_GetInterfaces): don't return an interface twice when
16967         it's also implemented in base classes. Fixes bug #50927.
16968
16969 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
16970
16971         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
16972         if this method is called from a finalizer. Fixes #50913.
16973
16974 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
16975
16976         * threads.c: Implement VolatileRead/VolatileWrite
16977
16978         * icall.c: Add new icalls for VolatileRead/VolatileWrite
16979
16980 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
16981
16982         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
16983         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
16984         2.95.3.
16985
16986         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
16987         from Peter Ross (pro@missioncriticalit.com).
16988         
16989 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
16990
16991         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
16992
16993 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
16994
16995         * assembly.c (mono_assembly_load_references): Disable check because it
16996         triggers on older corlibs which lots of people have.
16997
16998 2003-11-12  Jackson Harper  <jackson@ximian.com>
16999
17000         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
17001         load corlib.dll if mscorlib.dll is not found.
17002         * assembly.h: Remove corlib name define.
17003         * class.c:
17004         * domain.c:
17005         * image.c: Change corlib name to mscorlib.
17006         
17007 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17008
17009         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
17010
17011 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
17012
17013         * appdomain.h: Added loader_optimization here to sync with the C#
17014         code, and add disallow_binding_redirects field.
17015
17016 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17017
17018         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
17019
17020         * reflection.c (mono_image_build_metadata): Fix crash on modules
17021         with no types.
17022
17023         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
17024
17025         * icall.c (ves_icall_get_method_info): Return callingConvention as
17026         well.
17027
17028         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
17029         namespaces from the EXPORTEDTYPE table as well.
17030
17031         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
17032         from all modules inside the assembly.
17033         
17034 2003-11-11  Martin Baulig  <martin@ximian.com>
17035
17036         * reflection.c (mono_reflection_bind_generic_parameters): Make
17037         this work for interfaces.
17038
17039 2003-11-11  Martin Baulig  <martin@ximian.com>
17040
17041         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
17042
17043 2003-11-11  Martin Baulig  <martin@ximian.com>
17044
17045         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
17046         "MonoInflatedMethod" and "MonoInflatedCtor".
17047
17048 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17049
17050         * reflection.c (resolution_scope_from_image): Use the assembly table
17051         from the manifest module, since other modules don't have it.
17052
17053         * debug-helpers.c (mono_type_full_name): New helper function.
17054
17055         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
17056
17057         * image.c (mono_image_load_file_for_image): New public function which
17058         is a replacement for the load_file_for_image in class.c.
17059
17060         * assembly.c (mono_assembly_load_module): A wrapper for the function
17061         above which does assembly association and reference loading too.
17062
17063         * class.c (mono_class_from_name): Call mono_assembly_load_module.
17064
17065 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17066
17067         * appdomain.c: not all of the attributes for the full assembly name
17068         are required and the order doesn't matter. Fixes bug #50787.
17069
17070 2003-11-10  Dick Porter  <dick@ximian.com>
17071
17072         * locales.c: Use platform-endian UTF16
17073
17074 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
17075
17076         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17077         
17078 2003-11-10  Martin Baulig  <martin@ximian.com>
17079
17080         * metadata.c
17081         (mono_metadata_load_generic_params): Make this actually work.
17082
17083         * reflection.c (mono_reflection_bind_generic_parameters): If our
17084         parent is a generic instance, pass all the `types' to it, no
17085         matter whether it has the same number of type parameters or not.
17086
17087 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
17088
17089         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17090
17091         * assembly.c (mono_assembly_load_references): Move the image<->assembly
17092         assignment code to this function so it gets called recursively for all
17093         modules.
17094
17095         * image.c (load_modules): Remove the assembly assignment since it is
17096         now done by mono_assembly_load_references.
17097         
17098         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17099         Add 'module' argument.
17100         (mono_module_get_types): New helper function.
17101         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
17102
17103 2003-11-08  Martin Baulig  <martin@ximian.com>
17104
17105         * class.c (mono_class_inflate_generic_method): Interface method
17106         don't have a header.
17107
17108         * reflection.c (mono_image_get_methodspec_token): Take an
17109         additional `MonoGenericInst *' argument instead of reading it from
17110         the header; this is necessary to support interfaces.
17111         (mono_image_create_token): Pass the `MonoGenericInst *' from the
17112         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
17113         (inflated_method_get_object): Take an additional `MonoGenericInst *'
17114         argument.
17115
17116         * reflection.h (MonoReflectionInflatedMethod): Added
17117         `MonoGenericInst *ginst'.
17118
17119 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
17120
17121         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
17122
17123 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
17124
17125         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
17126
17127 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
17128
17129         * reflection.c 
17130         (reflection_methodbuilder_from_method_builder):
17131         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
17132         initialize a ReflectionMethodBuilder structure.
17133         (mono_image_get_methodbuilder_token):
17134         (mono_image_get_ctorbuilder_token): New functions to emit memberref
17135         tokens which point to types in another module inside the same assembly.
17136
17137         * reflection.c: Use the new helper functions.
17138         
17139         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
17140
17141         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
17142         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
17143
17144         * reflection.c (resolution_scope_from_image): Emit a moduleref if
17145         neccesary.
17146
17147         * reflection.c (mono_image_build_metadata): Emit metadata only for the
17148         current module. Emit the manifest only for the main module.
17149
17150         * reflection.c (mono_image_create_token): Add assertion when a 
17151         memberref needs to be created.
17152
17153         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
17154
17155         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
17156         larger buffer for the custom attribute blob. Fixes #50637.
17157         
17158 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17159
17160         * threadpool.c: notify listener on async processing handles after
17161         invoking the async callback. Thanks to Zoltan.
17162
17163 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17164
17165         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
17166         avoid code duplication.
17167
17168         * reflection.h (MonoDynamicImage): New type which is currently unused,
17169         but will be used through the ref.emit code in place of 
17170         MonoDynamicAssembly.
17171
17172         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17173         object layout.
17174
17175         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
17176         a MonoDynamicImage instead of just a MonoImage.
17177         
17178         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
17179         icalls to ModuleBuilder but keep their semantics, so they will work
17180         with moduleb->assemblyb. This will change later.
17181         
17182 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17183
17184         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17185         object layout.
17186
17187         * reflection.c (mono_image_build_metadata): Avoid creation of a default
17188         main module, since it is now done by the managed code.
17189
17190 2003-11-03  Martin Baulig  <martin@ximian.com>
17191
17192         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
17193         `ginst->klass' here.
17194         (method_encode_methodspec): Don't use the `ginst->generic_method's
17195         klass if it's a generic instance, use `ginst->klass' in this case.
17196
17197 2003-11-03  Martin Baulig  <martin@ximian.com>
17198
17199         * reflection.c (mono_image_get_generic_method_param_info):
17200         Removed, use mono_image_get_generic_param_info() instead.
17201         (mono_image_get_type_info): Write the GenericParam table before
17202         the Method table.  This is neccessary because in the GenericParam
17203         table, type parameters of the class (ie. '!0' etc.) must come
17204         before the ones from its generic methods (ie. '!!0' etc).
17205
17206 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17207
17208         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
17209
17210 2003-11-02  Martin Baulig  <martin@ximian.com>
17211
17212         * reflection.c (create_generic_typespec): Take a
17213         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
17214         the generic parameters from it.
17215
17216 2003-11-02  Martin Baulig  <martin@ximian.com>
17217
17218         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
17219         instead of a `MonoClassField *' since we just need the type.
17220         (create_generic_typespec): New static function.  Creates a
17221         TypeSpec token for a generic type declaration.
17222         (mono_image_get_generic_field_token): New static function.
17223         (mono_image_create_token): If we're a FieldBuilder in a generic
17224         type declaration, call mono_image_get_generic_field_token() to get
17225         the token.
17226
17227 2003-11-02  Martin Baulig  <martin@ximian.com>
17228
17229         * reflection.h
17230         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
17231         `MonoReflectionGenericInst *declaring_type' and
17232         `MonoReflectionGenericInst *reflected_type' fields.
17233
17234         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
17235         `MonoReflectionGenericInst *declaring_type' and a
17236         `MonoReflectionGenericInst *reflected_type' argument instead of a
17237         single `MonoReflectionGenericInst *type' one.  Set
17238         `res->declaring_type' and `res->reflected_type' from them.
17239         (mono_reflection_inflate_field): Likewise.      
17240
17241 2003-11-02  Martin Baulig  <martin@ximian.com>
17242
17243         * class.c (mono_class_setup_vtable): Don't store generic methods
17244         in the vtable.  
17245
17246 2003-11-02  Martin Baulig  <martin@ximian.com>
17247
17248         * reflection.h (MonoReflectionGenericInst): Added
17249         `MonoReflectionType *declaring_type'.
17250
17251         * reflection.c (mono_reflection_bind_generic_parameters): Use
17252         `if (tb->parent)' instead of `klass->parent'.
17253
17254 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
17255
17256         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
17257         with an empty ASSEMBLY table.
17258
17259         * reflection.c (mono_image_build_metadata): Avoid using the same loop
17260         variable in the inner and outer loops.
17261
17262 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
17263
17264         * metadata.h (mono_metadata_make_token): Put parentheses around macro
17265         argument.
17266
17267         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
17268         
17269         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
17270         icalls. Instead, do everything in managed code. This is needed since
17271         it is hard to restore the original domain etc. in unmanaged code in the
17272         presence of undeniable exceptions.
17273
17274         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
17275         New icalls to push and pop appdomain refs.
17276
17277 2003-10-31  Martin Baulig  <martin@ximian.com>
17278
17279         * class.c (inflate_generic_type): Renamed to
17280         mono_class_inflate_generic_type() and made it public.
17281
17282         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
17283         New interncall.
17284
17285         * loader.c (mono_field_from_memberref): Also set the retklass for
17286         typespecs.
17287
17288         * fielder.c (mono_image_get_inflated_field_token): New static
17289         method; creates a metadata token for an inflated field.
17290         (mono_image_create_token, fixup_method): Added support for
17291         "MonoInflatedField".
17292         (fieldbuilder_to_mono_class_field): New static function.
17293         (mono_reflection_inflate_field): New public function.
17294
17295         * reflection.h
17296         (MonoReflectionGenericInst): Added `MonoArray *fields'.
17297         (MonoReflectionInflatedField): New typedef.     
17298
17299 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
17300
17301         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
17302         for Solaris and other platforms without s6_addr16
17303
17304 2003-10-30  Martin Baulig  <martin@ximian.com>
17305
17306         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
17307         argument instead of two.
17308         (mono_class_inflate_generic_signature): Likewise.
17309         (inflate_generic_header): Likewise.
17310         (mono_class_inflate_generic_method): Likewise.  In addition, if
17311         `ginst->klass' is set, it becomes the new `method->klass'.
17312
17313         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
17314         field.
17315
17316         * reflection.c (encode_generic_method_sig): Write a 0xa as the
17317         first byte. [FIXME]
17318         (method_encode_methodspec): If we have generic parameters, create
17319         a MethodSpec instead of a MethodRef.
17320         (fixup_method): Added support for "MonoInflatedMethod" and
17321         "MonoInflatedCtor".
17322         (mono_image_create_token): Added support for "MonoInflatedMethod"
17323         and "MonoInflatedCtor".
17324         (inflated_method_get_object): New static function; returns a
17325         managed "System.Reflection.MonoInflatedMethod" object.
17326         (mono_reflection_bind_generic_method_parameters): Return a
17327         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
17328         (mono_reflection_inflate_method_or_ctor): Likewise.
17329         (mono_image_get_generic_method_param_info): Initialize unused
17330         fields to zero.
17331         (mono_image_get_generic_param_info): Likewise.
17332
17333         * reflection.h (MonoReflectionInflatedMethod): New public
17334         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
17335         "S.R.MonoInflatedCtor" classes.
17336
17337         * loader.c (method_from_memberref): If we're a TypeSpec and it
17338         resolves to a generic instance, inflate the method.
17339
17340 2003-10-28  Dick Porter  <dick@ximian.com>
17341
17342         * object.c (mono_runtime_run_main): Convert command-line arguments
17343         into utf8, falling back to the user's locale encoding to do so.
17344
17345 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
17346
17347         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
17348         at this time.
17349
17350         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
17351
17352         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
17353         up icalls at method definition time. Partially fixes #33569.
17354
17355 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
17356
17357         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
17358         marshalling of arrays. Fixes #50116.
17359
17360         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
17361
17362         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
17363         points to a vtable in the dying appdomain.
17364
17365         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
17366         listeners into unmanaged code inside the lock.
17367
17368         * object.c (mono_class_vtable): Turn off typed allocation in non-root
17369         domains and add some comments.
17370
17371 2003-10-25  Martin Baulig  <martin@ximian.com>
17372
17373         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
17374
17375         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
17376
17377         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
17378         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
17379         currently parsing.  Create the generic class and store it in
17380         `generic_inst->klass' before parsing the type arguments.  This is
17381         required to support "recursive" definitions; see mcs/tests/gen-23.cs
17382         for an example.
17383         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
17384         to support recursive typespec entries.
17385
17386         * class.c (mono_class_setup_parent): If our parent is a generic
17387         instance, we may get called before it has its name set.
17388         (mono_class_from_generic): Splitted into
17389         mono_class_create_from_generic() and mono_class_initialize_generic().
17390
17391 2003-10-25  Martin Baulig  <martin@ximian.com>
17392
17393         * icall.c (ves_icall_Type_BindGenericParameters): Return a
17394         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
17395         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
17396         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
17397
17398         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
17399         (create_typespec): Likewise.
17400         (mono_reflection_bind_generic_parameters): Return a
17401         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
17402         (mono_reflection_inflate_method_or_ctor): New public function.
17403
17404         * reflection.h (MonoReflectionGenericInst): New typedef.        
17405
17406 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
17407
17408         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
17409         inside the domain lock. Fixes #49993.
17410         
17411         * object.c (mono_class_vtable): When typed allocation is used, 
17412         allocate vtables in the GC heap instead of in the mempool, since the
17413         vtables contain GC descriptors which are used by the collector even
17414         after the domain owning the mempool is unloaded.
17415
17416         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
17417
17418         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
17419         reflect what it does. Also invalidate mempools instead of freeing
17420         them if a define is set.
17421
17422         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
17423         of the appdomain.
17424         
17425         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
17426         hold the finalizable objects in this domain.
17427
17428         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
17429         appdomain.
17430
17431         * appdomain.c (mono_domain_set): New function to set the current
17432         appdomain, but only if it is not being unloaded.
17433
17434         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
17435         appdomain which is being unloaded.
17436         
17437         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
17438         unloading of the root appdomain.
17439
17440         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
17441         icall to execute a method in another appdomain. Intended as a 
17442         replacement for InternalSetDomain, which can confuse the code 
17443         generation in the JIT.
17444
17445         * appdomain.c (mono_domain_is_unloading): New function to determine
17446         whenever an appdomain is unloading.
17447
17448         * appdomain.c (mono_domain_unload): New function to correctly unload
17449         an appdomain.
17450
17451         * assembly.c (mono_assembly_load_references): Check that an assembly
17452         does not references itself.
17453
17454         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
17455         domain manually, it asks the finalizer thread to do it, then waits for
17456         the result. Also added a timeout.
17457
17458         * icall.c: Register the new icalls.
17459
17460         * threads.h threads.c: Export the mono_gc_stop_world and 
17461         mono_gc_start_world functions.
17462         
17463         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
17464         function to fill out the mempool with 0x2a.
17465
17466 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
17467
17468         * reflection.h (MonoReflectionMethodAux): New structure to store
17469         information which is rarely used, thus is not in the MonoMethod
17470         structure.
17471
17472         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
17473         store the aux info.
17474
17475         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
17476         and marshalling info into the aux structure.
17477
17478         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
17479         from the aux structure.
17480
17481         * loader.c (mono_method_get_param_names): Retrieve the param names from
17482         the aux structure.
17483         
17484 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
17485
17486         * exception.h exception.c: Add AppDomainUnloadedException && fix 
17487         warning.
17488
17489 2003-10-21  Dick Porter  <dick@ximian.com>
17490
17491         * socket-io.c
17492         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
17493         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
17494
17495 2003-10-21  Martin Baulig  <martin@ximian.com>
17496
17497         * reflection.c (mono_reflection_bind_generic_parameters):
17498         `klass->parent' is NULL for interfaces.
17499
17500 2003-10-21  Martin Baulig  <martin@ximian.com>
17501
17502         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17503
17504 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
17505
17506         * exception.c (mono_exception_from_name_msg): New helper function for
17507         creating exceptions and initializing their message field.
17508
17509         * exception.c: Simplify functions using the new helper.
17510
17511         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
17512         New function.
17513
17514         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
17515         mono_raise_exception, since otherwise gcc doesn't generate the function
17516         epilog for raise_exception, confusing the stack unwinding in the JIT.
17517         Fixes #45043.
17518
17519         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
17520         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
17521         Fixes #49499.
17522
17523 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17524
17525         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
17526         utf8.
17527
17528 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
17529
17530         * icall.c: Removed GetUninitializedObject method because
17531           AllocateUninitializedClassInstance does the same.
17532
17533 2003-10-18  Martin Baulig  <martin@ximian.com>
17534
17535         * class.c (inflate_generic_signature): Renamed to
17536         mono_class_inflate_generic_signature() and made it public.
17537         (my_mono_class_from_generic_parameter): New static function; if we
17538         don't already have the generic parameter's MonoClass, create a
17539         very simple one which is just used internally in the runtime and
17540         not passed back to managed code.
17541
17542         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
17543
17544         * metadata.h (MonoMethodSignature): Moved the
17545         `MonoGenericParam *gen_params' to the MonoMethodHeader.
17546         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
17547
17548         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
17549         ves_icall_MonoMethod_GetGenericArguments(); this is now an
17550         interncall on the MonoMethod class, not on MethodInfo.
17551         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
17552         calling mono_reflection_bind_generic_method_parameters() directly.
17553
17554         * loader.c (mono_method_get_signature): If this is a MethodSpec;
17555         return the already computed `method->signature'.
17556         (method_from_methodspec): New static function to load a method
17557         from a MethodSpec entry.
17558         (mono_get_method_from_token): Call the new method_from_methodspec()
17559         for MethodSpec tokens.  
17560         (mono_get_method_from_token): If we're a generic method, load the
17561         type parameters.
17562
17563         * reflection.c (mono_image_get_memberref_token): Allow
17564         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
17565         table.
17566         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
17567         (mono_image_create_token): First check whether it's a generic
17568         method (so we'd need to create a MethodSpec), then do the other
17569         two alternatives.
17570         (mono_reflection_bind_generic_method_parameters): Return a
17571         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
17572         called directly from the interncall.
17573
17574 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
17575
17576         * reflection.c (load_public_key): Move loading of the public key
17577         into managed code.
17578
17579         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
17580
17581         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
17582         fields.
17583
17584         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
17585         culture, hash_alg and public_key. Fixes #49555.
17586
17587 2003-10-17  Martin Baulig  <martin@ximian.com>
17588
17589         * class.h (MonoGenericInst): Moved this declaration here and added
17590         `MonoMethod *generic_method'.
17591
17592         * icall.c
17593         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
17594         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
17595
17596         * metadata.c (mono_metadata_type_equal): Two types of
17597         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
17598         index; ie. don't compare the address of the `MonoGenericParam'
17599         structure.
17600         (mono_metadata_load_generic_params): Removed the `MonoMethod
17601         *method' argument.
17602
17603         * metadata.h (MonoGenericInst): Moved declaration to class.h.
17604         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
17605
17606         * reflection.c (method_encode_signature): Encode the number of
17607         generic parameters.
17608         (encode_generic_method_sig): New static function.
17609         (method_encode_methodspec): New static function; creates an entry
17610         in the MethodSpec table for a generic method.
17611         (mono_image_get_methodspec_token): New static function.
17612         (mono_image_create_token): Call mono_image_get_methodspec_token()
17613         for generic methods.
17614         (mono_reflection_bind_generic_method_parameters): New public
17615         function.  Instantiates a generic method.
17616
17617 2003-10-16  Martin Baulig  <martin@ximian.com>
17618
17619         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
17620         *gen_params' here from MonoMethodHeader.
17621
17622         * metadata.c (mono_metadata_parse_method_signature): If we have
17623         generic parameters, initialize `method->gen_params' and then set
17624         the correct `type->data.generic_param' in all the parameters.
17625
17626 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
17627
17628         * threads.c (mono_threads_get_default_stacksize): New function to 
17629         return the default stacksize.
17630
17631         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
17632         termination of the finalizer thread, since the previous method had
17633         race conditions. Fixes #49628.
17634
17635         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
17636         as for the other managed threads.
17637
17638 2003-10-16  Martin Baulig  <martin@ximian.com>
17639
17640         * class.c (inflate_generic_signature): Copy `generic_param_count'
17641         and `gen_params'.
17642
17643         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
17644         New interncall.
17645
17646         * metadata.c (mono_metadata_parse_method_signature): Actually set
17647         the `method->generic_param_count' here.
17648         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
17649
17650 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
17651
17652         * object.h: Add a new field to TypedRef to simplify the implementation
17653         of the REFANY opcodes in the JIT.
17654
17655         * icall.c: Make use of the new field.
17656
17657         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
17658         dynamically.
17659
17660 2003-10-15  Martin Baulig  <martin@ximian.com>
17661
17662         * class.c (mono_class_from_gen_param): Renamed to
17663         mono_class_from_generic_parameter() and moved most of the
17664         functionality from mono_reflection_define_generic_parameter()
17665         here; ie. we create a "real" class here.
17666         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
17667         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
17668         previously been called.
17669
17670         * class.h (MonoGenericParam): Moved the declaration of this struct
17671         here from metadata.h and added `MonoMethod *method'.
17672
17673         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
17674         interncall.
17675
17676         * loader.c (mono_get_method_from_token): If we have any generic
17677         parameters, call mono_metadata_load_generic_params() to read them
17678         from the MONO_TABLE_GENERICPAR.
17679
17680         * metadata.c (mono_metadata_load_generic_params): Added
17681         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
17682
17683         * metadata.h (MonoMethodSignature): Replaced
17684         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
17685         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
17686
17687         * reflection.c (mono_reflection_define_generic_parameter): Moved
17688         most of the functionality into the new
17689         mono_class_from_generic_parameter(); set the `method' field if
17690         we're a method parameter.       
17691
17692 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
17693
17694         * marshal.c (emit_struct_conv): if native size is 0
17695         emit no code.
17696
17697 2003-10-14  Martin Baulig  <martin@ximian.com>
17698
17699         * icall.c: The generics API has changed in the spec since it was
17700         added to System.Type; these modifications make it match the spec
17701         again.
17702         (ves_icall_Type_GetGenericParameters): Renamed to
17703         `ves_icall_Type_GetGenericArguments'.
17704         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
17705         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
17706         `ves_icall_MonoType_get_HasGenericArguments'.
17707         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
17708         `ves_icall_MonoType_get_IsGenericParameter'.
17709         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
17710         this is no interncall anymore.
17711         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
17712         `ves_icall_TypeBuilder_get_IsGenericParameter'.
17713
17714 2003-10-14  Martin Baulig  <martin@ximian.com>
17715
17716         * reflection.c (mono_reflection_bind_generic_parameters): Also
17717         inflate generic methods if we're reading the class from IL.
17718
17719 2003-10-13  Martin Baulig  <martin@ximian.com>
17720
17721         * reflection.c (mono_reflection_define_generic_parameter): This
17722         method isn't called directly from the icall anymore; take a
17723         `MonoReflectionAssemblyBuilder *' so we can use this for type and
17724         method generic parameters.
17725         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
17726         (method_builder_encode_signature): Encode generic parameters.
17727         (mono_image_get_method_info): Write generic params to the
17728         MONO_TABLE_GENERICPARAM table.
17729
17730         * reflection.h (MonoReflectionMethodBuilder): Added
17731         `MonoArray *generic_params'.
17732
17733         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
17734
17735         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
17736         wrapper for mono_reflection_define_generic_parameter().
17737         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
17738
17739 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
17740
17741         * marshal.h: Add missing function to fix build.
17742
17743         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
17744         the SetLastError pinvoke attribute.
17745
17746         * marshal.c (mono_marshal_set_last_error): New helper function called
17747         by the generated code.
17748         
17749         * marshal.c (mono_mb_emit_branch): New helper function.
17750
17751         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
17752
17753         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17754         classes as parameters and return values of delegates. Fixes #29256. 
17755
17756 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
17757
17758         * locales.c: use gint32 in non HAVE_ICU case
17759
17760 2003-10-11  Martin Baulig  <martin@ximian.com>
17761
17762         * mono-debug.c (mono_debug_add_method): Added a workaround for
17763         bug #48591.
17764
17765 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
17766
17767         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
17768         delegates passed to native code must use the STDCALL calling 
17769         convention. Fixes #35987.
17770
17771 2003-10-10  Martin Baulig  <martin@ximian.com>
17772
17773         * class.c (inflate_generic_type): If we're inflating for a generic
17774         type instance (and not for a generic method), return
17775         MONO_TYPE_MVAR unchanged.
17776
17777 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17778
17779         * string-icalls.c: Join ignores null strings in the source array.
17780         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
17781         * threads.c: GetAvailableTheads is slightly more accurate.
17782
17783 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
17784
17785         * threads.h threads.c : add mono_threads_set_default_stacksize
17786         and pass default to CreateThread calls.
17787
17788 2003-10-09  Dick Porter  <dick@ximian.com>
17789
17790         * icall.c:
17791         * locales.h:
17792         * locales.c: Internal calls for constructing CultureInfo and
17793         related objects from libicu (if its available.)
17794
17795 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
17796
17797         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
17798
17799 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17800
17801         * threadpool.c: added an argument to async_invoke_thread that is the
17802         item to process, pass the MonoAsyncResult to the thread start function
17803         when creating a new thread. This way we don't need to acquire any lock
17804         when we're creating a new thread. Readded a semaphore for faster
17805         response times (instead of that Sleep i added).
17806
17807 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
17808
17809         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
17810         get daylight change dates better on Windows, fix handling
17811         of platforms without tm_gmtoff.
17812
17813 2003-10-06  Martin Baulig  <martin@ximian.com>
17814
17815         * class.c (inflate_generic_method): Renamed to
17816         mono_class_inflate_generic_method() and made public.
17817         (mono_class_init): Don't inflate the generic methods here.
17818         (mono_class_from_generic): Added `gboolean inflate_methods'
17819         argument.  Inflate the methods here.
17820
17821         * loader.c (mono_method_get_param_names): Ignore instances of
17822         generic types for the moment.
17823
17824         * reflection.c (fixup_method): Added support for inflated methods.
17825         (mono_image_create_token): Use mono_image_get_methodref_token()
17826         for inflated methods.
17827         (mono_custom_attrs_from_param): Ignore instances of generic types
17828         for the moment.
17829         (mono_reflection_bind_generic_parameters): New public function.
17830         Moved all the functionality from
17831         ves_icall_Type_BindGenericParameters() here and added support for
17832         dynamic types.
17833         (mono_reflection_define_generic_parameter): Initialize
17834         `klass->methods' here.
17835
17836         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
17837         functionality into mono_reflection_define_generic_parameter().
17838         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
17839         TypeBuilder, return that TypeBuilder.
17840
17841 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17842
17843         * appdomain.c: removed mono_delegate_semaphore.
17844
17845         * threadpool.c:
17846         (mono_thread_pool_add): moved hash table creation inside and the thread 
17847         creation outside of the critical region.
17848         (mono_thread_pool_finish): removed obsolete code.
17849         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
17850         continue or exit the thread depending on the queue.
17851
17852 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
17853
17854         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
17855         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
17856         handle more bool marshalling options
17857
17858 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
17859
17860         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
17861         arrays of structs. Also add a more descriptive error message when
17862         a structure member is marshalled as LPArray.
17863
17864 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
17865
17866         * marshal.c (mono_marshal_get_native_wrapper): Add support for
17867         marshalling arrays of complex types. Fixes #29098. Also remove an
17868         usused and incomplete function.
17869
17870 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
17871
17872         * gc.c: report heap_size - free_bytes as total memory allocated
17873         (bug#49362).
17874
17875 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
17876
17877         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
17878         fix timezone handling problems on Windows.
17879         
17880         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
17881         asserts when the year is outside the range handled by ms the functions.
17882
17883         * class.c (setup_interface_offsets): If the class is an interface,
17884         fill out its interface_offsets slot.
17885
17886 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17887
17888         * threadpool.c: mark threadpool threads as background.
17889
17890 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
17891
17892         * decimal.c - define DECINLINE to nothing if not using GCC
17893
17894 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
17895
17896         * assembly.c: More refcount fixes.
17897
17898 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17899
17900         * string-icalls.c: if we're not trimming, return the same string.
17901         When not splitting, don't create a new string.
17902
17903 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17904
17905         * image.c:
17906         (mono_image_open): increment the ref_count inside the critical section.
17907
17908 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
17909
17910         * image.c (mono_image_open): Fix reference counting bug.
17911
17912 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
17913
17914         * marshal.c (mono_marshal_type_size) struct alignment changed for 
17915         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
17916         64bits. Avoid leak in mono_marshal_get_native_wrapper when
17917         mono_lookup_pinvoke_call throws.        
17918
17919 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
17920
17921         * reflection.c (mono_reflection_parse_type): Fix #49114.
17922
17923         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
17924         temporary workaround for cygwin header problem.
17925
17926         * object.c (mono_object_isinst): Synchronize this with the code
17927         generated by the JIT for casts.
17928
17929 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
17930
17931         * reflection.c (encode_type): Fix #38332.
17932
17933 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
17934
17935         * marshal.c (mono_marshal_method_from_wrapper): New function to return
17936         the original method from the wrapper method.
17937
17938 2003-09-25  Martin Baulig  <martin@ximian.com>
17939
17940         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
17941         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
17942         (ves_icall_Type_get_IsGenericInstance): New interncall.
17943
17944 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
17945
17946         * object.c: fix cast warning in big endian code.
17947
17948 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
17949
17950         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
17951         
17952 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17953
17954         * assembly.c: don't call check_env from mono_assembly_load. It's
17955         already done once in mono_assemblies_init and may cause headaches when
17956         multiple threads are loading assemblies.
17957
17958 2003-09-19  Martin Baulig  <martin@ximian.com>
17959
17960         * reflection.c (mono_reflection_define_generic_parameter): Don't
17961         allocate `klass->methods', set `klass->flags' to
17962         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
17963
17964 2003-09-18  Martin Baulig  <martin@ximian.com>
17965
17966         * class.c (mono_class_init): Don't create `class->methods' if it's
17967         already initialized.
17968
17969         * metadata.c (mono_metadata_load_generic_params): Make this
17970         actually work.
17971
17972         * reflection.c (mono_reflection_define_generic_parameter): Set
17973         parent class and interfaces from the constraints.
17974
17975         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
17976         to keep this struct in sync with the declaration in TypeBuilder.cs.
17977
17978 2003-09-17  Martin Baulig  <martin@ximian.com>
17979
17980         * metadata.h (MonoType): Replaced the data's `int type_param'
17981         field with `MonoGenericParam *generic_param'.
17982         (MonoGenericParam): Added `MonoClass *klass'.
17983
17984         * class.c (mono_class_from_gen_param): Removed the
17985         `MonoImage *image' and `int type_num' arguments.
17986
17987         * metadata.c (mono_metadata_parse_generic_param): New static
17988         method; creates a MonoGenericParam which just contains the index.
17989         (do_mono_metadata_parse_type): Call
17990         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
17991         MONO_TYPE_MVAR.
17992
17993         * reflection.c (mono_image_typedef_or_ref): Generic type
17994         parameters may be in the same assembly, but never use a typedef
17995         for them.
17996         (mono_reflection_define_generic_parameter): We're now creating a
17997         "real" class for the type parameter; it's now safe to call
17998         mono_class_from_mono_type() on the class'es type, it'll do the
17999         right thing.
18000
18001 2003-09-16  Martin Baulig  <martin@ximian.com>
18002
18003         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
18004         `symfile->range_entry_size' and `symfile->class_entry_size' here;
18005         the `symfile' data structure must be fully initialized before it
18006         gets added to the table.
18007
18008 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
18009
18010         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
18011
18012         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
18013         class init trampolines.
18014
18015 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
18016
18017         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
18018         to the built-in profiler to turn off time and allocation profiling
18019         respectively.
18020
18021 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
18022
18023         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
18024         g_direct_equal.
18025
18026         * debug-helpers.c (mono_method_full_name): Print the wrapper type
18027         in human readable form.
18028
18029 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
18030
18031         * reflection.c icall.c: Fixed warnings.
18032
18033         * image.c (load_class_names): Use a temporary hash table to hold the
18034         namespaces in order to avoid doing many string comparisons.
18035
18036         * image.h: Fix typo.
18037
18038         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
18039         Pass NULL instead of g_direct_equal to the GHashTable constructor 
18040         since the NULL case is short-circuited inside g_hash_table_lookup, 
18041         leading to better performance.  
18042
18043         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
18044         obtain the first custom attribute for a given index. Depends on the
18045         CustomAttribute table being sorted by the parent field.
18046
18047         * reflection.c (mono_custom_attrs_from_index): Use the new function 
18048         for better performance.
18049
18050 2003-09-07  Martin Baulig  <martin@ximian.com>
18051
18052         * class.c (mono_class_init): If we're a generic instance, inflate
18053         all our methods instead of loading them from the image.
18054         (mono_class_from_generic): Set `class->methods = gklass->methods'.
18055
18056 2003-09-07  Martin Baulig  <martin@ximian.com>
18057
18058         * mono-debug-debugger.c: Added support for constructors.
18059
18060 2003-09-06  Martin Baulig  <martin@ximian.com>
18061
18062         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
18063         New interncall.
18064
18065         * reflection.c (mono_reflection_setup_generic_class): Call
18066         ensure_runtime_vtable() to create the vtable.
18067
18068 2003-09-05  Martin Baulig  <martin@ximian.com>
18069
18070         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
18071         MONO_TYPE_MVAR.
18072
18073 2003-09-04  Martin Baulig  <martin@ximian.com>
18074
18075         * reflection.c (mono_reflection_define_generic_parameter): Generic
18076         parameters start with zero.
18077
18078 2003-09-04  Martin Baulig  <martin@ximian.com>
18079
18080         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18081
18082         * reflection.h (MonoReflectionGenericParam): New typedef.
18083         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
18084         the generic parameters from the managed TypeBuilder.
18085
18086         * reflection.c (mono_reflection_define_generic_parameter): New function.
18087         (mono_reflection_create_runtime_class): Encode generic parameters.
18088         (mono_reflection_setup_generic_class): New function; this is
18089         called after adding adding all generic params to the TypeBuilder.
18090         (encode_type): Added MONO_TYPE_VAR.
18091
18092 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
18093
18094         * class.h class.c (mono_class_needs_cctor_run): Moved this method
18095         here from the JIT.
18096
18097         * assembly.h assembly.c: Moved the AOT loading code into an assembly
18098         load hook.
18099
18100 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
18101
18102         * reflection.h reflection.c class.h class.c: Delete duplicate 
18103         definition of mono_type_get_name () from reflection.c and export the
18104         one in class.c.
18105
18106         * class.c: Class loading fixes from Bernie Solomon 
18107         (bernard@ugsolutions.com).
18108
18109         * reflection.c: Endianness fixes from Bernie Solomon 
18110         (bernard@ugsolutions.com).
18111         
18112 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
18113
18114         * assembly.h assembly.c: Define a file format version for AOT
18115         libraries.
18116         
18117         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
18118
18119         * appdomain.h (MonoJitInfo): New field to determine whenever the
18120         code is domain neutral.
18121         
18122 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
18123
18124         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
18125
18126 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
18127
18128         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
18129         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
18130         Avoid caching the result since strings must be domain specific. Fixes
18131         #48050.
18132
18133 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
18134
18135         * marshal.c (mono_marshal_init): Make this callable multiple times
18136         since it is hard to find a correct place to call it.
18137
18138         * object.c (mono_runtime_class_init): Execute static constructors in
18139         the correct appdomain.
18140
18141         * image.c (build_guid_table): Handle the case when multiple images have
18142         the same GUID.
18143
18144 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18145
18146         * icall.c: added a couple of icalls for System.Web.
18147
18148 2003-08-28  Martin Baulig  <martin@ximian.com>
18149
18150         * icall.c (ves_icall_Type_BindGenericParameters): Use
18151         `klass->generic_inst' instead of `&klass->byval_arg' in the
18152         mono_type_get_object() call.  The returned type must be
18153         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
18154
18155 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
18156
18157         * NOTES: New file.
18158
18159         * object.c (mono_class_proxy_vtable): Make it thread safe.
18160
18161         * pedump.c: Fix warning.
18162
18163         * object.c appdomain.h: Get rid of metadata_section. 
18164         It is no longer needed and it was causing deadlocks with domain->lock.
18165
18166         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
18167
18168 2003-08-26  Martin Baulig  <martin@ximian.com>
18169
18170         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
18171
18172 2003-08-26  Martin Baulig  <martin@ximian.com>
18173
18174         * pedump.c (main): Call mono_metadata_init(),
18175         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
18176         and mono_loader_init().
18177
18178 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
18179
18180         * loader.h: Add missing include to fix build.
18181
18182         * image.h: mono_image_load_references is no more.
18183
18184         * assembly.c: Reworked assembly loading to make it really thread safe.
18185         After these changes, the assembly returned by mono_assembly_open is
18186         fully initialized, i.e. all its references assemblies are loaded.
18187
18188         * assembly.c (mono_image_load_references): Renamed to 
18189         mono_assembly_load_references, and made private, since clients no
18190         longer need to call it.
18191
18192         * class.c: Removed calls to mono_assembly_load_references, since it was
18193         a source of deadlocks.
18194
18195         * loader.h loader.c class.h class.c: Protect data structures using a 
18196         new lock, the loader lock.
18197
18198         * class.c (mono_class_setup_vtable): Create temporary hash tables and
18199         GPtrArrays only when needed.
18200
18201         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
18202         into empty structures by mcs. Fixes pinvoke7.cs.
18203         
18204         * domain.c (mono_init): Call a new initialization function.
18205
18206         * appdomain.c (mono_runtime_init): Call the new initializer function
18207         of the marshal module.
18208
18209         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
18210         inserted into empty structures by mcs. Fixes pinvoke7.cs.
18211
18212         * marshal.h marshal.c: Added locks around the wrapper caches to make
18213         this module thread safe.
18214
18215         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
18216         this argument. Fixes pinvoke1.exe.
18217
18218 2003-08-25  Lluis Sanchez <lluis@ximian.com>
18219
18220         * object.h: Added call_type field to MonoMethodMessage and the corresponding
18221         enumeration of values. Removed fields to store remote call output values in
18222         MonoAsyncResult. Not needed any more.
18223         * object.c: Initialize call_type and async_result fields in mono_message_init.
18224         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
18225         dispatching the message.
18226         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
18227         async call to finish. To do it use a message with EndInvoke call type.
18228
18229 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
18230
18231         * loader.h loader.c (mono_method_hash_marhal_info): New function which
18232         determines whenever a method has marshalling info.
18233
18234 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18235
18236         * assembly.c: fix the build on windows.
18237
18238 2003-08-22 Lluis Sanchez <lluis@ximian.com>
18239
18240         * object.cs: Fixed bug #47785.
18241
18242 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
18243
18244         * string-icalls.c (StringReplace): If their are no occurances of
18245         the old string found return a reference to the supplied
18246         string. This saves some memory and matches MS behavoir.
18247         
18248 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18249
18250         * socket-io.c: fixed compilation for systems that define AF_INET6
18251         and don't define SOL_IP/SOL_IPV6.
18252
18253 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
18254
18255         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
18256         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
18257
18258         * rawbuffer.c rawbuffer.h: Make this module thread safe.
18259
18260         * domain.c: Make this module thread safe.
18261
18262         * domain.c (mono_init): Call new initialization function.
18263
18264         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
18265         reference types too. Fixes #38812.
18266
18267         * image.c (mono_image_init): Fixed warnings.
18268
18269         * class.c (mono_class_from_typeref): Handle assembly load failure
18270         correctly.
18271
18272         * appdomain.c (add_assemblies_to_domain): Handle the case when
18273         the references of an assembly are not yet loaded.
18274
18275         * metadata.c image.c assembly.c: Moved initialization of global
18276         variables to a separate function called at startup since lazy 
18277         initialization of these variables is not thread safe.
18278         
18279         * image.c assembly.c: Made this module thread safe by adding locks in 
18280         the appropriate places.
18281
18282         * domain.c (mono_init): Call the new initialization functions of the
18283         three modules.
18284
18285 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
18286
18287         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
18288           make a direct call. It is proxy's work to make the call asynchronous.
18289           mono_delegate_end_invoke(): If the targe is a proxy, just collect
18290           the return values.
18291         * object.cs: mono_method_call_message_new(): read AsyncResult and
18292           state object from parameters list, if this info is requested.
18293         * object.h: Added fields to store remote call output values in
18294           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
18295
18296 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18297
18298         * object.h: add needed fields to MonoThread.
18299         * threads.c, threads.h: allow registering a function to cleanup data
18300         allocated per thread by the JIT.
18301
18302 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18303
18304         * loader.h: portability fix by Bernie Solomon
18305         * <bernard@ugsolutions.com>.
18306
18307 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
18308
18309         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
18310         return a MonoArray. This simplifies the code and also ensures that
18311         the cache allways contains an object reference as a value.
18312
18313         * icall.c (ves_icall_get_parameter_info): Simplified using the new
18314         function.
18315
18316 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18317
18318         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
18319         fixes a problem with byte ordering when getting the address family for
18320         a socket.
18321
18322 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
18323
18324         * .cvsignore: Added monosn.
18325
18326         * reflection.h reflection.c loader.c: Added support for parameter
18327         marshalling to dynamically created types. Fixes #47295.
18328
18329 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
18330
18331         * rand.c: remove useless warnings.
18332
18333 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
18334
18335         * class.c: implemented ldtoken for methods and fieldrefs.
18336
18337 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18338
18339         * threadpool.c: when mono_async_invoke was called, no one took care of
18340         monitoring the queue. So if the method invoked took some time and we
18341         got new async invoke requests after 500 ms (the thread created waited
18342         that long in WaitForSingleObject), the new async invoke was not called
18343         until the previous one finished.
18344
18345         This is fixed now. Thanks to Totte for helping with it.
18346
18347 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18348
18349         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
18350
18351 2003-08-11  Martin Baulig  <martin@ximian.com>
18352
18353         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
18354
18355 2003-08-06  Martin Baulig  <martin@ximian.com>
18356
18357         * mono-debug-debugger.c: Added support for static fields,
18358         properties and methods.
18359
18360 2003-08-06  Martin Baulig  <martin@ximian.com>
18361
18362         * mono-debug-debugger.c: Don't store the MonoString's vtable to
18363         make this work for applications with multiple application domains.
18364
18365 2003-08-04  Martin Baulig  <martin@ximian.com>
18366
18367         * mono-debug-debugger.c: Completely reworked the type support; the
18368         most important thing is that we're now just using one single
18369         `MonoType' instance per type.
18370
18371 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
18372
18373         * mono-endian.h, mono-endian.c, icall.c: Added icall
18374         ves_icall_System_Double_AssertEndianity to assert double word endianity
18375         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
18376
18377 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18378
18379         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
18380         support, icalls and fixes.
18381
18382 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
18383
18384         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
18385         classes that are a punctuation character in .NET is not the same a
18386         g_unichar_ispunct.
18387
18388 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18389
18390         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
18391
18392 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
18393
18394         * icall.c: Add new MemCopy internalcall.
18395         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
18396         Simplified code; It is not necessary to handle all the cases here,
18397         as the C# code takes care of it.  Only handle the case of the name
18398         resource embedded into the assembly.
18399
18400         Changed signature to return the data pointer and the size of the
18401         data. 
18402
18403 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
18404
18405         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
18406         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
18407
18408 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
18409
18410         * socket-io.c: ignore EINTR error in select.
18411
18412 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
18413
18414         * class.h, class.c: removed unused subclasses field in MonoClass.
18415
18416 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
18417
18418         * icall.c: improve fix of get_base_definition(). If the parent class
18419           doesn't have the mehod, look at the parent of the parent.
18420         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
18421           to check if a parameter is an in or out parameter
18422           (PARAM_ATTRIBUTE_IN is not set by default).
18423           mono_method_return_message_restore(): Use mono_class_value_size to
18424           get the size of a value type. mono_type_stack_size (parameterType)
18425           does not return the correct value if parameterType is byRef.
18426           mono_load_remote_field(), mono_load_remote_field_new(),
18427           mono_store_remote_field(), mono_store_remote_field_new():
18428           raise exception if the remote call returns an exception.
18429
18430 2003-07-28  Martin Baulig  <martin@ximian.com>
18431
18432         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
18433         method.  This is a wrapper around mono_runtime_invoke() which
18434         boxes the instance object if neccessary.
18435
18436 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18437
18438         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
18439         metadata.h, row-indexes.h, verify.c: first cut of generics support.
18440
18441 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18442
18443         * icall.c: disable mcs bug workaround.
18444
18445 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
18446
18447         * object.c (mono_runtime_class_init): Take the metadata_section
18448         mutex before obtaining the domain mutex.
18449
18450         * appdomain.h: Added definition of metadata_section mutex here. 
18451
18452         * object.c: define metadata_mutex here.
18453
18454 2003-07-24  Ravi Pratap  <ravi@ximian.com>
18455
18456         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
18457         fixed.
18458
18459 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
18460
18461         * reflection.c: Fix bug #46669
18462
18463 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18464
18465         * exception.c:
18466         * exception.h:
18467         * icall.c:
18468         * object.h: fill in the type name for TypeLoadException.
18469
18470 2003-07-23  Ravi Pratap  <ravi@ximian.com>
18471
18472         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
18473         relationship between TypeBuilders while compiling corlib) and bug
18474         45993 (Array types returned from the runtime while compiling
18475         corlib were from the loaded corlib).
18476
18477 2003-07-22  Martin Baulig  <martin@ximian.com>
18478
18479         * mono-debug-debugger.c: Reworked the type support a bit more;
18480         distinguish between types and classes.
18481
18482 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
18483
18484         * icall.c: add IsArrayImpl icall.
18485
18486 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
18487
18488         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
18489         initializing real_size only once. Also fix bug #46602.
18490
18491 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
18492
18493         * object.c: Renamed mono_metadata_section to metadata_section.
18494
18495 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
18496
18497         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
18498           empty array if the type is an array. Fixed.
18499           ves_icall_MonoMethod_get_base_definition: if the base method
18500           is abstract, get the MethodInfo from the list of methods of
18501           the class.
18502         * reflection.c: ParameterInfo.PositionImpl should be zero-based
18503           and it was 1-based. Fixed in mono_param_get_objects.
18504
18505 2003-07-20  Martin Baulig  <martin@ximian.com>
18506
18507         * mono-debug.h: Set version number to 31.
18508         (mono_debug_init): Added `MonoDomain *' argument.
18509
18510         * mono-debug-debugger.c: Reworked the type support; explicitly
18511         tell the debugger about builtin types; pass the `klass' address to
18512         the debugger.
18513
18514 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
18515
18516         * image.c: Allow new metadata tables to be loaded without a
18517         warning. Also update the warning message to give the new constant value.
18518                 
18519 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
18520
18521         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
18522         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
18523         array type representation changes.
18524
18525 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
18526
18527         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
18528         on Environment.Exit () call.
18529
18530 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
18531
18532         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
18533         requires a matching corlib.
18534
18535 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
18536
18537         * Changelog: My editor decided to add a CR to each line. Sorry about that.
18538           Committed again without the CRs.
18539         
18540 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
18541
18542         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
18543           getting it from the "this" socket instance. Did not work
18544           if the socket is a subclass of Socket.
18545           Also fixed bug #35371.
18546
18547 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
18548
18549         * metadata.c: fixed size for TypedByRef.
18550         * loader.c: when searching for a method, consider the vararg amrker.
18551         * unicode.c, decimal.c: constify some arrays.
18552
18553 2003-07-15  Dick Porter  <dick@ximian.com>
18554
18555         * socket-io.c: Fixed compilation for gcc < 3.2.
18556
18557         Fixed compilation for machines that don't have AF_INET6 (thanks to
18558         Bernie Solomon <bernard@ugsolutions.com> for that part.)
18559
18560         Fixed compile warnings.
18561         
18562         Fixed formatting and line endings.
18563
18564 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
18565
18566         * socket-io.h:
18567         * socket-io.c: Added IPv6 support.
18568
18569 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
18570
18571         * class.c (mono_class_is_assignable_from): New function to implement
18572         the is_assignable_from logic. Used by mono_object_isinst, 
18573         Type::IsAssignableFrom () and the interpreter.
18574
18575         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
18576         Object, even interfaces.
18577         
18578         * object.c (mono_object_isinst): Implement in terms of 
18579         is_assignable_from.
18580
18581         * icall.c (ves_icall_type_is_assignable_from): New icall.
18582
18583 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
18584
18585         * domain.c (foreach_domain): fix compiler warning.
18586
18587 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
18588
18589         * image.c (load_metadata_ptrs): use g_strndup because strndup is
18590         not available on all plattforms
18591
18592 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
18593
18594         * image.h image.c: Store the metadata version string in MonoImage.
18595         * icall.c: New icall to retrieve the image version.
18596         * reflection.c (create_dynamic_image): Fill in the image version field
18597         * reflection.c (build_compressed_metadata): Use the image version
18598         from the image structure.
18599
18600 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18601
18602         * appdomain.c: modified comment.
18603         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
18604         That will be its last iteration when mono_gc_cleanup is called from
18605         mono_runtime_cleanup and before the domain is unloaded.
18606
18607         Fixes bug #45962.
18608
18609 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
18610
18611         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
18612         attributes.
18613
18614 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18615
18616         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
18617         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
18618         Bernie Solomon <bernard@ugsolutions.com>.
18619
18620 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
18621
18622         * object.c, object.h: provide mono_object_new_fast() for faster
18623         allocation in some special cases.
18624
18625 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
18626
18627         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
18628         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
18629
18630 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
18631
18632         * threadpool.c: fix leaks.
18633
18634 2003-07-01  Dick Porter  <dick@ximian.com>
18635
18636         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
18637         using MonoGHashTables.  Fixes threadpool bug posted to list.
18638
18639 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
18640
18641         * image.h, image.c: added support to load an assembly from a byte array.
18642         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
18643         assembly bundle support.
18644
18645 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
18646
18647         * threadpool.c (mono_thread_pool_add): keep a reference to the
18648         AsyncResult to prevent GC
18649
18650 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
18651
18652         * class.c: leak fix.
18653
18654 2003-06-25  Dick Porter  <dick@ximian.com>
18655
18656         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
18657         for the async object, the WaitHandle object will close the handle.
18658         Fixes bug 45321.
18659
18660 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
18661
18662         * class.c: in mono_array_class_get (), lookup from the hash with the
18663         same type we insert: this works around a bug in
18664         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
18665         lluis. The real fix will have to wait for after the release.
18666
18667 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
18668
18669         * icall.c: fix memory leak when getting type members.
18670
18671 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
18672
18673         * reflection.c: added more pubtoken special cases.
18674
18675 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
18676
18677         * class.c: handle field offset correctly when class size
18678         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
18679
18680 2003-06-20  Martin Baulig  <martin@ximian.com>
18681
18682         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
18683         *image' field.
18684
18685 2003-06-20  Martin Baulig  <martin@ximian.com>
18686
18687         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
18688
18689 2003-06-20  Martin Baulig  <martin@ximian.com>
18690
18691         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
18692         just distinguish between variables in registers and variables at
18693         an offset relative to a register.
18694
18695 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18696
18697         * icall.c: #ifdef out latest changes until mcs is fixed.
18698
18699 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18700
18701         * icall.c: return members in metadata order.
18702
18703 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
18704
18705         * icall.c: avoid infinite loop in GetTimeZoneData.
18706
18707 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
18708
18709         * icall.c: added Marshal.Prelink/All icalls.
18710
18711 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
18712
18713         * object.c, object.h: fix warnings and do some overflow checking
18714         when creating arrays.
18715
18716 2003-06-17  Dick Porter  <dick@ximian.com>
18717
18718         * file-io.h:
18719         * file-io.c: File attributes need to be tweaked slightly when
18720         passed from the managed to the w32 world.
18721
18722 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
18723         * profiler.h profiler-private.h profiler.c: Rework last patch
18724         based on suggestion by Paolo.
18725         
18726 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
18727
18728         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
18729         instruction level coverage data collection.
18730         * profiler.h profiler.c (: Added new callback function which can be
18731         used by the profiler to limit which functions should have coverage
18732         instrumentation.
18733         * profiler.c (mono_profiler_load): Call g_module_build_path to
18734         generate the file name of the profiler library.
18735
18736 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18737
18738         * profiler.c, profiler.h, profiler-private.h: added basic block 
18739         coverage profiling API.
18740
18741 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
18742
18743         * reflection.c (mono_reflection_create_runtime_class): Add support
18744         for events in dynamically generated code.
18745
18746         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
18747         not allocated.
18748
18749 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
18750
18751         * icall.c: when getting timezone info, return reasonable values if we
18752         can't get the actual data.
18753
18754 2003-06-14  Dick Porter  <dick@ximian.com>
18755
18756         * threads.c (start_wrapper): Remove the reference to the thread
18757         object in the TLS data, so the thread object can be finalized.
18758         This won't be reached if the thread threw an uncaught exception,
18759         so those thread handles will stay referenced :-( (This is due to
18760         missing support for scanning thread-specific data in the Boehm GC
18761         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
18762
18763 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
18764
18765         * reflection.c: ensure streams and tables are first allocated with
18766         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
18767
18768 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18769
18770         * icall.c: fixed GetElementType for byrefs (bug# 44792).
18771
18772 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
18773
18774         * reflection.c (mono_reflection_create_runtime_class): Add support for
18775         properties to dynamically created classes.
18776         * reflection.c: Fix a few places where non-MonoObjects were inserted
18777         into the tokens hashtable.
18778
18779 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
18780
18781         * object.c: some support to handle out of memory exceptions.
18782
18783 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
18784
18785         * marshal.c (mono_marshal_get_native_wrapper): support reference
18786         return types
18787
18788 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
18789
18790         * object.h, object.c: more portability stuff from Bernie Solomon.
18791         Unexport mono_object_allocate(). Added mono_object_unbox ().
18792         Set exitcode when an unhandled exception is thrown.
18793
18794 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
18795
18796         * marshal.c (mono_marshal_get_native_wrapper): use custom
18797         marshaler for return types.
18798
18799 2003-06-10  Dick Porter  <dick@ximian.com>
18800
18801         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
18802         ip_mreq is available
18803
18804 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
18805
18806         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
18807         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
18808         by Bernie Solomon <bernard@ugsolutions.com>.
18809
18810 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
18811
18812         * gc.c (mono_gc_init): Avoid error message on shutdown when
18813         GC_DONT_GC=1 is used.
18814
18815         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
18816         New icall to return the GUID of a module.
18817
18818 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
18819
18820         * class.c: ensure instance size always includes the parent's size
18821         even whem class size is set explicitly (fixes bug#44294).
18822
18823 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
18824
18825         * profiler.h, profiler.c: made the simple profiler thread-safe,
18826         get more accurate timing info. Allow the loading of an
18827         externally-developed profiler module.
18828
18829 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
18830
18831         * marshal.c (mono_marshal_get_native_wrapper): improved
18832         class/byref arguments.
18833         (mono_marshal_get_native_wrapper): better string marshaling support.
18834
18835 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
18836
18837         * class.c: ensure .pack and .size are handled correctly and
18838         simplified layout of static fields.
18839
18840 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
18841
18842         * appdomain.c
18843         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
18844
18845         * loader.c (mono_lookup_pinvoke_call): look for modules in the
18846         current directory (fix bug 44008)
18847
18848 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
18849
18850         * marshal.c (mono_marshal_get_native_wrapper): started support for
18851         custom marshalers.
18852         (mono_delegate_to_ftnptr): consider marshalling specifications
18853
18854 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
18855
18856         * reflection.c, reflection.h: emit custom marshal info.
18857
18858 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18859
18860         * object.c: free the GError.
18861         * icall.c: added CloseEvent_internal.
18862         * threads.[ch]:
18863         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
18864         call.
18865
18866 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
18867
18868         * loader.c (mono_method_get_signature): Add support for dynamic
18869         assemblies.
18870
18871 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
18872
18873         * reflection.c: fixed bug #43905.
18874
18875 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
18876
18877         * class.c, domain.c, icall.c, metadata.h, object.h: support for
18878         handling TypedReference and ArgIterator.
18879         * loader.c, loader.h: added function to get signature at call site.
18880
18881 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
18882
18883         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
18884         data readonly. Buglets and warning fixes. Some MethodSpec support.
18885
18886 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
18887
18888         * class.h, class.c, object.c: remove relative numbering support.
18889
18890 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
18891
18892         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
18893         free the string, until we get a chance to fix Gtk#
18894
18895 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18896
18897         * marshal.c: revert last patch.
18898
18899 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
18900
18901         * icall.c: updates for new mono_class_vtable() not calling
18902         the type constructor anymore.
18903
18904 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
18905
18906         * object.h, object.c: separate vtable creation from type
18907         initialization. Make running the .cctor thread safe.
18908
18909 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
18910
18911         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
18912
18913 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
18914
18915         * loader.c (mono_get_method): consider calling convention
18916
18917 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
18918
18919         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
18920         to return the invisible global type for a module.
18921
18922         * reflection.c (mono_image_build_metadata): Emit global fields too.
18923
18924 2003-05-20  Peter Williams  <peterw@ximian.com>
18925
18926         * loader.c (mono_lookup_internal_call): Add a few newlines.
18927
18928 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
18929
18930         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
18931         literal strings.
18932
18933         * appdomain.c (set_domain_search_path): Recalculate search path when
18934         AppDomainSetup.PrivateBinPath changes.
18935
18936         * object.c (mono_class_compute_gc_descriptor): It turns out some
18937         parts of the class libs (like System.Thread) holds pointers to
18938         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
18939         to treat native int a pointer type here.
18940         
18941 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
18942
18943         * appdomain.h, domain.c: add hashtable for jump target resolution.
18944
18945 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
18946
18947         * reflection.h reflection.c icall.c: Added new icalls 
18948         GetManifestResourceInfoInternal, GetModulesInternal and support
18949         infrastructure.
18950
18951 2003-05-16  Dick Porter  <dick@ximian.com>
18952
18953         * icall.c:
18954         * file-io.h:
18955         * file-io.c: Implement System.IO.MonoIO::GetTempPath
18956
18957 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
18958
18959         * object.c: mono_store_remote_field: little fix to previous patch.
18960
18961 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18962
18963         * class.c: add constructors to array classes.
18964         * icall.c: special case array construction for InternalInvoke (),
18965
18966 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
18967
18968         * class.h class.c reflection.c object.c: Added support for field
18969         defaults in dynamically generated classes.
18970
18971 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
18972
18973         * reflection.c: properly encode charset for ddlimport.
18974
18975 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
18976
18977         * threads.c: allow compiling without GC.
18978
18979 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
18980
18981         * appdomain.h, object.c, object.h, threads.c, threads.h: added
18982         handling of thread static data.
18983
18984 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18985
18986         * reflection.h, reflection.c: added mono_custom_attrs_free ().
18987
18988 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
18989
18990         * class.c (mono_array_class_get): always set the serializable flags
18991         (mono_array_class_get): always set the SEALED attribute for array types
18992
18993 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
18994
18995         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
18996         attributes (fix for bug 42021).
18997
18998 2003-05-12  Dick Porter  <dick@ximian.com>
18999
19000         * gc.c: Don't run finalizers when the finalizer thread is
19001         finishing up, because the default domain has already been
19002         destroyed.
19003
19004 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
19005
19006         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
19007         value is null, we should throw an exception.   This is slightly
19008         different than the other conventions used for the constructor.
19009
19010 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19011
19012         * socket-io.c: fixed windows build.
19013
19014 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19015
19016         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
19017
19018 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
19019
19020         * object.c (mono_string_new_wrapper): Compatibility fix for MS
19021         compilers.
19022
19023 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
19024
19025         * class.c (mono_class_layout_fields): Add experimental GC aware
19026         auto layout facility. Requires class library changes to work correctly.
19027
19028         (mono_class_setup_vtable): Avoid overriding explicit interface
19029         method implementations. Fixes iface3.exe test.
19030
19031         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
19032         object reference.
19033         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
19034         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
19035
19036         * metadata.h: Add new type classification macro which determines
19037         whenever the type holds an object reference.
19038
19039 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
19040
19041         * marshal.c (mono_marshal_get_native_wrapper): cleanups
19042
19043 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
19044
19045         * gc.c (finalizer_thread): Work around a GC bug.
19046
19047 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
19048
19049         * marshal.c (emit_struct_conv): allow unions
19050
19051         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
19052
19053 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
19054
19055         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
19056
19057 2003-05-06  Martin Baulig  <martin@ximian.com>
19058
19059         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
19060
19061 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19062
19063         * socket-io.c:
19064         (Select_internal): allow NULLs, don't create arrays if not needed.
19065         Coupled with Socket.cs changes.
19066
19067         * threadpool.c:
19068         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
19069         register a finalizer for it that will close the semaphore handle. This
19070         fixes the leak and make Lupus' test run with > 4080 loops.
19071
19072 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
19073
19074         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
19075         Jerome Laban (bug #42287)
19076
19077 2003-05-02  Martin Baulig  <martin@ximian.com>
19078
19079         * debug-mono-symfile.h
19080         (MonoSymbolFile): Moved declaration into mono-debug.h.
19081         (MonoDebugMethodJitInfo): Likewise.
19082         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
19083         argument.
19084         (_mono_debug_address_from_il_offset): Take a
19085         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
19086
19087         * mono-debug.h
19088         (MonoDebugDomainData): New struct.
19089         (mono_debug_get_domain_data): New function.
19090         (mono_debug_add_method): Take an additional `MonoDomain *'
19091         argument.
19092         (mono_debug_source_location_from_address): Likewise.
19093         (mono_debug_il_offset_from_address): Likewise.
19094         (mono_debug_address_from_il_offset): Likewise.
19095
19096 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
19097
19098         * reflection.c: one more check for null type in custom attrs.
19099
19100 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19101
19102         * reflection.c: avoid warning (comparison is always false due to limited
19103         range of data type).
19104
19105 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19106
19107         * icall.c: throw an exception in Type.GetField if the argument 'name'
19108         is NULL.
19109
19110 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
19111
19112         * reflection.c: fixed handling of enums in named arguments to custom
19113         attributes (bug #42123).
19114
19115 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
19116
19117         * reflection.c: use the right array element type and handle
19118         a null for a Type argument, too.
19119
19120 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
19121
19122         * reflection.c: handle arrays as arguments to custom attributes.
19123
19124 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
19125
19126         * reflection.c: handle a string value in a custom attr
19127         ctor that takes an object.
19128
19129 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
19130
19131         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
19132         (fix bug #42063)
19133
19134 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
19135
19136         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
19137
19138 2003-04-27  Martin Baulig  <martin@ximian.com>
19139
19140         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
19141         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
19142         MONO_DEBUGGER_EVENT_BREAKPOINT.
19143         (mono_breakpoint_trampoline_code): Removed.
19144         (mono_debugger_event_handler): The last argument is now a
19145         `guint32'.
19146         (mono_debugger_insert_breakpoint_full): Removed the
19147         `use_trampoline' argument.
19148         (mono_debugger_method_has_breakpoint): Likewise.
19149         (mono_debugger_trampoline_breakpoint_callback): Renamed to
19150         mono_debugger_breakpoint_callback(); take the method and
19151         breakpoint number as arguments.
19152
19153 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
19154
19155         * metadata.c: fix off by one when loading parameters attributes.
19156
19157 2003-04-24  Martin Baulig  <martin@ximian.com>
19158
19159         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
19160
19161 2003-04-24  Martin Baulig  <martin@ximian.com>
19162
19163         * mono-debug-debugger.c: Moved all code which interacts with the
19164         Mono Debugger here.
19165
19166         * debug-mono-symfile.c: This code now just deals with the symbol
19167         file itself, the debugger code is now in mono-debug-debugger.c.
19168
19169 2003-04-23  Martin Baulig  <martin@ximian.com>
19170
19171         * mono-debug.c (mono_debug_source_location_from_il_offset):
19172         New method; like mono_debug_source_location_from_address(), but
19173         takes an IL offset instead of a machine address.
19174
19175 2003-04-23  Martin Baulig  <martin@ximian.com>
19176
19177         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
19178         `line' field; this is now computed by the debugger.
19179
19180 2003-04-23  Martin Baulig  <martin@ximian.com>
19181
19182         * mono-debug.[ch]: New files.  This is the new debugging interface.
19183
19184         * mono-debug-debugger.[ch]: New files.  Moved all code which
19185         interacts with the Mono Debugger here.
19186
19187 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
19188
19189         * domain.c (mono_init): initialize mono_defaults.monitor_class
19190
19191 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
19192
19193         * reflection.c (method_encode_code): Add a spicy exception to help
19194         future compiler authors.
19195
19196 2003-04-21  Martin Baulig  <martin@ximian.com>
19197
19198         * icall.c
19199         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
19200         Make this work with relative pathnames; g_filename_to_uri() needs
19201         an absolute filename.
19202
19203 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
19204
19205         * icall.c: Track name changes in Object and ValueType.
19206
19207 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
19208
19209         * metadata.c (mono_type_stack_size): size should be a multiple of
19210         sizeof (gpointer)
19211
19212 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19213
19214         * gc.c:
19215         (internal_domain_finalize): moved into mono_domain_finalize. No need
19216         to create another thread because the finalizers will be run in the
19217         finalizer thread.
19218         
19219         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
19220         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
19221         to be run (MS does this too).
19222
19223 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
19224
19225         * object.c (mono_class_compute_gc_descriptor): Update comment.
19226
19227         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
19228
19229         * image.h: Add synchronized wrapper cache.
19230
19231         * image.c (do_mono_image_open): Initialize cache.
19232
19233         * reflection.c (create_dynamic_mono_image): Initialize cache.
19234
19235 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19236
19237         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
19238         ves_icall_System_Buffer_ByteLengthInternal.
19239
19240 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19241
19242         * reflection.c: setup klass->nested_in earlier. Allow
19243         a dash in the assembly name.
19244
19245 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
19246
19247         * metadata.c (mono_type_to_unmanaged): dont access
19248         type->data.klass for MONO_TYPE_OBJECT
19249         (mono_type_to_unmanaged): consider System.Delegate class
19250
19251 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
19252
19253         * class.c: just setup supertypes in the proper place instead of
19254         initializing the full element class for arrays.
19255
19256 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19257
19258         * class.c: ensure the element class of arrays is initialized.
19259         Setup the supertype info for array classes, too.
19260
19261 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
19262
19263         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
19264
19265 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19266
19267         * Makefile.am: re-added -m option when running cygpath. This way,
19268         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
19269         separator.
19270         * mono-config.c: same codepath for locating mono config file for WIN32
19271         and the rest.
19272         * assembly.c: if mono_assembly_setrootdir is called, don't override
19273         the value set.
19274
19275 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19276
19277         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
19278         MONO_ASSEMBLIES variable.
19279
19280 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
19281
19282         * icall.c: added Assembly::GetNamespaces() icall.
19283
19284 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19285
19286         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
19287
19288 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
19289
19290         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
19291         * object.c: fixed bug in the construction of vtable for proxies
19292
19293 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
19294
19295         * object.c (mono_array_new): Mark mono_array_new as an icall.
19296
19297 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19298
19299         * class.c: fixed test for public method when overriding interfaces.
19300         Closes bug #40970.
19301
19302 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19303
19304         * appdomain.h, domain.c: added mono_domain_foreach() to
19305         be able to access the currently loaded appdomains.
19306         * object.c: make string interning work across sppdomains.
19307         Mark some functions for use as icalls.
19308
19309 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
19310
19311         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
19312
19313         * reflection.h reflection.c: Allocate long living data using 
19314         GC_MALLOC_ATOMIC so the collector does not need to scan it.
19315
19316         * reflection.c: Double the allocation size in streams instead of
19317         increasing it, to prevent unneccesary copying on large assemblies.
19318         
19319         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
19320         creation if the assembly does not have the Run flag set.
19321
19322 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
19323
19324         * class.h: avoid the C++ keywords in header files (Jerome Laban
19325         spotted and fixed this).
19326
19327 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19328
19329         * object.c:
19330         (mono_unhandled_exception): fill in the arguments for the
19331         UnhandledException event. Only trigger that event for the default
19332         domain (as MS does).
19333
19334 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
19335
19336         * object.c: Improve typed allocation stuff based on suggestions from
19337         Paolo. Also turn it on if the GC library supports it.
19338
19339 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
19340
19341         * object.c object.h class.h: Added experimental typed allocation
19342         facility using the interfaces in gc_gcj.h.
19343
19344         * os/gc_wrapper.h: Added new include files.
19345         
19346 2003-04-03  Martin Baulig  <martin@ximian.com>
19347
19348         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
19349         which is not yet enabled by default.
19350
19351         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
19352         functions.
19353         (mono_gc_lock, mono_gc_unlock): New static functions.
19354
19355         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
19356         functions; stop/start the world for the garbage collector.  This
19357         is using the windows API; we need to complete the SuspendThread()/
19358         ResumeThread() implementation in the io-layer to make this work on Unix.
19359         (mono_gc_push_all_stacks): New public function; tells the garbage
19360         collector about the stack pointers from all managed threads.
19361
19362 2003-04-03  Martin Baulig  <martin@ximian.com>
19363
19364         * object.h (MonoThread): Added `gpointer stack_ptr'.
19365
19366         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
19367
19368 2003-04-03  Martin Baulig  <martin@ximian.com>
19369
19370         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
19371
19372 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
19373
19374         * reflection.c (typebuilder_setup_fields): Initialize field.first and
19375         field.last.
19376
19377 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
19378
19379         * loader.c (mono_lookup_internal_call): Report the corlib that is
19380         out of sync.
19381
19382 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
19383
19384         * icall.c (ves_icall_type_GetTypeCode): fixed check for
19385         System.DBNull (it's class not valuetype).
19386
19387 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19388
19389         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
19390         if the array method was already assigned a token (fixes bug#40646).
19391
19392 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
19393
19394         * reflection.c (mono_reflection_get_type): Attempt type resolve even
19395         if no assembly is given.
19396
19397 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
19398
19399         * metadata.h: Added the new tables.
19400
19401         * row-indexes.h: Added definitions for new tables.
19402
19403         * metadata.c: Add schemas for new tables, and add support for
19404         computing the sizes of them.
19405
19406         * class.c: Update for handling the new type cases.
19407
19408 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
19409
19410         * metadata.h (MONO_TYPE_IS_VOID): new macro
19411
19412 2003-03-31  Martin Baulig  <martin@ximian.com>
19413
19414         * threads.h (MonoThreadCallbacks): Added `thread_created'.
19415
19416         * threads.c (mono_thread_new_init): Call `thread_created' in the
19417         mono_thread_callbacks.
19418
19419 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
19420
19421         * loader.h: added marshalbyrefobject_class to mono_defaults
19422         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
19423         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
19424           generation of output parameters.
19425           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
19426         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
19427           contextbound and the target object belongs to the context of the caller.
19428         * object.h: added context and unwrapped_server variables in MonoRealProxy.
19429         * object.c: Implemented support for interfaces and abstract classes
19430           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
19431           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
19432
19433 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
19434
19435         * class.h class.c (mono_class_is_subclass_of): New function.
19436         
19437         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
19438         routines for most common case (calls from ArrayList::ToArray).
19439
19440         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
19441         routine so programs which call Environment::Exit() can be profiled.
19442
19443         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
19444         Added MONO_ARCH_SAVE_REGS.
19445
19446         * icall.c (ves_icall_type_is_subtype_of): Use new function.
19447
19448 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
19449
19450         * blob.h: Add a couple of new MonoType types definitions.
19451
19452         * tabledefs.h: Add a couple of new call convs.
19453
19454 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
19455
19456         * reflection.h (MonoReflectionDynamicAssembly): track changes in
19457         the layout of the class.
19458
19459         * reflection.c (alloc_table): double the size on overflow to avoid
19460         unnecessary copying.
19461
19462         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
19463         avoid filling out metadata tables and blobs. Also set mb->ilgen to
19464         null so it can be garbage collected.
19465         
19466 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
19467
19468         * reflection.c (mono_reflection_get_type): Return the resolved type
19469         only if it is in the assembly we searched.
19470
19471         * reflection.c (ensure_runtime_vtable): Initialize method slots.
19472
19473         * class.c (mono_class_setup_vtable): Set the slot of the overriding
19474         method.
19475
19476 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19477
19478         * appdomain.c:
19479         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
19480         the right one is 'file:///blah', but MS allows it.
19481         * assembly.c:
19482         (mono_assembly_open): allow 'file://blah'
19483
19484         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
19485
19486 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
19487
19488         * socket-io.c: fixes bug #40310.
19489
19490 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
19491
19492         * reflection.c (mono_reflection_parse_type): handle deeply nested
19493         types correctly.
19494
19495         * reflection.c (mono_image_create_token): Use unique token values
19496         since they will be put into a hash table.
19497
19498         * class.c (mono_class_setup_vtable): If a method occurs in more than
19499         one place in the vtable, and it gets overriden, then change the
19500         other occurances too.
19501
19502         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
19503         object as return type.
19504
19505 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
19506
19507         * icall.c: Deleted "ToString" implementation for double and float
19508         because they are full implemented in managed code.
19509
19510 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
19511
19512         * reflection.c, reflection.h: implemented and exported functions
19513         to retrieve info about custom attributes.
19514
19515 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19516
19517         * appdomain.c: moved Uri handling to assembly.c
19518         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
19519         work when using a file Uri in *nix and windows.
19520
19521         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
19522         GetReferencedAssemblies.
19523
19524 2003-03-18  Dick Porter  <dick@ximian.com>
19525
19526         * icall.c: Rename a couple of internal calls
19527
19528         * threads.c: Set the thread state to Stopped when a thread exits.
19529         Fixes bug 39377.
19530
19531 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
19532
19533         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
19534         New icall.
19535
19536         * object.c (mono_class_vtable): fix warning.
19537
19538 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
19539
19540         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
19541
19542         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
19543         memory.
19544         (method_encode_clauses): Create exception info structures in the right
19545         order.
19546         (mono_reflection_setup_internal_class): Initialize supertypes field.
19547
19548         * class.c object.c: Handle interfaces which implement other interfaces 
19549         correctly.
19550
19551         * class.h class.c: Move the supertypes array initialization code into 
19552         a separate function so it can be used for dynamic types too. Also call
19553         it earlier, in mono_class_init(), since it can be used before the
19554         type is initialized.
19555
19556 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19557
19558         * Makefile.am:
19559         * assembly.c:
19560         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
19561
19562         * appdomain.c:
19563         * appdomain.h:
19564         * marshal.c:
19565         * object.c: remove warnings.
19566
19567 2003-03-13  Martin Baulig  <martin@ximian.com>
19568
19569         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
19570         (MonoDebugLexicalBlockEntry): New types.
19571
19572         * debug-mono-symfile.c
19573         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
19574
19575 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19576
19577         * process.c: ret can be any non-zero value accroding to MS doc.
19578
19579 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
19580
19581         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
19582         fixing a warning for a miss-used prototype, would have cause
19583         random memory corruption.
19584
19585 2003-03-07  Martin Baulig  <martin@ximian.com>
19586
19587         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
19588         getting really annoying ....
19589
19590 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
19591
19592         * reflection.c (fixup_method): added support for array methods.
19593
19594 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
19595
19596         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
19597         (pointed out by Michael Adams).
19598
19599 2003-03-04  Dick Porter  <dick@ximian.com>
19600
19601         * icall.c: Temporarily reverted the Double and Single ToString()
19602         change, because it broke nunit.
19603
19604 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
19605
19606         * object.h, threads.h: make include files compatible with C++
19607         (patch by Jerome Laban <jlaban@wanadoo.fr>).
19608
19609 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
19610
19611         * icall.c: Erased ToString helper functions for Double and Single.
19612         Now, that implementations ar all in managed code (Double and Single
19613         Formatters).
19614
19615 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
19616
19617         * appdomain.c: Added method for initializing the default context of
19618         a domain. Added internal call for getting the default context.
19619         * appdomain.h: Added context variable in MonoDomain struct.
19620         * domain.c: mono_domain_set also sets the default context of the domain
19621         * icall.c: Mapped internal method InternalGetDefaultContext.
19622         * object.c: mono_object_get_virtual_method returns always a remoting
19623         wrapper if the object is a transparent proxy.
19624         mono_runtime_invoke_array: when creating an object by calling the
19625         constructor, if the created object is a proxy, then the constructor should
19626         be called using the a remoting wrapper.
19627
19628 2003-03-03  Dick Porter  <dick@ximian.com>
19629
19630         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
19631         variable so it compiles on solaris.  Problem spotted by
19632         Christopher Taylor <ct@cs.clemson.edu>
19633
19634 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19635
19636         * appdomain.c:
19637         (get_info_from_assembly_name): don't leak value.
19638
19639         * icall.c:
19640         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
19641         result.
19642
19643 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
19644
19645         * assembly.c: export mono_image_load_references ().
19646         * class.c: handle function pointers. mono_class_from_name() now
19647         supports nested type names directly.
19648
19649 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
19650
19651         * reflection.h reflection.c: Encode already created dynamic methods 
19652         and fields correctly as a DEF instead of a REF.
19653
19654         * reflection.c: Get rid of the force_ref argument to 
19655         mono_image_typedef_or_ref since it was wrong in the first place.
19656
19657         * string-icalls.c: add error checking to string constructors according
19658         to the MSDN docs.
19659
19660         * reflection.c: Emit types in the order their TypeBuilders were 
19661         created. Previously, a new table index was assigned to each type before
19662         the tables were emitted. This was wrong because the signature blob
19663         might already refer to a type by its original table index.
19664
19665 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
19666
19667         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
19668         change.
19669         
19670 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19671
19672         * Makefile.am: make assemblies dir have \ instead of / on windows.
19673
19674 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
19675
19676         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
19677         iterate over the NESTEDCLASS table using a linear search since the
19678         table is not guaranteed to be sorted by the secondary key.
19679
19680         * class.c (mono_class_create_from_typedef): fixed up call to
19681         mono_metadata_nesting_typedef.
19682         
19683 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
19684
19685         * marshal.c (mono_string_to_byvalstr): clear the memory as
19686         suggested by Jerome Laban <jlaban@wanadoo.fr>
19687
19688 2003-02-26  Dick Porter  <dick@ximian.com>
19689
19690         * process.c: Cope with padding in .rsrc blocks
19691
19692 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
19693
19694         * metadata.h: reverted the filter_len change, it breaks reflection
19695         
19696 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
19697
19698         * metadata.h: added a new field to store the filter_len
19699         
19700
19701 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
19702
19703         * reflection.c: handle custom attributes for types and members
19704         created with Reflection.Emit (bug#38422).
19705
19706 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
19707
19708         * reflection.c: define RTSpecialName automatically for constructors for
19709         compatibility with MS.NET.
19710
19711         * reflection.c (mono_reflection_create_runtime_class): initialize
19712         nested_in field of dynamically created classes.
19713
19714 2003-02-22  Martin Baulig  <martin@ximian.com>
19715
19716         * debug-mono-symfile.h: Incremented version number.
19717
19718 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
19719
19720         * object.h icall.c process.c: fix warnings.
19721
19722 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
19723
19724         * appdomain.h appdomain.c:
19725         (mono_domain_try_type_resolve): split the 
19726         name_or_tb argument into a name and a tb argument.
19727         (mono_domain_has_type_resolve): new function to check whenever the
19728         application has registered a TypeResolve event handler.
19729         
19730         * icall.c reflection.h reflection.c: move the type resolve logic into
19731         mono_reflection_get_type () so it will be invoked when 
19732         Assembly::GetType () is called.
19733
19734         * reflection.c:
19735         (mono_reflection_get_type): renamed to get_type_internal.
19736         (mono_reflection_get_type): fixed type name generation so it works 
19737         for nested types too.
19738         (mono_reflection_get_type): call has_type_resolve () to avoid the 
19739         costly type name generation if there is no resolve event handler.
19740
19741 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
19742
19743         * class.c, image.c: load exported types from file references.
19744
19745 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
19746
19747         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
19748           used to cache the managed methods used to create proxies and make 
19749           remote invocation of methods.
19750         * class.h: Added in MonoVTable a flag to indicate that a class needs 
19751           to be remotely created.
19752         * object.c: Modified the method mono_class_vtable(). It now initializes 
19753           the remote flag of the vtable. Modified mono_object_new_specific(), 
19754           so now it checks the remote flag.
19755         * icall.c: Added a couple of internal methods, one for enabling instance 
19756           creation interception for a type, and one for creating objects bypassing
19757           the remote check.
19758
19759 2003-02-18  Martin Baulig  <martin@ximian.com>
19760
19761         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
19762         New interncall to get a method's metadata token.
19763
19764         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
19765         New interncall for the debugger.
19766
19767 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
19768
19769         * class.c (mono_class_setup_vtable): allocate supertype array
19770
19771 2003-02-18  Martin Baulig  <martin@ximian.com>
19772
19773         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
19774
19775 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19776
19777         * reflection.c:
19778         (assembly_name_to_aname): jump over unknown properties (i've found
19779         something like: 'type, assembly, version=xxx, custom=null, public...',
19780         so now will ignore custom=null and still get the rest of the values).
19781
19782 2003-02-17  Dick Porter  <dick@ximian.com>
19783
19784         * threads.c: Have Thread.Start() wait for a semaphore to signal
19785         that the thread has set up all its local data.  This fixes bug
19786         34323, where Abort() raced the new thread's TLS data.
19787
19788         Also removes the handle_store() call from start_wrapper, because
19789         threads are now always created suspended and there is no longer a
19790         race between the parent and child threads to store the info.
19791
19792 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
19793
19794         * image.c: explain the #- heap issue in a message, hopefully
19795         avoiding FAQs on mono-list.
19796
19797 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19798
19799         * icall.c:
19800         (GetEntryAssembly): if the domain has not invoked
19801         AppDomain.ExecuteAssembly yet, return the assembly of the default
19802         AppDomain.
19803
19804 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
19805
19806         * class.c (mono_ldtoken): make it work in dynamic assemblies.
19807
19808 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
19809
19810         * metadata.c, reflection.c: simple speedup to type hash
19811         and equals code.
19812
19813 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
19814
19815         * image.c, image.h, class.c, assembly.c: move module loading
19816         to MonoImage. When loading metadata, consider alignemnet from
19817         the start of metadata, not from the metadata address in memory.
19818
19819 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
19820
19821         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
19822         AssemblyBuilder objects. Factored out custom attribute creation into
19823         a separate function.
19824         (create_custom_attr): new function to create custom attributes.
19825
19826 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
19827
19828         * Makefile.am: Got tired of typing the full pathname to pedump.
19829         Until there is another option, am installing this.
19830
19831 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
19832
19833         * class.c (class_compute_field_layout): always set field->parent 
19834         (mono_ldtoken): use mono_defaults.fieldhandle_class;
19835
19836 2003-02-11  Dick Porter  <dick@ximian.com>
19837
19838         * threads-types.h:
19839         * monitor.c: Rewrote Monitor, making lock much faster and
19840         Pulse/Wait work as specified.  Also uses much fewer handles, and only
19841         creates them as needed.
19842
19843         * exception.c: Added SynchronizationLockException
19844
19845         * threads.c: Deleted old Monitor implementation.  The new one is
19846         in a new file.
19847
19848 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
19849
19850         * class.c: handled TypedReference type code. Set the correct size for
19851         class data. Setup interface_offsets for interface classes, too.
19852
19853 2003-02-09  Martin Baulig  <martin@ximian.com>
19854
19855         * debug-mono-symfile.h: Reflect latest symbol writer changes.
19856
19857 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
19858
19859         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
19860         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
19861         * object.c: fixed mono_object_get_virtual_method () for interfaces.
19862         * verify.c: check for code that runs after the end of the method.
19863
19864 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
19865
19866         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
19867         "System.Math::Round2".
19868         * sysmath.h: Added Floor, Round and Round2 definitions.
19869         * sysmath.c: Modified certain functions that were not 100% compliant
19870         with MS.NET (math precision) and added the implementation of Floor,
19871         Round and Round2.
19872
19873 2003-02-07  Martin Baulig  <martin@ximian.com>
19874
19875         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
19876
19877 2003-02-07  Martin Baulig  <martin@ximian.com>
19878
19879         * debug-mono-symfile.c: Reflected latest symwriter changes.
19880         (mono_debug_create_mono_symbol_file): Removed.
19881         (mono_debug_open_mono_symbol_file): Take an argument which
19882         specifies whether to create a dynamic symbol file.
19883
19884 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
19885
19886         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
19887
19888 2003-02-05  Martin Baulig  <martin@ximian.com>
19889
19890         * reflection.c (mono_image_build_metadata): Make this public,
19891         protect it against being called multiple times, don't create
19892         resources and don't build the compressed metadata here.
19893         (mono_image_create_pefile): Do this here.
19894
19895         * icall.c
19896         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
19897
19898 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19899
19900         * socket-io.c: fixed bug #36322.
19901
19902 2003-02-06  Piers Haken <piersh@friskit.com>
19903
19904         * appdomain.[ch]:
19905         * class.h:
19906         * debug-mono-symfile.c:
19907         * icall.c:
19908         * loader.c:
19909         * mono-config.c:
19910         * monosn.c:
19911         * reflection.c:
19912         * socket-io.c: warning cleanups
19913
19914 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
19915
19916         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
19917         function. works like remoting invoke, but does a check for the Proxy first.
19918
19919 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
19920
19921         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
19922
19923 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
19924
19925         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
19926         array of pointers.
19927         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
19928         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
19929
19930         * object.c (mono_store_remote_field_new): used by the new jit
19931         instead of mono_store_remote_field
19932         (mono_load_remote_field_new): used by the new jit
19933         instead of mono_load_remote_field
19934
19935 2003-02-05  Patrik Torstensson
19936
19937         * appdomain.c: changed unload to take the domain id instead
19938         of domain
19939         
19940         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
19941
19942
19943 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19944
19945         * appdomain.c: don't look for assemblies in ApplicationBase if
19946         PrivateBinPathProbe is set.
19947
19948 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19949
19950         * object.c: make the first argument in main_args contain the absolute
19951         path to the assembly. Fixes bug #37511.
19952
19953 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19954
19955         * icall.c: get correct UTC offset for countries not using daylight
19956         time saving. Fixes bug #30030.
19957
19958 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19959
19960         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
19961         and 1 are the family).
19962
19963 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
19964
19965         * icall.c (ves_icall_InternalExecute): removed wrong assertion
19966
19967         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
19968
19969 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
19970
19971         * reflection.c: added support for SignatureHelper tokens, which is
19972         needed by the Calli opcode.
19973
19974         * reflection.h: track changes to SignatureHelper class.
19975
19976         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
19977
19978 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19979
19980         * appdomain.c: fixed loading assemblies from PrivateBinPath.
19981
19982 2003-02-03  Patrik Torstensson
19983         * appdomain.[c|h], domain.c : 
19984          - Added support for getting a domain via domain id
19985          - Support for setting and getting domain from System.AppDomain 
19986            (used in cross appdomain channel)
19987          - Added support for get/set for a MonoAppContext on a thread 
19988            (Context class in System.Runtime.Remoting.Contexts),
19989          - Removed hack in Get/SetData and ExecuteAssembly.
19990         
19991         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
19992         the managed world to get control when a proxy is created.
19993
19994         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
19995         
19996 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
19997
19998         * icall.c
19999         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20000         Populate the codebase field as well.
20001
20002 2003-02-02  Martin Baulig  <martin@ximian.com>
20003
20004         * debug-mono-symfile.c
20005         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
20006         (mono_debug_symfile_add_method): Allow interncalls.
20007
20008 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20009
20010         * icall.c: throw parse exception if strtod fails or the string is empty.
20011
20012 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
20013
20014         * marshal.c: handle object type separately from defined
20015         class types.
20016
20017 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
20018
20019         * marshal.c: handle NATIVE_LPSTR for strings when it's
20020         explicitly specified.
20021
20022 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
20023
20024         * reflection.c, reflection.h, icall.c: setup the reflection
20025         handle cache for ModuleBuilders and AssemblyBuilders.
20026
20027 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
20028
20029         * reflection.c (reflection_methodbuilder_to_mono_method): set
20030         pinvoke flag
20031
20032 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20033
20034         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
20035
20036 2003-01-29  Dick Porter  <dick@ximian.com>
20037
20038         * threads.c: No need for the fake_thread kludge now that Thread
20039         doesn't run a class constructor
20040         
20041 2003-01-29  Dick Porter  <dick@ximian.com>
20042
20043         * threads.c: Use g_direct_hash instead of the rather bogus
20044         g_int_hash
20045
20046 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
20047
20048         * marshal.c (mono_marshal_get_native_wrapper): add check for null
20049         (fix pinvoke12.exe)
20050         (mono_marshal_get_struct_to_ptr): generate valid IL code
20051         (mono_marshal_get_ptr_to_struct): generate valid IL code
20052         (*): correctly set sig->pinvoke, we need to memdup the signature
20053         to do that
20054
20055 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20056
20057         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
20058         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
20059
20060 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20061
20062         * profiler.c: provide more callers information.
20063
20064 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
20065
20066         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
20067
20068         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
20069
20070         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
20071
20072 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20073
20074         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
20075         exception instead of going into an infinite loop on dates which it 
20076         can't yet handle.
20077
20078         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
20079         out-of-range exception if needed.
20080
20081         * class.c (mono_class_setup_vtable): allow a virtual method to provide
20082         an implementation for an interface method and to override an inherited
20083         method at the same time. 
20084         Imagine a scenario when a virtual method is used to override a
20085         virtual abstract method in a parent class, and this same method 
20086         provides an implementation for an method inherited from an interface. 
20087         In this case, the interface resolution code will set im->slot, which 
20088         means that the virtual method override pass will skip this method 
20089         which means a pointer to the abstract method inherited from the parent
20090         will remain in the vtable of this non-abstract class.
20091
20092         * class.c: (mono_class_setup_vtable): continue search for a real 
20093         method if only an abstract method is found.     
20094
20095 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20096
20097         * reflection.c: add size to encoding for ByValStr and ByValArray
20098         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
20099
20100 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20101
20102         * class.c (mono_class_setup_vtable): pass the override info as an
20103         argument.
20104
20105         * class.c (mono_class_setup_vtable): set the slot of overriding methods
20106         correctly.
20107         
20108         * reflection.c (ensure_runtime_vtable); add support for method 
20109         overrides.
20110         
20111 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20112
20113         * reflection.c (resolution_scope_from_image): Hack to work to work with
20114         dynamic assemblies.
20115
20116         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
20117         added a 'force_ref' argument to force this function to allways return 
20118         a TypeRef. This is needed by mono_image_get_memberref_token ().
20119         
20120 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20121
20122         * reflection.c (mono_image_get_type_info): interfaces really don't have
20123         a parent.
20124
20125         * reflection.c (mono_image_basic_init): fill out missing fields of
20126         image structure.
20127
20128         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
20129         dynamic assemblies. This is required so dynamic assemblies show up in
20130         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
20131         Type::GetType() etc. This is consistent with MS behaviour.
20132
20133         * image.c image.h reflection.c: add newly created classes to the name 
20134         cache so mono_class_get () will find them.      
20135
20136 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20137
20138         First part of changes to get IKVM.NET running under mono.
20139         
20140         * appdomain.h, appdomain.c: added new function 
20141         mono_domain_try_type_resolve() which will emit TypeResolve events. 
20142         This function will call AppDomain::DoTypeResolve to do the actual work.
20143
20144         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
20145         moved existing code dealing with dynamic tokens to a new function 
20146         called mono_reflection_lookup_dynamic_token (). This function will 
20147         raise TypeResolve events when appropriate. Since reflection.c is not 
20148         part of libmetadata, a new hook function called 
20149         mono_lookup_dynamic_token() is added to class.c which will call this.
20150
20151         * assembly.h assembly.c: make the invoke_load_hook function public,
20152         so it can be called for dynamic assemblies.
20153
20154         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
20155
20156         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
20157         type isn't found.
20158
20159         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
20160         MonoGHashTable, since it contains pointers to objects which the GC 
20161         needs to track.
20162
20163         * assembly.c (search_loaded): remove unused variable.
20164         
20165 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
20166
20167         * object.c: fixed issue exposed by gcc-generated IL programs
20168         that use RVA data for pointers.
20169
20170 2003-01-25  Martin Baulig  <martin@ximian.com>
20171
20172         * threads.c (start_wrapper): Moved the initialization of
20173         `start_func' above the mono_new_thread_init() call to which we
20174         pass it as argument.
20175
20176 2003-01-24  Martin Baulig  <martin@ximian.com>
20177
20178         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
20179         the MonoThread pointer.
20180
20181 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
20182
20183         * icall.c: Rename `PowImpl' to Pow.
20184
20185 2003-01-23  Dick Porter  <dick@ximian.com>
20186
20187         * threads.c (start_wrapper): Create a Thread object if needed, so
20188         the Main() thread can do the class initialisation in a subthread
20189         that has been set up to allow managed code execution.
20190
20191         Pass the thread ID instead of the MonoThread pointer to the thread
20192         start and attach callbacks.  This change is required, because the
20193         jit thread start callback must be called _before_ the Thread
20194         object can be created.
20195         
20196         (mono_thread_init): Removed much object creation code that is no
20197         longer needed.  No managed code is called from here now.
20198
20199         * object.c (mono_runtime_exec_managed_code): Create a subthread
20200         for Main, and call back to the runtime to use it.
20201         Set the exit code when Main exits.
20202
20203         * gc.c: Make sure domain finalisation happens in a subthread.
20204         Re-enable threaded GC, fixing bug 31333 (again).
20205
20206         * environment.c: System.Environment internall calls (so far just
20207         ExitCode is here, the others are still in icall.c)
20208
20209         * appdomain.c (mono_runtime_cleanup): All threads running managed
20210         code should have finished before mono_runtime_cleanup() is
20211         reached, so no need to clean up threads.
20212
20213 2003-01-22  Martin Baulig  <martin@ximian.com>
20214
20215         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
20216         `gpointer func' arguments.      
20217         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
20218         but added `MonoThread *thread' argument.
20219         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
20220
20221         * threads.c (mono_new_thread_init): Added `gpointer func' argument
20222         and pass it to the mono_thread_start_cb callback.
20223         (mono_install_thread_callbacks): New public function to install a
20224         set of callbacks which are set by the debugger.
20225         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
20226
20227 2003-01-22  Martin Baulig  <martin@ximian.com>
20228
20229         * Makefile.am: Install debug-mono-symfile.h.
20230
20231 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
20232
20233         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
20234
20235 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
20236
20237         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
20238         * class.c (mono_ptr_class_get): correctly set access levels of pointers
20239         (mono_array_class_get): correctly set access levels of arrays
20240
20241 2003-01-20      Patrik Torstensson
20242         * image.h (MonoAssemblyName): changed major, minor, build, revision
20243         from signed to unsigned.
20244
20245 2003-01-20  sean kasun <skasun@azstarnet.com>
20246
20247         * reflection.c (load_cattr_value): Now this handles
20248         MONO_TYPE_SZARRAY.  Fixes bug #35629
20249
20250 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
20251
20252         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
20253         integer value
20254
20255 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20256
20257         * decimal.c: fixed bug #26056.
20258
20259 2003-01-17  Martin Baulig  <martin@ximian.com>
20260
20261         * gc.c: Raise an ExecutionEngineException instead of using g_error().
20262
20263 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20264
20265         * exception.[ch]:
20266         (mono_get_exception_type_initialization): new function.
20267
20268         * object.c: throw a TypeInitializationException when an exception is
20269         thrown invoking the class constructor.
20270
20271 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20272
20273         * reflection.c: fixed attribute reading.
20274
20275 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20276
20277         * icall.c:
20278         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
20279         provided, look for the type in the calling assembly and then in
20280         mscorlib; if the assembly name is provided, only try that one.
20281
20282 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
20283
20284         * object.c: register the vtable before there is a chance it's
20285         queried again recursively.
20286
20287 2003-01-13  Duncan Mak  <duncan@ximian.com>
20288
20289         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
20290         gc-internal.h. 
20291         
20292 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
20293
20294         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
20295
20296 2003-01-11  Martin Baulig  <martin@ximian.com>
20297
20298         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
20299         this to 20 for the release.
20300
20301 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
20302
20303         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
20304
20305         * loader.c (mono_method_get_marshal_info): bug fix
20306
20307         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
20308         structures with explicit layout
20309
20310 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20311
20312         * profiler.c: made the output more readable (and sorted). 
20313         Added caller information for the allocation profiler.
20314
20315 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
20316
20317         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
20318
20319 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20320
20321         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
20322         to get value types.
20323         
20324 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
20325
20326         * object.c, profiler.h, profiler.c, profiler-private.h:
20327         Added object allocation profiler.
20328
20329 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
20330
20331         * reflection.h, reflection.c: handle global methods.
20332         Compress blob entries.
20333
20334 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
20335
20336         * marshal.c: fix compilation.
20337
20338 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
20339
20340         * loader.c (mono_method_get_marshal_info): impl.
20341
20342         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
20343
20344 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20345
20346         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
20347         for reference types.
20348
20349 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
20350
20351         * loader.c: fixed off by one error in loaded parameter names.
20352
20353 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
20354
20355         * marshal.c (mono_marshal_get_icall_wrapper): like
20356         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
20357         instead of a MonoMethod.
20358
20359 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20360
20361         * decimal.c: fixed bug #36537.
20362
20363 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
20364
20365         * marshal.c: throw a missing method exception if a
20366         P/Invoke method is not found.
20367
20368 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20369
20370         * icall.c: allow a null this for constructors.
20371
20372 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
20373
20374         * icall.c: raise the proper exceptions if the arguments to the
20375         internal Invoke are incorrect.
20376
20377 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
20378
20379         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
20380
20381 2003-01-03  Martin Baulig  <martin@ximian.com>
20382
20383         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20384
20385 2002-12-31  Martin Baulig  <martin@ximian.com>
20386
20387         * debug-mono-symfile.c: Completely rewrote the type section.
20388         Instead of using individual malloc()ed fields, we use one big
20389         continuous memory area and offsets into this area.
20390         See the comments in the source code for details.
20391
20392 2002-12-30  Martin Baulig  <martin@ximian.com>
20393
20394         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
20395
20396 2002-12-30  Martin Baulig  <martin@ximian.com>
20397
20398         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
20399         line number table in this data blob instead of using an external
20400         pointer.
20401
20402 2002-12-28  Martin Baulig  <martin@ximian.com>
20403
20404         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20405
20406 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
20407
20408         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
20409         as a boxed return type.
20410
20411 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
20412
20413         * appdomain.c
20414         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
20415         g_build_filename to properly get separators on the filename created.
20416
20417         * object.h: Small change, introduce MonoMarshalByRefObject to
20418         track the layout of that structure in the C# universe as we make
20419         changes there.
20420
20421 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
20422
20423         * object.c: removed assert to allow static fields on interfaces.
20424         * loader.c: a TypeSpec may be used for any type, not just arrays.
20425
20426 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20427
20428         * class.c, class.h: added mono_class_array_element_size ().
20429         Ignore static methods in interfaces.
20430
20431 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20432
20433         * threads.c: fixed the build under cygwin.
20434
20435 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20436
20437         * reflection.c: handle nullref constants. Allocate keys for
20438         reflection handles with the GC.
20439
20440 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20441
20442         * threads.c, threads.h: added mono_thread_get_abort_signal()
20443         to get a suitable signal for thread abort.
20444
20445 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20446
20447         * metadata.c: fix handling of ExportedType table.
20448
20449 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20450
20451         * icall.c: added WriteWindowsDebugString internal call.
20452
20453 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20454
20455         * reflection.h: added fields to match C# implementation.
20456
20457 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20458
20459         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
20460
20461 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
20462
20463         * gc.h, gc-internal.h: Rename header for GC internal calls to
20464         gc-internal.h from gc.h as to not clash with Boehm GC having its
20465         header installed as <gc.h> in outside include paths.
20466         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
20467         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
20468
20469 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20470
20471         * icall.c: assign minor, build and revision in FillName.
20472
20473 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
20474
20475         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
20476         Added support for running code generated by Reflection.Emit.
20477
20478 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20479
20480         * appdomain.c: check for NULL argument in LoadFrom.
20481
20482 2002-12-10  Dick Porter  <dick@ximian.com>
20483
20484         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
20485
20486 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20487
20488         * appdomain.c: fix buglet when building exe file name.  Handle full
20489         assembly name (needed after latest changes to AssemblyName).
20490         * image.c:
20491         (mono_image_close): free some hashtables.
20492
20493 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
20494
20495         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
20496         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
20497         on some systems (redhat 7.3) 
20498
20499 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
20500
20501         * threads.c: delete the critical section of a sync block,
20502         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
20503
20504 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
20505
20506         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
20507
20508 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20509
20510         * appdomain.[ch]: handle the assembly preload event to try loading the
20511         assemblies using the paths we have in the current domain.
20512
20513         * assembly.[ch]: created an assembly preload hook that is called to try
20514         loading the assembly by other means that the ones provided here.
20515
20516         * domain.c: initialize the domain search path.
20517
20518         From now on, assemblies (TODO: except corlib and System) are loaded
20519         according to these rules when using mono_assembly_load ():
20520
20521                 1. It tries to load the assembly from the ApplicationBase
20522                 of the current domain appending .dll and .exe (TODO: have to
20523                 try loading from name/name.dll and name/name.exe).
20524
20525                 2. It tries the search path specified in PrivateBinPath for the
20526                 current domain (if any).
20527
20528                 3. Previous behavior.
20529
20530 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
20531
20532         * icall.c: implemented GetInterfaceMap() related icall.
20533         * domain.c, loader.h: load MethodInfo in mono_defaults.
20534
20535 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20536
20537         * gc.c: disable the finalizer thread for now, untill all the issues
20538         with it are resolved.
20539
20540 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20541
20542         * string-icalls.c: handle embedded nulls in string ctor when the
20543         length is specified.
20544
20545 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20546
20547         * class.c: look for explicit interface implementation in parent
20548         classes, too.
20549
20550 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
20551
20552         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
20553
20554 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
20555
20556         * gc.c: protect handles with a critical section.
20557
20558 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20559
20560         * icall.c:
20561         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
20562         parameters. If no assembly specified, try getting the type from all
20563         the assemblies in the current domain, else, load the assembly and get
20564         the type from it.
20565
20566 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20567
20568         * marshal.c: applied patch from Aleksey Demakov that fixes
20569         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
20570
20571 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20572
20573         * icall.c: fixed get_location.
20574
20575 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
20576
20577         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
20578         declarations to make it work with older gcc. 
20579
20580         * loader.c (mono_get_method): set signature->pinvoke for native calls
20581
20582 2002-11-20  Dick Porter  <dick@ximian.com>
20583
20584         * threads.c (mono_thread_init): Set the main thread's handle
20585
20586 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
20587
20588         * gc.c: allow compilation without GC support. Changed to match the
20589         mono coding style.
20590
20591 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20592
20593         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
20594
20595 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
20596
20597         * reflection.c: set a public key token on the core assemblies.
20598
20599 2002-11-18  Dick Porter  <dick@ximian.com>
20600
20601         * threads.c: Split out some thread initialisation so that other
20602         files can set the start callback function.
20603
20604         * gc.c: Run finalisers in a separate thread, to avoid stack
20605         overflow.  Fixes bug 31333.
20606
20607         * appdomain.c: Set up GC finalisation thread.
20608
20609         * reflection.c: 
20610         * object.c: 
20611         * domain.c: Use gc.h macros for GC_malloc
20612         
20613 2002-11-15  Dick Porter  <dick@ximian.com>
20614
20615         * threadpool.c: 
20616         * threads.c:
20617         * appdomain.c: Removed mono_runtime_init_with_attach(),
20618         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
20619         merging the extra parameter with the existing function.  Removed
20620         unneeded code in mono_thread_attach().
20621
20622 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
20623
20624         * image.c (mono_image_loaded_by_guid): a method to get loaded
20625         images by guid. 
20626         (load_metadata_ptrs): we store the guid as string.
20627
20628 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
20629
20630         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
20631
20632         * metadata.c (mono_guid_to_string): imported method form Zoltan
20633         Varga (slightly modified)
20634
20635         * assembly.c (mono_assembly_open): load precompiled code
20636
20637         * loader.h (MonoMethod): we store the method token for use in the
20638         aot compiler. 
20639
20640 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20641
20642         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
20643         the hook function called when an assembly is loaded.
20644         
20645         * domain.c: Modified file.
20646         (mono_domain_assembly_load): removed hash table insertion of assemblies.
20647
20648         Fixes bug #33196.
20649
20650 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
20651
20652         * reflection.c: Map PEFileKind to the value expected by the WinNT
20653         image loader. 
20654
20655 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20656
20657         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
20658         Read until the buffer is filled completely.
20659
20660 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20661
20662         * icall.c: implemented MonoType.InternalGetEvent ().
20663
20664 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20665
20666         * appdomain.c: implemented InitAppDomainSetup. Delayed
20667         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
20668         the entry_assembly.
20669
20670         * assembly.c: base_dir is now an absolute path ending with
20671         G_DIR_SEPARATOR.
20672
20673         * icall.c: modified get_location according to the above changes.
20674
20675         * object.c: init AppDomain.SetupInformation for the default domain after
20676         we have the entry assembly.
20677
20678         * domain.c: when unloading a domain, setup = NULL.
20679
20680 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
20681
20682         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
20683
20684 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
20685
20686         * object.h, object.c: introduced mono_object_get_virtual_method ()
20687         to lookup the method invoked on an object when a callvirt is done on
20688         a method.
20689         * icall.c: make MethodInfo::Invoke() always do a virtual call.
20690
20691 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20692
20693         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
20694         current domain when loaded an assembly and failed to load it.
20695
20696         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
20697
20698 2002-10-31  Dick Porter  <dick@ximian.com>
20699
20700         * icall.c: 
20701         * file-io.h: 
20702         * file-io.c: Return the error status in a parameter, as the
20703         GetLastError() value has long since been blown away if we try and
20704         look it up in a subsequent internal call invocation.  Delete the
20705         GetLastError() internal call, because it's useless.
20706
20707 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
20708
20709         * class.[ch]: added cast_class to fix bug 29517
20710
20711 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
20712
20713         * marshal.c: create valid IL code in the filter clause:
20714         the new JIT is less forgiving:-)
20715
20716 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20717
20718         * icall.c: removed get_property internal call.
20719
20720 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
20721
20722         * appdomain.h domain.c: Added an ID to appdomains.
20723         
20724         * threads.c threads.h icall.c: Implement icall
20725         Thread:GetDomainID(), and remove unused icall 
20726         CurrentThreadDomain_internal.
20727
20728 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20729
20730         * icall.c: Don't recurse through the base types in GetConstructor.
20731         Fixes bug #32063. 
20732
20733 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20734
20735         * mempool.h, mempool.c: added mono_mempool_empty() and
20736         mono_mempool_stats().
20737
20738 2002-10-23  Dick Porter  <dick@ximian.com>
20739
20740         * file-io.c: 
20741         * file-io.h: 
20742         * icall.c: Added MonoIO.GetFileType internal call
20743
20744 2002-10-17  Dick Porter  <dick@ximian.com>
20745
20746         * appdomain.c (mono_runtime_cleanup): Don't signal the async
20747         delegate semaphore before waiting for all threads to finish,
20748         because new threads can also call async delegates.  Fixes bug
20749         32004.
20750
20751         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
20752         of 3 seconds, in case another async job is queued.  (This part is
20753         needed because the bug fix reintroduced the 3s exit lag.)  This
20754         makes the mono_runtime_shutdown flag superfluous.
20755
20756 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20757
20758         * reflection.c: include ehader size in method section headers.
20759         Really check for suplicated modules entries.
20760
20761 2002-10-17  Martin Baulig  <martin@gnome.org>
20762
20763         * debug-mono-symfile.c: Added back support for locals.
20764
20765 2002-10-14  Martin Baulig  <martin@gnome.org>
20766
20767         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
20768         MONO_TYPE_VOID.
20769
20770 2002-10-14  Martin Baulig  <martin@gnome.org>
20771
20772         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
20773         mono_class_get() instead of looking in the class cache. 
20774
20775 2002-10-13  Martin Baulig  <martin@gnome.org>
20776
20777         * debug-mono-symfile.c: Set version number to 28, include the
20778         signature in method names.
20779
20780 2002-10-13  Martin Baulig  <martin@gnome.org>
20781
20782         * debug-mono-symfile.h: Set version number to 27.
20783
20784 2002-10-11  Martin Baulig  <martin@gnome.org>
20785
20786         * gc.c: Don't register/unregister NULL pointers as disappearing links.
20787
20788 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20789
20790         * metadata.c, metadata.h: added helper function to allocate signatures.
20791
20792 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20793
20794         * icall.c: added internal call to get the location of machine.config.
20795
20796 2002-10-08  Martin Baulig  <martin@gnome.org>
20797
20798         * debug-mono-symfile.c: Ignore classes with a pending init for the
20799         moment.
20800
20801 2002-10-03  Dick Porter  <dick@ximian.com>
20802
20803         * threads.c: Freebsd pthread_t is a pointer
20804
20805 2002-10-03  Dick Porter  <dick@ximian.com>
20806
20807         * socket-io.c: Implemented GetHostName_internal
20808
20809 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20810
20811         * mono-config.c:
20812         (mono_config_parse_file): don't leak the text.
20813
20814 2002-10-02  Martin Baulig  <martin@gnome.org>
20815
20816         * debug-mono-symfile.c: Added support for methods.
20817
20818 2002-10-01  Martin Baulig  <martin@gnome.org>
20819
20820         * debug-mono-symfile.c: Don't emit methods and line numbers for
20821         the dynamic symbol file, just write the type table.  We can easily
20822         have an external helper program which creates a symbol file for an
20823         IL file.        
20824
20825 2002-10-01  Dick Porter  <dick@ximian.com>
20826
20827         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
20828         Only add the handle to the cleanup array when we're about to
20829         launch the thread.  Bug 31425 deadlocked when the test was run on
20830         mono under w32.
20831
20832 2002-10-01  Martin Baulig  <martin@gnome.org>
20833
20834         * debug-mono-symfile.c: Added support for properties.
20835
20836 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20837
20838         * reflection.c: unaligned store fix from Mark Crichton
20839         <crichton@gimp.org>.
20840
20841 2002-09-27  Martin Baulig  <martin@gnome.org>
20842
20843         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
20844         New interncall.
20845
20846 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20847
20848         * assembly.h, assembly.c: use a sane API to hook into the assembly
20849         loading process instead of a useless special-purpouse hack
20850         (ngen needs a hook, too, for example).
20851
20852 2002-09-27  Dick Porter  <dick@ximian.com>
20853
20854         * threads.c (mono_thread_init): Call GetCurrentProcess() so
20855         io-layer can set up some process handle info.  Not needed on w32,
20856         but doesn't hurt either.
20857
20858         * process.c: Pass the program name in the second parameter to
20859         CreateProcess, so the path is searched.  Include the working
20860         directory. Implemented process name, process enumeration, and some
20861         process detail internal calls.
20862         
20863         * icall.c: Added internal calls for process lookup, and some
20864         process details
20865
20866 2002-09-26  Martin Baulig  <martin@gnome.org>
20867
20868         * assembly.c (mono_install_open_assembly_hook): New global
20869         function to install a function to be invoked each time a new
20870         assembly is loaded.
20871         (mono_assembly_open): Run this callback function if set.
20872
20873         * debug-mono-symfile.c: Put back line numbers for the dynamic
20874         symbol file and also record the .il file as source file.  This
20875         allows us to install the temporary symbol file as `file.dbg' just
20876         like a compiler-generated one.
20877
20878 2002-09-26  Nick Zigarovich <nick@chemlab.org>
20879
20880         * Corrected typo in gc.c (BOHEM vs BOEHM).
20881
20882 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20883
20884         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
20885         GetProperties. Also avoid calling g_slist_length in GetProperties and
20886         GetMethods.
20887
20888 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20889
20890         * reflection.c: avoid unaligned stores (bug spotted by
20891         Mark Crichton  <crichton@gimp.org>).
20892
20893 2002-09-25  Martin Baulig  <martin@gnome.org>
20894
20895         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
20896         instead of guint64 for addresses and added prologue/epilogue info.
20897
20898 2002-09-25  Martin Baulig  <martin@gnome.org>
20899
20900         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
20901         store line number info.  For the dynamic symbol file, we only need
20902         to provide the JIT generated dynamic line number info for the dynamic
20903         symbol file.
20904
20905 2002-09-25  Martin Baulig  <martin@gnome.org>
20906
20907         * debug-mono-symfile.h: Incremented version number.
20908
20909 2002-09-24  Martin Baulig  <martin@gnome.org>
20910
20911         * class.c (mono_debugger_class_init_func): New global function
20912         pointer variable.
20913         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
20914         call it.
20915
20916         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
20917         function.  This is called via the mono_debugger_class_init_func
20918         hook to add all types to the dynamic type table.
20919         (ves_icall_MonoDebugger_GetType): New interncall to get a class
20920         from its metadata token.
20921
20922         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
20923         New interncall for the debugger.
20924
20925 2002-09-24  Nick Drochak <ndrochak@gol.com>
20926
20927         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
20928         before using it in case it is null.
20929         
20930 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20931
20932         * metadata.c: allow custom modifiers in local var signatures
20933         (bug spotted by Zoltan Varga).
20934
20935 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20936
20937         * class.c: deal with the <Module> class that may have a NULL vtable.
20938         Eliminate warnings.
20939
20940 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20941
20942         * image.c, image.h: more strong name helpers.
20943         * monosn.c: more work: convert pem keys to cryptoapi format.
20944
20945 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20946
20947         * string-icalls.c: speedup IndexOf.
20948
20949 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20950
20951         * icall.c: updates from Zoltan.2.Varga@nokia.com.
20952
20953 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
20954
20955         * icall.c: cleanup: use mono_object_domain ().
20956
20957 2002-09-23  Martin Baulig  <martin@gnome.org>
20958
20959         * debug-mono-symfile.c: Improved type support.
20960
20961 2002-09-22  Martin Baulig  <martin@gnome.org>
20962
20963         * debug-mono-symfile.c: Added support for reference types and strings.
20964
20965 2002-09-22  Martin Baulig  <martin@gnome.org>
20966
20967         * debug-mono-symfile.c: Started to work on the type table.
20968
20969 2002-09-21  Martin Baulig  <martin@gnome.org>
20970
20971         * debug-mono-symfile.c: Largely reworked the symbol table format.
20972         The symbol table is now incrementally updated each time a new
20973         method is added.  We're now also using our own magic and version
20974         so that you don't need to recompile all your classes if the
20975         dynamic table changes.
20976         (mono_debug_update_mono_symbol_file): Removed.
20977         (mono_debug_symfile_add_method): New function to add a method.
20978
20979 2002-09-21  Martin Baulig  <martin@gnome.org>
20980
20981         * icall.c
20982         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
20983         New interncall.
20984
20985         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
20986         New interncall to get a method from its metadata token.
20987
20988 2002-09-21  Martin Baulig  <martin@gnome.org>
20989
20990         * debug-mono-symfile.c: Create type table.
20991
20992 2002-09-20  Martin Baulig  <martin@gnome.org>
20993
20994         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
20995
20996 2002-09-20  Martin Baulig  <martin@gnome.org>
20997
20998         * debug-mono-symfile.c: Provide information about params and locals.
20999
21000 2002-09-20  Martin Baulig  <martin@gnome.org>
21001
21002         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
21003         New interncall.
21004
21005         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
21006         interncall to get a method from its metadata token.
21007
21008 2002-09-20  Martin Baulig  <martin@gnome.org>
21009
21010         * debug-mono-symfile.c: Added a few checks for method->header
21011         being non-NULL.  This should never happen, but for the moment
21012         let's use a g_warning() rather than a g_assert().
21013
21014 2002-09-19  Mark Crichton  <crichton@gimp.org>
21015
21016         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
21017         even if support for it isn't present.  Added an #ifdef to fix this.
21018
21019         * socket-io.c: Added checks back for Solaris support.
21020
21021 2002-09-19  Martin Baulig  <martin@gnome.org>
21022
21023         * debug-mono-symfile.c (read_string, write_string): Reflect latest
21024         changes in the symbol file format.
21025
21026 2002-09-18  Martin Baulig  <martin@gnome.org>
21027
21028         * debug-mono-symfile.c: Set version number to 21.
21029
21030 2002-09-18  Dick Porter  <dick@ximian.com>
21031
21032         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
21033         on netbsd.  Fixes bug 30051.
21034
21035 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21036
21037         * reflection.c:
21038         (set_version_from_string): little fix.
21039
21040 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21041
21042         * monosn.c, Makefile.am: added strong name utility.
21043         * reflection.h, reflection.c: implemented delayed signing,
21044         locale, version and hash id assembly attributes.
21045
21046 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21047
21048         * loader.c, metadata.c: load param attributes in signatures.
21049
21050 2002-09-16  Martin Baulig  <martin@gnome.org>
21051
21052         * debug-mono-symfile.c: Added string table with all method names.
21053
21054 2002-09-14  Martin Baulig  <martin@gnome.org>
21055
21056         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
21057         fast method lookup.
21058
21059 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21060
21061         * reflection.c: record the public key token of referenced assemblies.
21062
21063 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21064
21065         * image.c, image.h: added functions to get the strong name and the
21066         public key of an assembly.
21067         * pedump.c: use them.
21068
21069 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
21070
21071         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
21072
21073 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
21074
21075         * marshal.c (mono_marshal_get_managed_wrapper): Added
21076         MONO_TYPE_BOOLEAN 
21077
21078 2002-09-11  Martin Baulig  <martin@gnome.org>
21079
21080         * gc.c: Call GC_unregister_disappearing_link() on all links when
21081         finalizing them, this is necessary to aviod a crash in boehm's
21082         finalize handler.
21083
21084 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21085
21086         * gc.c: handle GetTarget for finalized objects spotted and fixed by
21087         nick@chemlab.org.
21088
21089 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
21090
21091         * icall.c: implemented MonoType::Module.
21092         * reflection.c, reflection.h: mono_module_get_object () from
21093         Tomi Pakarinen <tomi.pakarinen@welho.com>.
21094
21095 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21096
21097         * icall.c: ignore overridden methods in GetMethods ().
21098         Fix for FieldInfo::SetValue().
21099         * object.c: handle float/double in runtime invoke.
21100
21101 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21102
21103         * object.c: allow a constructor to be called again on an object.
21104
21105 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21106
21107         * class.h, class.c: move field layout code to it's own function and
21108         export it. Get an interface id earlier. Move fields in MonoClass
21109         so they are more cache friendly and align the bitfields.
21110         * loader.c: temporary handle get_param_names() for a runtime method.
21111         * reflection.c, reflection.h: more code to handle runtime creation of
21112         types.
21113
21114 2002-09-09  Martin Baulig  <martin@gnome.org>
21115
21116         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
21117         signature with the pinvoke field being set for the actual call.
21118
21119 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21120
21121         * icall.c: removed some unused icalls. Start of map of glib charsets
21122         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
21123
21124 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21125
21126         * debug-helpers.c: break infinite loop (found and fixed by
21127         Holger Arnold <harnold@gmx.de>).
21128
21129 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21130
21131         * icall.c: target may be null in create_delegate.
21132
21133 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21134
21135         * marshal.c: handle a boolean return type.
21136
21137 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21138
21139         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
21140
21141 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21142
21143         * gc.c: fix weakreferences.
21144
21145 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
21146
21147         * icall.c: added icall to get default codepage.
21148
21149 2002-09-03  Dick Porter  <dick@ximian.com>
21150
21151         * threads.h: 
21152         * threads.c: Use MonoThread instead of MonoObject where
21153         apropriate.
21154
21155         Store running thread objects in a hash table, so that we have all
21156         the info to hand when waiting for them to finish
21157         (means we don't need OpenThread() any more, so mingw builds should
21158         be fully functional again.)
21159
21160         * verify.c:
21161         * object.h: Added thread ID to MonoThread
21162
21163 2002-09-03  Martin Baulig  <martin@gnome.org>
21164
21165         * icall.c (System.Reflection.Assembly::get_location): New interncall.
21166
21167 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21168
21169         * icall.c: fixed leak in get_temp_path. Thanks lupus.
21170
21171 2002-09-03  Martin Baulig  <martin@gnome.org>
21172
21173         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
21174         argument to store the end address of the disassembled instruction.
21175
21176         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
21177         here from debug-symfile.h.
21178         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
21179         JIT into this struct.
21180         (MonoSymbolFile): Added `char *image_file' field.
21181         (MonoDebugGetMethodFunc): Removed.
21182         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
21183         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
21184         (mono_debug_find_method): New method.
21185
21186         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
21187         create a full symbol file.
21188         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
21189         and static symbol files.
21190         (mono_debug_find_method): The symbol file keeps an internal method hash,
21191         call this to get a MonoDebugMethodInfo from a MonoMethod.
21192
21193         * debug-symfile.[ch]: Removed.
21194
21195 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
21196
21197         * image.c (do_mono_image_open): Remove linker version check.
21198
21199 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
21200
21201         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
21202         wrappers for instance methods.
21203         
21204 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21205
21206         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
21207
21208 2002-08-28  Dick Porter  <dick@ximian.com>
21209
21210         * Makefile.am: Export HOST_CC for w32 builds
21211
21212 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21213
21214         * file-io.c process.c: MonoString are null terminated, no
21215         need for mono_string_to_utf16() anymore.
21216
21217 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21218
21219         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
21220
21221 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
21222
21223         * icall.c, reflection.h: speedup System.MonoType.
21224
21225 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21226
21227         * reflection.c: allow null as the value of a string argument in
21228         custom attributes constructors.
21229
21230 2002-08-27  Martin Baulig  <martin@gnome.org>
21231
21232         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
21233         `trampoline_address' field.
21234
21235 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
21236
21237         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
21238         check (fixes bug #29486) 
21239
21240 2002-08-27  Martin Baulig  <martin@gnome.org>
21241
21242         * debug-mono-symfile.c: Changed the file format in a way that allows us
21243         open it read-only and to use a specially malloced area for all the
21244         dynamic data.  We can now also generate a symbol file on-the-fly if we're
21245         debugging IL code and there is no MCS generated symbol file for it.
21246
21247 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21248
21249         * object.c: added a define for a good string and array
21250         creation speedup (not enabled by default because we need to deal with
21251         the synch stuff).
21252
21253 2002-08-26  Martin Baulig  <martin@gnome.org>
21254
21255         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
21256         function to create a dynamic symbol file.  This is used by the
21257         debugger to create a symbol file for IL code on-the-fly.
21258
21259 2002-08-26  Martin Baulig  <martin@gnome.org>
21260
21261         * loader.c (mono_lookup_pinvoke_call): Include the error message
21262         from g_module_error() in the error message.
21263
21264 2002-08-24  Martin Baulig  <martin@gnome.org>
21265
21266         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
21267         function to update the symbol file.  The symbol file is mmap()ed
21268         writable, but private.  This allows us to install the symbol file
21269         together with the assembly.
21270
21271 2002-08-24  Martin Baulig  <martin@gnome.org>
21272
21273         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
21274         but they can read the new symbol file format which mcs is now creating.
21275
21276         * debug-symfile.c (mono_debug_find_source_location): Moved to
21277         debug-mono-symfile.c; this is now operating on the new symbol file.
21278
21279 2002-08-23  Martin Baulig  <martin@gnome.org>
21280
21281         * debug-helpers.c (mono_method_desc_from_method): New function to get
21282         a MonoMethodDesc from a MonoMethod.
21283
21284 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21285
21286         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
21287         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
21288
21289 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
21290
21291         * string-icalls.[ch]: make helper methods static.
21292
21293 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21294
21295         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
21296         types to it and to SetValueInternal.
21297
21298         * object.c: Moved handle_enum label to its proper place. This was the
21299         f... bug! ;-)
21300
21301         This time i compiled mcs and gtk-sharp and they both work.
21302
21303 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21304
21305         * icall.c: reverted partially my previous patch until 
21306         object.c:set_value handles enums correcly.
21307
21308 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21309
21310         * icall.c:
21311         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
21312         (ves_icall_System_Environment_get_MachineName): removed warning when
21313         compiling under cygwin.
21314
21315 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21316
21317         * object.c: fixed field_get_value() for reference types.
21318
21319 2002-08-22  Dick Porter  <dick@ximian.com>
21320
21321         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
21322         Don't free a buffer while it's still needed.  Patch from Jonathan
21323         Liger <Jonathan.liger@wanadoo.fr>
21324
21325 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
21326
21327         * icall.c (ves_icall_System_Environment_get_Platform): Add new
21328         internal call.
21329
21330 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
21331
21332         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
21333         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
21334
21335         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
21336         we call unmanaged code which throws exceptions.
21337
21338 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21339
21340         * appdomain.h: added per-domain entry_assembly.
21341         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
21342         arguments.
21343         * icall.c: Assembly::GetEntryAssembly icall.
21344         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
21345         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
21346
21347 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21348
21349         * appdomain.h, gc.c: added mono_domain_finalize ().
21350
21351 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21352
21353         * object.c:
21354         (mono_print_unhandled_exception): changed g_warning by g_printerr
21355         because g_log has a 1024 characters limit (yeah, i got a big stack
21356         trace). Don't print exception name, that should be in ToString 
21357         returned string.
21358
21359 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21360
21361         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
21362         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
21363
21364 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21365
21366         * object.c:
21367         (mono_print_unhandled_exception): after previous commit, i realized
21368         that MS calls ToString on the exception. I changed this function to
21369         do that. This way we get stack_trace for free.
21370
21371 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21372
21373         * object.c:
21374         (mono_print_unhandled_exception): invoke Message property instead of
21375         getting 'message' field from Exception. Don't allocate memory for
21376         'trace' and 'message' if not needed.
21377
21378 2002-08-18  Dick Porter  <dick@ximian.com>
21379
21380         * unicode.c: Fix asserts to match Encoder.cs checks
21381
21382 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21383
21384         * marshal.c: fix unaligned store issue and a few wrong
21385         opcode argument types.
21386
21387 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21388
21389         * icall.c: added GetUninitializedObjectInternal internal call.
21390
21391 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
21392
21393         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
21394         to the right domain.
21395
21396 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
21397
21398         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
21399
21400         * class.c (class_compute_field_layout): set blittable to false for Strings
21401
21402         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
21403
21404 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21405
21406         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
21407         first chunk of code to create types at runtime. Code to
21408         handle ReflectedType/DeclaringType. Make reflection handles
21409         domain specific.
21410
21411 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21412
21413         * class.c: set correct name in arrays.
21414
21415 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
21416
21417         * appdomain.c (mono_domain_transfer_object): make it work with
21418         valuetypes. bug fixes.
21419
21420 2002-08-12  Dick Porter  <dick@ximian.com>
21421
21422         * object.h: Rename some parameters to avoid c++ keywords (Patch
21423         from Joseph Wenninger <kde@jowenn.at>)
21424
21425 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
21426
21427         * icall.c: added icall to implement Assembly.GetFile*.
21428
21429 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21430
21431         * reflection.h, reflection.c: code to embed managed resources.
21432
21433 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21434
21435         * class.c: move all the type size stuff into
21436         class_compute_field_layout().
21437
21438 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21439
21440         * class.c: ensure enums have always the correct instance size.
21441         * unicode.c: remove wrong assert.
21442
21443 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21444
21445         * assembly.c: fix mem corruption issue.
21446         * image.h, image.c: added mono_image_get_resource () to access
21447         managed resources.
21448         * icall.c: implemented Assembly.EntryPoint property and some
21449         Managed Resources related internalcalls.
21450
21451
21452 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21453
21454         * image.c, image.h: impemented mono_image_get_entry_point ().
21455         * appdomain.c: use mono_image_get_entry_point.
21456
21457 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21458
21459         * reflection.c: support the object type argument when loading
21460         custom attributes.
21461
21462 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
21463
21464         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
21465         String as return type.
21466
21467 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
21468
21469         * reflection.c: fix encoding of named args for custom attrs to match
21470         the ms implementation. Read them back when instantiating custom
21471         attributes.
21472
21473 2002-08-02  Radek Doulik  <rodo@ximian.com>
21474
21475         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
21476         by Dietmar as quick fix
21477         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
21478         16 as stack size, used on more places as quick fix before Dietmar
21479         will fix it properly
21480
21481 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21482
21483         * object.h, object.c: added accessors for fields and properties.
21484
21485 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21486
21487         * class.c, class.h: made mono_class_get_field_from_name ()
21488         loop on parent types.
21489         Added mono_class_get_property_from_name ().
21490
21491 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21492
21493         * class.c, class.h: move the code to setup the type vtable in its own
21494         function so that it can be reused also for types created at runtime.
21495         Eliminate the "class" identifier from the header file.
21496         * reflection.c: setup the vtable for enums so that we can create
21497         objects for use in SetConstant ().
21498
21499 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
21500
21501         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
21502         instead of the delegate itself as this pointer (bug #28383)
21503
21504 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
21505
21506         * marshal.c (mono_marshal_get_managed_wrapper): added return type
21507         conversions.
21508
21509 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21510
21511         * loader.c: don't set the pinvoke bit on icalls.
21512
21513 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
21514
21515         * debug-helpers.c (mono_method_full_name): only print a number to
21516         indicate wrapper type (so that the output is more readable in traces).
21517
21518 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
21519
21520         * class.c (mono_class_init): include method override patch from Paolo
21521
21522 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
21523
21524         * icall.c: fixed GetTypeCode().
21525
21526 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
21527
21528         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
21529         use real delegate invoke function to make it work with multicast
21530         delegates (fix bug# 28291).
21531
21532 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21533
21534         * object.c: load constant strings.
21535
21536 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21537
21538         * reflection.c: no magic numbers.
21539         * tabledefs.h: security action enum.
21540
21541 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21542
21543         * assembly.c: fix possible memory corruption.
21544
21545 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21546
21547         * reflection.h, reflection.c: added support for linking resources.
21548         * verify.c: check we have an updated corlib.
21549
21550 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
21551
21552         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
21553         string arrays.
21554         (mono_marshal_string_array): null terminate unmanaged string arrays.
21555         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
21556
21557 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21558
21559         * icall.c: Type.GetType () can now return also types from the
21560         calling assembly.
21561
21562 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
21563
21564         * loader.h, loader.c: stack walking support.
21565         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
21566         GetCallingAssembly.
21567
21568 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
21569
21570         * marshal.c: added optimisations for blittable types 
21571
21572         * class.c (mono_array_class_get): do not set blittable attribute on arrays
21573         (mono_class_setup_mono_type): set blittable attribute for single
21574         and double.
21575
21576         * marshal.c (mono_string_utf8_to_builder): impl.
21577         (mono_string_builder_to_utf8): impl.
21578         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
21579
21580 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
21581
21582         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
21583         (mono_marshal_get_managed_wrapper): impl. byref types
21584
21585 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21586
21587         * icall.c:
21588         (search_method): don't display debug message. 
21589
21590 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
21591
21592         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
21593
21594 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
21595
21596         * appdomain.c: set the missing filename when throwing exception.
21597
21598 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
21599
21600         * metadata.c (mono_type_size): code cleanup
21601         (mono_type_stack_size): removed some test code
21602
21603 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
21604
21605         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
21606         mono_get_exception_file_not_found now.
21607
21608         * exception.c (mono_exception_from_name_two_strings): New version
21609         that will call a constructor with two string arguments. 
21610         (mono_get_exception_file_not_found): New helper routine, used to
21611         report file-not-found errors.
21612
21613 2002-07-20  Dick Porter  <dick@ximian.com>
21614
21615         * process.h:
21616         * process.c: Pass file handles to CreateProcess
21617         
21618         * icall.c:
21619         * file-io.h:
21620         * file-io.c: Implemented CreatePipe
21621
21622 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
21623
21624         * metadata.c (mono_get_param_info): set alignment for value types
21625
21626 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21627
21628         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
21629         Constify mono_domain_assembly_open().
21630         * loader.c: handle null namespace in icalls.
21631
21632 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
21633
21634         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
21635         (emit_str_to_ptr_conv): marshal object as structs
21636
21637         * metadata.c (mono_type_to_unmanaged): marshal object as structs
21638
21639         * marshal.c (mono_marshal_get_runtime_invoke): support value types
21640
21641 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
21642
21643         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
21644         (mono_marshal_get_native_wrapper): we an now return value types
21645
21646 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21647
21648         * verify.c: more checks implemented.
21649
21650 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
21651
21652         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
21653         (fix bug #27695)
21654         (mono_marshal_get_native_wrapper): allow byref arguments
21655         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
21656         impl. PtrToStringXXX methods
21657         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
21658         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
21659         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
21660         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
21661         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
21662
21663 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21664
21665         * reflection.c: fix buglet in parsing an assembly name.
21666
21667 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
21668
21669         * marshal.c (emit_ptr_to_str_conv): first impl.
21670
21671 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
21672
21673         * object.c, class.h: cache the vtable in the class as suggested by
21674         vargaz@freemail.hu (Zoltan Varga).
21675
21676 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21677
21678         * class.h, loader.c: added mono_field_from_token().
21679         * verify.c: first cut of type checking code.
21680
21681 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
21682
21683         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
21684
21685 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
21686
21687         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
21688         (fix bug #27782)
21689         (mono_marshal_get_remoting_invoke): impl.
21690         (mono_delegate_begin_invoke): impl.
21691         (mono_mb_emit_save_args): impl.
21692         (mono_delegate_end_invoke): impl.
21693         (mono_marshal_get_delegate_begin_invoke):
21694         (mono_marshal_get_delegate_end_invoke):
21695         (mono_marshal_get_delegate_invoke): generate a special name for
21696         those methods (including the signature) and associate them whith
21697         the delegate class. 
21698
21699 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
21700
21701         * reflection.[ch]: 
21702         (mono_reflection_type_from_name): now it has a MonoImage parameter
21703         which is used as the default image to search the type in. If the image
21704         is NULL or getting the type from it fails, it defaults to corlib.
21705
21706         * icall.c: changed 1 call to mono_reflection_type_from_name to match
21707         new parameter.
21708
21709 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21710
21711         * reflection.c: update the parameter table index.
21712
21713 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
21714
21715         * domain.c: don't include the mark byte in the string hash.
21716
21717 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
21718
21719         * icall.cs: icall for Type.GetTypeCode ().
21720         * verify: a couple of fixes and disabled local initialization checks.
21721
21722 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
21723
21724         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
21725
21726         * debug-helpers.c (mono_method_full_name): print the type of the
21727         runtime wrapper
21728
21729         * metadata.c (mono_signature_hash): a hash function for signatures
21730         (mono_signature_hash): better hash algorithm
21731
21732         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
21733
21734         * debug-helpers.c (mono_method_full_name): this can now generate
21735         method names with signatures
21736
21737         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
21738         method dont have this pointers.
21739
21740 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21741
21742         * reflection.c: fixup typebuilder tokens.
21743         * image.c: fix buglet.
21744         * marshal.h: remove whitespace.
21745         * metadata.h, metadata.c: reinstate code that was removed.
21746         * verify.c: handle catch directives and fix another couple of bugs.
21747
21748 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
21749
21750         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
21751         (mono_marshal_get_native_wrapper): make it comp. with the old code
21752         (mono_marshal_get_native_wrapper): support boolean
21753         (mono_marshal_get_managed_wrapper): support more types
21754
21755 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
21756
21757         * class.c (class_compute_field_layout): compute class->blittable attribute.
21758
21759 2002-07-09  Dick Porter  <dick@ximian.com>
21760
21761         * threads.c: Make the thread cleaning up cope with threads that
21762         call ExitThread()
21763
21764 2002-07-08  Radek Doulik  <rodo@ximian.com>
21765
21766         * reflection.c (method_encode_code): use non-translated values to
21767         compute finally_start, this fixes exception handling on ppc, yay!
21768
21769         * decimal.h (struct signscale): fix endianess
21770
21771 2002-07-07  Radek Doulik  <rodo@ximian.com>
21772
21773         * reflection.c: swap box_val and not val
21774
21775 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
21776
21777         * reflection.c, reflection.h: handle full assembly info in type name.
21778         Handle Type arguments when loading custom attributes.
21779         * icall.c: updated to use new mono_reflection_type_from_name () method.
21780
21781 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21782
21783         * loader.c:
21784         (method_from_memberref): also print assembly name when method not found.
21785
21786 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21787
21788         * icall.c:
21789         (ves_icall_TypeGetProperties): fixed bug #27473. 
21790
21791 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21792
21793         * reflection.c: display image name and token when cannot find the
21794         .ctor for an attribute.
21795
21796 2002-07-05  Martin Baulig  <martin@gnome.org>
21797
21798         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
21799
21800 2002-07-04  Dick Porter  <dick@ximian.com>
21801
21802         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
21803         compile on mingw.  This will cause mingw builds to not wait for
21804         subthreads to terminate after the main thread does.  I've lodged a
21805         bug with the mingw developers for them to wrap OpenThread().
21806
21807 2002-07-03  Dick Porter  <dick@ximian.com>
21808
21809         * threads.c: Store thread IDs instead of handles, because
21810         GetCurrentThread() returns a pseudohandle and therefore stores
21811         useless values.  mono_thread_cleanup() continues checking the
21812         array of threads until it is empty, to cope with subthreads
21813         spawning new threads after the main thread has finished.
21814
21815         * profiler.h:
21816         * profiler.c:
21817         * profiler-private.h: Pass the thread ID to thread profiler
21818         functions, instead of a handle
21819
21820 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21821
21822         * verify.c: fixes to make it more usable.
21823         * pedump.c: added --verify code to verify IL code in an assembly.
21824
21825 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21826
21827         * reflection.c: turn errors into warnings to allow compiling corlib.
21828
21829 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
21830
21831         * reflection.c: add special cases to compile corlib.
21832
21833 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21834
21835         * reflection.c: handle properties with only a set method.
21836
21837 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21838
21839         * opcodes.h: add enum with opcodes in opval order.
21840
21841 2002-07-01  Dick Porter  <dick@ximian.com>
21842         
21843         * object.h:
21844         * object.c (mono_runtime_run_main): Removed unneeded argument
21845
21846 2002-06-28  Martin Baulig  <martin@gnome.org>
21847
21848         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
21849
21850 2002-06-27  Dick Porter  <dick@ximian.com>
21851
21852         * threads.c: Store the handle in both the parent thread and in the
21853         subthread, to minimise the time between starting a new thread and
21854         storing its ID.
21855
21856 2002-06-26  Dick Porter  <dick@ximian.com>
21857
21858         * appdomain.c (mono_runtime_cleanup): Close the socket library
21859         after all the threads have finished, not before
21860
21861 2002-06-26  Martin Baulig  <martin@gnome.org>
21862
21863         * debug-symfile.c (mono_debug_find_source_location): Added
21864         `guint32 *line_number' argument.  If it's not NULL, store the line number
21865         there and return the file name without the line number.
21866
21867 2002-06-25  Dick Porter  <dick@ximian.com>
21868
21869         * icall.c:
21870         * process.h:
21871         * process.c: Process forking and other support functions
21872
21873 2002-06-25  Dick Porter  <dick@ximian.com>
21874
21875         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
21876         things dont happen when the image is closed.
21877         (mono_image_lookup_resource): Walk the resource section looking
21878         for a particular entry
21879
21880         * cil-coff.h: PE resource section decoding
21881
21882 2002-06-25  Dick Porter  <dick@ximian.com>
21883         
21884         * assembly.h:
21885         * assembly.c: 
21886         (mono_assembly_foreach): Accessor functions to walk the list of
21887         loaded assemblies
21888         (mono_assembly_set_main):
21889         (mono_assembly_get_main): Process methods need to know which
21890         assembly is the "main" one
21891
21892         * object.c (mono_runtime_run_main): Record the main assembly
21893
21894         * debug-helpers.c: Fix typo
21895
21896 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
21897
21898         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
21899         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
21900
21901 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
21902
21903         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
21904
21905 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
21906
21907         * image.c (do_mono_image_open): Initialize reference count,
21908         otherwise we leak the MonoImage.
21909
21910 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21911
21912         * reflection.c: small tweak to handle self-hosting.
21913
21914 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21915
21916         * reflection.c: fix type name parse code.
21917
21918 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21919
21920         * reflection.c: break out of the loop.
21921         * image.c: special case corlib.
21922
21923 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21924
21925         * reflection.c: add all the custom attrs at the end to ensure the
21926         ctors have been properly initialized when the attributes are defined
21927         in the current assembly.
21928
21929 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21930
21931         * reflection.c: handle correctly multiple-nested types.
21932
21933 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
21934
21935         * row-indexes.h: fix typos.
21936         * reflection.c: adjust for typos and fix method_def_or_ref
21937         encoding in MethodImpl table.
21938
21939 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21940
21941         * reflection.c: fix entry point patching (thanks Serge!).
21942
21943 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
21944
21945         * verify.c: add check for System.Exception
21946
21947 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
21948
21949         * image.c, class.c: minifix for code just c&p'ed.
21950         * reflection.c: warning fix.
21951         * object.h, loader.h, domain.c: load also StringBuilder.
21952
21953 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21954
21955         * marshal.h, marshal.c: some support code to handle complex marshaling.
21956
21957 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21958
21959         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
21960         Better signatures with vtable error dump.
21961
21962 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
21963
21964         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
21965
21966 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
21967
21968         * icall.c (ves_icall_Type_GetField): impl.
21969
21970 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21971
21972         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
21973         to retrieve a marshal description blob for a field or param.
21974
21975 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21976
21977         * reflection.h, reflection.c: change order of nested type emission
21978         to avoid table corruption. The NestedTypes table is sorted.
21979         * icall.c: change order of GetConstructor results to workaround mcs bug.
21980
21981 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21982
21983         * reflection.h, reflection.c: handle field and param marshal
21984         information.
21985
21986 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21987
21988         * icall.c, marshal.c marshal.h: more Marshal class implementation.
21989
21990 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21991
21992         * reflection.c: fix call convention.
21993
21994 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21995
21996         * reflection.h, reflection.c: mono_image_get_memberref_token()
21997         takes a type instead of a class, now. Added
21998         mono_image_get_array_token() to create tokens for the special
21999         multi-dim array methods.
22000
22001 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22002
22003         * assembly.c: handle modules (no assembly table). Split
22004         loading references in its own function.
22005         * class.c: handle moduleref resolution scope.
22006         * image.c, image.h: cache module name in image.
22007
22008 2002-06-07  Martin Baulig  <martin@gnome.org>
22009
22010         * reflection.c (mono_image_get_type_info): Only add a class layout entry
22011         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
22012
22013 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22014
22015         * icall.c: more signature fixes that used uint instead of int.
22016
22017 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22018
22019         * reflection.c: fixed signature of field refs.
22020
22021 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22022
22023         * class.c, reflection.c: handle typerefs of nested types
22024         (both on read and when writing files).
22025
22026 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
22027
22028         * icall.c: fix method signatures that tried to workaround the previous
22029         typo, d'oh!
22030
22031 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22032
22033         * debug-helpers.c: fix typo.
22034
22035 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22036
22037         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
22038         rewrote the PE/COFF writing code (our programs are understood by the
22039         ms runtime, now).
22040
22041 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22042
22043         * gc.c, gc.h, icall.c: weakreference support.
22044
22045 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22046
22047         * Makefile.am, mono-config.c: use $(sysconfdir).
22048
22049 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22050
22051         * icall.c: changed default precision of Double.ToString() to 15.
22052         Fixed memory leak. Unified with Single.ToString.
22053
22054 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22055
22056         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
22057
22058 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22059
22060         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
22061         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
22062         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
22063         and myself.
22064
22065 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22066
22067         * debug-symfile.c, sysmath.c: yet more compilation fixes.
22068
22069 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22070
22071         * reflection.c, socket-io.c: more compilation fixes.
22072
22073 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22074
22075         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
22076         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
22077         unicode.c: warning and compiler compatibility fixes.
22078
22079 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22080
22081         * class.h, metadata.c: fixed warnings/compilation errors.
22082
22083 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22084
22085         * Makefile.am, mono-config.c, mono-config.h: configuration file
22086         support routines.
22087         * loader.c, loader.h: make Dll mapping configurable at runtime in the
22088         config file. Export methods to insert and lookup mappings.
22089
22090 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22091
22092         * reflection.c: handle types and boxed objects in custom attr
22093         constructors.
22094
22095 2002-05-30  Martin Baulig  <martin@gnome.org>
22096
22097         * debug-symfile.c
22098         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
22099
22100 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
22101
22102         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
22103         to lookup the implmap row for a P/Invoke method.
22104         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
22105         P/Invoke method from the runtime on an as needed basis.
22106
22107 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
22108
22109         * metadata.c (mono_metadata_parse_signature): impl.
22110
22111 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22112
22113         * class.c: handle .pack directive.
22114
22115 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22116
22117         * object.c: initialize static fields with RVA data.
22118
22119 2002-05-25  Martin Baulig  <martin@gnome.org>
22120
22121         * debug-symfile.c
22122         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
22123
22124 2002-05-24  Martin Baulig  <martin@gnome.org>
22125
22126         * debug-symfile.c
22127         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
22128         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
22129         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
22130
22131 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22132
22133         * object.c: special case string ctros in invoke.
22134         * gc.c: silly whitespace changes.
22135
22136 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
22137
22138         * threadpool.[ch]: impl. a threadpool that can
22139         be used by mint and mono.
22140
22141 2002-05-22  Martin Baulig  <martin@gnome.org>
22142
22143         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
22144         The first argument is now a `MonoReflectionModuleBuilder *', the return
22145         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
22146         `methods' field to get the method builder.  The `token' argument is the
22147         unfixed token.
22148
22149         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
22150         invalid characters instead of g_assert_not_reached()ing.  This seems
22151         to be the behaviour of mscorlib.
22152
22153 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
22154
22155         * object.c (mono_runtime_invoke_array): applied patch from Rachel
22156         Hestilow to fix bug #25104
22157
22158 2002-05-21  Martin Baulig  <martin@gnome.org>
22159
22160         * debug-symfile.c (mono_debug_find_source_location): New function.
22161         Looks up an IL offset in the line number table and returns the source
22162         location as a string.
22163
22164 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22165
22166         * icall.c:
22167         (mono_double_ToStringImpl): changed %f by %g until we have something
22168         better.
22169
22170 2002-05-21  Nick Drochak  <ndrochak@gol.com>
22171
22172         * icall.c : Use different name for Math.Pow's icall.  Needed to check
22173         parameters first in C#.
22174
22175 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22176
22177         * icall.c, reflection.h: added icall to get info about an event.
22178
22179 2002-05-20  Radek Doulik  <rodo@ximian.com>
22180
22181         * object.c (mono_value_box): don't use memcpy for boxing on BIG
22182         endian
22183         (mono_value_box): don't use memcpy for small sizes on
22184         architectures with unaligned access
22185
22186 2002-05-20  Martin Baulig  <martin@gnome.org>
22187
22188         * reflection.c (mono_reflection_setup_internal_class): Don't crash
22189         if `tb->parent == NULL'.
22190         (mono_reflection_create_internal_class): New function.  This is
22191         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
22192         for enum types.
22193
22194         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
22195         New interncall.
22196
22197 2002-05-19  Martin Baulig  <martin@gnome.org>
22198
22199         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
22200         argument to get the length, don't default to the array length.
22201
22202 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
22203
22204         * assembly.c (mono_assembly_setrootdir): New function used to
22205         override the MONO_ASSEMBLIES directory.
22206
22207 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22208
22209         * icall.c: ValueType_GetHashCode() initialize local var.
22210
22211 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22212
22213         * reflection.c: sort custom attributes table.
22214
22215 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22216
22217         * reflection.c: support named args in custom attributes (write support).
22218
22219 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22220
22221         * reflection.c: fix finally position calculation.
22222
22223 2002-05-15  Radek Doulik  <rodo@ximian.com>
22224
22225         * reflection.c: fixed endianess at many places
22226
22227         * icall.c (ves_icall_InitializeArray): comment out debug msg
22228
22229 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
22230
22231         * object.c (mono_unhandled_exception): new function to handle
22232         unhandled exceptions.
22233         (mono_unhandled_exception): call the UnhandledException event.
22234         (mono_runtime_delegate_invoke): impl.
22235
22236 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
22237
22238         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
22239         returns the RVA, not the direct pointer to the data. Handle the case
22240         when the class size is fixed.
22241
22242 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22243
22244         * reflection.c: fix some endianess issues.
22245
22246 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
22247
22248         * object.c (mono_runtime_invoke): is now able to catch exceptions.
22249
22250         * threads.c (mono_thread_init): added a callback which is invoked
22251         at thread start.
22252
22253 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
22254         
22255         * icall.c: make GetHashCode return non-negative values.
22256
22257 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
22258
22259         * object.c, icall.c, gc.c: revert to address-based hashcode.
22260
22261 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
22262
22263         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
22264
22265 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22266
22267         * icall.c, class.c: special case <Module>.
22268
22269 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
22270
22271         * icall.c: fix bug in GetNow().
22272
22273 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
22274
22275         * object.c (mono_runtime_class_init): make sure that we call all
22276         static class constructors.
22277
22278 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22279
22280         * reflection.c: sort methodsemantics table.
22281
22282 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22283
22284         * reflection.h, reflection.c: honour init locals setting.
22285
22286 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
22287
22288         * icall.c: copied Double ToStringImpl for Single ToStringImpl
22289
22290 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22291
22292         * reflection.c: support ContructorBuilders in attribute blob creation.
22293
22294 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22295
22296         * reflection.c: some changes to build a binary that can be run
22297         directly in windows.
22298
22299 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
22300
22301         * loader.c: print a big message when an icall can't be found.
22302
22303 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22304
22305         * string-icalls.c: fix bug 24248.
22306
22307 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
22308
22309         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
22310         icall.c, reflection.h: separate assembly loading by pathname and by
22311         assembly name. Use the MONO_PATH env var to search for assemblies.
22312
22313 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22314
22315         * assembly.c, image.h: add some support for assemblies
22316         with multiple modules.
22317         * class.c, class.h: export mono_class_from_typeref().
22318         * loader.c: remove duplicated code and use mono_class_from_typeref(),
22319         instead.
22320
22321 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22322
22323         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
22324         documentation says (the ECMA one is correct).
22325
22326 2002-05-02  Dick Porter  <dick@ximian.com>
22327
22328         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
22329         Don't name the synchronisation mutex.
22330
22331 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
22332
22333         * rand.c
22334         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
22335         Make the prototypes match.
22336         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
22337         Same.
22338
22339         * icall.c
22340         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
22341         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
22342         all systems have tm.tm_zone, so use strftime() with %Z to print
22343         the timezone abreviation into a temp string.
22344
22345         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
22346         rather than mono_array_addr() on a MonoString on Big Endian
22347         machines.
22348
22349 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
22350
22351         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
22352         fix bug 24041
22353
22354 2002-04-30  Dick Porter  <dick@ximian.com>
22355
22356         * socket-io.c: Cope with SOCKET being an integer rather than a
22357         pointer now.
22358
22359         * threads.c: Added Thread_free_internal, to deal with thread
22360         handle cleanup.  Moved calls to handle_store() and handle_remove()
22361         to start_wrapper(), so each can only be called once.  Allocate
22362         synchronisation blocks with GC_malloc(), and use GC finalisation
22363         to close the handles.
22364
22365         * icall.c: added System.Threading.Thread::Thread_free_internal
22366
22367 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22368
22369         * icall.c: support Environment.Exit, CommandLineArgs().
22370
22371 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22372
22373         * object.c, object.h: added mono_runtime_run_main () and
22374         mono_runtime_get_main_args () for use in System.Environment.
22375
22376 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22377
22378         * gc.c: fix thinko, enable actual finalization since the jit is now
22379         fixed.
22380
22381 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22382
22383         * gc.c, object.c: take into account that an object may be offset wrt the address
22384         returned by GC_malloc().
22385
22386 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
22387
22388         * image.c: handle files without entries in the assembly table (modules).
22389
22390 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
22391
22392         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
22393         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
22394         allowed to be null when it's System.Object class setup.
22395
22396 2002-04-27  Martin Baulig  <martin@gnome.org>
22397
22398         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
22399         if `tb->parent == NULL' rather than crashing.
22400
22401 2002-04-28  Nick Drochak  <ndrochak@gol.com>
22402
22403         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
22404         calling acos() where asin() should have been called.
22405
22406 2002-04-26  Martin Baulig  <martin@gnome.org>
22407
22408         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
22409         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
22410         there's a subdirectory called `System', but we don't want to read that
22411         subdirectory as an assembly.
22412
22413 2002-04-25  Martin Baulig  <martin@gnome.org>
22414
22415         * debug-symfile.c: Reflect latest MonoString changes.
22416
22417 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22418
22419         * rand.c, rand.h: instance method icalls need to have an explicit
22420         this pointer as first argument in the C implementation.
22421
22422 2002-04-25  Nick Drochak <ndrochak@gol.com>
22423
22424         * icall.c: Fix typo in map for GetNonZeroBytes
22425
22426 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22427
22428         * string-icalls.c : String does now passes unit tests without any 
22429         errors, the following changes has been made:
22430         
22431         Implemented replace methods.
22432         Renaming of methods to (try) follow the standard.
22433         Fixed compare ordinal
22434         Made all memory allocated directly to function instead of via icall function.
22435         Small performance fix in is_in_array function
22436                         
22437  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
22438
22439         c (mono_string_Internal_ctor_charp_int_int):
22440         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
22441         sindex < 0, throw ArgumentOutOfRangeException instead of
22442         ArgumentNullException.
22443
22444         Added new check for length == 0, however
22445         I need to make it return String.Empty from the C code.
22446         
22447         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
22448         that calculate the length for us here.
22449         
22450         (mono_string_Internal_ctor_sbytep_int_int): Replaced
22451         mono_string_new_utf16 with mono_string_new, since value is utf8.
22452
22453 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22454
22455         * object.c: register the object for finalization if needed.
22456         Allocate one more char in the string for the terminating 0 char.
22457
22458 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22459
22460         * class.c, class.h, image.c: check if a type implemenst a destructor.
22461         Use the proper key for array class lookups.
22462         * icall.c: register the icalls in the System.GC class.
22463         * gc.c, gc.h: GC-related functions and icalls.
22464
22465 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22466
22467         * icall.c:
22468         * socket-io.c:
22469         * unicode.c: free some strings gotten from mono_string_to_utf8 and
22470         changed a couple of free () by g_free ().
22471
22472         * decimal.c: one-liner in the comments for decimal2string ().
22473
22474 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22475
22476         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
22477
22478 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22479
22480         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
22481         * object.c (mono_runtime_invoke_array) : handle null in params
22482
22483 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22484
22485         * string-icalls.c: fixed bug in split (one off bug)
22486
22487 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22488
22489         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
22490         * icalls.c: added String::Equals as internal method
22491
22492 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22493
22494         * threads.c: fixed bug in the double interlocked functions
22495
22496 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
22497
22498         * threads.c: implemented all of the new interlocked icalls.
22499         * string-icalls.c: fix a bug in insert.
22500         * icalls.c: added the icalls for interlocked, removed old string functions.
22501         
22502 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
22503
22504         * loader.c: fix off-by-one error when reading argument names.
22505
22506 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22507
22508         * profiler.c: win32 counter implementation (untested).
22509         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
22510         (the latter needs testing and more complete impl. from win32 folks).
22511
22512 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
22513
22514         * object.c: mono_array_new_full workaround mono_array_class_get
22515         problem.
22516
22517 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22518
22519         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
22520         * object.h (mono_string_chars): Changed casting type.
22521
22522 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22523
22524         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
22525                            method signatures to use gunichar2 instead of gint16.
22526
22527 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
22528
22529         * object.h, object.c: domain-specific versions of mono_object_new and
22530         mono_array_new.
22531
22532 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
22533
22534         * object.c: changed String layout
22535
22536         * string-icalls.c (mono_string_Internal_ctor_chara): added
22537         internal string constructors.
22538
22539 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
22540
22541         * threads.c: pass 'this' to the thread start routine.
22542
22543 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22544
22545         * string-icalls.c: fix IndexOf and LastIndexOf. Now
22546         InternalCompareStr don't call twice mono_string_cmp_char for the last
22547         character. Improved performance in mono_string_cmp_char.
22548
22549 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22550
22551         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
22552         code into its own library: libmonoruntime.
22553
22554 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
22555
22556         * object.h, object.c: changed array format so that szarrays do not
22557         require a bounds structure.
22558         * icall.c, appdomain.c: support for new szarray format.
22559
22560 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
22561
22562         * metadata.c: compare also the retuns type when comparing signatures:
22563         we didn't do this as an optimization since really overloaded methods
22564         must differ also in the arguments, but this doesn't work with
22565         low-level IL code (or when using explicit conversion operators: see
22566         bug#23498 for an example).
22567
22568 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22569
22570         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
22571
22572 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22573
22574         * icall.c: make MonoType::GetElementType its own icall.
22575
22576 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22577
22578         * icall.c: remove MonoMethod_get_Name().
22579         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
22580         object.
22581
22582 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22583
22584         * string-icalls.c: optimized a few methods.
22585
22586 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22587
22588         * icall.c: added all new string internal calls
22589         * string-icalls.c: added, new string internal call implementation.
22590         * object.c: added mono_string_new_size for allocating a string a size
22591
22592 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
22593
22594         * object.c (mono_object_isinst): use the same code as in the
22595         optimized x86 version.
22596
22597 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22598
22599         * profiler.c: TSC-based timer code (faster and more accurate).
22600         Not hooked up in configure, yet (set USE_X86TSC to 1).
22601
22602 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
22603
22604         * profiler.c, profiler.h: track time spent compiling methods.
22605         * threads.c: track thread creation/destruction.
22606
22607 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
22608
22609         * profiler.c, profiler.h, profiler-private.h: profiling interface
22610         and sample implementation. Moved here so that it can be used also by
22611         the jit.
22612
22613 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
22614
22615         * reflection.c, reflection.h: keep types and other handles separate in
22616         the hash tables for referred tokens. Add guid for modules.
22617
22618 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22619
22620         * assembly.c: fix bugs found with valgrind.
22621         * metadata.h, metadata.c: added mono_metadata_guid_heap().
22622
22623 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
22624
22625         * threads: added icall support for getting current domain for
22626                    the thread.
22627  
22628 2002-04-13  Martin Baulig  <martin@gnome.org>
22629
22630         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
22631         (MonoDebugVarInfo): Added `index' field for register based addresses.
22632         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
22633         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
22634         `MonoDebugVarInfo *params' and `guint32 this_offset' with
22635         `MonoDebugVarInfo *this_var'.
22636
22637         * debug-symfile.c (relocate_variable): New static function to write
22638         a location description for a local variable or method parameter.
22639
22640 2002-04-12  Martin Baulig  <martin@gnome.org>
22641
22642         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
22643         stack offset and begin/end scope address of a local variable.
22644         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
22645         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
22646         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
22647
22648         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
22649         Added new relocation types for start/end scope of a local variable.
22650
22651 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22652
22653         * object.h: add mono_object_domain() macro.
22654         * reflection.c: handle typespecs.
22655         * icall.c: MonoMethod::get_Name() implementation.
22656
22657 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22658
22659         * icall.c: String::GetHashCode() icall implementation.
22660
22661 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22662
22663         * icall.c: String::IndexOfAny icall.
22664         * object.c, object.h: make array->max_length more useful.
22665         Intrduced mono_object_class() and mono_string_length() macros.
22666
22667 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22668
22669         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
22670         instead of g_unichar_isdigit.
22671
22672 2002-04-11  Nick Drochak  <ndrochak@gol.com>
22673
22674         * icall.c: Implement a simple Double.ToString().
22675
22676 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
22677
22678         * appdomain.h: only io-layer.h is supposed to be included.
22679         * icall.c: explicitly import environ. Fix warning.
22680
22681 2002-04-10  Nick Drochak  <ndrochak@gol.com>
22682
22683         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
22684                 return true even if it's not Daylight Savings time.
22685                 Only return false for the case where the function isn't
22686                 implemented for a plaform (read Windows).
22687
22688 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22689
22690         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
22691         data with a mutex.
22692
22693 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
22694
22695         * mempool.c (mono_mempool_alloc): only use g_malloc when
22696         absolutely necessary.
22697
22698 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
22699
22700         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
22701
22702         * class.c (mono_class_vtable): use domain mempool to allocate vtable
22703         (mono_class_proxy_vtable): use domain mempool
22704
22705 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22706
22707         * appdomain.h, appdomain.c: split initialization that requires the
22708         execution engine support into mono_runtime_init().
22709
22710 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
22711
22712         * class.c (mono_class_init): don't include vtable inside MonoClass
22713         to save some memory, gather some statistics.
22714         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
22715
22716 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22717
22718         * icall.c: internalcall implementation for ValueType.Equals().
22719
22720 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
22721
22722         * object.c (mono_message_init): moved 
22723         (mono_runtime_exec_main): new arch. independent impl.
22724         (mono_runtime_invoke_array): new method - like
22725         mono_runtime_invoke, but you can pass an array of objects.
22726         (mono_remoting_invoke): new arch. independent impl.
22727         (mono_message_invoke): new arch. independent impl.
22728         (mono_runtime_class_init): new arch. independent impl.
22729         (mono_runtime_object_init): new arch. independent impl.
22730
22731 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22732
22733         * metadata.c, object.c, reflection.c: documented the exported
22734         functions.
22735
22736 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
22737
22738         * icall.c: simpler code to pass the assembly builder data to corlib.
22739         Implement GetNestedTypes() internalcall.
22740
22741 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22742
22743         * class.c: warn if a type can't be loaded.
22744
22745 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
22746
22747         * image.h: typedef MonoImageOpenStatus
22748         * types.h: removed unused file
22749         
22750 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
22751
22752         * icall.c: Enum_ToObject accepts enum value arguments.
22753
22754 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22755
22756         * class.c: move initialization of properties, events and nested
22757         classes, so that they happen for interfaces, too.
22758
22759 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22760
22761         * icall.c: cleanup some ugly casts in Array_SetValue*.
22762
22763 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22764
22765         * icall.c: the values array fro enums is of the correct type, now.
22766         Implement (correctly) getFullName instead of assQualifiedName for
22767         MonoType.
22768         * reflection.h, reflection.c: added mono_type_get_name ().
22769
22770 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22771
22772         * assembly.c, image.h: for each MonoImage, record from wich assembly
22773         it was loaded.
22774         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
22775         Make Type.Assembly work.
22776
22777 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
22778
22779         * debug-symfile.h: use char* instead of gpointer to avoid
22780         unnecessary casts.
22781
22782         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
22783
22784         * icall.c (ves_icall_InternalExecute): impl. FielSetter
22785         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
22786
22787 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
22788
22789         * icall.c (mono_message_init): impl. (code cleanup)
22790         (ves_icall_InternalExecute): impl. FieldGetter
22791
22792         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
22793         defined we call all (non-static)methods through the vtable. 
22794
22795 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
22796
22797         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
22798         finalizer even though the memory is still referenced (and the chunk of
22799         memory is not freed).
22800
22801 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
22802
22803         * assembly.c: fix brokeness.
22804
22805 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
22806
22807         * class.c: kill some warnings. Check explicit interface method
22808         implementation also without considering the namespace.
22809         Load also literal strings in static class data.
22810
22811 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
22812
22813         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
22814         (default_assembly_name_resolver): Make the resolver take the
22815         "base" directory where the assembly was originally defined, so we
22816         can load DLLs that are in the same directory as the assembly that
22817         is being referenced.
22818
22819 2002-03-28  Dick Porter  <dick@ximian.com>
22820
22821         * file-io.h: 
22822         * file-io.c:
22823         * socket-io.c: 
22824         * unicode.h: 
22825         * unicode.c: Warning cleanups
22826
22827 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
22828
22829         * object.h, reflection.h: use the correct type instead of MonoObject.
22830
22831 2002-03-28  Martin Baulig  <martin@gnome.org>
22832
22833         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
22834         (mono_debug_update_symbol_file): Initialize classes if necessary.
22835
22836 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
22837
22838         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
22839         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
22840
22841 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
22842
22843         * assembly.h: fix function prototype.
22844         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
22845         * mono-endian.h: use const cast.
22846
22847 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
22848
22849         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
22850
22851 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
22852
22853         * loader.c: don't assert when a typeref can't be loaded, give
22854         a chance to the runtime to trow an exception instead.
22855         * loader.h: fix warning.
22856
22857 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
22858
22859         * class.c (mono_class_proxy_vtable): added proxy support
22860
22861 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
22862
22863         * icall.c: removed last of PAL calls, added System.Environment
22864         * file-io.h, file-io.c: MonoIO implementation
22865         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
22866
22867 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
22868
22869         * appdomain.c: do not use the byte marker in ldstr table lookup.
22870         * debug-helpers.c: allow two ':' to separate class and method name.
22871         * object.c: allocate arrays bounds with the GC, too.
22872         * verify: add a few more checks.
22873
22874 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
22875
22876         * reflection.c: output also literal strings. Allocate parameter data
22877         with GC_malloc() (thanks, Martin, for catching this!).
22878
22879 2002-03-26  Martin Baulig  <martin@gnome.org>
22880
22881         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
22882         include the `this' offset in the `param_offsets'.
22883
22884 2002-03-25  Martin Baulig  <martin@gnome.org>
22885
22886         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
22887         mono_debug_get_class() function to get the classes. Added new
22888         relocation types for arrays and strings.
22889         (mono_debug_get_class): New static function to search in all
22890         referenced assemblies for a metadata token.
22891
22892         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
22893
22894 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
22895
22896         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
22897         hold gc-allocated objects. Make the string heap a stream like the
22898         others. Removed duplicated code when writing stream info.
22899         Added asserts to catch possible buffer overflows. Set the sorted map
22900         for tables that need sorting. Added some documentation.
22901
22902 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
22903
22904         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
22905         for interned strings and vtables.
22906
22907 2002-03-24  Martin Baulig  <martin@gnome.org>
22908
22909         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
22910         it in the array since it was created with g_slist_prepend().
22911
22912 2002-03-24  Martin Baulig  <martin@gnome.org>
22913
22914         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
22915         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
22916         (mono_debug_method_from_token): Renamed to
22917         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
22918         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
22919
22920         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
22921         relocation types.
22922
22923         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
22924
22925 2002-03-24  Martin Baulig  <martin@gnome.org>
22926
22927         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
22928         (mono_debug_method_from_token): New func.
22929
22930         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
22931         New interncall, calls mono_debug_local_type_from_signature().
22932         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
22933         calls mono_debug_method_from_token().
22934
22935 2002-03-23  Martin Baulig  <martin@gnome.org>
22936
22937         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
22938         specifies the number of bytes to be converted, not the array size.
22939         Return the number of chars, not the number of bytes.
22940         (ves_icall_iconv_get_chars): The `byteCount' argument
22941         specifies the number of bytes to be converted, not the array size.
22942
22943 2002-03-23  Martin Baulig  <martin@gnome.org>
22944
22945         * reflection.h (MonoReflectionSigHelper): New type.
22946
22947         * reflection.c (mono_reflection_sighelper_get_signature_local),
22948         (mono_reflection_sighelper_get_signature_local): New functions.
22949
22950         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
22951         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
22952         interncalls.
22953
22954 2002-03-23  Martin Baulig  <martin@gnome.org>
22955
22956         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
22957         is_writeable is set.
22958         (mono_raw_buffer_update): New function to write the modified map
22959         back to disk.
22960
22961         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
22962
22963         * debug-symfile.c (mono_debug_update_symbol_file): Call
22964         mono_raw_buffer_update() when done writing.
22965
22966 2002-03-23  Martin Baulig  <martin@gnome.org>
22967
22968         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
22969
22970         * debug-symfile.c: Added support for arguments and local variables.
22971
22972 2002-03-23  Dick Porter  <dick@ximian.com>
22973
22974         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
22975         protected by ifdefs, hence breaking the w32 build.
22976
22977 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22978
22979         * object.c: implement is_interned() the right way.
22980
22981 2002-03-21  Martin Baulig  <martin@gnome.org>
22982
22983         * debug-symfile.[ch]: New files to handle debugging information
22984         files. There's also support to dynamically update these symbol
22985         files to include machine dependent information.
22986
22987 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
22988
22989         * threads.c (mono_thread_create): new function to create thread
22990         from C
22991
22992 2002-03-20  Martin Baulig  <martin@gnome.org>
22993
22994         * icall.c (ves_icall_InternalInvoke): Create a new object if the
22995         method is a constructor.
22996         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
22997         points to ves_icall_InternalInvoke().
22998
22999 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
23000
23001         * file-io.c: Flush shouldn't throw exceptions.
23002
23003 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
23004
23005         * file-io.c: FileStream flush support; FileSetLength now
23006         restores file pointer.
23007
23008 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23009
23010         * class.c: set image for pointer classes.
23011
23012 2002/03/19  Nick Drochak <ndrochak@gol.com>
23013
23014         * sysmath.c: Forgot one.
23015
23016 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
23017
23018         * sysmath.c: Avoid redefining existing names.
23019
23020 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
23021
23022         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
23023         handled by runtime as icall rather than dllimport from libm.so
23024         * file-io.c, file-io.h: fixed handle argument type.
23025
23026 2002-03-18  Dick Porter  <dick@ximian.com>
23027
23028         * reflection.c (mono_image_get_type_info): rename interface to
23029         iface, because of "#define interface struct" on windows.
23030
23031 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
23032
23033         * class.c, class.h: rename and export mono_ptr_class_get().
23034         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
23035         * reflection.c, reflection.h, icall.c: better/saner type name
23036         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
23037         method signatures.
23038
23039 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
23040
23041         * class.c (mono_class_init): removed hardcoded GHC_SLOT
23042
23043         * icall.c (ves_icall_InternalInvoke): impl.
23044
23045 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23046
23047         * reflection.c: output the interface map table, too.
23048
23049 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
23050
23051         * class.c (class_compute_field_layout): separate computation of 
23052         static field layout
23053
23054 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
23055
23056         * icall.c: added System.Buffer support.
23057         * file-io.c: moved file icalls from PAL to FileStream.
23058
23059 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
23060
23061         * icall.c (ves_icall_System_Object_GetHashCode): impl.
23062
23063 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
23064
23065         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
23066
23067 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23068
23069         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
23070
23071 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23072
23073         * debug-helpers.{c,h}: moved here from monograph some useful functions
23074         to locate a method by name/signature in a class or image. Included
23075         also a small and flexible IL disassembler.
23076
23077 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23078
23079         * reflection.c: fixup tokens in methods with small header size, too.
23080
23081 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
23082
23083         * object.c (mono_string_to_utf8): remove assert(!error), instead
23084         print a warning. 
23085
23086 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
23087
23088         * icall.c: update to the new mono_Array_class_get interface.
23089
23090 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23091
23092         * appdomain.c, object.c: Boehm-GC enable.
23093         * icall.c: make get_data_chunk() support split data requests.
23094         Ensure a class is initialized in more cases. Return only the first
23095         property found in GetProperties() or the compiler gets confused. 
23096         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
23097         * reflection.h, reflection.c: add fixup mechanism for field and method
23098         tokens. Initialize assembly->typeref in a single place. Output
23099         properties after events. Support custom attributes for events, too.
23100         Typo fix for paramter custom attrs.
23101
23102 2002-03-07  Martin Baulig  <martin@gnome.org>
23103
23104         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
23105
23106 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
23107
23108         * class.c (mono_array_class_get): fix. for multi. dim. arrays
23109
23110 2002-03-06  Martin Baulig  <martin@gnome.org>
23111
23112         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
23113         non-zero lower bounds. See testcases #F10-#F13.
23114
23115 2002-03-05  Martin Baulig  <martin@gnome.org>
23116
23117         * exception.c (mono_get_exception_argument_out_of_range): New exception.
23118
23119         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
23120         ves_icall_System_Array_GetValue(), only calculate the absolute array position
23121         here.
23122         (ves_icall_System_Array_SetValue): Likewise.
23123         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
23124         as argument and does the actual work. This function is used when copying a
23125         multi-dimensional array.
23126         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
23127         now do all the widening conversions of value types.
23128         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
23129
23130 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23131
23132         * class.c: remove some magic numbers and use the smbolic names,
23133         instead. Added init_events() to load event info at class init time.
23134         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
23135         and mono_metadata_methods_from_event().
23136         * reflection.h, reflection.c: added support for writing out the evnets
23137         related information.
23138
23139 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23140
23141         * reflection.h, icall.c: use a different method (GetInterfaces)
23142         to gather interface info and add isbyref, isprimitive and
23143         ispointer to the ves_icall_get_type_info() return value.
23144
23145 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23146
23147         * class.h: stared adding support for events.
23148         * icall.c: split find_members implementation. Added debug icall to get
23149         the address of an object.
23150         * reflection.c: handle TypeBuilders in mono_type_get_object().
23151
23152 2002-03-01  Martin Baulig  <martin@gnome.org>
23153
23154         * icall.c (ves_icall_System_Array_GetLength): This must throw an
23155         ArgumentOutOfRangeException(), not an ArgumentException().
23156         (ves_icall_System_Array_GetLowerBound): Likewise.
23157         (ves_icall_System_Array_GetValue): Improved argument checking.
23158         (ves_icall_System_Array_SetValue): Improved argument checking.
23159
23160 2002-03-01  Martin Baulig  <martin@gnome.org>
23161
23162         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
23163         called with invalid arguments rather than just dying with g_assert().
23164         (ves_icall_System_Array_SetValue): Likewise.
23165         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
23166         raise a NotImplementedException instead.
23167         (ves_icall_System_Array_GetLength): Added argument checking.
23168         (ves_icall_System_Array_GetLowerBound): Added argument checking.
23169
23170 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
23171
23172         * object.h (mono_assert): new macros mono_assert and
23173         mono_assert_not_reached
23174
23175 2002-02-28  Martin Baulig  <martin@gnome.org>
23176
23177         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
23178         and "System::String::IsInterned" to "System::String::_IsInterned".
23179
23180 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
23181
23182         * icall.c: remove hacks for typebuilder. Added icall to create a
23183         modified type from a tybebuilder.
23184         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
23185         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
23186         to create a backing MonoClass for a TypeBuilder.
23187
23188 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23189
23190         * class.c, class.h: more refactoring of class init.
23191         Export mono_class_setup_mono_type() and mono_class_setup_parent().
23192
23193 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
23194
23195         * marshal.c, marshal.h: start of marshaling interface.
23196
23197 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
23198
23199         * icall.c: fix order in assembly qualified name icall.
23200
23201 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
23202
23203         * class.c: do not free str, since we store it in the hash table.
23204         * reflection.h: add label field to MonoILExceptionInfo.
23205         * reflection.c: handle references to more than one assembly. Handle
23206         case when there isn't a module created in the assembly.
23207
23208 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23209
23210         * class.c: Fix typo. Start refactoring of class init code.
23211
23212 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23213
23214         * appdomain.c: exit with 1 on error.
23215         * class.c: we already have the name in MonoClassField.
23216         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
23217         MonoStreamHeader instead of an offset of image->raw_metadata.
23218
23219 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
23220
23221         * appdomain.c (mono_init): Be even more descriptive about the error.
23222
23223 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
23224
23225         * appdomain.c: give the user an informative message when corlib can't
23226         be loaded.
23227
23228 2002-02-26  Martin Baulig  <martin@gnome.org>
23229
23230         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
23231         New icall to get the time zone data.
23232
23233 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23234
23235         * reflection.c: set virtual and raw size of section correctly.
23236         * threads.c: transfer domain information to newly created threads.
23237
23238 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
23239
23240         * class.c: when instancing a class in a domain, load the default
23241         vaules for static fields from the constant table. Fix System.Enum to
23242         not be an enum.
23243         * icall.c: implement Object::GetType() internalcall. Implemented
23244         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
23245         Fixed checking of binding flags in find_members().
23246         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
23247         * reflection.c: handle enumerations when writing to the constant
23248         table. Use a different object cache for types.
23249
23250
23251 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
23252
23253         * object.c (mono_object_isinst): fix for arrays
23254
23255         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
23256
23257 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
23258
23259         * object.c: don't use mprotect ()  and fix intern pool hash table
23260         lookup for big endian systems.
23261
23262 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23263
23264         * icall.c: change type_is_subtype_of () signature.
23265
23266 2002-02-21  Mark Crichton  <crichton@gimp.org>
23267
23268         * rand.c, rand.h: Added random number generator for
23269         System.Security.Cryptography classes.
23270
23271         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
23272
23273         * icall.c: Added System.Security.Cryptography calls.
23274
23275 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
23276
23277         * class.c, icall.c, metadata.c: better support for pointer types.
23278         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
23279         * reflection.c: Add support for getting custom attrs for properties
23280         and simplify some code.
23281
23282 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23283
23284         * icall.c: change getToken () and add custom attribute GetBlob()helper
23285         method.
23286         * reflection.h: add custom attrs array to the reflection builder structures.
23287         * reflection.c: encode and emit custom attributes for all the relevant
23288         reflection objects. Cache fieldref and methodref tokens. Change
23289         mono_image_create_token() interface to take a MonoDynamicAssembly.
23290         More complete custom attributes decoder. Load custom attributes for
23291         Assembly, Field, Method and Constructor objects, too. Make the
23292         returned array an Attribute[] one, not object[]. Added
23293         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
23294         custom attribute constructor.
23295
23296 2002-02-20  Dick Porter  <dick@ximian.com>
23297
23298         * icall.c:
23299         * rawbuffer.c:
23300         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
23301         problem code out for now).
23302
23303 2002-02-19  Radek Doulik  <rodo@ximian.com>
23304
23305         * object.c (mono_ldstr): use hash table to avoid multiple swapping
23306
23307 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
23308
23309         * icall.c: register the GetCustomAttributes method.
23310         * object.c, object.h: add mono_string_new_len ().
23311         * reflection.h, reflection.c: added mono_runtime_invoke(),
23312         mono_install_runtime_invoke(). Added
23313         mono_reflection_get_custom_attrs () to load custom attributes and
23314         create the attribute objects.
23315
23316 2002-02-19  Dick Porter  <dick@ximian.com>
23317         * threads-dummy-types.c:
23318         * threads-dummy-types.h:
23319         * threads-dummy.c:
23320         * threads-dummy.h:
23321         * threads-pthread-types.c:
23322         * threads-pthread-types.h:
23323         * threads-pthread.c:
23324         * threads-pthread.h:  Deleted obsolete files
23325
23326 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
23327
23328         * class.c (mono_class_vtable): runtime init the class when we
23329         allocate static class data.
23330
23331         * icall.c (ves_icall_System_Array_SetValue): check for null values.
23332
23333         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
23334         and String - but we will need generic marshalling support in the
23335         future. 
23336         (mono_init): set the domain name in a ms compatible way
23337
23338         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
23339         String[].
23340
23341 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
23342
23343         * object.c (mono_array_clone): use alloca() instead of g_malloc  
23344         for sizes
23345
23346         * appdomain.c (mono_domain_unload): impl.
23347
23348 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23349
23350         * appdomain.c, object.c: fix intern pool implementation.
23351         * class.c: fix alignment code.
23352
23353 2002-02-16  Radek Doulik  <rodo@ximian.com>
23354
23355         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
23356         and s2 > s1, just copy lower bytes to be compatible with little
23357         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
23358         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
23359
23360         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
23361         force big_endian to be 1 for big endian machines 
23362         (ves_icall_iconv_new_decoder): ditto
23363
23364 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
23365
23366         * socket-io.c (convert_sockopt_level_and_name): If the system
23367         doesn't define SOL_IP or SOL_TCP, get them by hand using
23368         getprotobyname() and caching the values (because this could be a
23369         slow operation).
23370         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
23371         Use the appropriate struct when the system does support it. Ie,
23372         not all systems have struct ip_mreqn so use struct ip_mreq when
23373         appropriate.
23374
23375 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
23376
23377         * reflection.c: handle finally clauses.
23378
23379 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
23380
23381         * socket-io.c: use g_snprintf() instead of snprintf.
23382
23383 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
23384
23385         * reflection.c (mono_param_get_objects): Cast second argument to
23386         mono_method_get_param_names to a const char** to silence the
23387         compiler warning.
23388
23389         * appdomain.c (mono_domain_assembly_open): Put parens around the
23390         truth statement in the for-loop.
23391
23392         * unicode.c (iconv_convert): Got rid of a compiler warning about
23393         int i being unused when the system has a new iconv.
23394         (iconv_get_length): Same.
23395
23396         * image.c (load_class_names): Cast the second argument to
23397         g_hash_table_insert() to char* to hush compiler warnings about the
23398         arg being a const.
23399         (mono_image_open): Same here.
23400
23401         * socket-io.c: Don't conditionally include sys/filio.h or
23402         sys/sockio.h here anymore since we now get them from
23403         io-layer/io-layer.h
23404         (inet_pton): If the system doesn't support inet_aton, implement
23405         using inet_addr and also #define INADDR_NONE if it isn't defined
23406         by the system.
23407
23408 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
23409
23410         * metadata.c, metadata.h: added function to get packing and size info
23411         of a typedef.
23412         * reflection.h, reflection.c: handle field RVA data. Save info about
23413         the table layout if needed. Assign typedef indexes to all the types
23414         before dumping the info about them to avoid forward reference problems.
23415
23416 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
23417
23418         * socket-io.c (convert_sockopt_level_and_name): ifdef
23419         SO_ACCEPTCONN because it is not defined on my system (old debian)
23420
23421 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23422
23423         * opcode.c: use stddef.h to get NULL.
23424
23425 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
23426
23427         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
23428         for FIONBIO, FIONREAD and SIOCATMARK.
23429         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
23430         define INADDR_NONE and besides, inet_addr() is deprecated and
23431         should not be used. Use inet_pton() instead - it also has the
23432         added bonus that it can easily handle IPv6 addresses as well.
23433         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
23434
23435 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23436
23437         * decimal.c: remove _MSC_VER conditional.
23438
23439 2002-02-13  Dick Porter  <dick@ximian.com>
23440
23441         * socket-io.c: 
23442         * icall.c: Internal calls for Blocking, Select, Shutdown,
23443         GetSocketOption and SetSocketOption
23444
23445 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23446
23447         * assembly.cs: better resolver: use it instead of some kludgy
23448         code.
23449
23450 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
23451
23452         * reflection.c: the best way to speed-up the compiler is to avoid
23453         infinite loops.
23454
23455 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
23456
23457         * class.c (mono_class_vtable): changed the object layout
23458         (obj->vtable->class). 
23459         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
23460
23461 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23462
23463         * assembly.c: look for assemblies in the assembly dir, too.
23464
23465 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23466
23467         * class.c: fix thinko in mono_class_from_type().
23468
23469 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23470
23471         * exception.h, exception.c: added TypeLoadException.
23472         * object.h, object.c: added mono_array_clone ().
23473         * icall.c: handle throwOnError in AssemblyGetType().
23474         Added Array.Clone().
23475         * opcode.h, opcode.c: use a single value for the opcode val.
23476         Compile fix for non-gcc compilers.
23477
23478 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
23479
23480         * opcodes.c, opcodes.h: export interesting info about opcodes.
23481
23482 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
23483
23484         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
23485         icalls. 
23486
23487         * class.c (class_compute_field_layout): set element_class for enums
23488         (mono_class_create_from_typedef): set element_class for normal classes
23489
23490         * icall.c (ves_icall_System_Enum_get_value): impl.
23491
23492         * class.c (mono_class_create_from_typedef): do not set valuetype
23493         flag for System.ValueType and System.Enum
23494
23495 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
23496
23497         * unicode.c (iconv_convert): fix big endian problem.
23498
23499 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23500
23501         * class.c: add asserts if we are ever going to scribble over memory.
23502         * socket-io.c: not all systems have AF_IRDA defined.
23503
23504 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
23505
23506         * class.c (class_compute_field_layout): do not consider static
23507         fields to compute alignment
23508
23509 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
23510
23511         * appdomain.c (mono_appdomain_get): impl.
23512         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
23513
23514 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23515
23516         * icall.c: ignore "file://" prefix when loading an assembly.
23517
23518 2002-01-23  Dick Porter  <dick@ximian.com>
23519
23520         * socket-io.c:
23521         * icall.c:
23522         * Makefile.am: Added socket support
23523
23524 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
23525
23526         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
23527         code back.  This should return the assemblies that are loaded by
23528         the runtime on behalf of an application domain. 
23529
23530         The current implementation is still broken, it just returns every
23531         assembly loaded, but until we get real applications domain this
23532         will do.
23533
23534 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
23535
23536         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
23537         AppDomain object.
23538
23539 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
23540
23541         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
23542         the mono_class_from_name lookup.
23543         (ves_icall_get_parameter_info): ditto.
23544         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
23545         method.
23546         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
23547
23548 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
23549
23550         * class.c: load also nested classes on class init.
23551         System.ValueType instance methods gets passed boxed
23552         values, unless methods in derived classed that get a pointer to the
23553         data.
23554         * icall.c: use better name parsing code in GetType().
23555         * image.c, image.h: add mono_image_loaded ().
23556         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
23557         * reflection.c, reflection.h: added mono_reflection_parse_type().
23558
23559 2002-01-22  Veronica De Santis <veron78@interfree.it>
23560
23561         * icall.c : Added mapping of internal calls for Manual and Auto reset events
23562         * threads.c : Added the implementation of internal calls for events
23563         * threads.h : Added prototypes of internal calls for events
23564         
23565 2002-01-21  Radek Doulik  <rodo@ximian.com>
23566
23567         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
23568
23569 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
23570
23571         * class.c (mono_class_init): set min_align to 1 (instead of 0)
23572         (mono_class_value_size): use min_align
23573
23574 2002-01-20  Dick Porter  <dick@ximian.com>
23575
23576         * threads.h:
23577         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
23578         so it compiles on w32.
23579
23580 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
23581
23582         * metadata.c (mono_type_stack_size): impl.
23583
23584         * class.c (mono_class_get_field): impl. memberref token
23585
23586 2002-01-16 Veronica De Santis <veron78@@interfree.it>
23587
23588         * icall.h : Added the internal calls mapping for CreateMutex_internal
23589                     and ReleaseMutex_internal.
23590         * threads.h : Added the prototype of mutexes internal calls.
23591         * threads.c : Added the implementations of mutexes internal calls.
23592
23593 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
23594
23595         * metaparse.h: removed unused file.
23596         * reflection.c, reflection.h: added stream_data_align () function 
23597         to align data in streams and keep stream aligned. Add support for
23598         exception support in method headers.
23599
23600 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
23601
23602         * unicode.c: make iconv_convert () return the number of bytess written
23603         in the output buffer.
23604
23605 2002-01-15  Dick Porter  <dick@ximian.com>
23606         * threads.c: Make the runtime's idea of infinite timeouts coincide
23607         with the class library's
23608
23609         Fix a particularly egregious bug in mono_thread_cleanup(). That
23610         code was so utterly bogus it must have been written on a Monday.
23611
23612 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
23613
23614         * reflection.h: add subtypes field to TypeBuilder.
23615         * reflection.c: encode constants for literal fields.
23616         Handle subtypes. Fix user string token (and add a zero byte)
23617         at the end.
23618         
23619 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
23620
23621         * class.c (mono_class_init): bug fix: assign slot numbers for
23622         abstract methods.
23623
23624 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23625
23626         * reflection.c: don't try to output a code RVA for abstract methods.
23627         Small fixes for method header format. Output parameter info to the
23628         ParamDef table. Save method overriding info to MethodImpl table.
23629         Fix property support. Allow typedef.extends to be a type in the
23630         building assembly.
23631         * verify.c: fix off-by-one error.
23632
23633 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
23634
23635         * class.c: fix mono_class_from_mono_type () for szarray types.
23636         Remove unused cache check in mono_class_from_type_spec().
23637         * icall.c: *type_from_name () functions handle simple arrays and byref.
23638         * reflection.c: handle byref and szarray types. Handle methods without
23639         body (gets P/Invoke compilation working). Handle types and fields in
23640         get_token ().
23641         * reflection.h: add rank to MonoTypeInfo.
23642
23643 2002-01-10  Dick Porter  <dick@ximian.com>
23644
23645         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
23646         internal calls
23647
23648 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
23649
23650         * icall.c: initialize class in type_from_handle ().
23651         Loop also in parent classes for get_method ().
23652         * reflection.c: properly encode class and valuetype types.
23653         Start on encoding TypeBuilder types. Handle fieldrefs.
23654         Use correct length when registering a user string.
23655         Handle ConstructorBuilder and MonoMethod in get_token ().
23656         Make mono_type_get_object () aware of cached types.
23657         * object.c: back out change to mono_string_new ().
23658
23659 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
23660         * object.c: mono_string_new should return a NULL when the string 
23661         passed in is NULL -- not try to deference it.
23662         
23663 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
23664
23665         * icall.c: hack to make IsSubType work for TypeBuilders.
23666         * reflection.c: emit constructors before methods.
23667         Retrieve param names in mono_param_get_objects().
23668
23669 2002/01/05  Nick Drochak  <ndrochak@gol.com>
23670
23671         * Makefile.am: fix list of headers and sources so automake 1.5
23672         doesn't complain. Removed \# at end of list.
23673
23674 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
23675
23676         * reflection.c: get token for a method ref. Set return type of
23677         constructor to void.
23678         * loader.c: debug message.
23679         * class.c: typo fix.
23680
23681 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
23682
23683         * icall.c: fix array init with rank > 1. FindMembers
23684         loops in parent class as well.
23685         * image.c: do not insert nested types in name cache.
23686         * reflection.c: warning fix.
23687         * reflection.h: add override method (for interface impl).
23688
23689 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
23690
23691         * metadata.c: fix customattr decoding.
23692
23693 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
23694
23695         * rawbuffer.cs: Added native Win32 implementation, avoids using
23696         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
23697
23698 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
23699
23700         * class.c: make the low-level routines handle the cache.
23701
23702 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
23703
23704         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
23705
23706 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
23707
23708         * class.c: fix mono_array_element_size() for objects.
23709         * class.h, class.c: add properties to MonoClass and load them
23710         at init time.
23711         * icall.c: check with isinst() when assigning a value to an array
23712         instead of requiring the classes to match exactly.
23713         Implemented icall for System.Type::GetType().
23714         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
23715         enums. Handle bindingflags when looking for methods and fields.
23716         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
23717         and mono_metadata_methods_from_property().
23718         * reflection.h, reflection.c: added structures for propreties,
23719         parameters and enums. Implemented mono_property_get_object() and
23720         mono_param_get_objects().
23721
23722 2001-12-18  Dick Porter  <dick@ximian.com>
23723
23724         * file-io.c: Use mono_string_to_utf16() instead of
23725         mono_string_chars()
23726
23727         * object.c: Added mono_string_to_utf16(), which copies the non
23728         NULL-terminated MonoString into a new double-null-terminated
23729         buffer.
23730
23731 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
23732
23733         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
23734
23735 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
23736
23737         * file-io.c: raise exceptions if handle is invalid.
23738
23739 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
23740
23741         * assembly.c: yet another check for mscorlib.
23742         * class.c, class.h: load nesting info for classes.
23743         * icall.c: many new functions to support the Reflection classes.
23744         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
23745         * reflection.h, reflection.c: mono_image_create_token(),
23746         mono_assembly_get_object(), mono_type_get_object(),
23747         mono_method_get_object(), mono_field_get_object(): methods to return
23748         objects that parallel the C representation of assemblies, types,
23749         methods, fields.
23750
23751 2001-12-11  Dick Porter  <dick@ximian.com>
23752
23753         * icall.c:
23754         * file-io.c: Internal calls for file IO.
23755
23756 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
23757
23758         * tabledefs.h: missing FileAttributes.
23759         * verify.h, verify.c: use is_valid_string () to simplify and check for
23760         valid strings more correctly. Fix warnings and speeling.
23761         Check more tables: Filed, File, ModuleRef, StandAloneSig.
23762         Check code: branches, maxstack, method calls.
23763
23764 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
23765
23766         * object.c (mono_object_allocate): removed static, so that the jit
23767         can allocate value types.
23768
23769         * icall.c (ves_icall_System_DateTime_GetNow): impl.
23770
23771 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
23772
23773         * class.c: init enum types right away and register the
23774         token->MonoClass map in mono_class_create_from_typedef ().
23775         * verify.h, verify.c: first cut of the verifier.
23776         * pedump.c: add --verify switch to verify metadata tables.
23777         * tabledefs.h: add some missing enums.
23778
23779 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
23780
23781         * class.c (mono_install_runtime_class_init): impl.
23782         (mono_class_init): renamed mono_class_metadata_init to
23783         mono_class_init, also removed the metadata_inited flag
23784
23785         * object.c (mono_object_isinst): use faster algorithm
23786
23787 2001-11-30  Radek Doulik  <rodo@ximian.com>
23788
23789         * mono-endian.h: reverted last change
23790         added function prototypes
23791
23792         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
23793         add mono-endian.c back
23794
23795         * mono-endian.c: returned back, as Paolo pointed out, it's needed
23796         for unaligned access, I've mistaked it with endianess. I am
23797         sorry.
23798         (mono_read16): fix reverted endianess
23799         (mono_read64): ditto
23800         (mono_read32): ditto
23801
23802 2001-11-30  Dick Porter  <dick@ximian.com>
23803
23804         * exception.c: Implement mono_exception_from_name()
23805
23806 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
23807
23808         * metadata.h, metadata.c: remove params_size and locals_size and their
23809         calculation from the metadata code: they are only usefult to the
23810         interp.
23811
23812 2001-11-29  Radek Doulik  <rodo@ximian.com>
23813
23814         * object.c (mono_ldstr): swap bytes here, it's probably not the
23815         best place, but works for me now, I'll redo it once I know mono
23816         better, also note that I add PROT_WRITE and don't reset back, also
23817         note that it's only affects big endians, so x86 should be OK
23818
23819         * mono-endian.h (read16): use just glib macros for both endians
23820
23821         * mono-endian.c: removed as glib macros are used in in
23822         mono-endian.h so we don't need to care about endianess for read
23823         macros as glib does that for us already
23824
23825 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
23826
23827         * class.h, class.h: take minimum alignment into consideration so
23828         that the fields of a class remain aligned also when in an array.
23829
23830 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
23831
23832         * loader.h, loader.c: add mono_method_get_param_names().
23833         * class.c: 0-init class fields.
23834
23835 2001-11-26  Dick Porter  <dick@ximian.com>
23836
23837         * icall.c:
23838         * threads-types.h:
23839         * threads.c: New file that handles System.Threading on all platforms
23840
23841         * object.c: 
23842         * object.h: Remove the synchronisation struct from MonoObject,
23843         replace it with a pointer that gets initialised on demand
23844
23845         * Makefile.am: Replace all the system-specific threading code with
23846         a single file that uses the new wrapper library
23847
23848 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
23849
23850         * class.c, class.h: add mono_install_trampoline() so that the runtime
23851         can register a function to create a trampoline: removes the ugly
23852         requirement that a runtime needed to export arch_create_jit_trampoline.
23853         * object.h, object.c: added mono_install_handler() so that the runtime
23854         can install an handler for exceptions generated in C code (with
23855         mono_raise_exception()). Added C struct for System.Delegate.
23856         * pedump.c: removed arch_create_jit_trampoline.
23857         * reflection.c: some cleanups to allow registering user strings and
23858         later getting a token for methodrefs and fieldrefs before the assembly
23859         is built.
23860         * row-indexes.h: updates and fixes from the new ECMA specs.
23861
23862 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
23863
23864         * class.h, class.c: add enum_basetype field to MonoClass.
23865         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
23866         to get index in the constant table reated to a field, param or
23867         property.
23868         * reflection.h, reflection.c: handle constructors. Set public-key and
23869         version number of the built assembly to 0.
23870         * row-indexes.h: update from new ECMA spec.
23871
23872 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
23873
23874         * class.h, class.c: add a max_interface_id to MonoClass.
23875         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
23876         since it's used to do that. Added mono_type_type_from_obj().
23877         Make GetType() return NULL instead of segfaulting if the type was not
23878         found. Handle simple arrays in assQualifiedName.
23879         * object.h: add a struct to represent an Exception.
23880         * reflection.c: output call convention in method signature.
23881         Add code to support P/Invoke methods and fixed offsets for fields.
23882
23883 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
23884
23885         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
23886         the value.
23887         * icall.c: use mono_array_addr instead of array->vector: fixes the
23888         reflection image writing.
23889         * reflection.c: init call convention byte to 0 in method signature.
23890         Encode the property signature. Don't output property-related methods
23891         twice. Really process the properties for a type (don't cast a field to
23892         a property, my mom always told me that).
23893         Fix 64 bit issues in pointer alignment in a different and more
23894         readable way.
23895
23896 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
23897
23898         * loader.h: Removed type class from MonoDefaults, added monotype
23899
23900         * loader.c: Loaded MonoType, removed loading of Type
23901
23902         * icall.c (my_mono_new_object): Now returns a System.MonoType,
23903         and fills in System.Type._impl with a RuntimeTypeHandle rather
23904         than the actual MonoClass *
23905
23906         (ves_icall_type_from_handle): change from type_class to
23907         monotype_class
23908
23909         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
23910         implemented
23911
23912         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
23913         implemented
23914
23915         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
23916
23917         (ves_icall_System_Reflection_Assembly_GetType): implemented
23918
23919         (ves_icall_System_MonoType_assQualifiedName): implemented
23920
23921         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
23922
23923 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
23924
23925         * assembly.c (mono_assembly_open): Implement a cache for the
23926         assemblies. 
23927
23928         (mono_assembly_close): only destroy the assembly when the last
23929         reference is gone.
23930         
23931 2001-11-09  Dick Porter  <dick@ximian.com>
23932
23933         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
23934
23935 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
23936
23937         * class.c (mono_class_metadata_init): bug fix: compute the right slot
23938
23939 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
23940
23941         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
23942         from Martin Weindel.
23943         * object.h: add mono_string_chars ().
23944
23945 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
23946
23947         * reflection.c (build_compressed_metadata): Eliminates warnings
23948         and uses 64-bit clean code.
23949
23950         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
23951         (mono_type_equal): Change signature to eliminate warnings.
23952
23953 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
23954
23955         * icall.c, loader.c: remove the internalcall array constructors.
23956         Changes to match the new MonoArray structure.
23957         * object.h, object.c: an array object doesn't allocate an extra
23958         vector. Add mono_array_new_full () to create jagged arrays easily.
23959
23960 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
23961
23962         * metadata.h, metadata.c: add mono_metadata_field_info () to
23963         retreive all the info about a field from vairous tables.
23964         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
23965         * class.h, class.c: augment MonoClassField with more info.
23966         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
23967         policy and load a field's RVA if needed.
23968
23969 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
23970
23971         * class.c (mono_class_metadata_init): create a trampoline for all
23972         virtual functions instead of actually compiling them.
23973
23974 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
23975
23976         * class.h, class.c: include name in MonoClassField.
23977         * class.c: fix fundamental type of System.Object and System.String.
23978         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
23979         tokens in ldtoken.
23980         * icall.c: remove internalcalls for the Reflection stuff that is now
23981         done in C# code.
23982         * loader.c: mono_field_from_memberref () implementation.
23983         * mono-endian.c: thinko (s/struct/union/g).
23984         * object.c, object.h: make the mono_string_* prototypes actually use
23985         MonoString instead of MonoObject.
23986         * reflection.c, reflection.h: updates for changes in the reflection
23987         code in corlib: we use C structures that map to the actual C# classes.
23988         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
23989         fat method header if needed and use the info from the ILGenerator for
23990         methods. Handle fields in types. Misc fixes.
23991
23992 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
23993
23994         * class.c (mono_class_metadata_init): bug fix: always allocate
23995         space for static class data
23996
23997 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
23998
23999         * class.c (mono_compute_relative_numbering): use relative
24000         numbering to support fast runtime type checks.
24001
24002 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
24003
24004         * class.c (mono_class_create_from_typeref): added debugging output
24005         to print class name when MonoDummy is returned instead of real class
24006
24007 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
24008
24009         * class.c (mono_class_metadata_init): interface offset table now
24010         contains pointers into the vtable - this is more efficient for the jit
24011
24012 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
24013
24014         * class.c (mono_class_metadata_init): use a temporary vtable (the
24015         old algorithm only worked for the interpreter, but not for the jit)
24016
24017 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
24018
24019         * loader.c (method_from_memberref): use mono_class_get to get the
24020         class of an array instead of using System.Array directly.
24021         (mono_get_method): also add MEMBERREF methods to the method cache
24022         which usefull for arrays.
24023
24024 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
24025
24026         * pedump.c (arch_compile_method): added to compute vtable entry
24027
24028         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
24029         number of interfaces.
24030         
24031         * class.h: merged MonoArrayClass into MonoClass
24032
24033         * class.c (mono_class_create_from_typedef): compute the vtable size and
24034         allocate space to include the vtable inside MonoClass
24035         (mono_class_metadata_init): initialize the vtable
24036
24037 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
24038
24039         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
24040         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
24041         * image.c: endian fixes by Laurent Rioux.
24042         * object.h, object.c: rename MonoStringObject to MonoString and
24043         MonoArrayObject to MonoArray. Change some function names to conform to
24044         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
24045         guint16* as first argument, so don't use char*.
24046         Provide macros to do the interesting things on arrays in a portable way.
24047         * threads-pthread.c: updates for the API changes and #include <sched.h>
24048         (required for sched_yield()).
24049         * icall.c: updates for the API changes above.
24050         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
24051         platforms that need them.
24052
24053 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24054
24055         * class.c: set the correct type for all the fundamental
24056         type when loading the class.
24057
24058 2001-10-05  Dick Porter  <dick@ximian.com>
24059
24060         * threads-pthread.c (pthread_mutex_timedlock): Simple
24061         compatibility version for C libraries that lack this call.
24062
24063 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24064
24065         * class.c: MonoTypes stored in MonoClass are stored as
24066         fundamental MonoTypes when the class represents a
24067         fundamental type (System.Int32, ...).
24068         The TypeHandle return by ldtoken is a MonoType*.
24069         * icall.c: ves_icall_get_data_chunk () write out all the
24070         PE/COFF stuff. Implement ves_icall_define_method (),
24071         ves_icall_set_method_body (), ves_icall_type_from_handle ().
24072         * image.c: properly skip unknown streams.
24073         * loader.h, loader.c: add type_class to mono_defaults.
24074         * metadata.c, metadata.h: export compute_size () as
24075         mono_metadata_compute_size () with a better interface.
24076         Typo and C&P fixes.
24077         * pedump.c: don't try to print the entry point RVA if there is no entry point.
24078         * reflection.c, reflection.h: many cleanups, fixes, output method
24079         signatures and headers, typedef and typeref info, compress the metadata
24080         tables, output all the heap streams, cli header etc.
24081         * row-indexes.h: typo fixes.
24082
24083 2001-10-04  Dick Porter  <dick@ximian.com>
24084
24085         * object.h: Add a synchronisation mutex struct to MonoObject
24086
24087         * object.c (mono_new_object): Initialise the object
24088         synchronisation mutexes
24089
24090         * icall.c: System.Threading.Monitor internal calls
24091         
24092         * threads-pthread.h:
24093         * threads-pthread.c: System.Threading.Monitor internal calls
24094
24095         * threads-types.h: New file, includes the system-specific thread
24096         structures
24097         
24098         * threads-pthread-types.h:
24099         * threads-pthread-types.c: New files, handle pthread-specific
24100         synchronisation types
24101
24102         * threads-dummy-types.h: 
24103         * threads-dummy-types.c: New files of dummy support for
24104         thread-specific types
24105
24106         * metadata.c:
24107         * image.c:
24108         * pedump.c: include mono-endian.h not endian.h
24109         
24110         * Makefile.am: More threads files.
24111         Name mono-endian.h not endian.h
24112
24113 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
24114
24115         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
24116         stuff and implement a few more bits.
24117         * icall.c: a field needs to be dereferenced twice. Do not use the same
24118         name for two variables in the same scope.
24119         * image.c, image.h: cleanups.
24120
24121 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
24122
24123         * class.c (mono_class_metadata_init): bug fix: compute the right size
24124
24125 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
24126
24127         * icall.c: implemented some of the Reflection internalcalls.
24128         * image.c, image.h: start writing out the PE/COFF image.
24129         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
24130         that does the reverse than decode_blob_size ().
24131         * object.c: use mono_metadata_encode_value (). Move here
24132         temporary implementation of mono_string_to_utf8 ().
24133         * rawbuffer.c: make malloc_map static.
24134
24135 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24136
24137         * metadata.c: fix type comparison for arrays.
24138         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
24139         Added a couple of new classes to monodefaults.
24140         * icall.c: added a couple of Reflection-related internalcalls.
24141         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
24142         Added a byval_arg MonoType to MonoClass.
24143
24144 2001-09-28  Dick Porter  <dick@ximian.com>
24145
24146         * icall.c:
24147         * threads-pthread.h: 
24148         * threads-pthread.c: Implemented internal calls for
24149         LocalDataStoreSlot operations.  Applied mutexes around all shared
24150         data.  Reworked the thread creation and Start() operations to
24151         avoid a race condition.
24152         
24153         * threads-dummy.h:
24154         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
24155
24156 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
24157
24158         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
24159
24160 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
24161
24162         * class.c, loader.c: warn and return NULL instead of erroring out.
24163         * icall.c: added System.AppDomain::getCurDomain().
24164         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
24165
24166 2001-09-25  Dick Porter  <dick@ximian.com>
24167
24168         * threads-pthread.h:
24169         * threads-pthread.c: Implemented timed thread joining and added
24170         System.Threading.Thread::Join_internal internal call
24171
24172         * icall.c: Added System.Threading.Thread::Join_internal internal call
24173
24174         * threads-dummy.h:
24175         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
24176
24177 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
24178
24179         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
24180         mono_string_intern () to implement the semantics of the ldstr opcode
24181         and the interning of System.Strings.
24182         * icall.c: provide hooks to make String::IsIntern and String::Intern
24183         internalcalls.
24184
24185 2001-09-23  Dick Porter  <dick@ximian.com>
24186
24187         * threads-dummy.c: 
24188         * threads-dummy.h: New files of dummy threading routines
24189
24190         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
24191         support code based on system specifics
24192
24193         Rename PTHREAD_LIBS to THREAD_LIBS
24194         
24195 2001-09-23  Dick Porter  <dick@ximian.com>
24196
24197         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
24198         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
24199         internal calls.
24200         (mono_thread_init): Set up a Thread object instance to return when
24201         the main thread calls Thread.CurrentThread
24202         (mono_thread_cleanup): Wait for all subthreads to exit
24203
24204         * icall.c: New internal calls for System.Threading.Thread::Sleep
24205         (including Schedule) and CurrentThread
24206
24207         * threads.h: New file, to insulate thread-specific stuff from the
24208         rest of the code
24209
24210 2001-09-21  Dick Porter  <dick@ximian.com>
24211
24212         * threads-pthread.h: 
24213         * threads-pthread.c: New file, for handling pthreads-style
24214         threading support.  Start() now starts a new thread and executes
24215         the ThreadStart delegate instance.
24216
24217         * icall.c: Added the internalcall for
24218         System.Threading.Thread::Start_internal
24219
24220         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
24221
24222 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
24223
24224         * loader.c: work around the different signatures for delegates
24225         constructors csc generates in compiled code vs the ones compiled in mscorlib.
24226
24227 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
24228
24229         * class.h, class.c: add mono_class_get_field_from_name ().
24230         * *: Fix C comments and other ANSI C issues.
24231
24232 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
24233
24234         * endian.h, assembly.c: fix some endianness issues.
24235
24236 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
24237
24238         * loader.h, load.c: add delegate_class to mono_defaults.
24239         Handle runtime provided methods in mono_get_method ().
24240
24241 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
24242
24243         * loader.c (mono_get_method): use pinvoke for internal call
24244
24245         * icall.c: use pinvoke for internal call
24246
24247         * loader.c (method_from_memberref): set the method name
24248
24249 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
24250
24251         * metadata.c: help the compiler generate better code for
24252         mono_class_from_mono_type ().
24253
24254 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
24255
24256         * class.c (mono_class_metadata_init): delayed computing of the
24257         class size to mono_class_metadata_init ()
24258
24259 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
24260
24261         * class.c, class.h: add an interfaces member to MonoClass.
24262         * image.c, image.h: add assembly_name field to MonoImage
24263         from the assembly table.
24264         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
24265
24266 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24267
24268         * class.c: Handle Array in mono_class_from_mono_type ().
24269         * metadata.c, pedump.c: some endian fixes.
24270
24271 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24272
24273         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
24274         * metadata.c: fix small problem introduced with the latest commit.
24275
24276 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
24277
24278         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
24279         We don't need a MonoMetadata pointer anymore to compare signatures in
24280         mono_metadata_signature_equal (), update callers.
24281         Reduced memory usage an number of allocations for MonoMethodHeader and
24282         MonoMethodSignature.
24283
24284 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
24285
24286         * metadata.c: added compare for szarray.
24287
24288 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
24289
24290         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
24291         and add a couple more types to it and mono_defaults. Give an hint on
24292         classes that need implementing in our corlib and are referenced
24293         in mscorlib.
24294
24295 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
24296
24297         * class.h, class.c: keep track if a class is also an Enum.
24298         * loader.c: Implement a couple more types for use in libffi
24299         marshalling. Gives better diagnostics when failing to dlopen
24300         a library. Set method->klass for P/Invoke methods, too.
24301
24302 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
24303
24304         * class.c, class.h: add a MonoType this_arg to MonoClass that
24305         represents a pointer to an object of the class' type that
24306         can be used by the interpreter and later the type cache.
24307         Add best guess alignment info for valuetype objects.
24308
24309 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
24310
24311         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
24312         into MonoType: one less level of indirection and allocation and
24313         simplifies quite a bit of code. Added cache for MonoTypes that are
24314         used frequently, so that we don't need to allocate them all the time.
24315
24316 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
24317
24318         * class.c (mono_class_create_from_typedef): System.Enum is also a
24319         value type, although it does not derive from System.ValueType
24320         (maybe a bug in the ms compiler?)
24321
24322         * metadata.c (mono_type_size): return the right size for value types
24323
24324         * loader.c (mono_get_method): only initialize method header if not abstract
24325
24326         * class.c (mono_class_from_mono_type): use mono_default values. 
24327
24328 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
24329
24330         * *: use MonoClass pointers instead of <type_tokens>
24331         
24332         * class.h: new flag: metadata_inited.
24333
24334         * class.c (mono_class_metadata_init): impl.
24335         (mono_class_instance_size): impl.
24336         (mono_class_data_size): impl.
24337
24338 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24339
24340         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
24341         MonoClass now has the name and name_space fields. 
24342         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
24343         mono_get_method () takes and optional MonoClass as argument.
24344         Removed mono_typedef_from_name() and added mono_class_token_from_name()
24345         instead that takes advantage of a map from class names to typedef
24346         tokens in MonoImage.
24347
24348 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
24349
24350         * metadata.c: zero is not a valid alignment boundary.
24351         Merge MONO_TYPE_VOID in default decoding code.
24352
24353 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
24354
24355         * image.h: merged MonoMetadata into MonoImage
24356
24357         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
24358         identify the type of elements.
24359
24360 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
24361
24362         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
24363         * cil-coff.h: split MonoMSDOSHeader and add size info.
24364         * image.c: add some consistency checks.
24365         * metadata.c: fix row size computation: one programmer
24366         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
24367         add explanation for the locator routine.
24368         Fix decoding of size in method header.
24369         
24370 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
24371
24372         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
24373         (g_concat_dir_and_file): Bring g_concat_dir_and_file
24374         function from gnome-libs.  This uses the right path separator
24375         based on the OS, and also works around a bug in some systems where
24376         a double slash is not allowed. 
24377         (default_assembly_name_resolver): Use g_concat_dir_and_file
24378         (mono_assembly_open): ditto.
24379
24380 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
24381
24382         * metadata.c (mono_metadata_signature_equal): impl.
24383
24384         * *: void is now a realy MonoType (instead of using NULL)
24385         
24386         * metadata.c (do_mono_metadata_parse_type): use
24387         mono_metadata_parse_type to parse void value.
24388
24389 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
24390
24391         * metadata.c, metadata.h: in the signature and method header store
24392         only the space required for holding the loca vars and incoming arguments.
24393
24394 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
24395
24396         * metadata.c (do_mono_metadata_parse_type): treat void like any
24397         other type (instead of assigning NULL);
24398
24399 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
24400
24401         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
24402
24403 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
24404
24405         * image.c (do_mono_image_open): added a cache for arrays.
24406
24407 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24408
24409         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
24410         decode a single column from a row in a metadata table and changes
24411         to take advantage of it in the typedef locator (gives a nice speed up).
24412         Store offset info for function params.
24413
24414 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
24415
24416         * image.h (MONO_IMAGE_IS_CORLIB): removed 
24417
24418 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
24419
24420         * assembly.c: how could mono_assembly_close () had ever worked?
24421         * metadata.c, metadata.h: provide offset info for local vars.
24422         Implement mono_type_size () to take care of alignment as well
24423         as size (it was mono_field_type_size in cli/class.c before).
24424
24425 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
24426
24427         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
24428
24429         * assembly.h (CORLIB_NAME): set to corlib.dll
24430
24431         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
24432
24433 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24434
24435         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
24436         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
24437         tokentype.h: massive namespace cleanup.
24438
24439 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24440
24441         * metadata.h, metadata.c: decode exception clauses when parsing method header.
24442
24443 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
24444
24445         * metadata.c (mono_metadata_free_type): added check for type !=
24446         NULL (void) before calling mono_metadata_free_type()
24447
24448 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
24449
24450         * metadata.h, row_indexes.h: added header with enumerations to use
24451         to index in the columns from tables in metadata and to decode coded
24452         tokens: we should start using this instead of embedding magic numbers
24453         all over the code.
24454
24455 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
24456
24457         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
24458         Move metadata_t info from cli_image_info_t to MonoImage, where
24459         it's easily accessible. Changed all the uses accordingly.
24460         Added the method and class caches to MonoImage.
24461         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
24462         and mono_metadata_decode_value () signature to be more consistent
24463         with the other parse functions (and simplify code). Taken advantage
24464         of zero-length array allocation with GCC. Removed reduntant (and
24465         wrong) MonoFieldType struct and use MonoParam instead. Changed
24466         mono_metadata_parse_field_type () to use common code for parsing.
24467         Added mono_metadata_typedef_from_field () and
24468         mono_metadata_typedef_from_method () to lookup a typedef index from a
24469         field or method token.
24470         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
24471
24472 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
24473
24474         * metadata.c (mono_metadata_parse_field_type): Implement. 
24475         (do_mono_metadata_parse_type): Split engine from
24476         mono_metadata_parse_type, so that we can create smaller structures
24477         for things that just have one pointer to the MonoType (look at
24478         the MonoFieldType)
24479
24480 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
24481
24482         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
24483         as Jan Gray found out, it is incorrect. 
24484
24485 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
24486
24487         * assembly.c: Implement asssembly loading.  This loads an image
24488         and loads all the referenced assemblies.  Come to think of it, we
24489         could always do lazy loading of the assemblies. 
24490
24491         * image.c (mono_image_open): Keep loaded images in a hashtable.
24492
24493         * image.h (MonoImage): Add reference count.
24494
24495 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
24496
24497         * assembly.c (mono_assembly_open): Keep track of the file name in
24498         case the assembly has no ASSEMBLY table.
24499
24500         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
24501         from get.c here.
24502
24503 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
24504
24505         * metadata.c, metadata.h: decode local vars in method header
24506         parse function. Change callers accordingly.
24507
24508 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
24509
24510         * metadata.h, cil-coff.h: protect against multiple inclusion.
24511         Added some new structures to hold information decoded from metadata:
24512         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
24513         and relevant decoding/free functions.
24514         * metadata.c: implement decoding functions. Add warning for out of bounds
24515         index in mono_metadata_locate(). Implement mono_get_method () to retreive
24516         all the info about a method signature and invocation. Remove check on
24517         uninitialized local var in parse_mh() and fix memory leak.
24518
24519 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
24520
24521         * metadata.h: More macros.
24522
24523         * tokentype.h: New file.
24524
24525 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
24526
24527         * assembly.c: added a consistency check and initialize
24528         some structures with g_new0().
24529         * metadata.c: fixed a couple more bugs in table size computation
24530         and add other checks for out-of bound access to metadata.
24531
24532 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
24533
24534         * metatada.c: fix bugs computing table sizes. Spew a
24535         warning when index in string heap is out of bounds.
24536
24537 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
24538
24539         * metadata.h: Add a couple of macros to manipulate tokens. 
24540
24541 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
24542
24543         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
24544         cli_section_tables).
24545
24546 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
24547
24548         * metadata.c (mono_metadata_user_string): New function, provides
24549         access to the UserString heap. 
24550
24551 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
24552
24553         * metadata.c: Add inline documentation.
24554
24555 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
24556
24557         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
24558         files. 
24559
24560 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
24561
24562         * typeattr.h: New file, TypeAttribute flags. 
24563
24564 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
24565
24566         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
24567         mono_assembly_ensure_section): Section loading code.
24568         (load_section_tables): Load the sections.
24569
24570         * mono/metadata/metadata.c (mono_metadata_locate_token,
24571         mono_metadata_locate): Functions to locate the information
24572         definition given a token or a table and an index.
24573         (mono_metadata_compute_table_bases): New.
24574         (compute_size): New function to compute the sizes of the various
24575         tables.
24576
24577         * mono/metadata/metadata.h: Finish listing the different index
24578         types. 
24579
24580         * mono/metadata/pedump.c: Improve to dump new information.
24581
24582 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
24583
24584         * mono/metadata/metadata.c: Entered all the tables matching
24585         Beta2. 
24586
24587         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
24588
24589
24590