2008-02-03 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
2
3         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
4         between methods for non-corlib types.
5
6 2008-02-02  Geoff Norton  <gnorton@novell.com>
7
8         * loader.c (mono_method_get_param_names): Populate the parameter name for 
9         generic parameters as well. (Fixes #342536)
10
11 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
12
13         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
14
15         * verify.c (do_invoke_method): Fix for calling with byref structs.
16
17         * verify.c (do_cast): push a boxed value type based on the type token and not
18         the type of stack.
19
20 2008-01-31  William Holmes  <billholmes54@gmail.com>
21
22         * process.c (process_module_string_read): Check the size returned form 
23           VerQueryValue to avoid out of memory exception. 
24
25 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
26
27         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
28         Handle properly modules which are not in the moduleref table. Fixes
29         #356938.
30
31 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
32
33         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
34         the dynamic case which is now in managed code.
35         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
36
37         * marshal.c (mono_string_to_bstr): Fix a warning.
38         (init_com_provider_ms): Ditto.
39
40         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
41
42         * exception.c (mono_get_exception_out_of_memory): New helper function.
43
44 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
45
46         * marshal.c: Add support for BSTR marshalling
47         using other COM systems.
48
49         Code is contributed under MIT/X11 license.
50
51 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
52
53         * object.c (mono_runtime_invoke_array): reverted previous
54         commit as it breaks the build.
55
56 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
57
58         * object.c (mono_runtime_invoke_array): Verify arguments for
59         invalid types. Fixes #348522.
60
61 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
62
63         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
64         non-final virtual calls using call. 
65
66         * verify.c (do_invoke): fixed some TODOs.
67
68         * verify.c (push_arg): set has_this_store for "ldarga 0".
69
70 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
71
72         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
73         which belong to an inflated class. Fixes #356531.
74
75 2008-01-26  Robert Jordan  <robertj@gmx.net>
76
77         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
78         which resort to FindFirstFile when a certain error condition
79         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
80         Code is contributed under MIT/X11 license.
81
82 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
83
84         * marshal.c (emit_marshal_string): Fix out string marshalling
85         to use specified encoding. Fixes #323900.
86
87         Code is contributed under MIT/X11 license.
88
89 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
90
91         * class.c (mono_class_inflate_generic_method_full): Don't modify
92         iresult->context after cache check.
93
94 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
95
96         * class.c (mono_class_inflate_generic_method_full): Change the
97         struct assignments to memcpy for better visibility and add some comments.
98
99 2008-01-23  Dick Porter  <dick@ximian.com>
100
101         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
102         procedure, and make it work on windows.
103
104 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
105
106         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
107         a MonoReflectionTypeBuilder since it is always of that type.
108
109         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
110
111         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
112
113         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
114         
115         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
116
117         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
118
119         * reflection.c (mono_reflection_create_runtime_class): Remove already created
120         instantiations from the type cache.
121
122 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
123
124         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
125
126         * verify.c (do_unbox_value): push a controled mutability managed pointer.
127
128 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
129
130         * verify.c (do_ldstr): added, verifies if the #US token is valid.
131
132         * verify.c (mono_method_verify): removed old TODO
133
134 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
135
136         * verify.c (do_newobj): add visibility check.
137
138 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
139
140         * verify.c (do_load_function_ptr): add visibility check.
141
142 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
143         *class.c:
144         mono_generic_class_get_class: hook profiler events.
145         mono_field_get_offset: added to support heap-shot in the new profiler.
146         *class.h: exported mono_field_get_offset.
147         * reflection.c:
148         mono_reflection_setup_internal_class: hook profiler events.
149
150 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
151
152         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
153         argument here too and use it to avoid checking for pending exceptions if 
154         possible.
155
156 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
157
158         * assembly.c (build_assembly_name): add arg for passing the assembly
159         flags. Do not consider a PublicKey with value "null" valid.
160         (mono_assembly_name_parse_full): added boolean argument that will be
161         set if the assembly name contains a PublicKeyToken spec. Added support
162         for the Retargetable spec for which only Yes or No are allowed as valid
163         value. Consider assembly name invalid if Retargetable spec is set, but
164         either version, culture or public key (token) are not specified.
165         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
166         with implementation in assembly.c.
167         * icall.c (fill_reflection_assembly_name): also copy assembly flags
168         from MonoAssemblyName.
169         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
170         introduced argument for mono_assembly_name_parse_full to know if the
171         assembly name has a PublicKeyToken spec, and if it has instruct
172         fill_reflection_assembly_name to use default value for keyToken (if
173         PublicKeyToken is null).
174
175 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
176
177         * verify.c (mono_method_verify): fixed ovf ops with
178         float values. They are unverifiable now.
179
180 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
181
182         * class.c (set_failure_from_loader_error): add BadImageException to the
183         list of exceptions that can cause a type to fail to load.
184
185         * class.c (mono_class_get_exception_for_failure): same.
186
187 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
188
189         * verify.c (in_any_exception_block): added, check if offset
190         is part of any exception handling clause.
191
192         * verify.c (get_stack_type): added VAR and MVAR types.
193
194         * verify.c (do_stobj): better error messages.
195
196         * verify.c (do_cpobj): added, check cpobj.
197
198         * verify.c (do_initobj): added, check initobj.
199
200         * verify.c (do_sizeof): added, check sizeof.
201
202         * verify.c (do_localloc): added, check localloc.
203
204         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
205
206 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
207
208         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
209         save_lmf/restore_lmf opcodes.
210
211         * threads.c (mono_threads_install_notify_pending_exc): New function to
212         install a callback notifying the JIT there is a pending exception on a thread.
213         (mono_thread_request_interruption): Call the new callback.
214         (mono_thread_get_and_clear_pending_exception): New function to return the
215         exception pending on a thread.
216
217         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
218         to turn off checking for pending exceptions.
219         (mono_marshal_get_native_wrapper): Ditto.
220
221 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
222
223         * threads-types.h: Get rid of the unnecessary extern declarations.
224
225 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
226
227         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
228         return field from parent class if not private.
229         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
230         returns fields from parent class if they are not private.
231         (method_nonpublic): added function to determine if a given method
232         should be considered non-public. Returns false for private methods
233         on parent class, and internal methods from parent on the 1.0 profile.
234         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
235         use method_nonpublic function to determine whether method should be
236         returned.
237         (property_accessor_public): use newly introduced method_nonpublic
238         function to determine whether accessor is non-public. 
239         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
240         event from parent class if not private. Only return static event if
241         Static flag is set, and only return static event from parent class if
242         FlattenHierarchy flag is set.
243         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
244         include non-private events from parent class.
245
246 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
247
248         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
249         warning.
250
251 2008-01-16  Wade Berrier <wberrier@novell.com>
252
253         * security.c: Add assembly.h header to appease some warnings
254
255 2008-01-16  Dick Porter  <dick@ximian.com>
256
257         * process.c (process_module_string_read): Remove trailing null
258         when saving string.
259
260 2008-01-16  Mark Probst  <mark.probst@gmail.com>
261
262         * class-internals.h: A new data structure describing the layout of
263         a runtime generic context (MonoRuntimeGenericContextTemplate).
264
265         * metadata-internals.h: Added a hash table to MonoDomain that maps
266         from open generic classes to their runtime generic context
267         templates.
268
269         * object.c: Building of the runtime generic context, including
270         proper handling of generic type arguments of superclasses.
271         Building of the runtime generic context according to the template.
272
273 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
274
275         * class.c (mono_class_setup_fields): Set field.count for generic instances.
276         Fixes #350856.
277
278         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
279         mono_portability_find_file (). Fixes #325466.
280         (mono_image_get_public_key): Fix a warning.
281
282 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
283
284         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
285         Fixes #353550.
286         (mono_class_from_name_case): Ditto.
287
288 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
289
290         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
291           common storage for the tables used in the System/NumberFormatter class.
292
293 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
294
295         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
296
297 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
298
299         * verify.c (get_boxable_mono_type): check if the token is valid.
300
301         * verify.c (set_stack_value): changed to add an error if an
302         invalid type is set on stack. Changed all callers due to signature change.
303
304         * verify.c (do_stobj): implement stobj validation.
305
306 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
307
308         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
309         set container->is_method, it was set earlier.
310
311         * metadata.c (type_in_image): Handle MVARs which belong to not finished
312         generic methods.
313
314         * reflection.c (mono_reflection_initialize_generic_parameter): Set
315         is_method of the generic container to TRUE for methods.
316
317 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
318
319         * metadata.c (type_in_image): Handle type parameters properly.
320
321         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
322         memory ownership of this structure.
323
324 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
325
326         * verify.c (get_boxable_mono_type): make typedref types been just
327         unverifiable. check for void type.
328
329         * verify.c (do_unbox_any): added, verify opcode unbox.any.
330
331         * verify.c (do_load_function_ptr): accept method spec tokens.
332
333 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
334
335         * marshal.c (mono_class_native_size): Always set *align even if this is called
336         recursively.
337
338 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
339
340         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
341         out-of-date.
342
343 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
344
345         * verify.c: removed some old unused tables. A huge bunch of small fixes
346         to things found while testing the verifier with mono basic.
347
348         * verify.c (dump_stack_value): dump null literal flag to.
349
350         * verify.c (verify_type_compatibility_full): fix comparison
351         for types that have a generic super type.
352
353         * verify.c (verify_stack_type_compatibility): fix compatibility
354         between null literals and reference types. fix compatibility between
355         boxed valuetypes and object. fix corner case test for enums.
356
357         * verify.c (do_cmp_op): proper verification of cgt.un in case
358         of reference types.
359
360         * verify.c (do_invoke_method): fix error message.
361
362         * verify.c (do_store_indirect
363
364         * verify.c (check_is_valid_type_for_field_ops): proper verification
365         of managed pointers to valuetypes and boxed valuetypes. proper verification
366         of null literals.
367
368         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
369         allow token to be a reference type.
370
371         * verify.c (do_cast): proper handling of boxes valuetypes.
372
373         * verify.c (do_stelem): proper handling of storing a boxed valuetype
374         in object[].
375
376         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
377         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
378         fixed the decoding of unbox_any
379
380 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
381
382         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
383
384 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
385
386         * verify.c (do_newobj): do delegate verification.
387
388         * verify.c (verify_delegate_compatibility): perform delegate
389         verification.
390
391         * verify.c (verify_ldftn_delegate): perform tests related to
392         ldftn delegates.
393
394         * verify.c (mono_delegate_signature_equal): perform the
395         slightly diferent signature comparison required by delegates.
396
397         * metadata.c (mono_metadata_type_equal_full): added and exported
398         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
399         allows signature only comparison.
400
401         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
402         as MONO_INTERNAL.
403
404 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
405
406         * verify.c: added a bunch of stack_slot_* functions to
407         make access to stack slot type easier. This is required to
408         allow optional flags, like null literal, boxed value and
409         this pointer.
410         All access paths to IlStackDesc::stype have been changed 
411         to use these new funcions.
412         Removed a bunch of unused functions and cleared all warnings.
413         This patch introduces the usage of the this pointer and 
414         boxed value flags.
415
416 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
417
418         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
419
420 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
421
422         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
423         match managed version.
424
425         * appdomain.c: Bump corlib version.
426         
427         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
428         argument.
429
430 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
431
432         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
433         Set public key token to zero-length byte array if assembly is not
434         strongnamed.
435
436 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
437
438         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
439         writing a vtype array elem.
440
441 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
442
443         * assembly.c (build_assembly_name): return FALSE if length of token is
444         not 16 (if not "null").
445         (mono_assembly_name_parse_full): return FALSE if value of version,
446         culture, token or key is 0.
447         * icall.c (fill_reflection_assembly_name): add boolean arguments to
448         specify whether public key and public key token must be set to default
449         value (zero-length byte array) if not available. Set versioncompat to
450         SameMachine. If public key is available or the default is set, then
451         set PublicKey flag.
452         (ves_icall_System_Reflection_Assembly_FillName): if no public key
453         is available, use empty byte array as default value. On the 2.0
454         profile, use default value for public key token if not set.
455         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
456         profile, use default value for public key if not set. On the 2.0
457         profile, use default value for public key token if not set.
458         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
459         default values for public key and public key token.
460
461 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
462
463         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
464         field to keep it in synch with the managed object.
465
466         * marshal.c (emit_marshal_object): Add support for byref marshalling of
467         delegates. Fixes #351520.
468
469         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
470         contains defined memory.
471         
472         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
473
474         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
475         
476         * sgen-gc.c (check_consistency): New helper function to do a consistency check
477         of the GC data structures.
478
479         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
480
481         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
482         
483         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
484         barrier.
485         (mono_array_clone_in_domain): Ditto.
486         (mono_array_clone_in_domain): Ditto.
487
488         * threads.c (start_wrapper): Register the thread start argument as a GC root.
489         (cache_culture): Use a write barrier.
490
491         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
492         (ves_icall_get_property_info): Ditto.
493
494         * object.h (MONO_STRUCT_SETREF): New macro.
495
496         * class-internals.h (MonoStats): Add some GC statistics.
497
498         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
499
500 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
501
502         * exception.c (mono_exception_from_name_two_strings):
503         Break from loop after method is found.
504
505 2008-01-04  Dick Porter  <dick@ximian.com>
506
507         * process.c (process_module_string_read): Rename variable to
508         reflect correct usage, after fixing bug 345972.
509
510 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
511
512         * verify.c (mono_type_create_fnptr_from_mono_method): 
513         created a MonoType function pointer instance to be used during
514         verification. The verifier releases this memory at end.
515
516         * verify.c (mono_method_is_constructor): extracted repeated
517         checks for constructor into a single class.
518
519         * verify.c (do_push_field): use new extracted method
520         for constructor check.
521
522         * verify.c (do_newobj): same.
523
524         * verify.c (do_ldftn): renamed to do_load_function_ptr
525         and make it verify ldvirtftn too.
526
527         * verify.c (mono_method_verify: proper verification
528         of ldvirtftn. release created MonoMethod instances.
529
530 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
531
532         * verify.c (token_bounds_check): added.
533
534         * verify.c (do_ldftn): added.
535
536         * verify.c (mono_method_verify): proper verificartion of ldftn.
537
538 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
539
540         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
541         than the table row count. It's the resposibility of the caller to
542         make the bounds check and raise the correct error.
543
544         * metadata.c (mono_metadata_decode_row_col): Same.
545
546         * loader.c (mono_get_method_from_token): perform bounds check
547         on token for methoddef table.
548
549 2007-12-29  Miguel de Icaza  <miguel@novell.com>
550
551         * icall.c
552         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
553         assert into a negative result, the managed code already coped with
554         that.
555
556         Some folks on Windows reported this error. 
557
558 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
559
560         * appdomain.c: Bump corlib version.
561         * icall.c:
562         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
563         CultureInfo.CreateCulture to create CultureInfo for name.
564         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
565         create CultureInfo for name. Fixes bug #347174.
566
567 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
568
569         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
570         flags.
571
572         * verify.c (is_valid_branch_instruction): allow branching to the
573         first instruction of the protected block.
574
575         * verify.c (is_valid_cmp_branch_instruction): same.
576
577         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
578         avoid double initialization.
579
580         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
581         detect which cases the eval stack should just be copied.
582
583         * verify.c (mono_method_verify): check if the eval stack
584         is empty when entering a protected block.
585
586 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
587
588         * verify.c: added is_clause_in_range, is_clause_inside_range,
589         is_clause_nested and verify_clause_relationship. They perform
590         the verifications stated in P1 12.4.2.7.
591
592         * verify.c (mono_method_verify): remove some unused variables,
593         add the new exception clause checks, add instruction border
594         checks for protected block start/end, improved some error 
595         messages and fixed a bug in the way invalid instruction access
596         is detected.
597
598 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
599
600         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
601         from GC 7.0 if available.
602
603         * object.c: Remove an unused define.
604         
605         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
606
607         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
608
609         * null-gc.c (mono_gc_make_descr_for_array): Implement.
610
611         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
612
613         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
614         to take the same arguments as the other make_descr functions.
615
616         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
617
618         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
619         directly.
620
621         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
622         mini.c.
623
624         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
625         call to boehm-gc.c.
626
627         * boehm-gc.c (mono_gc_register_root): Fix a warning.
628
629         * null-gc.c (mono_gc_register_root): Fix a warning.
630
631         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
632
633         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
634         (mono_gc_base_init): Call GC_init ().
635
636         * null-gc.c: Define mono_gc_register_root () as a no-op.
637
638         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
639
640 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
641
642         * verify.c: add prototype for merge_stacks at top
643
644         * verify.c (do_switch): added.
645
646         * verify.c (merge_stacks): on some cases the stack merging
647         was not happening properly. Unequal stack sizes at merge
648         points should be invalid.
649
650         * verify.c (mono_method_verify): added more debug info on stack state.
651         verify switch properly.
652
653 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
654
655         * method-builder.h: New file, moved the mono_mb_ declarations here from 
656         marshal.h.
657
658         * boehm-gc.c marshal.c: Include method-builder.h.
659
660         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
661
662         * marshal.c: Remove some code which is now in method-builder.c.
663
664 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
665
666         * method-builder.c: New file, extraction of the method builder functionality 
667         from marshal.c.
668
669         * marshal.c: Move the mb functions into method-builder.c.
670
671         * marshal.h marshal.c: Export some mono_mb_... functions.
672
673         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
674
675         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
676         the caller.
677
678         * class.c (mono_class_get_full): Check the token type in the dynamic case.
679
680         * loader.c (mono_field_from_token): Ditto.      
681
682         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
683         type as well.
684         
685         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
686         Fixes #342565.
687
688         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
689         a helper function for setting it.
690
691         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
692
693         
694         * assembly.c: Significally simplify code now that referenced assemblies are 
695         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
696
697         * threads.h: Don't include  the internal threads-types.h header file. Fixes
698         #349952.
699
700 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
701
702         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
703         instructions that were target of branches or are at protected block boundaries.
704
705         * verify.c (in_same_block): handle filter clauses.
706
707         * verify.c (is_valid_branch_instruction): added. checks the target of
708         instructions br or brtrue/false.
709
710         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
711         binary branch instructions such as beq and bge.
712
713         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
714         and made it pin the instruction as been part of the exception block.
715
716         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
717         of in_same_block.
718
719         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
720         of in_same_block.
721
722         * verify.c (do_ret): ret from a protected block is unverifiable and
723         not invalid.
724
725         * verify.c (do_static_branch): verify br and br.s instructions.
726
727         * verify.c (merge_stacks): add extra param to support detection
728         of branches in the middle of instructions.
729         
730         * verify.c (mono_method_verify): verify branches and exception blocks
731         that target the middle of instructions. Proper verification of br and br.s.
732
733 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
734
735         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
736         skip_visibility field.
737         (reflection_methodbuilder_from_dynamic_method): Ditto.
738
739         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
740         registrations. Fixes #348193.
741
742         * threads.h: Move the internal mono_thread_get_pending_exception () to
743         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
744
745 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
746
747         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
748         icall registration. Fixes #348193.
749
750         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
751         for corlib classes into object. Fixes #349621.
752
753 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
754
755         * icall.c (property_accessor_nonpublic): new function to determine
756         whether an accessor allows a property to be considered non-public.
757         Returns false for private accessor(s) from parent class, and internal
758         accessor(s) from parent on 2.0 profile (and higher).
759         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
760         to determine whether property should be included if NonPublic flag
761         is set. Fixes bug #349078.
762
763 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
764
765         * verify.c (init_stack_with_value): added.
766
767         * verify.c (mono_method_verify): extracted common
768         code for exception initialization into init_stack_with_value.
769
770         * verify.c (mono_method_verify): initialize the exception
771         for handler clauses as well.
772
773         * verify.c (mono_method_verify): fix the exception clause
774         ordering rules, it should use handler end offset and not
775         start offset.
776
777 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
778
779         * rawbuffer.c: remove useless warning.
780
781 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
782
783         * threads.h, threads-types.h: move functions to the correct header
784         (fixes bug#349952).
785
786 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
787
788         * verify.c (mono_method_verify): proper verification
789         of exception handling clauses ranges and fallthru in
790         and out of protected blocks.
791
792 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
793
794         * verify.c (mono_method_verify): fixed compilation issue.
795
796 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
797
798         * verify.c (mono_method_verify): a printf slipped in, changed
799         to use verifier debug macro.
800
801 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
802
803         * verify.c (is_correct_leave): check for filter clauses.
804
805         * verify.c (do_filter): added.
806
807         * verify.c (mono_method_verify): property verification of leave.
808
809
810 2007-12-18  Mark Probst  <mark.probst@gmail.com>
811
812         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
813         Win32 build, until we figure out how to do the proper thing on
814         Win32.
815
816 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
817
818         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
819         by the previous patch.
820         
821         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
822         the assembly resolve handler for refonly assemblies.
823
824 2007-12-17  Mark Probst  <mark.probst@gmail.com>
825
826         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
827         Make sure only one thread is allowed to commence shutdown, and
828         don't allow new threads to be started once shutdown is in
829         progress.
830
831 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
832
833         * verify.c (is_correct_endfilter): added.
834
835         * verify.c (is_unverifiable_endfilter): added.
836
837         * verify.c (do_endfilter): added.
838
839         * verify.c (mono_method_verify): property verification of endfilter
840         and fixed a corner case or endfinally.
841
842 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
843
844         * verify.h: new flags to support fail fast of unverifiable code and
845         do non-strict verification. Non-strict verification is required to
846         have MS runtime compatibility. There are a huge amount of unverifiable
847         code that it accepts as verifiable. The strict mode verifies the code
848         as the specs says.
849         Non-strict mode will be required in cases where code needs to be
850         accepted as verifiable but fails under strict mode.
851
852         * pedump.c: added support to fail fast and non-strict verification.
853
854         * verify.c: added support for both fail fast and non-strict verification.
855
856 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
857
858         * verify.c (is_correct_endfinally): added.
859
860         * verify.c (mono_method_verify): property verification of endfinally.
861
862 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
863
864         * verify.c (in_any_block): check for filter clauses.
865
866         * verify.c (is_correct_rethrow): added.
867
868         * verify.c (mono_method_verify): property verification of rethrow.
869
870         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
871
872 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
873
874         * verify.c (do_throw): added.
875
876         * verify.c (mono_method_verify): property verification of throw
877
878 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
879
880         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
881         assemblies. Fixes #346425.
882
883 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
884
885         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
886         FieldBuilders.
887
888         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
889
890         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
891         prevent asserts when this is called with a token which might not be valid.
892
893         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
894         lookup_dynamic_token_class with valid_token == FALSE.
895
896         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
897
898         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
899
900         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
901         
902 2007-12-10  Mark Probst  <mark.probst@gmail.com>
903
904         * gc.c: Don't delay threadpool thread finalization unless Mono is
905         shutting down.
906
907 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
908
909         * threads.c: turn an assert into a non-fatal warning.
910
911 2007-12-09  Robert Jordan  <robertj@gmx.net>
912
913         * icall.c (GetVirtualMethod): Add missing argument validation.
914
915 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
916
917         * verify.c (do_cast): added.
918
919         * verify.c (mono_method_verify): property verification of castclass and isinst.
920
921
922 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
923
924         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
925
926         * verify.c (do_stelem): added.
927
928         * verify.c (mono_method_verify): property verification of stelem.X.
929
930 2007-12-07  Mark Probst  <mark.probst@gmail.com>
931
932         * class.c, class-internals.h: Introduce an environment variable
933         (MONO_GENERIC_SHARING) through which the extent of generic code
934         sharing can be controlled (share all classes, share only corlib
935         classes, or share nothing).
936
937         * object.c: Only create runtime generic context for classes for
938         which sharing is enabled.
939
940 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
941
942         * verify.c (do_ldelem): refactor it to work with ldelem.any.
943
944         * verify.c (mono_method_verify): property verification of ldelem.any.
945
946 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
947
948         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
949         added ldelem.X opcodes.
950
951         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
952
953         * verify.c: proper verification of ldelem.X 
954
955 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
956
957         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
958
959 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
960
961         * verify.c (mono_method_verify): null literal requires special handling,
962         the value pushed on stack need to be flagged as so.
963
964         * verify.c (do_ldelema): Verify ldelema properly.
965
966 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
967
968         * verify.c: Verify ldlen properly.
969
970 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
971
972         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
973         to the target object's type. Fixes #346160.
974
975 2007-12-05  Dick Porter  <dick@ximian.com>
976
977         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
978         Solaris needs the same workaround as BSD-derived systems.  Fixes
979         bug 323524, patch by Burkhard Linke
980         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
981
982 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
983
984         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
985         handle to use when error dialog is shown; otherwise, update mask
986         to show no error dialog when an error occurs.
987
988 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
989
990         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
991
992         * class.c (mono_class_get_field_default_value): New helper function to initialize
993         field->def_type and field->data.
994
995 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
996
997         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
998         the general one.
999
1000         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
1001
1002         * marshal.c: Avoid depending on delegate->method_info being set.
1003
1004         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
1005         
1006         * object.c (mono_delegate_ctor): Set delegate->method.
1007
1008         * object-internals.h (struct _MonoDelegate): Add 'method' field.
1009
1010         * appdomain.c: Bump corlib version.
1011
1012 2007-11-27  Raja R Harinath  <harinath@gmail.com>
1013
1014         * metadata.c (mono_generic_inst_equal_full): Short-circuit
1015         equality check if we're comparing canonicalized MonoGenericInsts.
1016
1017 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
1018
1019         * class.c (generic_array_methods): Call mono_class_setup_methods () before
1020         accessing class->methods.
1021
1022 2007-11-22  Dick Porter  <dick@ximian.com>
1023
1024         * threads.c: Ensure that the synch_cs is set before trying to use
1025         it.
1026
1027 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
1028
1029         * profiler.c: r89126 broke the statistial profiler, unbreak.
1030
1031 2007-11-22  Martin Baulig  <martin@ximian.com>
1032
1033         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
1034
1035         * mono-debug.c
1036         (mono_debug_debugger_version): Bump to 3.
1037         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
1038         -> mono_debugger_class_initialized().
1039
1040         * mono-debug-debugger.c
1041         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
1042
1043         * class.c
1044         (mono_debugger_start_class_init_func): Removed.
1045         (mono_debugger_class_loaded_methods_func): Added.
1046         (mono_class_setup_methods): Call it here.
1047
1048 2007-11-22  Martin Baulig  <martin@ximian.com>
1049
1050         * mono-debug.c
1051         (mono_debug_add_delegate_trampoline): New public method.
1052         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
1053
1054         * mono-debug.h
1055         (MonoSymbolTable): Added `global_data_table'.
1056         (MonoDebuggerTypeKind): Removed.
1057
1058 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
1059
1060         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
1061         these methods.
1062
1063         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1064         
1065 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1066
1067         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
1068
1069 2007-11-20  Martin Baulig  <martin@ximian.com>
1070
1071         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
1072
1073         * mono-debug-debugger.c
1074         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
1075         (mono_debugger_remove_breakpoint): Likewise.
1076         (mono_debugger_check_breakpoints): Likewise.
1077         (mono_debugger_register_class_init_callback): New public method.
1078         (mono_debugger_remove_class_init_callback): Likewise.
1079         (mono_debugger_add_type): Likewise.
1080
1081         * mono-debug-debugger.h
1082         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
1083
1084 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
1085
1086         * class.c: more interface implementations needed for the
1087         array enumerator (fixes bug #341112).
1088
1089 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
1090
1091         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
1092         fix ParamName of ArgumentNullExceptions.
1093
1094 2007-11-17  Miguel de Icaza  <miguel@novell.com>
1095
1096         * reflection.c (mono_reflection_encode_sighelper): Generate the
1097         modopts and modreqs.   I have a useless test that crashes monodis,
1098         but that shows the code working.
1099
1100 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
1101
1102         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
1103         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
1104
1105 2007-11-15  Dick Porter  <dick@ximian.com>
1106
1107         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
1108         When joining a thread, it's the thread that's calling Join that
1109         gets WaitSleepJoin state not the target.  Fixes the standalone
1110         test case in bug 334740, and hopefully the whole bug too.
1111
1112 2007-11-15  Dick Porter  <dick@ximian.com>
1113
1114         * process.c: Read file version info from the files pointed at by
1115         process modules, not the current process.  Fixes bug 315969.
1116
1117         Use windows typedef names in some places to fix warnings on the
1118         windows build.
1119
1120 2007-11-15  Mark Probst  <mark.probst@gmail.com>
1121
1122         * image.c, metadata-internals.h: Added a generic_class_cache hash
1123         to MonoImage for looking up generic classes when sharing generics.
1124
1125 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1126
1127         * sgen-gc.c: warning cleanups.
1128
1129 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
1130
1131         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
1132         inherited properties.
1133
1134 2007-11-14  Mark Probst  <mark.probst@gmail.com>
1135
1136         * object.c, class-internals.h: Added more information to the
1137         runtime generic context.
1138
1139 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
1140
1141         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
1142         instead of just the target method. Generalize the abstract method handling to
1143         handle any non-static method.
1144
1145         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1146         mono_marshal_get_delegate_invoke () signature change.
1147
1148 2007-11-13  Mark Probst  <mark.probst@gmail.com>
1149
1150         * class.c, class-internals.h: Made
1151         mono_type_get_basic_type_from_generic () public.  Fixed member
1152         access check for shared generics.
1153
1154         * loader.c: Don't insert field into field cache if it's part of a
1155         non-inflated generic class.
1156
1157         * domain.c, domain-internals.h: The generic sharing context is now
1158         part of the jit info data structure.  Added two accessor
1159         functions.
1160
1161 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
1162
1163         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
1164         the array Get/Set/Address methods, since the JIT inlines them.
1165
1166         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
1167
1168         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
1169         (mono_image_init): Initialize runtime_invoke_direct_cache.      
1170
1171         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1172         mono_marshal_get_delegate_invoke signature change.
1173
1174         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
1175         an additional argument. Add support for invoking abstract methods.
1176
1177         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
1178
1179         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
1180
1181 2007-11-09  Mark Probst  <mark.probst@gmail.com>
1182
1183         * class.c: Do field layout for open generic classes as well.
1184
1185 2007-11-09  Mark Probst  <mark.probst@gmail.com>
1186
1187         * gc.c, gc-internal.h: Don't finalize threadpool threads with
1188         other objects, because the threadpool is still around.  Put them
1189         in a list instead and after finalizing all other objects in the
1190         root domain shut down the thread pool and then finalize the
1191         threads.  Fixes bug #337383.
1192
1193         * threads.c, thread-types.h: New mono_thread_create_internal()
1194         function for marking a thread with the threadpool flag before it
1195         started.  Set synch_cs to NULL after freeing it.
1196
1197         * threadpool.c: Mark threadpool threads before they start.
1198
1199 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1200
1201         * reflection.h, reflection.c: don't export random functions
1202         and lazy load dbnull and missing objects.
1203
1204 2007-11-07  Jonathan Chambers <joncham@gmail.com>
1205
1206         * class.c: Initialize COM types if COM interfaces
1207         are present (not just COM classes).
1208         
1209         Code is contributed under MIT/X11 license.
1210
1211 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
1212         * reflection.c:
1213         create_dynamic_mono_image: hook module profiler events (dynamic case).
1214         mono_image_basic_init: hook assembly profiler events (dynamic case).
1215
1216 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
1217         * profiler.c:
1218         simple_appdomain_unload: completely terminate the profiler
1219         instead of only processing the statistical samples.
1220         simple_shutdown: make sure this is really called exactly once,
1221         even in multithreaded applications, and always listen to
1222         appdomain events.
1223         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
1224         here, the "[un]load" functions will do it.
1225         Fixes bugs #333791 and #325261.
1226
1227 2007-11-07  Geoff Norton  <gnorton@novell.com>
1228
1229         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
1230         rather than depend on __APPLE__.
1231
1232 2007-11-07  Mark Probst  <mark.probst@gmail.com>
1233
1234         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
1235
1236 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
1237
1238         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
1239         UTF16 MonoString. Fix the crash from bug #335488
1240
1241 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
1242
1243         * marshal.c: Correct (for non-Win32 OS) length != size in 
1244         mono_string_from_bstr. Fix #339530.
1245
1246 2007-11-06  Geoff Norton  <gnorton@novell.com>
1247
1248         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
1249         to succeed
1250
1251 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
1252
1253         * process.c: Added run-time GetProcessId API detection for Windows.
1254
1255 2007-11-04  Miguel de Icaza  <miguel@novell.com>
1256
1257         * reflection.c  (mono_param_get_objects): If a parameter has the
1258         attribute [System.Runtime.InteropServices.Optional] we should
1259         set the DefaultValue of the ParameterInfo to be
1260         System.Reflection.Missing instead of DBNull.
1261
1262         See bug #339013.
1263
1264         (mono_get_reflection_missing_object): New method,
1265         returns the System.Reflection.Missing.Value singleton instance.
1266
1267 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
1268
1269         * culture-info-table.h : regenerated.
1270
1271 2007-11-02  Jonathan Chambers <joncham@gmail.com>
1272
1273         * icall.c: Use GetEnvironmentStrings on windows
1274         so we are using the same environment block as 
1275         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
1276         #333740.
1277         
1278         Code is contributed under MIT/X11 license.
1279
1280 2007-10-31  Martin Baulig  <martin@ximian.com>
1281
1282         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
1283
1284         * mono-debug-debugger.h
1285         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
1286
1287 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
1288
1289         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
1290         classes.
1291
1292 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
1293
1294         * culture-info-table.h : regenerated.
1295
1296 2007-10-30  Robert Jordan  <robertj@gmx.net>
1297
1298         * icall-def.h, icall.c:
1299         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
1300
1301         Code is contributed under MIT/X11 license.
1302
1303 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
1304
1305         * class.c (mono_class_setup_vtable): Find the inflated methods in the
1306         inflated class instead of inflating them again.
1307         
1308         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
1309         dynamic case.
1310
1311         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
1312         Call setup_supertypes () after klass->parent is set.
1313         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
1314
1315         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
1316         for inflated instances of not yet created dynamic generic classes.
1317         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
1318         times from inflated_method.
1319         (methodbuilder_to_mono_method): Ditto.
1320
1321 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1322
1323         * gc.c: code cleanup and removed old untested option of not creating the
1324         finalizer thread.
1325
1326 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
1327
1328         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
1329         creating a jump trampoline for dynamic methods.
1330
1331 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
1332
1333         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
1334         generic TypeBuilders when called from another method of the same type (bug #335131).
1335
1336
1337 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
1338
1339         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
1340         doesn't seem to work perfectly.
1341         
1342         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
1343         called multiple times.
1344         (methodbuilder_to_mono_method): Ditto.
1345         (resolve_object): Inflate FieldBuilder's.
1346
1347 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1348
1349         * string-icalls.c, string-icalls.h, appdomain.c: patch from
1350         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
1351         RemoveEmptyEntries in the string.Split implementation (bug #322375).
1352
1353 2007-10-26  Dick Porter  <dick@ximian.com>
1354
1355         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
1356         Thread initialisation changes
1357
1358 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
1359
1360         * verify.c: fix compatibility check between arrays and System.Array
1361
1362 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
1363
1364         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
1365         too. Fixes #336999.
1366
1367 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
1368
1369         * object.c (mono_value_box): Use typed allocation here.
1370
1371 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
1372
1373         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
1374         trampoline instead of compiling the method right away.
1375
1376         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
1377
1378 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
1379
1380         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
1381         related fields for dynamic classes. Fixes #334493.
1382
1383 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
1384
1385         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
1386         
1387         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
1388
1389         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
1390         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
1391
1392         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
1393
1394         * reflection.c (create_generic_typespec): Initialize klass->generic_container
1395         if needed.
1396         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
1397
1398 2007-10-18  Jonathan Chambers <joncham@gmail.com>
1399
1400         * marshal.c: Use correct key when removing item
1401         from ccw_hash.
1402         
1403         Code is contributed under MIT/X11 license.
1404
1405 2007-10-17  William Holmes  <billholmes54@gmail.com>
1406
1407         *marshal.c: Adding a case to marshal booleans to U1
1408
1409         Code is contributed under MIT/X11 license.
1410
1411 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
1412
1413         * class.c (mono_class_from_name): Search the modules compromising dynamic
1414         assemblies. Fixes #331601.
1415
1416 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
1417
1418         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
1419         exception if the type name contains an assembly component. Fixes #334203.
1420
1421         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
1422         modules inside dynamic assemblies. Fixes #334200.
1423         
1424         * reflection.c: Set image->public_key and image->public_key_length;
1425
1426         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
1427         fields.
1428
1429         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
1430         
1431 2007-10-16  Mark Probst  <mark.probst@gmail.com>
1432
1433         * metadata.c: Implemented correct comparing of generic classes.
1434         An inflated generic class can be equal to a non-inflated one if it
1435         is inflated with generic type variables as type arguments.  Fixes
1436         bug #333798.
1437
1438 2007-10-15  Dick Porter  <dick@ximian.com>
1439
1440         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
1441         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
1442         81646.
1443
1444         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
1445         instead of a monitor lock.  This means that monitor_try_enter and
1446         co can set the thread state safely.
1447         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
1448         thread_interrupt_requested, so interrupt actually works.
1449
1450         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
1451         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
1452         state accessor function
1453
1454 2007-10-15  Martin Baulig  <martin@ximian.com>
1455
1456         * mono-debug.h
1457         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
1458         the debugger with the current runtime.
1459
1460 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
1461
1462         * object.c, object-internals.h: added the ability to set a single
1463         trampoline for all the slots in a vtable.
1464
1465 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1466
1467         * marshal.c: deal with a possible race condition during multicast
1468         delegate invocation.
1469
1470 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1471
1472         * class.c: ensure value type methods don't have the synchronized
1473         flag set.
1474
1475 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
1476
1477         * string-icalls.c, string-icalls.h: reverted unapproved patch that
1478         breaks the build.
1479
1480 2007-10-11  Joel Reed  <joelwreed@comcast.com>
1481
1482         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
1483         to take an options parameter so that empty entries can be removed during
1484         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
1485
1486 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1487
1488         * marshal.c: make sure we don't store the signature from a dynamic
1489         method into the runtime invoke cache (bug #327189).
1490
1491 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1492
1493         * marshal.c: make sure the wrapper methods are properly initialized.
1494
1495 2007-10-11  Mark Probst  <mark.probst@gmail.com>
1496
1497         * metadata.c, metadata-internals.h: Generalized
1498         mono_type_stack_size() to mono_type_stack_size_internal() which
1499         takes an additional argument specifying whether it allows open
1500         types.
1501
1502 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
1503
1504         * verify.c (do_invoke_method): handle typedbyref params
1505         correctly and check for unverifiable return values.
1506
1507         * verify.c (do_newobj): fix a warning.
1508
1509 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1510
1511         * verify.c: don't tread typedbyref as allways unverifable,
1512         so uses, like (ld/st)loc.0 are valid. verify for the cases
1513         that it matters, like boxing related operations.
1514
1515 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1516
1517         * verify.c: add verification of the newobj opcode. verification
1518         of delegate instantation still missing due ldftn and virldftn not
1519         pushing the function type on stack
1520
1521 2007-10-08  Mark Probst  <mark.probst@gmail.com>
1522
1523         * class-internals.h: Runtime generic context data structure
1524         definition.
1525
1526         * object.c: Initialization of runtime generic context at runtime
1527         vtable creation time.
1528
1529 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
1530         * class.c (mono_class_create_from_typedef,
1531         mono_class_from_generic_parameter, mono_ptr_class_get,
1532         mono_fnptr_class_get, mono_bounded_array_class_get)
1533         * domain.c (mono_domain_create, mono_domain_free)
1534         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
1535         * image.c (do_mono_image_load, mono_image_close):
1536         Hooked up load-unload profiler events.
1537
1538 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
1539
1540         * domain.c: track statistics about the actual amount of native code
1541         allocated.
1542
1543 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1544
1545         * class.c: the valuetype enumerators don't have the additional
1546         supertypes interfaces.
1547
1548 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1549
1550         * class.c: need more interfaces setup for the IEnumerator<T>
1551         object created for arrays (tests/ienumerator-interfaces.2.cs).
1552
1553 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
1554
1555         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
1556
1557 2007-10-05  Alp Toker  <alp@atoker.com>
1558
1559         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1560         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1561         #315863.
1562
1563 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
1564
1565         * verify.c (verify_type_compatibility_full): verification of
1566         compatibility improved, validates correctly non-strict checks between
1567         native int and I4 types different than (unsigned)int32.
1568
1569         * verify.c (do_store_indirect): added, do all verification of
1570         ldind.X opcodes. 
1571
1572         * verify.c (get_load_indirect_mono_type): renamed to
1573         get_indirect_op_mono_type, as it now returns the MonoType for 
1574         ldind.X and stind.X opcodes.
1575
1576 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
1577
1578         * reflection.c: Fix the encoding of generic type definition for
1579         TypeBuilders.
1580
1581         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
1582         mono_image_typedef_or_ref but allows to specify if typespec lookups should
1583         be made. Typespec check is done prior to typeref cache lookup.
1584
1585         * reflection.c (mono_image_typedef_or_ref): now just delegate to
1586         mono_image_typedef_or_ref_full.
1587
1588         * reflection.c (encode_generic_class): encode the generic class
1589         directly instead of calling encode_type.
1590
1591         * reflection.c (encode_type): encode the generic type definition
1592         MonoClass as a generic instantiation.
1593
1594         * reflection.c (create_typespec): cache typespec tokens in
1595         the assembly->typespec cache. Don't create typespec for a generic
1596         instance MonoClass. Create typespec for the generic type defintion.
1597
1598         * reflection.c (create_generic_typespec): encode the generic
1599         class directly instead of calling encode_type.
1600
1601         * reflection.c (mono_image_create_token): encode the generic
1602         type definition not using a typespec for MonoType instances.
1603
1604
1605 2007-10-04  Raja R Harinath  <rharinath@novell.com>
1606
1607         Fix #328812
1608         * class.c (mono_image_init_name_cache): Don't return nested
1609         'protected internal' classes.
1610         (mono_class_from_name_case): Likewise.
1611
1612 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
1613
1614         * icall-def.h, icall.c : get_bundled_machine_config() is now the
1615           common function used by both DefaultConfig in System.dll and
1616           InternalConfigurationHost in System.Configuration.dll.
1617
1618 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1619
1620         * class.c: automatically add to vectors only a few essential explicit
1621         generic interfaces. The rest of the interfaces that arrays should
1622         provide are currently implicitly added (but still not lazily, see the
1623         design in the discussion of bug#325495 for the details of what is
1624         needed for that). Additionally, implicit interfaces are assigned the
1625         same vtable slot as the explicit interfaces (as they are compatible):
1626         this enables huge memory savings since we don't need to instantiate
1627         as many memthods and as large vtables anymore. Also, Since
1628         GetEnumerator<T> returns an instance of a type that is required to
1629         support a similarly large set of interfaces as arrays, we add
1630         implicit interfaces and interface offset sharing support to those
1631         types, too. This change adds all the required interfaces so that
1632         the anonarray.cs test case in the bug report works (we don't add
1633         all the interfaces to arrays of arrays 3-level deep and more because
1634         of the memory requirements explained in the bug and since they are much
1635         less common: the lazy-loading support will enabled them to work, too).
1636
1637 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
1638
1639         * verify.c (merge_stacks): major clean up, all type compatibility
1640         checks are done by verify_type_compatibility. This fix my earlier lack
1641         of understanding of the CLR type system and merge_stacks no longer looks
1642         scary.
1643
1644         * verify.c: fixed some bad spelling.
1645
1646 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
1647
1648         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
1649         a given stack slock.
1650         
1651         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
1652         verify_type_compatibility_full. This removed a near indentical function and fixed
1653         handling of Int32 and IntPtr across all opcodes.
1654
1655 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
1656
1657         * class.c: only vectors have the additional generic interfaces.
1658
1659 2007-10-01  Jonathan Chambers <joncham@gmail.com>
1660
1661         * mono-config.c: Use g_strcasecmp instead of
1662         strcasecmp like everywhere else to fix
1663         compilation with MSVC.
1664         
1665         Code is contributed under MIT/X11 license.
1666
1667 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1668
1669         * object.c, object-internals.h: refactored the IMT code to enable
1670         building a single slot at a time and lazily creating the IMT trampolines
1671         and thunks.
1672
1673 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
1674
1675         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
1676
1677         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
1678         Fixes #328501.
1679         
1680 2007-09-29  Raja R Harinath  <harinath@gmail.com>
1681
1682         * loader.c (method_from_methodspec): Rearrange to avoid
1683         un-necessary exposition.  Don't assert out if the method's
1684         declaring type is a generic type definition.
1685
1686 2007-09-28  Martin Baulig  <martin@ximian.com>
1687
1688         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
1689
1690 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
1691
1692         * class-internals.h: optimize field layout of MonoClass to
1693         requires less cachelines at runtime and save a few bytes on 64 bit
1694         systems.
1695
1696 2007-09-28  Jb Evain  <jbevain@novell.com>
1697
1698         * reflection.c: when encoding type names in custom attributes,
1699         if the type is a closed generic type, its generic arguments
1700         have to be serialized as AssemblyQualifiedName, so that when
1701         they are deserialized, it's possible to re-create them properly.
1702         Fixes #329450.
1703
1704
1705 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
1706
1707         * object.c, class-internals.h: added delegate-creation counter.
1708
1709 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
1710
1711         * class.c: cleanup of the code that synthetizes interfaces for
1712         arrays in 2.0: saves quit a bit of corlib mempool memory.
1713         Code to fix bug #325495 ifdeffed out for now until the issues
1714         with memory usage and O(n^2) behaviour are fixed.
1715
1716 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1717
1718         * marshal.c: when possible, do not duplicate the name of the methods
1719         in the method builder and in the generated MonoMethod.
1720
1721 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
1722         * verify.c: added support for type checking ldind_* opcodes.
1723
1724 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
1725
1726         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
1727         which is used to distinguish the fully open instantiation of a TypeBuilder
1728         with the rest. This temporary hack is required to restore the property that
1729         the fully open instantiation is the same type of the generic type definition.
1730
1731         * class-internals.h (mono_generic_class_is_generic_type_definition):
1732         new function as part of the internal API.
1733
1734         * class.c (inflate_generic_type): return NULL when the generic inst is
1735         fully open. The fully open generic type is now the same as the generic type
1736         definition for non TypeBuilder types.
1737
1738         * class.c (mono_generic_class_get_class): removed assert since it is
1739         no longer valid, gklass->cached_class can point to the generic type definition.
1740
1741         * class.c (mono_generic_class_is_generic_type_definition): new.
1742
1743         * metadata.c (mono_generic_class_hash): added is_tb_open field
1744         to the hash calculation.
1745
1746         * metadata.c (free_generic_class): if the generic class is associated
1747         with the generic type definition, its field will come from the mempool and
1748         must not be freed.
1749
1750         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
1751         new, this function identifies the corner case of a TypeBuilder fully open
1752         instantiation.
1753
1754         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
1755         for lookup. Set gclass->cached_class to be the container class in case of
1756         the fully open instantiation of non TypeBuilder types.
1757
1758         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
1759         to compare generic classes.
1760
1761         * reflection.c (method_encode_methodspec): remove assert that
1762         no longer is valid.
1763
1764         * reflection.c (mono_reflection_generic_class_initialize): add
1765         an aditional assert to ensure the proper type is used.
1766
1767 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
1768
1769         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
1770         to enjoy it.
1771
1772 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
1773
1774         * verify.c (push_arg): Fixed support for ldarga
1775         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
1776         MonoType used as first arg in case of instance calls.
1777
1778 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
1779
1780         * verify.c: Support for verifying VAR and MVAR types, 
1781
1782 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
1783
1784         * icall.c (ves_icall_get_property_info): Set the reflected type of the
1785         accessors correctly.
1786
1787 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
1788
1789         * threads.c: support OSX and other systems in
1790         mono_thread_get_stack_bounds (bug #328026).
1791
1792 2007-09-25  Martin Baulig  <martin@ximian.com>
1793
1794         * mono-debug.h
1795         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
1796
1797 2007-09-24  Martin Baulig  <martin@ximian.com>
1798
1799         * mono-debug.h
1800         (MonoDebugClassEntry): Moved the definition of this struct into
1801         mono-debug.c to make it private.
1802
1803         * mono-debug.c
1804         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
1805         type table per symbol file, we don't need to store the symfile id
1806         any longer.
1807
1808 2007-09-24  Martin Baulig  <martin@ximian.com>
1809
1810         Create one type table per symbol file, since a `MonoClass *' gets
1811         invalid when its image is unloaded.
1812
1813         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
1814         (MonoDebugHandle): Added `type_table'.
1815
1816 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1817
1818         * mempool.c, mempool.h: added mono_mempool_new_size () API
1819         to be able to specify a smaller initial size for the pool.
1820         Adjusted the code to slowly increase pool size before using
1821         the previous default size.
1822         * image.c: use a small initial size for image mempools.
1823
1824 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
1825
1826         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
1827         Fixes ##320990.
1828
1829         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
1830         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
1831
1832 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
1833
1834         * metadata.c (mono_type_create_from_typespec): Remove an invalid
1835         free. Fixes #327438.
1836
1837 2007-09-21  Raja R Harinath  <harinath@gmail.com>
1838
1839         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
1840         generic instantiations, etc.
1841         <MONO_TYPE_ARRAY>: Likewise.
1842
1843 2007-09-21  Martin Baulig  <martin@ximian.com>
1844
1845         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
1846         these structs were never defined.
1847         (MonoDebugHandle): Removed the `_priv' field, it was never used.
1848
1849 2007-09-21  Martin Baulig  <martin@ximian.com>
1850
1851         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
1852
1853 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
1854
1855         * image.c: removed the guid hash tables: we can get the same info
1856         without the additional memory usage hit (partially fixes also bug #327052).
1857
1858 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
1859
1860         * profiler.h, profiler-private.h, profiler.c: add a new profiler
1861         event to handle unloading methods. After the event is called, the
1862         corresponding MonoMethod* must be considered invalid.
1863         * loader.c (mono_free_method): call the new mono_profiler_method_free
1864         event.
1865
1866 2007-09-20  Mark Probst  <mark.probst@gmail.com>
1867
1868         * domain-internals.h: New flag in MonoJitInfo which marks shared
1869         generic methods.  New hash table (shared_generics_hash) in
1870         MonoDomain to keep track of shared generic methods.  Prototypes
1871         for functions to register and lookup shared generic methods.
1872
1873         * domain.c: Support for registering and looking up shared generic
1874         methods via a hash table (shared_generics_hash) in MonoDomain.
1875
1876         * class-internals.h: New exception to signal failure of shared
1877         compilation of a generic method.  New counters for generics
1878         sharing in MonoStats.
1879
1880 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
1881
1882         * image.c, metadata-internals.h: don't keep a file descriptor open
1883         for loaded assemblies (bug#325988).
1884
1885 2007-09-19  Raja R Harinath  <rharinath@novell.com>
1886
1887         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
1888         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
1889         use the corresponding datatypes.
1890         (type_in_image): Update to changes.
1891         (CleanForImageUserData): Simplify.
1892         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
1893         Avoid quadratic behaviour in handling the "stolen" list by
1894         separating the filter predicate out, and by prepending the stolen
1895         items rather than appending them.
1896         (steal_ginst_in_image): Likewise.
1897         (mono_metadata_clean_for_image): Update to changes.
1898
1899 2007-09-19  Martin Baulig  <martin@ximian.com>
1900
1901         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
1902
1903 2007-09-19  Martin Baulig  <martin@ximian.com>
1904
1905         * mono-debug.c (mono_debug_cleanup): Don't call
1906         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
1907
1908 2007-09-19  Raja R Harinath  <harinath@gmail.com>
1909
1910         Fix crash on 'make run-test' in mcs/errors
1911         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
1912         Avoid more potential allocations in mono_class_from_mono_type.
1913         (ginst_in_image): Update to changes.
1914         (gclass_in_image): Rearrange slightly.
1915
1916 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
1917
1918         * class.c (mono_class_init): Move the code that sets up class->methods to 
1919         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
1920
1921         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
1922         canonical instance of an inflated generic signature.
1923         (mono_type_create_from_typespec): Remove an invalid free.
1924
1925         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
1926
1927 2007-09-18  Marek Habersack  <mhabersack@novell.com>
1928
1929         * domain-internals.h: added a declaration of the
1930         mono_assembly_load_full_nosearch internal function.
1931
1932         * assembly.c (mono_assembly_load_with_partial_name): use
1933         mono_try_assembly_resolve return value properly.
1934         (mono_assembly_load_full_nosearch): copied the function body from
1935         mono_assembly_load_full, without the code to invoke assembly
1936         search hooks.
1937         (mono_assembly_load_full): calls the above new function and if the
1938         assembly is not resolved, invokes the search hooks.
1939
1940         * appdomain.c (mono_runtime_init): restore the global postload
1941         assembly search handlers.
1942
1943 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
1944
1945         * class.c (mono_class_init): Make sure class->methods and class->properties
1946         are never NULL in the generics case.
1947
1948         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
1949
1950 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
1951
1952         * metadata.c (free_generic_class): Disable some code to fix the build.
1953
1954         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
1955
1956         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
1957         from the image mempool.
1958
1959         * metadata.c (free_generic_class): Free more data from the inflated class.
1960
1961         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
1962
1963         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
1964         mempool.
1965         (mono_type_create_from_typespec): Ditto.
1966
1967         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
1968         MonoImage to the caller.
1969         (mono_init_internal): Save the opened image in a global variable.
1970         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
1971
1972         * reflection.c (resolve_object): Fix a leak.
1973
1974         * metadata.c: Fix the freeing of data in the generics caches.
1975         
1976         * metadata.c (free_generic_inst): Comment this out to fix the build.
1977         (free_generic_class): Ditto.
1978
1979         * metadata.c: Free cached generic methods, instantinations and classes when
1980         they are removed from the caches.
1981         (mono_metadata_free_type): Free the type itself.
1982
1983         * class.c: Free the result of mono_class_inflate_generic_type () in a few
1984         places.
1985
1986 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1987
1988         * boehm-gc.c: restrict managed allocs to __thread supporting
1989         architectures.
1990
1991 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
1992
1993         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
1994         (mono_generic_class_get_class): Fix a leak.
1995
1996         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
1997         mono_metadata_free_type ().
1998         (mono_metadata_inflate_generic_inst): Fix a leak.
1999
2000 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2001
2002         * mono-debug.c (free_header_data): Fix a leak missed earlier.
2003
2004         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
2005         mempool.
2006
2007         * mono-debug.c (mono_debug_close_image): Fix call to 
2008         g_hash_table_remove ().
2009
2010 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2011
2012         * icall-def.h: redirect all the string ctor to the managed
2013         CreateString () methods.
2014         * string-icalls.c, string-icalls.h: removed dead code for string
2015         ctors and icalls.
2016
2017 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2018
2019         * mono-debug.c: Fix memory leaks.
2020
2021 2007-09-14  Jonathan Chambers <joncham@gmail.com>
2022
2023         * threads-types.h: Implement mono_hazard_pointer_set and 
2024         mono_hazard_pointer_clear macros using do/while(0) to fix
2025         compilation with MSVC.
2026         
2027         Code is contributed under MIT/X11 license.
2028
2029 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2030
2031         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
2032         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
2033
2034 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2035
2036         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
2037         icalls.
2038
2039 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2040
2041         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
2042         managed-code allocated as well.
2043
2044 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2045
2046         * class.c (mono_class_is_assignable_from): Add support for generic variance.
2047
2048 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2049
2050         * boehm-gc.c: fixed the build after the AOT changes.
2051
2052 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2053
2054         * wrapper-types.h: Add an ALLOC wrapper type.
2055
2056         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
2057         reference managed allocator methods.
2058
2059 2007-09-12  Marek Safar  <marek.safar@gmail.com>
2060
2061         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
2062         of Type array and not MonoType, a fix suggested by Hari.
2063         
2064 2007-09-12  Jonathan Chambers <joncham@gmail.com>
2065
2066         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
2067         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
2068         
2069         Code is contributed under MIT/X11 license.
2070
2071 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2072
2073         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
2074
2075 2007-09-12  Marek Habersack  <mhabersack@novell.com>
2076
2077         * image.c (do_mono_image_open): if assembly file fails to open and
2078         MONO_IOMAP is in effect, try to find the path in a
2079         case-insensitive way.
2080
2081         * appdomain.c (mono_runtime_init): do not install postload hooks -
2082         tests show that MS.NET doesn't use anything of that sort to
2083         trigger the AppDomain.AssemblyResolve event.
2084         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
2085         made non-static.
2086         (mono_runtime_init): init portability helpers here.
2087
2088         * assembly.c (mono_assembly_load_with_partial_name): if other   
2089         attempts fail, trigger the AppDomain.AssemblyResolve event handler
2090         to resolve the assembly.
2091
2092         * domain-internals.h: added mono_try_assembly_resolve and marked
2093         it as internal.
2094
2095 2007-09-11  Jb Evain  <jbevain@novell.com>
2096
2097         * object-internals.h (MonoReflectionDynamicMethod): add
2098         a `MonoReflectionType *owner` field. The owner is used
2099         * reflection.c:
2100         (mono_reflection_create_dynamic_method): use the owner of the dynamic
2101         method as the class declaring the dynamic method.
2102         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
2103         dynamic method to the declaring type of the methodbuilder.
2104
2105 2007-09-11  Mark Probst  <mark.probst@gmail.com>
2106
2107         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
2108         rules for calling methods via reflection.
2109
2110 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
2111
2112         * reflection.c (resolve_object): Add support for MonoGenericClass. 
2113         Inflate MonoType's.
2114
2115 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
2116
2117         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
2118         provide a managed method that does fast allocations without needing
2119         a managed->unmanaged transition. Boehm GC implementation currently
2120         enabled for ptrfree objects on sane architectures.
2121
2122 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2123
2124         * marshal.c, marshal.h: exported a couple of useful functions and
2125         added mono_mb_get_label () to easily handle backward branches.
2126
2127 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
2128
2129         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
2130
2131 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2132
2133         * loader.c (find_method): Fixed the regression introduced while
2134         fixing bug #81466.
2135
2136 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
2137
2138         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
2139         well.
2140         
2141         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
2142         icall.c reflection.c: Pass a MonoGenericContext argument to 
2143         mono_lookup_dynamic_token ().
2144
2145         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
2146         #82744.
2147         
2148 2007-09-09  Robert Jordan  <robertj@gmx.net>
2149
2150         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
2151         for generic methods.
2152
2153         * object.c (mono_object_get_virtual_method): Handle generic methods.
2154         Fixes bug #78882.
2155
2156         Code is contributed under MIT/X11 license.
2157
2158 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
2159
2160         * image.c: fix locking in mono_image_load_file_for_image ().
2161
2162 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
2163
2164         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
2165         used only as a cache: added an icall to fill it.
2166
2167 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
2168
2169         * reflection.h: exposed mono_reflection_free_type_info
2170         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
2171         since mono_reflection_bind_generic_parameters makes a copy of it.
2172         * reflection.c (free_type_info): subinfos should be freed.
2173         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
2174         made non static.
2175         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
2176         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
2177         this fixes #82695 and #81726.
2178    
2179
2180 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
2181
2182         * process.h, process.c:  added support for user profile/info in
2183           ProcessStartInfo. For now only Windows works.
2184
2185 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2186
2187         * metadata.c: consider the generic arguments when comparing
2188         signatures (bug #82614).
2189
2190 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2191
2192         * cil-coff.h, image.c: updated assembly loader to cope with the
2193         PE32+ 64 bit file format.
2194
2195 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2196
2197         * assembly.c, class.c, domain.c, loader.c: remove useless
2198         inclusion of cil-coff.h.
2199
2200 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
2201
2202         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
2203         if interface is marked with CoClassAttribute. 
2204    
2205         Code is contributed under MIT/X11 license.
2206
2207 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2208
2209         * sgen-gc.c: ensure no object from the to space is copied again or finalized
2210         if it's seen twice in major collections.
2211
2212 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2213
2214         * sgen-gc.c: big objects are not copied to the gray area, but they
2215         need to be considered for scanning, too, if they are brought alive
2216         by an object ready for finalizations or a survived one.
2217
2218 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2219
2220         * sgen-gc.c: properly account the number of disappearing links when
2221         they are nullified.
2222
2223 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2224
2225         * sgen-gc.c: share the code to scan the registered roots between the
2226         different types of collections.
2227
2228 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2229
2230         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
2231
2232 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2233
2234         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
2235         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
2236
2237 2007-08-28  Mark Probst  <mark.probst@gmail.com>
2238
2239         * security-manager.c (mono_security_manager_get_methods):
2240         LinkDemandSecurityException now has 2 arguments instead of 3.
2241
2242 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
2243
2244         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
2245         platforms which need it.
2246
2247 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2248
2249         * sgen-gc.c: unregister thread data structures with a pthread_key_t
2250         dtor.
2251
2252 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2253
2254         * threads.c: free the thread static data on thread exit.
2255
2256 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
2257
2258         * class.c: walk the hierarchy to find the generic definition for
2259         a class (fixes runtime part of bug #82498).
2260
2261 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2262
2263         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
2264         ...
2265
2266         * image.c (mono_image_close): Here. Hopefully fixes #82510.
2267
2268 2007-08-24  Mark Probst  <mark.probst@gmail.com>
2269
2270         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
2271
2272 2007-08-24  Robert Jordan  <robertj@gmx.net>
2273
2274         * appdomain.c: don't perform the ':'->';' substitution on Win32.
2275
2276 2007-08-24  Jb Evain  <jbevain@novell.com>
2277
2278         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
2279         for byref types.
2280
2281 2007-08-24  Mark Probst  <mark.probst@gmail.com>
2282
2283         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
2284         #82286.
2285
2286 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2287
2288         * assembly.c: Fix a warning.
2289         
2290 2007-08-23  Marek Habersack  <mhabersack@novell.com>
2291
2292         * appdomain.c: parse the <runtime> section looking for the probing
2293         element with the 'privatePath' attribute, which sets additional
2294         directories in which the runtime should look for assemblies.
2295
2296 2007-08-23  Robert Jordan  <robertj@gmx.net>
2297
2298         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
2299         Fixes #82499.
2300
2301 2007-08-23  Martin Baulig  <martin@ximian.com>
2302
2303         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
2304         _mono_debug_init_corlib() and remove it from the header file.
2305
2306 2007-08-23  Martin Baulig  <martin@ximian.com>
2307
2308         * mono-debug-debugger.c
2309         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
2310         don't notify the debugger about it.
2311
2312         * mono-debug-debugger.h
2313         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
2314
2315 2007-08-23  Robert Jordan  <robertj@gmx.net>
2316
2317         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
2318         Code is contributed under MIT/X11 license.
2319
2320 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2321
2322         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
2323
2324 2007-08-22  Martin Baulig  <martin@ximian.com>
2325
2326         * mono-debug.c: Store debugging info on a per-domain basis and
2327         free it on domain unload.  Add support for unloading symbol files.
2328
2329         * mono-debug.h
2330         (MonoDebugList): New typedef.
2331         (MonoSymbolTable):
2332         - add `data_tables and `type_table'.
2333         - replace 'symbol_files' and `num_symbol_files' with a
2334           `MonoDebugList *'.
2335         (mono_debug_data_table): Removed.
2336         (mono_debug_list_add): New public function.
2337         (mono_debug_list_remove): New public function.
2338         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
2339         (mono_debug_init_2_memory): Renamed into
2340         mono_debug_open_image_from_memory().
2341         (mono_debug_close_image): New public function.
2342         (mono_debug_domain_create): Likewise.
2343         (mono_debug_domain_unload): Likewise.
2344         (MONO_DEBUGGER_VERSION): Bump to 60.
2345
2346         * mono-debug-debugger.h
2347         (MonoDebuggerEvent):
2348         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
2349         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
2350         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
2351         - rename `THREAD_CREATED' and `THREAD_EXITED' into
2352           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
2353         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
2354           meaning.
2355         (mono_debugger_add_symbol_file): Removed.
2356         (mono_debugger_add_type): Removed.
2357         (mono_debugger_lookup_type): Removed.
2358         (mono_debugger_lookup_assembly): Removed.
2359
2360         * domain.c
2361         (mono_domain_create): Call mono_debug_domain_create().
2362         (mono_init_internal): Call mono_debug_init_corlib().
2363
2364         * assembly.c
2365         (mono_assembly_close): Call mono_debug_close_image().
2366
2367 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
2368
2369         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
2370         mmap call.
2371
2372 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2373
2374         * sgen-gc.c: ensure section->pin_queue_end is initialized
2375         correctly when non pinning objects in the section have been found.
2376
2377 2007-08-22  Marek Habersack  <mhabersack@novell.com>
2378
2379         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
2380         containing a list of directories separated by ':'. MSDN docs say
2381         the directories should be separated with ';'. Part of a bugfix for
2382         bug #81446
2383
2384 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
2385
2386         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
2387         it should MonoType and not MonoClass.
2388
2389 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
2390
2391         * culture-info-table.h : regenerated.
2392
2393 2007-08-20  William Holmes  <billholmes54@gmail.com>
2394
2395         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
2396          to call ReplaceFile Kernel32 on windows or in io-layer.
2397         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
2398         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
2399          as an internal call.
2400
2401         Code is contributed under MIT/X11 license.
2402
2403 2007-08-20  Jb Evain  <jbevain@novell.com>
2404
2405         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
2406         and MONO_EXCEPTION_FIELD_ACCESS.
2407
2408         * debug-helpers.[c|h]: new mono_field_full_name function.
2409
2410 2007-08-20  Mark Probst  <mark.probst@gmail.com>
2411
2412         * class.c: Removed class_security_level() and moved it to
2413         security-core-clr.c.
2414
2415         * security-core-clr.c, security-core-clr.h: class_security_level()
2416         is now public and renamed to mono_security_core_clr_class_level().
2417         It also looks for security attributes in the classes a class is
2418         nested in.
2419
2420 2007-08-20  Mark Probst  <mark.probst@gmail.com>
2421
2422         * security-core-clr.c, security-core-clr.h: CoreCLR security
2423         utility functions.
2424
2425         * Makefile.am: Added security-core-clr.[ch].
2426
2427         * security-manager.c, security-manager.h: Functions and enum for
2428         setting and getting the security mode.
2429
2430         * class.c: CoreCLR security checks.
2431
2432 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
2433
2434         * icall-def.h, process.c, process.h: implemented icall to get
2435         user/system processor times.
2436
2437 2007-08-17  Mark Probst  <mark.probst@gmail.com>
2438
2439         * domain.c, threads.c, class-internals.h, domain-internals.h: New
2440         reader-lock-free jit_info_table.
2441
2442 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
2443
2444         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
2445
2446         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
2447
2448         * object-internals.h (MonoException): Add missing _data member.
2449
2450 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
2451
2452         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
2453         checking that only methods with matching qname or fqname are picked
2454         from implemented interfaces.
2455
2456 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2457
2458         * verify.c (do_newarr):added, do type verification of
2459         newarr ops, push the right value on the eval stack.
2460         * verify.c (mono_method_verify): use do_newarr
2461
2462
2463 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2464
2465         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
2466         factored the common code into get_boxable_mono_type, which
2467         is now using mono_type_get_full, this fixed byref related tests.
2468
2469 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2470
2471         * class.c: added mono_type_get_full, this function has the same
2472         behavior of mono_class_get_full but the returned MonoType has
2473         all metadata of the associated token in case of a typespec token.
2474         * class.c: added mono_type_retrieve_from_typespec, used by 
2475         mono_type_get_full to retrieve the token type.
2476         * class.c (mono_class_create_from_typespec): changed to use
2477         mono_type_retrieve_from_typespec.
2478         * class.c (mono_ldtoken): changed to use mono_type_get_full
2479         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
2480         * class-internals.h: exported mono_type_get_full for internal use.
2481
2482 2007-08-16  Jb Evain  <jbevain@novell.com>
2483
2484         * domain.c (supported_runtimes): add entry for
2485         the 'moonlight' runtime version.
2486
2487 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2488
2489         * verify.c (mono_method_verify): small typo sliped in.  
2490
2491 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2492
2493         * verify.c (do_unbox_value): added, do type verification of
2494         unboxing ops
2495         * verify.c (mono_method_verify): use do_unbox_value
2496
2497
2498 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2499
2500         * verify.c (dump_stack_value): fixed typo, was printing string
2501         instead of object on stack.
2502         * verify.c (do_box_value): moved the byref check up as it leads
2503         to invalid code and should be done earlier.
2504         * verify.c: improved error messages for and ldobj
2505
2506 2007-08-15  William Holmes  <billholmes54@gmail.com>
2507
2508         * marshal.c (emit_marshal_custom): Omit the call to 
2509           marshal_native_to_managed when calling native to managed 
2510           and the argument is specified as an out argument.
2511
2512         Code is contributed under MIT/X11 license.
2513
2514 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2515
2516         * verify.c: fixed the type checks for generics, function pointers and vectors.
2517         Added type verification for ldobj and ldtoken. The verifier
2518         would segfault if header or signature of a method contained references
2519         to non-existant types.
2520
2521 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
2522
2523         * marshal.c (cominterop_get_ccw): Patch from
2524         Bill Holmes to no walk up interface hierarchy. 
2525         All parent methods should be present in the interface for COM.
2526    
2527         Code is contributed under MIT/X11 license.
2528
2529 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
2530
2531         * marshal.c (emit_marshal_com_interface): Patch from
2532         Bill Holmes to handle COM Interfaces as return values
2533         for native->managed calls.
2534    
2535         Code is contributed under MIT/X11 license.
2536
2537 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
2538
2539         * marshal.c (cominterop_get_idispatch_for_object): Implement
2540         for runtime callable wrappers.
2541    
2542         Code is contributed under MIT/X11 license.
2543
2544 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
2545
2546         * pedump.c (main): changed from mono_init to mono_init_from_assembly
2547         so 2.0 types are accessible
2548
2549
2550 2007-08-13  Miguel de Icaza  <miguel@novell.com>
2551
2552         * domain.c (mono_init_internal): Call mono_assembly_load_friends
2553         once we load mscorlib.   Due to the order in which we initialize,
2554         the mono_assembly_load_full routine that loads mscorlib did not
2555         load friends.   We now load it once we load the
2556         mono_defaults.internals_visible_class class. 
2557
2558         * assembly.c: Expose the mono_load_friend_assemblies method.
2559
2560 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
2561
2562         * verify.c: improved the handling of boxing, better
2563         type checking for unary ops and conversion. Fix bug
2564         regarding managed pointer compatibility checking
2565
2566 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
2567
2568         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
2569
2570         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
2571
2572 2007-08-09  Raja R Harinath  <rharinath@novell.com>
2573
2574         * reflection.c (dup_type): Remove.
2575         * class.c (dup_type): Remove.
2576         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
2577         instead of the dodgy 'dup_type'.
2578         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
2579         handle the case where 'dup_type' needed the second argument.
2580
2581 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
2582
2583         * domain.c: Fix a warning.
2584
2585 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
2586
2587         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
2588         checking that methods with the same fqname are not overridden
2589         with a method from an ancestor.
2590
2591 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
2592
2593         * threads.c (free_thread_static_data_helper): Avoid a crash if
2594         thread->static_data is not yet set.
2595
2596 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
2597
2598         * marshal.c: Use correct image when emitting
2599         native wrapper for COM calls.
2600    
2601         Code is contributed under MIT/X11 license.
2602
2603 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
2604
2605         * icall-def.h, security.c, security.h :
2606           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
2607
2608 2007-08-07  Martin Baulig  <martin@ximian.com>
2609
2610         * mono-debug-debugger.h
2611         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
2612
2613         * domain.c (mono_domain_free): Call
2614         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
2615
2616 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
2617
2618         * verify.c (check_underflow, check_overflow): error message now returns IL offset
2619         * verify.c (in_same_block): code should test if either offset is inside the clauses
2620         * verify.c (mono_method_verify): push the exception into the eval stack of exception
2621         and filter blocks
2622
2623 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
2624
2625         * image.c (mono_image_close): Fix a leak.
2626
2627         * object.c (mono_runtime_invoke_array): Avoid using alloca.
2628
2629         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
2630
2631 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
2632
2633         * domain.c, threads.c, threads-types.h: fix memory retention issue
2634         with thread static variables not being cleared on domain unload.
2635         Reuse thread static slots after domain unload.
2636
2637 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
2638
2639         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
2640         nullable type.
2641
2642         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
2643         now done in mono_runtime_invoke_array.
2644
2645         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
2646         receiver is a nullable type.
2647
2648         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
2649         generic parameter.
2650
2651 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
2652
2653         * marshal.c: Implement COM Objects as return type for 
2654         managed->unmanaged calls. Added Release calls for COM Object
2655         out/return values in managed->unmanaged calls.
2656
2657         Code is contributed under MIT/X11 license.
2658
2659 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
2660
2661         * threads.h, threads-type.h: move the hazard pointer declarations
2662         to the private header.
2663
2664 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
2665
2666         * file-io.c, appdomain.c: memory leak fixes.
2667
2668 2007-08-02  Dick Porter  <dick@ximian.com>
2669
2670         * socket-io.c
2671         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
2672         SO_REUSEADDR setting into io-layer/sockets.c.
2673
2674 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
2675
2676         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
2677         from Object when called on a generic parameter. Fixes #82211.
2678
2679 2007-08-01  Dick Porter  <dick@ximian.com>
2680
2681         * file-io.c (convert_share): Test FileShare values bit-by-bit.
2682         Fixes bug 79250 yet again.
2683
2684 2007-07-30  Martin Baulig  <martin@ximian.com>
2685
2686         Merged the `debugger-dublin' branch.
2687
2688         * mono-debug.h
2689         (MonoDebugDataTable): New typedef.
2690         (MonoDebugMethodAddressList): New typedef.
2691         (MonoDebugWrapperData): Removed.
2692         (MonoDebugSymbolTable): Removed `current_data_table',
2693         `current_data_table_size', `current_data_table_offset'.
2694         (MonoDebugDataItemType): Moved into mono-debug.c.
2695         (MonoDebugMethodJitInfo): Remove `address'.
2696         (mono_debug_data_table): New global variable.
2697         (mono_debug_lookup_method_addresses): New public function.
2698         (mono_debug_find_method): Take a `MonoMethod *', not a
2699         `MonoDebugMethodInfo *'.
2700
2701         * mono-debug.c: Drop support for the old symbol tables.
2702
2703 2007-06-28  Martin Baulig  <martin@ximian.com>
2704
2705         * mono-debug.c (mono_debug_debugger_version): New public variable.
2706
2707 2007-07-31  William Holmes  <billholmes54@gmail.com>
2708
2709         * metadata.c Changed mono_type_create_from_typespec to not insert
2710           the type into the hash map until after
2711           do_mono_metadata_parse_type has completed.
2712         Fixes Bug #82194
2713         Code is contributed under MIT/X11 license.
2714
2715 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
2716
2717         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
2718         generic parameter. Fixes #82211.
2719
2720 2007-07-27  Jb Evain  <jbevain@novell.com>
2721
2722         * pedump.c (dump_metadata, dump_metadata_header): dump
2723         versions contained in the metadata header.
2724
2725 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2726
2727         * threads.c: register small_id_table with the GC.
2728
2729 2007-07-27  Mark Probst  <mark.probst@gmail.com>
2730
2731         * threads.c, threads.h, class-internals.h, object-internals.h:
2732         Hazard pointers, to be used by lock-free parallel algorithms.
2733
2734 2007-07-26  Dick Porter  <dick@ximian.com>
2735
2736         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
2737         routine on non-windows platforms, as I've not managed to think of
2738         a non-kludgy way of doing this.  Finishes off bug 78739.
2739
2740 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
2741
2742         * object.c: properly setup interface_bitmap in proxy vtables.
2743
2744 2007-07-25  Marek Habersack  <mhabersack@novell.com>
2745
2746         * appdomain.c (get_shadow_assembly_location): do not use TickCount
2747         to create unique shadow copy target directories, use the domain's
2748         serial number instead. Each domain gets a unique target directory
2749         that way.
2750
2751         * domain.c (mono_domain_create): added code to increment domain
2752         shadow copy serial number and cache the value in the current
2753         domain structure.
2754
2755         * domain-internals.h (struct _MonoDomain): added a new field -
2756         shadow_serial to hold the serial number used in generation of
2757         shadow-copy directories. This is to make sure that the directory
2758         name is unique for each and every domain created. We avoid a race
2759         condition with overriding assemblies already in use by other app
2760         domains.
2761
2762 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
2763
2764         * class.c (mono_bounded_array_class_get): fixed memory leak when 
2765         binding generic parameters.
2766
2767 2007-07-24  Raja R Harinath  <rharinath@novell.com>
2768
2769         * metadata.c (do_mono_metadata_parse_generic_class): Use
2770         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
2771         error.
2772
2773 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
2774
2775         * loader.c, class-internals.h, reflection.c: removed the per-method
2776         generics hashtable: we use the global one through the call of
2777         mono_class_inflate_generic_method ().
2778
2779 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
2780
2781         * class.c, metadata.c, class-internals.h: introduce yet another
2782         generics global cache for inflated methods (fixes 98% of the perf
2783         issue in bug #81806).
2784
2785 2007-07-23  Raja R Harinath  <rharinath@novell.com>
2786
2787         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
2788         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
2789         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
2790         return a MonoGenericInst containing (a copy) of those types.
2791         (mono_metadata_inflate_generic_inst): Update to changes.
2792         (mono_metadata_parse_generic_inst): Likewise.
2793         (mono_get_shared_generic_inst): Likewise.
2794         * reflection.c (mono_class_bind_generic_parameters): Likewise.
2795         (mono_reflection_bind_generic_method_parameters): Likewise.
2796         * metadata-internals.h: Likewise.
2797         * icall.c (free_generic_context): Kill.
2798         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
2799
2800         * reflection.c (reflection_methodbuilder_to_mono_method): Use
2801         mono_metadata_type_dup.
2802         * marshal.c (mono_mb_create_method): Likewise.
2803
2804         * metadata.c (mono_metadata_type_dup): Rename from
2805         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
2806         MonoImage.  Handle a few more cases, esp. when no mempool is given.
2807         * marshal.c, metadata-internals.h: Update to changes.
2808
2809 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2810
2811         * class.c: fixed a small leak for array classes and removed warning.
2812
2813 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
2814
2815         * loader.c (mono_method_get_param_token): Make this work on generic methods.
2816         Return 0x8000000 for return parameters. Fixes #82161.
2817
2818 2007-07-21  Marek Habersack  <grendello@gmail.com>
2819
2820         * appdomain.c (get_shadow_assembly_location): append the current
2821         ticks value to the path. Avoids overwriting the same assemblies by
2822         several threads at the same time.
2823
2824 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
2825         and Raja R Harinath  <rharinath@novell.com>
2826
2827         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
2828         Simplify slightly.
2829         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
2830         property for testing if a method is a generic method definition.
2831
2832 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
2833
2834         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
2835
2836 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2837
2838         * verify.c: used function from private branch, reverted to the one in class.h 
2839
2840 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2841
2842         * verify.c: a typo slipped in and the code wont compile
2843
2844 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2845
2846         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
2847         disabled box instruction as it is doing the wrong thing
2848         improved stack dump messages, now it is easier to debug type related issues
2849
2850
2851 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
2852
2853         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
2854
2855 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2856
2857         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
2858         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
2859         grouped with class and valuetype. This change will simply 
2860         the code as it should be handled just like unmanaged pointers.
2861
2862 2007-07-19  Mark Probst  <mark.probst@gmail.com>
2863
2864         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
2865
2866 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2867
2868         * verify.c: several stack merge issues fixed, reference comparisons now
2869         check the type size. strict type check now works correctly.
2870         added more uses of IS_MANAGED_POINTER macro.
2871         fixed issues pointed by running the test suite against .net.
2872         
2873
2874 2007-07-19  Mark Probst  <mark.probst@gmail.com>
2875
2876         * class.c, loader.c, class-internals.h: Removed the
2877         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
2878         defines.
2879
2880         * icall.c: Better error checking in some internal reflection
2881         methods.
2882
2883 2007-07-18  William Holmes  <billholmes54@gmail.com>
2884
2885         * filewatcher.c : removed unused variable 'filename' in 
2886           ves_icall_System_IO_FSW_SupportsFSW
2887
2888 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
2889
2890         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
2891         obsolete, removed.
2892
2893 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
2894
2895         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
2896         
2897         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
2898
2899 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
2900
2901         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
2902         Implement generics support.
2903         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
2904
2905         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
2906         type_args and method_args arguments.
2907         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
2908         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
2909         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
2910
2911 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
2912
2913         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
2914           It adds a rootimage parameter to mono_reflection_get_type_internal,
2915           adds new function mono_reflection_get_type_with_rootimage and use
2916           the rootimage to resolve the types instead of the current image
2917
2918 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2919
2920         * culture-info-table.h: Forgot to update after r78304.
2921
2922 2007-07-13  Raja R Harinath  <rharinath@novell.com>
2923
2924         * class.c (mono_class_is_open_constructed_type)
2925         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
2926
2927 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
2928
2929         * class.c (mono_bounded_array_class_get):  method fails if used with
2930         an incomplete TypeBuilder enum (no basetype field), fixed it by 
2931         avoiding calculating the size for such array as it cannot be instantiated.
2932         Fix bug #82015
2933
2934 2007-07-12  Raja R Harinath  <rharinath@novell.com>
2935
2936         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
2937         field.
2938         * metadata.c, reflection.c: Update to changes.
2939
2940 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
2941
2942         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
2943         mono_class_is_valid_enum, they are used to valide a enum when loading.
2944         * reflection.c: used new functions to throw TypeLoadException when and
2945         invalid enum is build with TypeBuilder. Fixes #82018
2946   
2947 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2948
2949         * object.c: forgot commit of mono_class_setup_methods () to access
2950         iface->methods.
2951         * object-internals.h: added a few more handy fields to
2952         MonoIMTCheckItem.
2953
2954 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
2955
2956         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
2957         iface->methods.
2958
2959 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
2960
2961         * class-internals.h, object-internals.h, object.c: IMT-based
2962         interface invocation core from Massimiliano Mantione
2963         (massi@ximian.com) with a reworked arch-specific interface,
2964         bsearch implementation and a few bugfixes and memory savings by me.
2965
2966 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
2967
2968         * class.c (mono_class_create_from_typedef): mono would segfault if 
2969         an enum did not have a __value field. It now throws a TypeLoadException
2970         for such cases. Fix bug #82022
2971
2972 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
2973
2974         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
2975
2976 2007-07-09  Mark Probst  <mark.probst@gmail.com>
2977
2978         * class.c (mono_class_init): If a class is already inited but has
2979         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
2980
2981 2007-07-09  Mark Probst  <mark.probst@gmail.com>
2982
2983         * class.c: Properly handle the case of an unimplemented interface
2984         method.  Fixes: 81673.
2985
2986 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2987
2988         * class-internals.h, object.c: cleanup patch from massi: use
2989         MonoVTable->interface_bitmap since the vtable interfaces offset array
2990         is going away.
2991
2992 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
2993
2994         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
2995         GetMDStreamVersion icall instead.
2996
2997 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
2998
2999         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
3000         not use mono_dl_build_path() with a full library name: makes
3001         fallbacks to libgaim and libfam work.
3002
3003 2007-07-06  William Holmes  <billholmes54@gmail.com>
3004
3005         * assembly.c: Added a continue statement in probe_for_partial_name when
3006          parse_assembly_directory_name fails.  Fixes : 82002
3007
3008 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
3009
3010         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
3011         and added a verification  for TYPEDBYREF.
3012         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
3013         make native int interchangeable with int32 and some small cleanup and formating.
3014         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
3015         handle byref of byref.
3016         * verify.c (push_local): handle byref of byref.
3017         * verify.c (do_binop): invalid mix of values is unverifiable
3018         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
3019         added visibility checks
3020         * verify.c (field related method): added visibility checks
3021         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
3022
3023 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
3024
3025         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
3026         string.
3027
3028 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
3029
3030         * profiler.c (mono_profiler_load): Fix an off-by-one error.
3031
3032         * marshal.c (emit_marshal_string): When returning a string from managed code,
3033         allways make a copy even for unicode strings. Fixes #81990.
3034
3035 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
3036
3037         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
3038         of byref generic inst types (bug #81997).
3039
3040 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
3041
3042         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
3043         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
3044
3045 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
3046
3047         * marshal.c (emit_marshal_string): Add support for unicode strings in
3048         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
3049
3050 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
3051
3052         * verify.c: field load/store are now verified, missing only access checks now
3053
3054 2007-06-28  Martin Baulig  <martin@ximian.com>
3055
3056         * mono-debug.c (mono_debug_debugger_version): New public variable.
3057
3058 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
3059
3060         * locales.c: When constructing DateTimeFormat or NumberFormat for
3061         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
3062         MonoCultureInfo contructed from the current locale is always
3063         read-only and has UseUserOverride set to true. All MonoCultureInfo
3064         instances returned for GetCultures have both IsReadOnly and
3065         UseUserOverride set to true. Fixes part of bug #81930.
3066
3067 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
3068
3069        * icall-def.h: Update System.__ComObject icalls
3070        * marshal.c: Avoid managed transition (and object creation)
3071        when looking up COM interface in RCW.
3072        * marshal.h: Ditto.
3073        
3074        Code is contributed under MIT/X11 license.
3075
3076 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
3077
3078         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
3079         to avoid crashes during assembly unloading.
3080
3081 2007-06-22  Raja R Harinath  <rharinath@novell.com>
3082
3083         Fix MethodInfo.IsGenericMethodDefinition
3084         * reflection.c (mono_reflection_bind_generic_method_parameters):
3085         Rearrange code to ensure we always uses a generic method definition.
3086         * class.c (mono_class_inflate_generic_method_full): Set
3087         'generic_container' field only for generic method definitions.
3088         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3089         Use presense of 'generic_container' field as indication of being a
3090         generic method definition.
3091
3092 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
3093
3094         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3095
3096         * object-internals.h: Reflect changes in the layout of the managed Delegate
3097         class.
3098         
3099         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
3100         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
3101         runtime memory used by the dynamic method. Fixes #77146.
3102
3103 2007-06-21  Dick Porter  <dick@ximian.com>
3104
3105         * file-io.h: 
3106         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
3107         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
3108         81767.
3109
3110 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3111
3112         * reflection.c (method_encode_methodspec): Add a tripwire.
3113         * class.c (inflate_generic_type): The fully open generic type is
3114         not the same as the generic type definition.
3115
3116 2007-06-21  Martin Baulig  <martin@ximian.com>
3117
3118         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
3119
3120         * mono-debug-debugger.h
3121         (MonoDebuggerBreakpointInfo): Removed.
3122         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
3123         (mono_debugger_remove_breakpoint): Likewise.
3124         (mono_debugger_breakpoint_callback): Likewise.
3125         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
3126
3127 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3128
3129         * metadata.c (mono_metadata_lookup_generic_class): The fully open
3130         generic type is not the same as the generic type definition.
3131         * class.c (mono_generic_class_get_class): Likewise.
3132
3133 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
3134
3135         * icall.c: The second argument to 
3136         System.Reflection.MethodBase.GetMethodFromHandleInternalType
3137         is a MonoType not a MonoClass.
3138
3139 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3140
3141         * verify.c: support for function pointers in the verifier
3142
3143 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3144
3145         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
3146
3147 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
3148
3149         * assembly.c: removed Mono.Data.SqliteClient from the list of
3150         forward-compatible assemblies as it breaks the ABI (bug #81899).
3151
3152 2007-06-19  Raja R Harinath  <rharinath@novell.com>
3153
3154         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
3155         lookup/update with the loader lock.
3156         * reflection.c (mono_class_bind_generic_parameters): No need to
3157         protect mono_metadata_lookup_* with the loader lock.
3158         * class.c (inflate_generic_type): Likewise.
3159         
3160         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
3161         on a generic instantiated type.
3162
3163 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
3164
3165         *verify.c: produce meanfull error messages on verification error
3166         *verify.c: fixed some cases of verification errors reported as validation errors
3167         *pedump.c: fixed the error name array, now it shows validation errors properly
3168         *verify.h: fixed the contant that should be used for verification errors
3169
3170 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
3171
3172         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
3173         for bug #77596, 81858 and 80743 (generics data structures on domain
3174         unload).
3175
3176 2007-06-15  Raja R Harinath  <rharinath@novell.com>
3177
3178         Avoid allocating 'MonoGenericContext' on the heap.
3179         * class-internals (_MonoMethodInflated::context): Make field
3180         inline, not a pointer.
3181         * loader.c (method_from_methodspec): Allocate 'new_context' on the
3182         stack.  Use the context embedded within the inflated method as the
3183         hash key, rather than 'new_context'.
3184         * class.c (inflate_generic_context): Simplify.  Return a struct
3185         rather than allocating on the heap.
3186         (mono_class_inflate_generic_method_full): Update to changes.  Now,
3187         doesn't salt away a copy of the context -- simplifying the
3188         lifetime rules of a 'MonoGenericContext *'.
3189         (mono_method_get_context): Return pointer to embedded context.
3190         (setup_generic_array_ifaces): Allocate temporary context on stack.
3191         * reflection.c (inflate_mono_method): Likewise.
3192         (mono_reflection_bind_generic_method_parameters): Likewise.
3193         Use the context embedded within the inflated method as the hash key.
3194
3195         Avoid a source of allocation of 'MonoGenericContext'.
3196         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
3197         and 'cached_context' fields into embedded 'MonoGenericContext' field.
3198         * class.c: Update to changes.
3199         (mono_generic_class_get_context): Simplify drastically.  Now just
3200         returns a pointer to the field.
3201         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
3202         argument as a const pointer.
3203         (mono_metadata_generic_context_equal): Likewise.
3204         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
3205         Update to changes.
3206
3207 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
3208
3209         * verify.c improved the handling of brtrue/brfalse, factored out common code
3210
3211 2007-06-14  Raja R Harinath  <rharinath@novell.com>
3212
3213         Kill MonoGenericMethod.
3214         * class-internals.h (MonoGenericContext::method_inst): Rename from
3215         'gmethod' and convert to a MonoGenericInst.
3216         (MonoGenericMethod): Remove.
3217         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
3218         * loader.c (method_from_methodspec): Update to changes.  Use a
3219         MonoGenericContext as the key to the hashtable.
3220         * metadata.c (mono_metadata_generic_context_equal): Rename from 
3221         'mono_metadata_generic_method_equal' and take MonoGenericContext.
3222         (mono_metadata_generic_context_hash): Likewise from
3223         'mono_metadata_generic_method_hash'.  Change hash function.
3224         (mono_metadata_load_generic_params): Update to changes.
3225         (mono_get_shared_generic_method): Remove.
3226         * metadata-internals.h (mono_get_shared_generic_method): Remove.
3227         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
3228         (inflate_generic_context): Likewise.
3229         (mono_class_inflate_generic_method_full): Likewise.
3230         (setup_generic_array_ifaces): Likewise.
3231         (mono_class_create_from_typespec): Likewise.
3232         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
3233         (method_encode_methodspec): Update callsite.
3234         (reflection_methodbuilder_to_mono_method): Update to changes.
3235         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
3236         MonoGenericContext as the key to the hashtable.
3237         (inflate_mono_method): Update to changes.
3238
3239         * class-internals.h (MonoGenericMethod::container): Remove.
3240         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
3241
3242 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
3243
3244         * profiler-private.h, profiler.c, profiler.h: added API to profile
3245         exception events.
3246
3247 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
3248
3249         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
3250
3251 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
3252
3253         * verify.c: method invocation is now validated, now we verify parameter types on stack.
3254         Fixed overflow and underflow not aborting the verification process.
3255
3256 2007-06-13  Mark Probst  <mark.probst@gmail.com>
3257
3258         * class-internals.h (MonoStats): Added stats entries for dynamic
3259         code allocations.
3260
3261 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
3262
3263         * loader.c (mono_free_method): Free header->locals and header->clauses.
3264
3265         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
3266         dynamic case.
3267
3268         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
3269
3270         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
3271
3272 2007-06-12  Raja R Harinath  <rharinath@novell.com>
3273
3274         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
3275         the tables.
3276
3277 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3278
3279         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
3280
3281 2007-06-11  Raja R Harinath  <harinath@gmail.com>
3282
3283         MonoGenericMethod on a diet
3284         * class-internals.h (_MonoMethodInflated::reflection_info): Move
3285         here ...
3286         (_MonoGenericMethod::reflection_info): ... from here.
3287         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
3288         Update to changes.
3289         * reflection.c (inflate_mono_method): Likewise.
3290         (mono_reflection_bind_generic_method_parameters): Likewise.
3291
3292 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3293
3294         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
3295         *verify.c: factored long ldarg forms to share code with short forms
3296
3297 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3298
3299         *verify.c: fixed code formating factored some duplicate code
3300         into a new function
3301
3302         *verify.h: fixed binary incompatibility introduced earlier
3303
3304         *pedump.c: fixed formating
3305
3306 2007-06-11  Raja R Harinath  <harinath@gmail.com>
3307
3308         Fix assertion when disassembling Mono.C5.dll
3309         * loader.c (method_from_methodspec): Avoid inflating a method
3310         twice with the same context.  If the methodref is inflated, use
3311         the declaring method instead.
3312
3313         * class.c (mono_class_from_generic_parameter): Fix case similar to
3314         bug #81830 handled below, but for method containers.
3315
3316 2007-06-10  Raja R Harinath  <harinath@gmail.com>
3317
3318         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
3319         get_shared_generic_class.  Directly inflate the instance.
3320         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
3321         (inflate_generic_class): Delete.
3322         (get_shared_generic_class): Delete.  Move setting of
3323         'cached_class' and 'cached_context' ...
3324         * metadata.c (mono_metadata_lookup_generic_class): ... here.
3325
3326         * metadata.c (mono_metadata_lookup_generic_class): Change
3327         signature to take the components of a MonoGenericClass rather than
3328         an allocated MonoGenericClass.  Change semantics to be intern-like.
3329         * reflection.c (mono_class_bind_generic_parameters): Update to
3330         changes.  Make locking region tighter.
3331         * class.c (inflate_generic_class): Update to changes.
3332         (get_shared_generic_class): Likewise.
3333         * metadata-internals.h: Likewise.
3334
3335         * reflection.c (mono_class_bind_generic_parameters): Take and
3336         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
3337         (mono_reflection_bind_generic_parameters): Use
3338         'mono_class_bind_generic_parameters' rather than duplicate the code.
3339         * class.c (mono_bounded_array_class_get): Update to changes.
3340         * object-internals.h: Likewise.
3341
3342         * reflection.c (mono_class_bind_generic_parameters): Only support
3343         parameterizing generic type definitions.  Remove support for other
3344         open types.
3345
3346 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
3347
3348         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
3349
3350         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
3351         in the dynamic case.
3352
3353 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
3354
3355         * threads.c: When cleaning up thread, reset the Background bit.
3356         Fixes bug #81720.
3357
3358 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
3359
3360        * metadata.c: Move variable declarations to top of scope.
3361        * verify.c: Move variable declarations to top of scope.
3362
3363        Code is contributed under MIT/X11 license.
3364
3365 2007-06-08  Raja R Harinath  <rharinath@novell.com>
3366
3367         * reflection.c (mono_class_bind_generic_parameters): Replace
3368         open-coded loop with mono_metadata_inflate_generic_inst.
3369
3370         * class.c (get_shared_generic_class): Don't call
3371         mono_get_shared_generic_inst.  Use the container's own
3372         'class_inst'.
3373
3374         * metadata.c (mono_metadata_load_generic_params): Move
3375         initialization of 'context' field here from ...
3376         * class.c (mono_class_create_from_typedef): ... here, and ...
3377         * loader.c (mono_get_method_from_token): ... here.
3378
3379         * class.c (get_shared_generic_class): Rename from
3380         mono_get_shared_generic_class and make static.
3381         (mono_get_shared_generic_inst): Move to metadata.c.
3382         * loader.c (mono_get_shared_generic_method): Likewise.
3383         * class-internals.h, metadata-internals.h: Update to changes.
3384
3385         Fix #81830
3386         * class.c (mono_class_from_generic_parameter): Don't assume a
3387         generic container owner exists.  Generic containers from monodis
3388         don't have any.
3389
3390 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
3391
3392         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
3393         * verify.h: new typedefs to returns the non-verifiable status
3394         * verify.c: initial implementation of generics, stack merging and object compatibility check
3395
3396 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3397
3398         * class.c, image.c, class-internals.h (MonoImage): class_cache is
3399         a MonoInternalHashTable again (fixed bug in internal hash table
3400         code).
3401
3402 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3403
3404         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3405         MonoInternalHashTable again (fixed bug in internal hash table
3406         code).
3407
3408 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3409
3410         * class.c, image.c, class-internals.h, domain.c,
3411         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
3412         changes.  Have to figure out what makes them break the SWF
3413         regression.
3414
3415 2007-06-04  Mark Probst  <mark.probst@gmail.com>
3416
3417         * class.c, image.c, class-internals.h (MonoImage): class_cache is
3418         a MonoInternalHashTable now.
3419
3420 2007-06-04  Mark Probst  <mark.probst@gmail.com>
3421
3422         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3423         MonoInternalHashTable now.
3424
3425 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
3426
3427         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
3428         invoke_impl code.
3429
3430         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
3431
3432         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
3433         dependent trampoline.
3434
3435         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3436
3437         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
3438
3439 2007-05-29  Robert Jordan  <robertj@gmx.net>
3440
3441         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
3442
3443 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
3444
3445         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
3446
3447 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
3448
3449        * marshal.c: Fix interface lookup loops for
3450        cominterop_get_com_slot_for_method and 
3451        cominterop_get_method_interface. Only need to lookup
3452        if type is a class, else use interface type method is on.
3453
3454        Code is contributed under MIT/X11 license.
3455
3456 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
3457
3458         * reflection.c: HasSecurity can be present even if no specially 
3459         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
3460         SecurityAttribute). Fix CAS regression tests on buildbot.
3461
3462 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
3463
3464        * appdomain.c: Add configure checks for header files.
3465        * image.c: Add configure checks for header files.
3466        * file-io.c: Add configure checks for header files.
3467        * debug-mono-symfile.c: Add configure checks for header files.
3468        * threadpool.c: Add configure checks for header files.
3469        * console-io.c: Add configure checks for header files.
3470        * profiler.c: Add configure checks for header files.
3471        * rawbuffer.c: Add configure checks for header files.
3472        * icall.c: Add configure checks for header files.
3473        * rand.c: Add configure checks for header files.
3474        * socket-io.c: Add configure checks for header files.
3475
3476        Code is contributed under MIT/X11 license.
3477
3478 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
3479
3480         * reflection.c (mono_custom_attrs_from_builders): Remove the 
3481         assertion as it breaks the build.
3482         
3483         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
3484
3485         * reflection.c (lookup_custom_attr): Make a copy here too.
3486
3487         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
3488         dynamic images.
3489
3490         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
3491         images.
3492
3493         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
3494         info.
3495
3496 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
3497
3498         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
3499         (load_cattr_value): Ditto.
3500
3501 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
3502
3503         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
3504
3505 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
3506
3507         * threads.c: In "start_wrapper", set apartment_state to MTA if
3508         apartment_state is Unknown and we're running on 2.0 profile or
3509         higher.
3510         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
3511         to main method, then set apartment_state to Unknown on 1.0 profile,
3512         and MTA on 2.0 profile.
3513
3514 2007-05-16  Jb Evain  <jb@nurv.fr>
3515
3516         * class-internals.h (MonoDefaults): Add an attribute_class and
3517           customattribute_data_class.
3518         * domain.c (mono_init_internal): Populate them.
3519         * reflection.c: Use them to remove duplicates. Make a vew
3520         MonoClass variables `static'.
3521
3522 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
3523
3524         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
3525         step in implementing IMT, so that all isinst checks now can go
3526         through the bitmap.
3527         This was needed because vtables for TransparentProxy need to look
3528         like the vtable of the "target" class, so they need to point to
3529         its interface bitmap directly.
3530
3531         * object.c: inside "mono_class_create_runtime_vtable" and
3532         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
3533
3534 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
3535
3536         * object-internals.h
3537           culture-info.h : added territory field in MonoCulture and
3538           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
3539         * locales.c : fill territory field above too.
3540         * culture-info-table.h : regenerated.
3541
3542 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
3543
3544         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
3545         Fixes #81599.
3546
3547 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
3548
3549         * object.c: Always initialize apartment, even if 
3550         there is no custom attributes on entry point.
3551         
3552         Code is contributed under MIT/X11 license.
3553
3554 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
3555
3556         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
3557         * metadata.c: If no encoding is set, check for unicode
3558         on class.
3559         
3560         Code is contributed under MIT/X11 license.
3561
3562 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
3563
3564         * threads.c: Handle if mono_thread_current returns NULL 
3565         
3566         Code is contributed under MIT/X11 license.
3567
3568 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
3569
3570         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
3571         in start_wrapper. Added mono_thread_init_apartment_state and
3572         mono_thread_cleanup_apartment_state.
3573         * object.c: Initialize thread apartment state on main thread
3574         by checking for STAThreadAttribute on entry point.
3575         * object-internals.h: Add apartment_state field to MonoThread.
3576         * threads-types.h: Add unmanaged definition of 
3577         System.Threading.ApartmentState, MonoThreadApartmentState.
3578         
3579         Code is contributed under MIT/X11 license.
3580         
3581 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
3582
3583         * class.c: Fix windows build.
3584         * class-internals.h: Fix windows build.
3585         
3586         Code is contributed under MIT/X11 license.
3587
3588 2007-05-08  Robert Jordan  <robertj@gmx.net>
3589
3590         * process.c (CreateProcess_internal):
3591         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
3592         .CreateNoWindow was specified. Fixes #81496.
3593
3594 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
3595
3596         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
3597         step in implementing IMT, replaced it with two compact arrays
3598         (interfaces_packed and interface_offsets_packed) and a bitmap that
3599         is used for isinst checks (interface_bitmap).
3600
3601         * class.c: (compare_interface_ids): compare function to pass to
3602         bsearch when looking for an interface with a given id.
3603         (mono_class_interface_offset): reimplemented using bsearch on
3604         interfaces_packed, getting the offset from interface_offsets_packed.
3605         (print_implemented_interfaces): utility debugging function.
3606         (setup_interface_offsets): reworked to initialize interfaces_packed,
3607         interface_offsets_packed and interface_bitmap.
3608
3609         * object.c: replaced all accesses to "MonoClass.interface_offsets"
3610         with uses of interfaces_packed and interface_offsets_packed.
3611
3612 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
3613
3614         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
3615         mono_class_interface_offset prototype to wrap all accesses to
3616         "MonoClass.interface_offsets".
3617
3618         * class.c: Implemented mono_class_interface_offset, and wrapped all
3619         accesses to "MonoClass.interface_offsets".
3620
3621         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
3622         "MonoClass.interface_offsets".
3623
3624 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
3625
3626         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
3627         GetMethodFromHandle overloads (bug #78637).
3628
3629 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3630
3631         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
3632         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
3633
3634 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
3635
3636         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
3637         #81498.
3638
3639         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
3640         gracefully.
3641         (mono_custom_attrs_from_index): Ditto.
3642
3643         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
3644         Fixes #81501.
3645
3646 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
3647
3648         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
3649         is now allocated from a mempool.
3650
3651 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
3652
3653         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
3654         caller holds threads_lock, leading to deadlocks. Fixes #81476.
3655
3656 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
3657
3658         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
3659         mono_loader_clear_error () too late. Fixes #81463.
3660
3661 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
3662
3663         * culture-info-table.h : regenerated.
3664
3665 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
3666
3667         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
3668         is missing.
3669
3670 2007-04-25  Dick Porter  <dick@ximian.com>
3671
3672         * Makefile.am: Put the mingw enforced-optimisation back into the
3673         PLATFORM_WIN32 section.
3674
3675 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
3676
3677         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
3678         patch.
3679
3680         * image.c (mono_image_load_module): New API function to load a module reference.
3681
3682         * image.c (load_modules): Load modules lazily. Fixes #80812.
3683
3684         * class.c (mono_class_from_typeref): Use mono_image_load_module.
3685         
3686         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
3687
3688         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
3689         to mono_image_load_module_dynamic.
3690
3691 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
3692
3693         * marshal.c: Fix calling convention for CCW on non-windows
3694         platforms. STDCALL on windows, CDECL everywhere else to work 
3695         with XPCOM and MainWin COM.
3696         
3697         Code is contributed under MIT/X11 license.
3698
3699 2007-04-23  Martin Baulig  <martin@ximian.com>
3700
3701         Fix #80969.
3702
3703         * loader.c
3704         (method_from_memberref): Added `gboolean *used_context' argument.
3705         (mono_get_method_from_token): Likewise.
3706         (mono_get_method_full): Don't insert the method in the cache when
3707         `used_context' is true.
3708
3709 2007-04-23  Raja R Harinath  <rharinath@novell.com>
3710
3711         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
3712
3713         * reflection.c (mono_reflection_bind_generic_parameters): Don't
3714         create new MonoTypes for returned types.
3715         * class.c (mono_generic_class_get_class): Export mono-internal.
3716         * class-internals.h: Update to changes.
3717
3718 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
3719
3720         * threadpool.c, threadpool.h, icall-def.h: patch from
3721         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
3722
3723 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
3724
3725         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
3726         
3727         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
3728
3729         * threads.c (mono_thread_get_stack_bounds): New helper function.
3730
3731         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
3732         Correctly compute stack bounds when attaching. Fixes #81394.
3733
3734 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
3735
3736         * reflection.c: fix handling of doubles in custom attributes
3737         for the arm-fpa format (bug #81368).
3738
3739 2007-04-18  Raja R Harinath  <rharinath@novell.com>
3740
3741         * reflection.c (assembly_add_win32_resources): Mildly relax an
3742         bounds check to let the end pointer point just past the end of the
3743         allocated buffer.  (may fix #81384)
3744
3745 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
3746
3747         * culture-info-table.h : regenerated.
3748
3749 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
3750
3751         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
3752         the thread is aborted early.
3753
3754 2007-04-05  Dick Porter  <dick@ximian.com>
3755
3756         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
3757         FindFirstFile()/FindNextFile() to find entries.  This lets the
3758         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
3759         81038.
3760
3761         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
3762         the parameters of
3763         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
3764
3765 2007-04-04  Martin Baulig  <martin@ximian.com>
3766
3767         * debug-helpers.c
3768         (mono_method_desc_full_match): Add support for nested classes.
3769
3770 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
3771
3772         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
3773
3774 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
3775
3776         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
3777         waiting for too many threads.
3778
3779 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
3780
3781         * environment.c: Fix return value check on uname so we can get the 
3782         executing version on Solaris operating systems.
3783
3784 2007-03-28  Jb Evain  <jbevain@gmail.com>
3785
3786         * class.c (mono_type_get_name_recurse): Complete the
3787         fix for the creation of assembly qualified names for
3788         pointer types. Fixes #81208.
3789
3790 2007-03-27  Dick Porter  <dick@ximian.com>
3791
3792         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
3793         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
3794         changed.
3795
3796         * threads.c
3797         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
3798         the value of ReleaseMutex().
3799
3800 2007-03-27  Dick Porter  <dick@ximian.com>
3801
3802         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
3803         in little-endian order, not network endian, so must be converted
3804         to host endian here.  Fixes bug 80593.
3805
3806 2007-03-22  Jb Evain  <jbevain@gmail.com>
3807
3808         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
3809         qualified names for pointer types. Fixes #81208.
3810
3811 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
3812
3813         * marshal.c: Add support for PreserveSigAttribute. 
3814         
3815         Code is contributed under MIT/X11 license.
3816
3817 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
3818
3819         * process.c: Fix endianness issues. Fixes #81126.
3820
3821         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
3822         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
3823
3824         * image.c (mono_image_lookup_resource): Make this work on big-endian
3825         machines.Change API contract so the caller needs to free the return value.
3826         
3827         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
3828         API change.
3829         
3830 2007-03-14  Martin Baulig  <martin@ximian.com>
3831
3832         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
3833         mono_type_get_desc() as well.
3834
3835 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
3836
3837         * icall.c:  Fix environ access in VS.  
3838         
3839 2007-03-13  Alp Toker  <alp@atoker.com>
3840
3841         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
3842         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
3843         #63841.
3844
3845 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
3846
3847         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
3848         circular references among dynamic methods. Fixes #81091.
3849
3850         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
3851
3852 2007-03-09  Martin Baulig  <martin@ximian.com>
3853
3854         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
3855
3856 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
3857
3858         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
3859         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
3860         
3861         Code is contributed under MIT/X11 license.
3862         
3863 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
3864
3865         * loader.c: Reapply patch for bug #79424.
3866
3867 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
3868
3869         * metadata.c (mono_type_to_unmanaged): Only convert object to
3870         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
3871
3872 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
3873
3874         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
3875         (and incorrectly set) is_reference field from MonoGenericInst.
3876
3877 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
3878
3879         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
3880         a little earlier.
3881
3882         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
3883
3884         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
3885
3886 2007-03-05  Miguel de Icaza  <miguel@novell.com>
3887
3888         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
3889         FileOptions.1 value to mean "temporary", map that to
3890         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
3891
3892         Fixes 80688
3893
3894 2007-03-03  Marek Habersack  <mhabersack@novell.com>
3895
3896         * appdomain.c: implement MS .Net style shadow copying. Copies of
3897         the assemblies are made in a subdirectory of the dynamic base
3898         directory, the assembly names are preserved.
3899         Copy .mdb and .config files along with the assemblies being shadowed.
3900
3901 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
3902
3903         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
3904         (emit_marshal_handleref): Ditto.
3905
3906         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
3907         on Visual C++. Fixes #80671.
3908
3909 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
3910
3911         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
3912         for clone operations.
3913
3914 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
3915
3916         * marshal.c: Fix warnings.
3917
3918 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
3919
3920         * loader.c: allow case-insensitive matching of the dll name
3921         in dllmap handling when prefixed with "i:".
3922
3923 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
3924
3925         * threads.c: Fix #ifdef for dummy_apc function for VS.
3926
3927 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
3928
3929         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
3930
3931 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
3932         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
3933         giving precedence to the methods with a fully qualified name
3934         (InterfaceName.MethodName) when building the interface sections
3935         of the vtable.
3936
3937 2007-02-16  Dick Porter  <dick@ximian.com>
3938
3939         * threadpool.c (append_job): Fix fast-path array handling, so it's
3940         less likely the array will grow exponentially when the load is
3941         heavy.
3942
3943 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
3944
3945         * metadata-internals.h, loader.c: fix dllmap lookup order
3946         for non-function maps, too, and prepare for fallback code.
3947
3948 2007-02-12  Robert Jordan  <robertj@gmx.net>
3949
3950         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
3951         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
3952         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
3953         GlobalFree. Fixes a part of bug #77075.
3954
3955 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
3956
3957         * loader.c: implemented typedef parent in field memberref.
3958
3959 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
3960
3961         * marshal.c: Fix warnings and remember to call Release on
3962         IUnknown of RCW.
3963         
3964         Code is contributed under MIT/X11 license.
3965
3966 2007-02-10  Miguel de Icaza  <miguel@novell.com>
3967
3968         * class-internals.h: Add MonoHandleRef definition, and
3969         handleref_class to mono_defaults. 
3970
3971         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
3972         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
3973
3974         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
3975         (do nothing on this stage)
3976         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
3977         (emit_marshal_handleref): New method, used for argument handling
3978         of HandleRefs. 
3979
3980 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
3981
3982         * class.c (mono_class_setup_parent): Lazily init com types.
3983         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
3984         init com types.
3985         * object.c (mono_remote_class_vtable): Lazily init com types.
3986         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
3987         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
3988         * domain-internals.h: Expose mono_init_com_types.
3989         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
3990         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
3991         Add support for COM Callable Wrapper marshalling.
3992         * marshal.h: Add icall definitions.
3993         * gc.c: Handle freeing of CCWs in finalizer code.
3994         
3995         Code is contributed under MIT/X11 license.
3996
3997 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
3998
3999         * reflection.c: changed all the signature encoding code to use
4000         a variable-sized buffer.
4001
4002 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4003
4004         * marshal.c: locking fixes: never take the loader lock
4005         or other runtime locks when holding the marshal lock
4006         (fixes bug#80664).
4007
4008 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
4009
4010         * marshal.c: make the delegate function pointer mapping
4011         work for the moving GC.
4012
4013 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
4014
4015         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
4016         for bug #80618.
4017
4018 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4019
4020         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
4021         gmodule.
4022
4023 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
4024
4025         * threadpool.c: made the code moving-GC safe.
4026
4027 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
4028
4029         * assembly.c, boehm-gc.c, class-internals.h, class.c,
4030         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
4031         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
4032         warning cleanup.
4033         * reflection.c: warning cleanup, some threading and moving GC fixes.
4034
4035 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
4036
4037         * class.c, loader.c: create the needed Set/Get/Address array methods
4038         as well as the .ctors in mono_class_init (), fixes bug #80567.
4039
4040 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
4041
4042         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
4043         we doesn't decrease its alignment. Should fix the sparc build.
4044
4045 2007-01-24  Dick Porter  <dick@ximian.com>
4046
4047         * socket-io.c
4048         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4049         Create the returned object if we need to ignore an unsupported
4050         socket option.  Fixes a segfault reported by Atsushi.
4051
4052 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
4053
4054         * class.c, object.c: restrict GC-tracked fields to
4055         UIntPtr fields used inside corlib, so we provide better
4056         type info to the GC and also allow broken packing as in
4057         bug #80580.
4058
4059 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
4060
4061         * sgen-gc.c: removed duplicated function.
4062
4063 2007-01-19  Miguel de Icaza  <miguel@novell.com>
4064
4065         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
4066         value that means that the value is not supported, but that we
4067         should not return a failure, but instead report this as a
4068         successful operation.
4069
4070 2007-01-19  Raja R Harinath  <rharinath@novell.com>
4071
4072         Fix tests/bug79956.2.il
4073         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
4074         (mono_generic_class_get_class): If the generic definition in an
4075         enum, copy over other fields related to it.
4076
4077 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
4078
4079         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
4080         genericinst enums (bug #79215).
4081
4082 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
4083         * class.c: Fix bug 80307.
4084
4085 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
4086
4087         * image.c: if the file table is not present, try to load
4088         all the modules, since we don't have info about them
4089         having or not metadata (bug #80517).
4090         * assembly.c: allow mono_assembly_load_references () to
4091         work for netmodules.
4092
4093 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4094
4095         * image.c, metadata-internals.h, object.c: execute module
4096         cctors when running on the 2 runtime if present (bug #80487).
4097
4098 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
4099
4100         * icall.c: optimized InitializeArray() on bigendian.
4101
4102 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
4103
4104         * icall.c: fix for the broken ARM FPA double format.
4105
4106 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
4107
4108         * icall.c: handle endian issues for r4 and r8 types, too, in
4109         the InitializeArray() icall.
4110
4111 2007-01-15  Miguel de Icaza  <miguel@novell.com>
4112
4113         * loader.c (mono_loader_error_prepare_exception): Clear the error
4114         once we have extracted the information from it, do this before we
4115         call into the JIT's class loading mechanisms.
4116
4117         * object.c (mono_class_create_runtime_vtable): Do not clear the
4118         loader error before calling mono_class_get_exception_for_failure
4119         as the loader error is needed inside
4120         mono_class_get_exception_for_failure to throw the error (thinko).
4121
4122         Fixes #80521
4123         
4124 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
4125
4126         * reflection.c: align fields rva data so it's faster to load at
4127         runtime.
4128
4129 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4130
4131         Prepare to simplify GenericMethod handling.
4132         * class-internals.h (mono_method_get_context): New accessor function.
4133         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
4134         rather than directly accessing '->context' field.
4135
4136         * class-internals.h (_MonoGenericParam.method): Move ...
4137         (_MonoGenericContainer): ... here.  Add into union with klass field.
4138         * class.c, icall.c, loader.c, metadata.c, reflection.c:
4139         Update to changes.
4140
4141 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
4142
4143         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
4144         the wrapper type enum and reduce relocations.
4145
4146 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4147
4148         * reflection.c (inflate_mono_method): Reuse method instantiation
4149         from the generic method, if available.
4150
4151 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4152
4153         * marshal.c (emit_marshal_variant): Fix conv_arg
4154         type in last commit, based on whether parameter is byref.
4155         
4156 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4157
4158         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
4159         marshalling.
4160         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
4161         MONO_TYPE_OBJECT back for VARIANT support.
4162
4163 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4164
4165         * marshal.c, marshal.h, icall-def.h: Implement 
4166         Marshal.ReAllocCoTaskMem.
4167
4168 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
4169
4170         * marshal.c: memory retention fixes: use the proper
4171         image cache for runtime_invoke method lookups.
4172
4173 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
4174
4175         * mempool.c: added code to help debug mempool allocations.
4176
4177 2007-01-11  Dick Porter  <dick@ximian.com>
4178
4179         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
4180         support (experimenting with faking it with IP_MTU_DISCOVER for
4181         systems that don't have IP_DONTFRAGMENT.)
4182         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
4183         icall.
4184
4185         * icall-def.h: new System.Net.Sockets.Disconnect icall.
4186
4187         * socket-io.h: Add new fields to MonoSocketAsyncResult
4188         corresponding to the new ones in Socket.cs.
4189
4190 2007-01-11  Raja R Harinath  <rharinath@novell.com>
4191
4192         Fix IronPython regression mentioned in #80249
4193         * metadata.c (do_mono_metadata_parse_generic_class): Clear
4194         'cached_context' field, since it may have been initialized as a
4195         side-effect of metadata parsing.
4196
4197         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
4198         (_MonoGenericClass.cached_class): Move here and rename from lone
4199         remaining field of ...
4200         (_MonoInflatedGenericClass): ... this.  Remove.
4201         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
4202         to changes.
4203
4204         Fix mcs/tests/test-128.cs regression.
4205         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
4206         2007-01-10 change below.
4207         [MONO_TYPE_OBJECT]: Recurse into array case.
4208
4209 2007-01-11  Raja R Harinath  <harinath@gmail.com>
4210
4211         * class-internals.h (mono_get_inflated_generic_class): Remove.
4212         * class.c (mono_get_inflated_generic_class): Remove.
4213         (mono_generic_class_get_class): Rename from
4214         mono_class_create_generic.
4215         (mono_class_from_mono_type) [GENERICINST]: Use it.
4216         * reflection.c, metadata.c: Update to changes.  Use
4217         'mono_class_from_mono_type'.
4218
4219 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
4220
4221         * reflection.c: use passed type when encoding an array element
4222         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
4223
4224 2007-01-09  Robert Jordan  <robertj@gmx.net>
4225
4226         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
4227         result arguments (someDelegate.EndInvoke (unrelatedAres)).
4228         Fixes bug #80392.
4229
4230 2007-01-09  Raja R Harinath  <rharinath@novell.com>
4231
4232         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
4233
4234         * object.c (set_value): Avoid aliasing between type->data.klass
4235         and type->data.generic_class.
4236
4237         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
4238
4239 2007-01-08  Raja R Harinath  <rharinath@novell.com>
4240
4241         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
4242         between type->data.klass and type->data.generic_class.
4243
4244 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
4245
4246         * marshal.c: In MS.NET, StringBuilder objects are not copied by
4247         value in out parameters.
4248
4249 2007-01-08  Raja R Harinath  <rharinath@novell.com>
4250
4251         Simplify invariant for MonoGenericClass::klass field.
4252         * class.c (mono_class_create_generic): Verify 'klass' is null.
4253         * metadata.c (do_mono_metadata_parse_generic_class): Don't
4254         initialize 'klass' field.
4255
4256 2007-01-05  Raja R Harinath  <rharinath@novell.com>
4257
4258         Ongoing work to avoid redundant data and simplify invariants.
4259         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
4260         'generic_class', and change type to a GenericInst.
4261         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
4262         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
4263
4264 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
4265
4266         * class.c : skip io-layer under PLATFORM_WIN32.
4267
4268 2007-01-03  Tor Lillqvist  <tml@novell.com>
4269
4270         Fix #80305: In a bundled executable, look in the bundled exe
4271         assembly to determine the runtime version. Add the possibility to
4272         bundle also the machine.config file.
4273         
4274         * assembly.c (mono_assembly_open_from_bundle): Make
4275         non-static. Allow being called even if we have no bundled
4276         assemblies, and return NULL right away in that case.
4277
4278         * domain-internals.h: Declare mono_assembly_open_from_bundle()
4279         here.
4280
4281         * domain.c (app_config_parse): Take an assembly exe file name as
4282         parameter instead of a config file name. Check for a bundled
4283         config file for that assembly by calling
4284         mono_config_string_for_assembly_file() (see below) before looking
4285         for one in the file system.
4286         (get_runtimes_from_exe): Corrsponding change to call of
4287         app_config_parse().
4288         (get_runtimes_from_exe): Check for bundled assembly exe file first
4289         by calling mono_assembly_open_from_bundle(). If no bundled
4290         assembly exe file is found, call mono_image_open() as before to
4291         look it up in the file system.
4292
4293         * mono-config.c: Add variable bundled_machinec_onfig.
4294         (mono_config_string_for_assembly_file): New function.
4295         (mono_config_for_assembly): Move code snippet that looks for a
4296         bundled assembly .config file into the above new function. Call
4297         it.
4298         (mono_register_machine_config, mono_get_machine_config): New
4299         functions to set and retrieve
4300
4301         * assembly.h: Declare mono_register_machine_config().
4302
4303         * mono-config.h: Declare mono_get_machine_config() and
4304         mono_config_string_for_assembly_file().
4305
4306         * icall.c: No declaration of environ necessary on Win32. It is
4307         declared (as a macro expanding to a function call) in stdlib.h.
4308         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
4309         New internal mono function. Returns the value of
4310         mono_get_machine_config() as a Mono string.
4311
4312         * icall-def.h: Add get_bundled_machine_config().
4313
4314 2007-01-04  Raja R Harinath  <rharinath@novell.com>
4315
4316         Remove redundant field
4317         * class-internals.h (_MonoGenericContext.container): Remove field.
4318         * loader.c (mono_method_get_signature_full): Don't parse a
4319         "container" for a signature parse when the signature is inflated
4320         immediately.
4321         (method_from_methodspec): Likewise, for a generic_inst.
4322         * class.c, metadata.c, reflection.c: Update to changes.
4323
4324 2006-01-04  Raja R Harinath  <rharinath@novell.com>
4325
4326         * class-internals.h (_MonoGenericClass): Rename 'context' field to
4327         'cached_context', and change semantics -- it starts off NULL, and
4328         is initialized on demand.
4329         * class.c (mono_generic_class_get_context): New accessor to
4330         replace 'context' field accesses.
4331         (mono_class_get_context): New helper.
4332         (*): Update to changes.
4333         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
4334
4335 2007-01-03  Miguel de Icaza  <miguel@novell.com>
4336
4337         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
4338         before the memcpy.   Fixes Marshal2 regression.
4339
4340 2007-01-02  Jb Evain  <jbevain@gmail.com>
4341
4342         * blob.h: add a MONO_TYPE_ENUM definition
4343         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
4344         fix the encoding of arrays of enums in custom attributes.
4345
4346         Fixes #79666.
4347
4348 2007-01-01  Miguel de Icaza  <miguel@novell.com>
4349
4350         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
4351         string is null terminated, but only cut the string short if it
4352         overflows the buffer.   
4353         
4354         (mono_string_to_byvalstr): Also fix this routine.   The code here
4355         was not properly terminating a string (it was only terminated
4356         because of the previous catch-all memset). 
4357
4358         I left the memset, because I do not know if applications expect
4359         the runtime to clear this region. 
4360
4361         Fixes #79944.
4362
4363         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
4364         Clear the error before returning to unmanaged code to prevent the
4365         runtime from being confused later on (fixes  80420).
4366         (ves_icall_type_from_name): Always call mono_loader_clear_error
4367         after parsing a type that could have failed.
4368         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
4369
4370         * loader.c (mono_loader_clear_error): Fix indentation.
4371
4372 2006-12-28  Martin Baulig  <martin@ximian.com>
4373
4374         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
4375
4376 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
4377
4378         * reflection.c: patch from Rolf Bjarne Kvinge to fix
4379         getting a token for an EnumBuilder.
4380
4381 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4382
4383         * reflection.c: be more careful in case resource generation
4384         fails to create the data array.
4385
4386 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
4387
4388         * sgen-gc.c: write barrier for clone and fix unregister handles.
4389
4390 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
4391
4392         * reflection.c: some fixes needed in the generics code for the moving GC.
4393
4394 2006-12-22  Robert Jordan  <robertj@gmx.net>
4395
4396         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
4397         account. Fixes bug #80299.
4398
4399 2006-12-21  Raja R Harinath  <rharinath@novell.com>
4400
4401         Fix WaitHandle usage in delegates.
4402         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
4403         * object.c (mono_wait_handle_new): Use the property set method to
4404         initialize the handle.
4405         (mono_wait_handle_get_handle): New.
4406         * threadpool.c (mono_async_invoke): Use it.
4407         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
4408         Likewise.
4409         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
4410
4411 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
4412
4413         * marshal.c (emit_marshal): Call emit_marshal_variant and
4414         emit_marshal_com_interface when applicable.
4415         (emit_marshal_variant, emit_marshal_com_interface): Add
4416         methods for this case and remove if's from emit_marshal_object.
4417         
4418 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
4419
4420         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
4421
4422 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
4423
4424         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
4425         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
4426         and GlobalFree on Windows. Remove FIXME.
4427
4428 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4429
4430         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
4431         implementation for managed objects.
4432
4433 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
4434
4435         * object.c: implemented code to be used for checking
4436         that no reference field overlaps with non-references.
4437
4438 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4439
4440         * threadpool.c: fix queue code to be compatible with the
4441         moving GC.
4442
4443 2006-12-18  Miguel de Icaza  <miguel@novell.com>
4444
4445         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
4446         in structures by throwing ArgumentNullException.
4447
4448         (emit_marshal_safehandle): Also when they are null parameters.
4449
4450         (emit_marshal_safehandle): Add support for ref
4451         SafeHandles parameters
4452
4453 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4454
4455         * profiler.c: updated to use the mono-dl API instead of
4456         gmodule.
4457
4458 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4459
4460         * profiler.c: updated to use the mono-dl dynamic loading
4461         API instead of gmodule.
4462
4463 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
4464
4465         * profiler.c: use readlink, older versions of glib don't have
4466         g_file_read_link ().
4467
4468 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4469
4470         * profiler.c: try to detect the path to mono if libc fails to provide
4471         a useful name (bug #80286).
4472
4473 2006-12-16  Raja R Harinath  <rharinath@novell.com>
4474
4475         Fix #80242
4476         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
4477         instance, use the generic type definition instead.
4478         (ves_icall_Type_GetNestedTypes): Likewise.
4479         * class.c (mono_class_create_generic): Always set the
4480         nested_classes of a generic instance to NULL, even if the generic
4481         type definition has nested types.
4482
4483 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
4484
4485         * marshal.c (mono_string_from_bstr): Revert previous Windows change
4486         and fix on Linux.
4487         
4488 2006-12-15  Miguel de Icaza  <miguel@novell.com>
4489
4490         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
4491         my arguments were in the wrong order.   I also fixed the Windows
4492         version which seems to have had the same issue.
4493
4494         (mono_free_bstr): On Unix, this is g_free.
4495         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
4496         conversions (for the tests in corlib to pass).
4497
4498 2006-12-14  Miguel de Icaza  <miguel@novell.com>
4499
4500         * marshal.c (emit_ptr_to_object_conv): For now, ignore
4501         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
4502         exception if a ref SafeHandle in a struct has changed).
4503         
4504         (emit_struct_conv): Do not perform layout checks for classes
4505         derived from SafeHandle, as those are specially handled. 
4506
4507         (emit_object_to_ptr_conv): Add support for
4508         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
4509
4510         (emit_marshal_safehandle): Implement conversion of return values
4511         of safehandles (MARSHAL_ACTION_CONV_RESULT).
4512         
4513         * threads.c: WaitHandle now is compiled with two different handles
4514         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
4515         for 2.0.
4516         
4517         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
4518         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
4519         these routines to cope with both kinds of fields.
4520
4521 2006-12-12  Miguel de Icaza  <miguel@novell.com>
4522
4523         * metadata.c (mono_type_to_unmanaged): Handle the case where
4524         type->data.klass is a SafeHandle, and in that case, return the
4525         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
4526         MONO_MARSHAL_CONV_SAFEHANDLE. 
4527
4528 2006-12-11  Miguel de Icaza  <miguel@novell.com>
4529
4530         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
4531         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
4532         calling emit_marshal_object.
4533
4534         (emit_marshal_safehandle): Implement marshalling of
4535         SafeHandle parameters (no ref support yet).
4536
4537         (MarshalAction): Document the defines as I implement
4538         them for SafeHandle.
4539
4540         (emit_marshal_object): indentation police.
4541
4542         * class-internals.h: Define MonoSafeHandle.
4543         Add safehandle_class to MonoDefaults type.
4544
4545         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
4546         list of classes to check for fields. 
4547
4548         * domain.c (mono_init_internal): Add SafeHandle to the list of
4549         mono_defaults loaded.
4550
4551 2006-12-15  Raja R Harinath  <rharinath@novell.com>
4552
4553         Fix #80253
4554         * reflection.c (mono_reflection_bind_generic_parameters): If the
4555         generic type definition is a type builder, ensure that it is fully
4556         initialized before instantiating it.  Kill some dead code.
4557
4558 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
4559
4560         * object.c: clear the loader_error () before loading
4561         more metadata stuff (bug #80258).
4562
4563 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
4564
4565         * icall.c, icall-defs.h: type modifiers icalls for
4566         parameters and properties.
4567
4568 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
4569
4570         * object.c, icall.c: fixed warnings.
4571
4572 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4573
4574         * marshal.c: fixed a couple of leaks and coding style in a few places.
4575
4576 2006-12-08  Dick Porter  <dick@ximian.com>
4577
4578         * process.c: Cope with NULL ProcessStartInfo arguments on windows
4579         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
4580         80173.
4581
4582 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4583
4584         * process.c: ProcessStartInfo may have only filename set and
4585         arguments can be NULL.
4586
4587 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4588
4589         * icall.c: fix leak found by Robert Jordan.
4590
4591 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4592
4593         * marshal.c, marshal.h: generate managed method to access an element
4594         of a multi-dimensional array.
4595
4596 2006-11-30  Paolo Molaro (lupus@ximian.com)
4597
4598         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
4599
4600 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4601
4602         * icall.c: back out GetFields () fix until the serialization code is
4603         fixed to not depend on the incorrect behaviour.
4604
4605 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
4606
4607         * profiler.c: provide defaults if none are set.
4608
4609 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
4610
4611         * Makefile.am, attrdefs.h: new public header file with
4612         constants for attributes for use by embedders.
4613
4614 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
4615
4616         * icall.c: GetFields () fix for bug #80064.
4617
4618 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
4619
4620         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
4621         removed long unused icalls.
4622
4623 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
4624   
4625         * marshal.c: 
4626                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
4627                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
4628                 can be generated without a delegate class.
4629                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
4630         
4631         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
4632
4633 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4634
4635         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
4636         #80069.
4637
4638 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4639
4640         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
4641         icall-def.h: added icalls needed by System.GC.
4642
4643 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
4644
4645         * loader.c: ensure the class in catch clauses is handled
4646         correctly for generics methods (fixes bug#79980).
4647
4648 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
4649
4650         * monitor.h, monitor.c: added mono_locks_dump () function
4651         to help debug deadlocks involving managed locks.
4652
4653 2006-11-13  Dick Porter  <dick@ximian.com>
4654
4655         * file-io.c (get_file_attributes): If the file is a symlink try
4656         and get the stat data for the target, but also add the
4657         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
4658         the specs for the windows symlink support, but will probably have
4659         to be reworked when I have test data from a vista machine.  Fixes
4660         bug 79887.
4661
4662 2006-11-13  Dick Porter  <dick@ximian.com>
4663
4664         * gc.c (mono_domain_finalize): 
4665         * marshal.c (mono_delegate_begin_invoke): 
4666         * threadpool.c (socket_io_init, mono_thread_pool_init)
4667         (mono_thread_pool_finish): 
4668         * monitor.c (mono_monitor_try_enter_internal): 
4669         * threads.c (mono_thread_resume, mono_thread_init)
4670         (mono_thread_suspend_all_other_threads)
4671         (mono_thread_execute_interruption): 
4672         * appdomain.c (mono_domain_unload): Check for NULL error returns
4673         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
4674         75733.
4675
4676 2006-11-11  Miguel de Icaza  <miguel@novell.com>
4677
4678         * process.c
4679         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
4680         Only close the handle if the value of the handle is not
4681         INVALID_HANDLE_VALUE.  This just makes the process a bit more
4682         robust.
4683
4684         Improvement for #75733, so that we do not run into this problem. 
4685
4686         
4687         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
4688         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
4689         internal variables.  Fixes #79462 
4690         
4691
4692 2006-11-09  Dick Porter  <dick@ximian.com>
4693
4694         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
4695         Use poll() not select().  Fixes bug 79397.
4696
4697 2006-11-09  Raja R Harinath  <rharinath@novell.com>
4698
4699         Fix #79872
4700         * assembly.c (mono_assembly_load_from_full): Check that the given
4701         image has an assembly manifest.
4702
4703 2006-11-09  Ankit Jain  <jankit@novell.com>
4704
4705         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
4706         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
4707         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
4708
4709 2006-11-07  Dick Porter  <dick@ximian.com>
4710
4711         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
4712         Put the old resolver behaviour back for pre-2.0 profiles.
4713
4714 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
4715
4716         * threadpool.c: precise GC and locking fixes.
4717
4718 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
4719
4720         * class.c: don't load types that have an explicit unaligned
4721         managed reference. Provide better info in the TypeLoad exception.
4722         Part of the fix for bug #79744.
4723         * object.c: use the correct check for class type load issues.
4724
4725 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
4726
4727         * class.c: enforce alignment of fields with managed references
4728         even when Pack=1 is forced by the user (bug #77788).
4729
4730 2006-11-03  Dick Porter  <dick@ximian.com>
4731
4732         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
4733         If the address reverse lookup fails, return it as the hostname
4734         anyway.  Fixes bug 79721.
4735
4736 2006-11-03  Dick Porter  <dick@ximian.com>
4737
4738         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
4739         Fix build on Windows.
4740
4741 2006-11-02  Dick Porter  <dick@ximian.com>
4742
4743         * icall-def.h: 
4744         * object-internals.h: 
4745         * exception.c (mono_get_exception_thread_interrupted): 
4746         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
4747         Fixes bug 74525.
4748
4749         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
4750         Check for pending Thread.Interrupt.
4751
4752 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
4753         * loader.c: Fixed bug 79684.
4754
4755 2006-10-27  Dick Porter  <dick@ximian.com>
4756
4757         * file-io.c (get_file_attributes): Force symlinks to directories
4758         to be returned as a regular file.  Fixes bug 79733.
4759 2006-10-26  Dick Porter  <dick@ximian.com>
4760
4761         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
4762         CreateFile to open a directory then we need to set the
4763         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
4764
4765 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
4766
4767         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
4768         friends.
4769
4770 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
4771
4772         * sgengc.c: small cleanup of timer code.
4773
4774 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4775
4776         * sgen-gc.c: fix some warnings and start adding support for
4777         complete object removal on domain unload.
4778
4779 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
4780
4781         * assembly.c: build_assembly_name should not consider a version
4782         number without build or revision number invalid. Fixes bug #79715.
4783
4784 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
4785
4786         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
4787         call kernel32 function OutputDebugString directly.
4788         
4789         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
4790         
4791 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
4792
4793         * reflection.c: small cleanup, using a function to insert a MonoString
4794         in the string heap.
4795
4796 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
4797
4798         * reflection.c: moving GC fixes.
4799
4800 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
4801
4802         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
4803         all the objects with finalizers belonging to an unloading appdomain.
4804
4805 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
4806
4807         * sgen-gc.c: added ability to allocate even when the nursery is fully
4808         pinned and fixed a couple of bugs.
4809
4810 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
4811
4812         * threads.h: Revert the last change for now.
4813
4814         * threads.h (mono_thread_get_pending_exception): Rename this to
4815         mono_thread_get_undeniable_exception ().
4816
4817 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
4818
4819         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
4820         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
4821         when fname does not refer to valid assembly. This result in a more
4822         meaningful error message.
4823         * exception.c: added mono_get_exception_bad_image_format2 which 
4824         constructs a BadImageFormatException using the ctor taking a custom
4825         message and the file name. Passing in a NULL msg results in a default
4826         message.
4827         * exception.h: define mono_get_exception_bad_image_format2 function.
4828         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
4829         when file name pointed to an invalid IL image. Use 
4830         mono_get_exception_file_not_found2 to construct FileNotFoundException,
4831         as this results in a more meaningful error message.
4832
4833 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
4834
4835         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
4836         #79465.
4837
4838 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
4839
4840         * metadata.c (mono_type_size): Change the align parameter to guint32 for
4841         consistency with the other _size functions.
4842         (mono_type_stack_size): Ditto.
4843
4844         * class.c object.c icall.c: Fix warnings caused by the above change.
4845
4846         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
4847
4848         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
4849
4850         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
4851
4852 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4853
4854         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
4855         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
4856         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
4857         threadpool.h, threads-types.h: mark more internal functions.
4858
4859 2006-10-11  Dick Porter  <dick@ximian.com>
4860
4861         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
4862         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
4863         reproduce the bug even before applying the fix.)
4864
4865 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
4866
4867         * reflection.c: allow retrieving attributes for arguments in generic
4868         methods (bug #79241).
4869
4870 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
4871
4872         * debug-mono-symfile.c: properly check fopen () result (found by
4873         coverity).
4874
4875 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
4876
4877         * reflection.c: make error message clearer and fixed two
4878         issuelets found by Coverity.
4879
4880 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
4881
4882         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
4883
4884 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4885
4886         * object-internals.h, gc-internal.h, profiler-private.h:
4887         mark internal functions.
4888
4889 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4890
4891         * reflection.c: put data in the text section.
4892         * icall.c: recognize more types in type_from_typename ().
4893         * process.c, marshal.c: added some GC FIXMEs.
4894
4895 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
4896
4897         * loader.c: check for NULL before initializing.
4898
4899 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
4900
4901         * gc.c (finalizer_thread): Use a non-alertable wait here.
4902
4903         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
4904         until the correct solution is found.
4905
4906 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
4907
4908         * reflection.c (mono_module_get_object): Avoid an assert when operating on
4909         modules with no metadata. Fixes #79596.
4910
4911         * image.c (load_metadata_ptrs): Put back the error message when
4912         the #- heap is encountered since the support is not complete yet.
4913
4914 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
4915
4916         * gc.c: do not allow the user to SuppressFinalize () a
4917         delegate because it would leak the trampoline if present.
4918
4919 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
4920
4921         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
4922         PropertyPtr table.
4923
4924 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
4925
4926         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
4927
4928         * metadata.c (mono_metadata_get_param_attrs): Ditto.
4929
4930         * row-indexes.h: Add definitions for *Ptr tables.
4931
4932         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
4933
4934         * metadata.c (mono_metadata_translate_token_index): New helper function to
4935         translate table indexes used in uncompressed metadata.
4936         (mono_metadata_decode_table_row): Ditto.
4937         (mono_metadata_decode_table_row_col): Ditto.
4938
4939         * metadata.c: Add table schema for *Ptr tables.
4940
4941         * class.c loader.c: Use the new helper function to access the affected metadata
4942         tables.
4943         
4944         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
4945         #38532.
4946         
4947 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
4948
4949         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
4950         sequences which can be unbounded in size. Fixes #79583.
4951
4952 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
4953
4954         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
4955         static initialization.
4956
4957         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
4958
4959         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
4960
4961         * domain.c (mono_domain_free): Free up type_init_exception_hash.
4962
4963         * object.c (mono_runtime_class_init): Implement correct semantics when a static
4964         ctor fails, i.e. throw the same exception on subsequent accesses.
4965         
4966 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
4967
4968         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
4969         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
4970         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
4971         Handle marshalling of interfaces and VARIANTs contained in structs.
4972         
4973         Code is contributed under MIT/X11 license.
4974         
4975 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
4976
4977         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
4978         
4979         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
4980         mempool.
4981
4982 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4983
4984         * console-io.c: ignore previous SIGINT handler.
4985
4986 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
4987
4988         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
4989         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
4990         #79460, #79461, #79485.
4991
4992         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
4993
4994         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
4995         #79217.
4996
4997 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
4998
4999         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
5000         could be generated from it.
5001
5002 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
5003
5004         * rand.c: fix read loop to correctly handle EINTR.
5005
5006 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5007
5008         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
5009         internal calls are defined to keep methods closer to the declaring
5010         type and allow a significant reduction in runtime relocations and
5011         memory usage.
5012
5013 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
5014
5015         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
5016         exception message to have FileNotFoundException use the default
5017         assembly load error message. Fixes bug #79426.
5018         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
5019
5020 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5021
5022         * threadpool.c: (start_thread_or_queue) use the root domain when
5023         creating the thread instead of the async object one.
5024
5025 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
5026
5027         * class.c, object.c, class-internals.h, reflection.c:
5028         for arrays, store element_size inside MonoClass (speedup
5029         for array object creation).
5030
5031 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
5032
5033         * icall.c: fixed CodeBase to use the file name and not the module
5034         name (bug #79365).
5035
5036 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5037
5038         * mono-debug.c, mono-debug.h: export find_method as
5039         mono_debug_find_method ().
5040
5041 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5042
5043         * debug-helpers.c, class-internals.h: added a few functions useful
5044         when debugging under gdb.
5045
5046 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5047
5048         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
5049         characters that need special handling.
5050
5051 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
5052
5053         * mono-config.c: make the os/cpu specification more flexible,
5054         allowing lists and negation.
5055
5056 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
5057
5058         * marshal.c: COM Interop fixes. Handle case where method->klass.
5059         is interface. Handle BSTR/MonoString when null. Use CDECL as 
5060         calling convention on non-windows platforms. This is for
5061         compatibility with XPCOM and MainWin COM.
5062         
5063         Code is contributed under MIT/X11 license.
5064         
5065
5066 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
5067
5068         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
5069         correctly. Fixes #79217.
5070
5071         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
5072
5073 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
5074
5075         * mono-config.c: allow both an os and cpu attribute for dllmap
5076         and dllentry elemnets to enable a single config file to be used
5077         for multiple architectures.
5078
5079 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
5080
5081         * loader.c: MonoLoaderError was cleared too soon on load failure.
5082         Fixes bug #79424.
5083
5084 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
5085
5086         * icall.c: use the defining class vtable when accessing a
5087         static field, not a pobblibly derived class.
5088
5089 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
5090
5091         * icall.c string-icalls.c: Remove references to unicode.h.
5092
5093         * unicode.h unicode.c Makefile.am: Remove these unused source files.
5094
5095         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
5096
5097         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
5098         indicating the image where custom marshaller types should be looked up.
5099         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
5100         custom marshallers, instead of corlib. Fixes #79425.
5101
5102 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
5103
5104         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
5105
5106 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
5107
5108         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
5109         Implement Environment.ProcessorCount.
5110         
5111         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
5112         Implement Environment.ProcessorCount.
5113         
5114         * icall.c: 
5115         Add Environment.ProcessorCount icall.
5116         
5117         Patch by Jason McFall.
5118
5119 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5120
5121         * assembly.c: don't append .exe/.dll when the filename already contains
5122         one of those extensions.
5123
5124 2006-09-12  Martin Baulig  <martin@ximian.com>
5125
5126         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
5127         to array interfaces.
5128
5129 2006-09-11  Martin Baulig  <martin@ximian.com>
5130
5131         * reflection.c (mono_image_build_metadata): Create the
5132         MethodImpl's after emitting all types and methods, so we don't
5133         need another fixup pass for them.
5134
5135 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
5136
5137         * class.c (mono_class_from_name_case): Fix regression introduced by the last
5138         change.
5139
5140 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
5141
5142         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
5143         unload.
5144
5145 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
5146
5147         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
5148         args is not set. Fixes #78926.
5149
5150 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
5151
5152         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
5153
5154         * image.c (load_class_names): Move this to class.c, and rename it to 
5155         'mono_image_init_name_cache'.
5156         (load_modules): Fix a warning.
5157
5158         * class.c icall.c image.c: Initialize image->name_cache lazily.
5159
5160         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
5161         on its name using information in the AOT file.
5162
5163         * class.c (mono_class_from_name): Use the new hook function.
5164
5165 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
5166
5167         * reflection.c (mono_param_get_objects): Handle enum default parameter values
5168         correctly.
5169
5170         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
5171         Fixes #79289.
5172         
5173 2006-09-06  Martin Baulig  <martin@ximian.com>
5174
5175         * icall.c (mono_lookup_internal_call): Small fix.
5176
5177 2006-09-05  Raja R Harinath  <rharinath@novell.com>
5178
5179         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
5180         double g_free.
5181
5182 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
5183
5184         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
5185         when --debug is specified.
5186
5187 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
5188
5189         * class.c (setup_generic_array_ifaces): Fix a warning.
5190
5191 2006-09-04  Miguel de Icaza  <miguel@novell.com>
5192
5193         * Temporarily remove the patch to assemly.c that checks the
5194         assembly versions as it breaks our gacutil.
5195
5196 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
5197
5198         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
5199
5200         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
5201         a net 1.0 runtime.
5202
5203         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
5204         created using the default ctor. Fixes #79152.
5205         (mono_string_builder_to_utf16): Ditto.
5206
5207 2006-09-01  Martin Baulig  <martin@ximian.com>
5208
5209         Fix handling of the generic array interfaces.
5210
5211         * class-internals.h
5212         (MonoDefaults): Removed `generic_array_class' and added
5213         `generic_ilist' class.
5214
5215         * class.c
5216         (mono_bounded_array_class_get): Add the new generic array interfaces.
5217         (setup_generic_array_ifaces): New static method; create vtable
5218         entries for each method in the generic array interfaces.
5219
5220         * metadata.c
5221         (select_container): Allow "parent-less" generic methods.
5222
5223         * marshal.c
5224         (mono_marshal_get_generic_array_helper): New public method.
5225
5226         * icall.c
5227         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
5228         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
5229         moved the interncall into System.Array.
5230
5231 2006-09-01  Raja R Harinath  <rharinath@novell.com>
5232
5233         A few more cases of avoiding work on types with ->byref set.
5234         Has the real fix for #79238
5235         * icall.c (is_generic_parameter): New helper.
5236         (ves_icall_Type_GetGenericParameterPosition): Use it.
5237         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
5238         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
5239         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5240         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
5241         reference types.
5242         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
5243         reference types.
5244         (ves_icall_Type_get_IsGenericInstance): Likewise.
5245         (ves_icall_Type_get_IsGenericType): Likewise.
5246
5247 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
5248
5249         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
5250         class if possible.
5251
5252         * mempool.h (mono_mempool_get_allocated): New helper function.
5253
5254         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
5255         change.
5256
5257         * mempool.c: Fix warnings and the calculation of stats.
5258
5259         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
5260
5261         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
5262
5263         * loader.c (mono_get_method_from_token): Update method_count stat.
5264
5265         * class-internals.h (MonoStats): Add some stats.
5266
5267 2006-08-31 Robert Jordan  <robertj@gmx.net>
5268
5269         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
5270         with managed variants.
5271         All code is contributed under the MIT/X11 license.
5272         
5273 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
5274
5275         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
5276         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
5277
5278         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
5279
5280         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
5281         with cycles in classes.
5282
5283         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
5284
5285         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
5286         missing a [MarshalAs] directive. Fixes #79203.
5287
5288         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
5289         klass->marshal_info. Fixes #79217.
5290
5291 2006-08-30  Martin Baulig  <martin@ximian.com>
5292
5293         Committing a patch from Joachim Ante <joe@otee.dk>:
5294         Add support for binary data symbol stores.
5295
5296         * debug-mono-symfile.c
5297         (mono_debug_open_mono_symbol_file): Renamed into
5298         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
5299         arguments.
5300
5301         * mono-debug.c
5302         (mono_debug_open_image): Added `raw_contents' and `size' args.
5303         (mono_debug_init_2_memory): New public function.
5304
5305 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
5306
5307         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
5308
5309 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5310
5311         * appdomain.c: implement support for ShadowCopyFiles.
5312
5313 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
5314
5315         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
5316         when value is NULL (and should remove CID #51).
5317
5318 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5319
5320         * image.c: moved 2 functions to ../utils.
5321
5322 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
5323
5324         * gc.c: cope with the target object of a GC handle being NULL
5325         (bug #78877).
5326
5327 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
5328
5329         * class.c: recursively check parent's explicit implementations
5330         of interface methods (fixes bug #79125).
5331
5332 2006-08-19  Miguel de Icaza  <miguel@novell.com>
5333
5334         * filewatcher.c: Avoid warnings when building, do not redefine
5335         constants that are defined.
5336
5337         Remove warnings.
5338
5339 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5340
5341         * image.c: don't fail when the link points to an absolute path.
5342
5343 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
5344
5345         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
5346         Fix CID #3.
5347
5348 2006-08-17  Miguel de Icaza  <miguel@novell.com>
5349
5350         * image.c (full_path): A new method used to obtain the actual path
5351         of an assembly even in the presence of symbolic links.  
5352
5353         This is necessary for the case where we are running a binary that
5354         has been GACed, but we are using the "published" path name
5355         ($prefix/mono/1.0/blah.exe) which happens to point to the real
5356         file in the GAC.
5357
5358         This was the source of the failure for the `xsp' command with the
5359         recent AppDomain changes, as far as the runtime was concerned,
5360         there were two different assemblies: $prefix/mono/1.0/blah.exe and
5361         $prefix/mono/gac/blah/version/blah.exe.
5362
5363         (do_mono_image_open): use full path
5364
5365 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5366
5367         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
5368
5369 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
5370
5371         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
5372         domain_id is supplied. Fix CID #241 and corlib's unit tests.
5373
5374 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5375
5376         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
5377         small structures. Fixes #78990.
5378
5379 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5380
5381         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
5382
5383         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
5384
5385 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5386
5387         * appdomain.c:
5388         * marshal.c: don't load all the assemblies from a domain into newly
5389         created ones. The new domains might have different rules and load
5390         assemblies from different locations. Fixes bug #76757.
5391
5392         Patch by Lluis. Conflicts resolved by Brian Crowell.
5393
5394 2006-08-16  Alp Toker  <alp@atoker.com>
5395
5396         * socket-io.c: First half of the fix for #79084.
5397         Set sa_size to the length of the content, not that of the struct.
5398         Don't add NULL suffix to the content, this should be done in
5399         managed code if needed.
5400
5401 2006-08-14  Raja R Harinath  <rharinath@novell.com>
5402
5403         Fix part of #79012
5404         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
5405         mono_metadata_parse_type returns NULL.
5406
5407 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
5408
5409         * normalization-tables.h : new file for string normalization data.
5410         * locales.c, locales.h, icall.c :
5411           added load_normalization_resource() for string normalization,
5412           and icall as well.
5413         * Makefile.am : added normalization-tables.h to the sources.
5414
5415 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
5416
5417         * marshal.c: Add more helper functions to reduce code duplication and use them
5418         everywhere.
5419
5420 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
5421
5422         * marshal.c: Fix non-x86 stdcall warnings.
5423         
5424         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
5425         them everywhere.
5426
5427 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
5428
5429         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
5430         type check on multi-dimensional arrays. Fixes #79000.
5431
5432 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
5433
5434         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
5435         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
5436         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
5437         * class-internals.h: add is_com_object to class structure.
5438         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
5439         null checks to COM object marshalling. Fix .ctor call on RCW.
5440         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
5441         
5442         All code is contributed under the MIT/X11 license.
5443
5444 2006-08-09  Dick Porter  <dick@ximian.com>
5445
5446         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
5447         racing mono_monitor_allocator_lock() somewhere, so don't delete
5448         the critical section for now.  Found by running and exiting
5449         monodevelop.
5450
5451 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
5452
5453         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
5454         (ves_icall_System_ComObject_FindInterface): Ditto.
5455         (ves_icall_System_ComObject_CacheInterface): Ditto.
5456
5457         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
5458         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
5459
5460 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5461
5462         * threadpool.c: treat pipes from process asynchronous reads as sockets
5463         when reading from them, so we get select/poll or epoll to wait for
5464         data.
5465
5466 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
5467
5468         * loader.c: Fix a typo (CID #233) in the null check.
5469
5470 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
5471
5472         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
5473         Hopefully fixes #78949.
5474         
5475         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
5476         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
5477         bytes. Fixes #78972.
5478
5479 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5480
5481         * filewatcher.c: we need to set errno here.
5482
5483 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5484
5485         * filewatcher.c: let Win32Exception get the error value.
5486
5487 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5488
5489         * filewatcher.c: translate errno into win32 errors for Win32Exception
5490         to know what happened.
5491
5492 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
5493
5494         * threadpool.c: Fix more warnings.
5495
5496         * assembly.c (search_loaded): Fix warnings.
5497
5498         * threadpool.c (mono_thread_pool_finish): Fix warnings.
5499         (mono_async_invoke): Ditto.
5500
5501 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
5502
5503         * object.c (mono_remote_class_vtable): Need to create proxy vtable
5504         entries for __ComObject type in addition to ComImport types.
5505         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
5506         about hash table.
5507         
5508         All code is contributed under the MIT/X11 license.
5509
5510 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5511
5512         * image.c: avoid tentative loading of modulerefs that contain
5513         no metadata (P/Invoke library names).
5514
5515 2006-07-28  Dick Porter  <dick@ximian.com>
5516
5517         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
5518         mono_loader_lock() somewhere, so don't delete the critical section
5519         for now.  Found by running and exiting monodevelop.
5520
5521 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5522
5523         * filewatcher.c: define the inotify syscalls when we're building on
5524         linux and have sys/syscall.h. The build system might not have support
5525         for inotify but the target system might have it.
5526
5527 2006-07-26  Miguel de Icaza  <miguel@novell.com>
5528
5529         * domain.c: Documentation updates.
5530
5531         * loader.c (mono_free_method): Do not release the method
5532         information if we are being profiled, as profilers will use this
5533         information at shut down to present some data to the user.
5534
5535         This is needed so that the profiler does not crash, as the
5536         profiler tends to keep MonoMethods around, and they might become
5537         invalid if we free these.
5538
5539         (mono_get_method_constrained): Return the original CIL stream
5540         method as well, so verification can be performed against it.
5541
5542 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5543
5544         * filewatcher.[ch]: support for inotify file system watcher.
5545         * icall.c: add new internal calls for the inotify file system watcher.
5546
5547 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5548
5549         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
5550         #78888.
5551
5552 2006-07-20  Dick Porter  <dick@ximian.com>
5553
5554         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
5555         warning.
5556
5557 2006-07-20  Dick Porter  <dick@ximian.com>
5558
5559         * threads.c (start_wrapper): Do the thread cleanup while we still
5560         hold a reference to its object.  Fixes bug 78123.
5561
5562 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
5563
5564         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
5565         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
5566           "managed-to-managed".
5567         * icall.c: Redirect string constructors that take sbyte* to
5568           ves_icall_System_String_ctor_RedirectToCreateString.
5569         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
5570           to CreateString () methods with matching signature.
5571         * reflection.c: Use original security informations for
5572           MONO_WRAPPER_MANAGED_TO_MANAGED.
5573         * security-manager.c: Use original security informations for
5574           MONO_WRAPPER_MANAGED_TO_MANAGED.
5575         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
5576           that is a placeholder and only its address should be used.
5577         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
5578           that is a placeholder and only its address should be used.
5579
5580 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
5581
5582         Begin implementing COM Interop.
5583         * appdomain.c: Increment corlib version.
5584         * class.c: Set ComImport classes' parent to __ComObject.
5585         * loader.c: Mark cominterop methods as such.
5586         * domain.c: Add __ComObject class to MonoDefaults structure.
5587         * image.c: Add 2 hashtables to the image for COM Interop related methods
5588         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
5589         using the mempool allocator
5590         
5591         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
5592         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
5593         declaration for mono_metadata_type_dup_mp.
5594         
5595         * debug-helpers.c: Added strings for two additional wrapper types
5596         * object.c: Create proxy objects for ComImport classes
5597         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
5598         and added __ComObject class to MonoDefaults structure.
5599         
5600         * object-internals.h: Finish MonoRealProxy definition, and add definition of
5601         MonoComInteropProxy and MonoComObject.
5602         
5603         * marshal.c: Added support for COM Interop
5604         (signature_cominterop): Converts managed signature to corresponding
5605         unmanaged COM signature.
5606         (cominterop_get_function_pointer): gets unmanaged function pointer via
5607         COM object vtable
5608         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
5609         (cominterop_get_method_interface): returns interface type that method is defined on
5610         (mono_mb_emit_cominterop_call): emits native call to function pointer
5611         gotten from vtable
5612         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
5613         that matches signature of unmanaged function.
5614         (cominterop_get_native_wrapper): wrapper around adjusted method call.
5615         (cominterop_get_invoke): forwards call from proxy to __ComObject
5616         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
5617         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
5618         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
5619         
5620         * marshal.h: Added Marshal icall declarations.
5621         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
5622         so we can access them in finalizer
5623         
5624 2006-07-14  Dick Porter  <dick@ximian.com>
5625
5626         * object.c (mono_type_initialization_cleanup): Fix a race
5627         condition by temporarily commenting out the critical section
5628         deletion.
5629
5630 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
5631
5632         * reflection.c (create_custom_attr): Fix some warnings.
5633         (create_custom_attr_data): Ditto.
5634         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
5635         types. Fixes #78855.
5636
5637 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
5638
5639         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
5640
5641         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
5642
5643 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
5644
5645         * reflection.c (resolve_object): Add support for DynamicMethod.
5646
5647         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
5648         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
5649
5650 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
5651
5652         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
5653         don't leak GPtrArray's pdata has we have no use (nor free) for it.
5654
5655 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
5656
5657         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
5658         Fixes #77888.
5659
5660 2006-06-30  Raja R Harinath  <rharinath@novell.com>
5661
5662         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
5663         slightly: remove a shadow local variable.
5664
5665 2006-06-29  Raja R Harinath  <rharinath@novell.com>
5666
5667         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
5668         definition that introduces the virtual function slot.
5669         Also fix Coverity #105.
5670
5671 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
5672
5673         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
5674         for dynamic assemblies. Fixes #78724.
5675
5676 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
5677
5678         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
5679         Fixes #78722.
5680
5681 2006-06-21  Martin Baulig  <martin@ximian.com>
5682
5683         * reflection.c
5684         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
5685         fixes #76484.
5686
5687 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
5688
5689         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
5690
5691 2006-06-20  Raja R Harinath  <rharinath@novell.com>
5692
5693         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
5694         nor TYPEREFs.
5695         * class.c (mono_class_create_from_typespec): Add 'context' argument.
5696         Inflate result if necessary.
5697         (mono_class_get_full): Remove old version.  Rename from
5698         'mono_class_get' and add 'context' argument.  Pass it to
5699         ..._create_from_typespec.
5700         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
5701         (mono_ldtoken): Revert change below.
5702
5703 2006-06-20  Martin Baulig  <martin@ximian.com>
5704
5705         * class.c (mono_ldtoken): Don't pass the generic context to
5706         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
5707
5708 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
5709
5710         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
5711         and later freeing it. Fixes #78638.
5712
5713 2006-06-15  Miguel de Icaza  <miguel@novell.com>
5714
5715         * icall.c (mono_class_get_throw): Revert over-zealous error
5716         throwing, the caller for mono_class_get_throw will cope with
5717         errors when classes are not properly initialized already.
5718
5719         The code still copes with loader exceptions though.
5720
5721         Fixes the regression in reftype1 and reftype3 from the CAS tests.
5722         
5723 2006-06-14  Miguel de Icaza  <miguel@novell.com>
5724
5725         Fixes the `make run1' version of RuntimeAbort (to be commited,
5726         source is in Bugzilla).
5727         
5728         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
5729         FALSE on class loading failure instead of returning true.
5730
5731         * class.c (mono_class_create_from_typedef): It is possible for
5732         mono_metadata_interfaces_from_typedef_full to fail if a class is
5733         not found, cope with this.
5734         
5735
5736 2006-06-14  Dick Porter  <dick@ximian.com>
5737
5738         * socket-io.c: 
5739         * process.c: Fix a bunch of signed/unsigned warnings from gcc
5740         4.1.1
5741
5742 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
5743
5744         * culture-info-table.h : oops, forgot to make it nsync with r61548.
5745
5746 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
5747
5748         * icall.c: Another fix for building mono in Visual Studio.
5749
5750 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
5751
5752         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
5753         
5754 2006-06-09  Martin Baulig  <martin@ximian.com>
5755
5756         * debug-mono-symfile.c: Put this back and really fix it this
5757         time. Sorry for all the trouble.
5758
5759 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
5760
5761         * icall.c (mono_class_get_throw): Fix a warning.
5762         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
5763         ReflectionTypeLoadException if needed. Fixes #78606.
5764
5765         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
5766         (mono_class_init): Ditto.
5767
5768         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
5769         ref_only exceptions.
5770         (mono_loader_clear_error): Make this work even if there is no error.
5771
5772 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
5773
5774         * object-internals.h marshal.c marshal.h icall.c: Implement method 
5775         Marshal.GetComSlotForMethodInfo using internal call.
5776
5777 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
5778
5779         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
5780         a function for signalling it.
5781
5782         * class.c (mono_class_from_typeref): Use the new kind of loader error when
5783         a referenced assembly is not found.
5784
5785         * loader.c (mono_loader_error_prepare_exception): Add support for 
5786         LOADER_ERROR_ASSEMBLY. Fix formatting.
5787
5788 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
5789
5790         * domain.c appdomain.c class-internals.h marshal.c: Add support 
5791         for VARIANT marshalling on windows and increment corlib version
5792         since Variant struct was added.
5793
5794 2006-06-03  Miguel de Icaza  <miguel@novell.com>
5795
5796         * debug-mono-symfile.c: Revert Martin's previous patch which broke
5797         stack trace line information:
5798
5799         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
5800         (Martin) when looking up B which is between A and C, return A not C.
5801
5802         Bug is #78573.
5803
5804         Thanks to Alexander Olk for tracking this down.
5805
5806 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
5807
5808         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
5809         
5810         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
5811         avoid clobbering its value.
5812         (mono_string_to_lpstr): Fix a warning on windows.
5813
5814 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
5815
5816         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
5817
5818         * reflection.c loader.c: Removed references to 'dummy' flag.
5819
5820         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
5821
5822         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
5823         it gets GC tracking.
5824
5825         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
5826         GC tracking.
5827         
5828         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
5829
5830         * marshal.c threadpool.c: Update callers of mono_async_result_new.
5831
5832         * appdomain.c: Bump corlib version.
5833
5834 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
5835
5836         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
5837         CEE_STIND_REF when working with object references.
5838
5839 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
5840
5841         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
5842         Fixes #78539.
5843
5844 2006-05-30  Miguel de Icaza  <miguel@novell.com>
5845
5846         * loader.c (method_from_memberref): Fix argument value for
5847         mono_loader_set_error_method_load (I was passing the MonoClass
5848         instead of the class name char *).
5849
5850 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
5851
5852         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
5853         CEE_STIND_REF when working with object references.
5854
5855 2006-05-30  Martin Baulig  <martin@ximian.com>
5856
5857         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
5858         mono_method_full_name() change and replace the ':' with a '.'
5859         here.
5860
5861 2006-05-30  Martin Baulig  <martin@ximian.com>
5862
5863         * debug-mono-symfile.c
5864         (mono_debug_symfile_lookup_location): Fix the algorithm:
5865         when looking up B which is between A and C, return A not C.
5866
5867 2006-05-29  Martin Baulig  <martin@ximian.com>
5868
5869         * mono-debug.h
5870         (MonoDebugMethodInfo): Make the typedef public.
5871         (MonoDebugSourceLocation): New public struct.
5872
5873         * mono-debug.c
5874         (mono_debug_source_location_from_address): Removed.
5875         (mono_debug_source_location_from_il_offset): Removed.
5876         (mono_debug_il_offset_from_address): Removed.
5877         (mono_debug_address_from_il_offset): Removed.
5878         (mono_debug_lookup_method): New public function.
5879         (mono_debug_lookup_source_location): New public function; replaces
5880         the old mono_debug_source_location_from_*() functions; see the
5881         inline documentation.
5882         (mono_debug_free_source_location): New public function.
5883         (mono_debug_print_stack_frame): New public function; see the
5884         inline documentation.
5885
5886         * debug-mono-symfile.c
5887         (mono_debug_find_source_location): Renamed into
5888         mono_debug_symfile_lookup_location(); only take a
5889         `MonoDebugMethodInfo *' and an `offset' argument; added inline
5890         documentation.
5891         (mono_debug_find_method): Renamed into
5892         mono_debug_symfile_lookup_method().
5893
5894 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
5895
5896         * assembly.c (mono_assembly_open_full): Dont overwrite the status
5897         returned by mono_image_open_full ().
5898
5899         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
5900         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
5901         #78517.
5902
5903         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
5904         #78518.
5905
5906 2006-05-27  Miguel de Icaza  <miguel@novell.com>
5907
5908         * class.c (mono_class_from_typeref): handle missing images
5909         earlier, deals with bug #78418.   Refactor code; 
5910
5911         Fix a warning introduced in my previous commit (some stale code
5912         from before I revisited my patch).
5913
5914         * class.c (mono_class_create_from_typedef): On failure, remove the
5915         class from the MonoImage->class_cache as the class is not
5916         initialized;   Fixes the leak pointed out by Paolo.
5917
5918 2006-05-25  Dick Porter  <dick@ximian.com>
5919
5920         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
5921         DeleteCriticalSections until I figure out which one may still be
5922         sometimes locked when mono_thread_cleanup is called.
5923
5924 2006-05-24  Dick Porter  <dick@ximian.com>
5925
5926         * threads.c (mono_thread_cleanup): Move the threading cleanup out
5927         of mono_thread_manage and back into its own function, so it can be
5928         called after the finalizer thread has finished.
5929
5930         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
5931
5932 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
5933
5934         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
5935         Fixes #78495.
5936
5937         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
5938         with non-blittable elements.
5939         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
5940
5941 2006-05-24  Martin Baulig  <martin@ximian.com>
5942
5943         * mono-debug-debugger.h (MonoDebuggerEvent): Added
5944         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
5945
5946         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
5947         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
5948         `mono_debugger_event_handler' to NULL.
5949
5950 2006-05-24  Martin Baulig  <martin@ximian.com>
5951
5952         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
5953
5954 2006-05-24  Martin Baulig  <martin@ximian.com>
5955
5956         * mono-debug-debugger.h
5957         (mono_debugger_create_notification_function): Added
5958         `MonoCodeManager *' argument.
5959
5960 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
5961
5962         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
5963
5964 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
5965
5966         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
5967         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
5968         implementation.
5969
5970 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
5971
5972         * icall.c: precise GC support: objects can't be stored in unmanaged
5973         memory anymore, even if they are kept alive by other references: since
5974         they can move the GC needs to be able to always find them.
5975
5976 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5977
5978         * object.c: precise GC support for static fields. Support
5979         for moving GCs: write barriers and pinned allocation for interned
5980         strings.
5981
5982 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5983
5984         * domain.c, domain-internals.h: precise GC support for the MonoDomain
5985         structure.
5986
5987 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5988
5989         * class.c, gc.c: sgen and precise GC updates.
5990
5991 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
5992
5993         * marshal.h, marshal.c: added write barrier wrapper and precise type
5994         fixes.
5995
5996 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
5997
5998         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
5999         support.
6000
6001 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
6002
6003         * reflection.c: precise and sgen GC updates.
6004
6005 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
6006
6007         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
6008
6009 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
6010
6011         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
6012
6013 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
6014
6015         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
6016         MONO_TYPE_OBJECT. Fixes #78462.
6017
6018 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
6019
6020         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
6021         and blittable types.
6022
6023 2006-05-17  Miguel de Icaza  <miguel@novell.com>
6024
6025         * class.c (mono_class_get_exception_for_failure): Implement parts
6026         of a TODO: if the loader error is set (instead of the class
6027         error), we return a Loader exception that can be properly thrown
6028         elsewhere.
6029
6030         This was exposed by some Winforms 2.0 code that I tried to run
6031         (Atsushi pointed me to it).
6032
6033 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
6034
6035         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
6036         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
6037         
6038         * marshal.c (emit_marshal_vtype): Add limited support for 
6039         UnmanagedType.LPStruct. Fixes #78427.
6040
6041         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
6042         Applied a patch from kangaroo to fix #77523.
6043
6044 2006-05-17  Martin Baulig  <martin@ximian.com>
6045
6046         * threads.c
6047         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
6048         (debugger_thread_created): Removed.
6049         (debugger_thread_exited): Removed.
6050
6051 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
6052
6053         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6054
6055         * object-internals.h (MonoReflectionResource): Sync with managed version.
6056
6057 2006-05-12  Wade Berrier <wberrier@novell.com>
6058
6059         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
6060
6061 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
6062
6063         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
6064         functions try to allocate from the image mempool.
6065
6066 2006-05-12  Dick Porter  <dick@ximian.com>
6067
6068         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
6069
6070 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
6071
6072         * object.c: The FieldGetter and FieldSetter methods require the full
6073         name of the class, not only the name. Fixes bug #78277.
6074
6075 2006-05-11  Miguel de Icaza  <miguel@novell.com>
6076
6077         * loader.c (method_from_memberref): Do not pass the NULL klass to
6078         mono_loader_set_error_() methods.  Pass the non-NULL value
6079         (class). 
6080
6081 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
6082
6083         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
6084         (mono_assembly_close): Null out assembly->image->references after freeing it.
6085
6086         * image.c (mono_image_close): Free image->references.
6087         
6088         * reflection.c (mono_image_basic_init): Fix a small memory leak.
6089
6090 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
6091
6092         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
6093         before checking if it's NULL (g_assert).
6094
6095 2006-05-10  Martin Baulig  <martin@ximian.com>
6096
6097         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
6098         I thought I already killed that two months ago, but now it somehow reappeared.
6099
6100 2006-05-10  Martin Baulig  <martin@ximian.com>
6101
6102         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
6103
6104 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
6105
6106         * reflection.c: Allocate memory for dynamically created methods in the image
6107         mempools.
6108
6109 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
6110
6111         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
6112         don't use the ad pointer before checking if it's NULL (g_assert).
6113
6114 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
6115
6116         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
6117         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
6118
6119         * marshal.c: Allocate all signatures from mempools.
6120
6121         * marshal.c: Allocate some more signatures from mempools.
6122
6123 2006-05-09  Miguel de Icaza  <miguel@novell.com>
6124
6125         * object.c (mono_load_remote_field): The code used to provide a
6126         temporary variable for returning results if the user did not
6127         provide a result pointer.  But our temporary variable was allocted
6128         on the satck.
6129
6130         Fix calling code to always pass a result area.   Coverity ID 103.
6131
6132 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
6133
6134         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
6135         value, not the old. Fixes #78312.
6136         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
6137
6138         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
6139         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
6140         per-image cache.
6141
6142         * assembly.c (mono_assembly_close): Free image->references.
6143
6144         * assembly.c (mono_assembly_names_equal): Fix a warning.
6145         (mono_assemblies_cleanup): Cleanup more global data.
6146
6147         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
6148
6149         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
6150         ptr_cache and image->modules.
6151
6152         * image.c (mono_image_init): Allocate array_cache lazily.
6153         
6154 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6155
6156         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
6157         behavior was changed recently and has bad side effects.
6158
6159 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
6160
6161         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
6162         
6163         * assembly.c (mono_assembly_close): Remove a debug printf.
6164
6165         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
6166
6167         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
6168         to also allow for temporary references between mono_image_open ()/close ().
6169
6170         * domain.c (get_runtimes_from_exe): Add a FIXME.        
6171
6172 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
6173
6174         * marshal.c: Fix support for dynamic methods.
6175
6176         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
6177
6178         * marshal.c (mono_marshal_cleanup): New cleanup function.
6179
6180         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
6181         image mempools.
6182
6183         * class.c (mono_class_init): Fix leaking class->nested_classes.
6184
6185         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
6186
6187         * image.c (mono_image_init): Initialize the new cashes.
6188
6189         * image.c (mono_image_close): Destroy the new cashes.
6190
6191         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
6192
6193         * mempool.c (mono_mempool_strdup): New helper function.
6194
6195         * class-internals.h: Add prototype for mono_loader_unlock ().
6196
6197         * domain.c (mono_jit_info_table_find): Fix a warning.
6198         (mono_debugger_check_runtime_version): Ditto.
6199
6200         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
6201         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
6202         functions to these modules.
6203
6204         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
6205         metadata modules.
6206         
6207         * marshal.c (mono_free_bstr): Fix a warning.
6208
6209         * assembly.c (mono_assembly_open_full): Fix another small leak.
6210
6211         * object.c: Fix some unload leaks in the remoting code.
6212
6213         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
6214         function.
6215
6216         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
6217
6218         * reflection.c: Fix some unload leaks in dynamic assemblies.
6219
6220 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
6221
6222         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
6223         * marshal.h: Add BSTR support on Win32
6224         * icall.c: Add BSTR icalls
6225         * metadata.h: Add BSTR enums
6226
6227 2006-04-28  Miguel de Icaza  <miguel@novell.com>
6228
6229         Work to catch the crash from #76795 and turn it into an
6230         exception.   As I stubbed out pieces of the VisualBasic support,
6231         I found a number of places where the code was failing and I added
6232         checks to those places. 
6233         
6234         * metadata.c (do_mono_metadata_parse_generic_class): Make this
6235         function return a status code.  If we fail to parse the signature
6236         from mono_metadata_parse_generic_inst, return FALSE.
6237
6238         * loader.c (mono_get_method_from_token): If we fail to load the
6239         method (mono_class_get) return NULL.   
6240
6241         * (method_from_memberref): Return NULL if we are unable to parse
6242         the method signature
6243
6244         (mono_loader_error_prepare_exception): Since we now use the
6245         loader_error flag internally to stop processing, and obtaining
6246         exceptions that might be thrown will walk this code path the
6247         proper way of going from a MonoLoaderError into a
6248         MonoException was convoluted.   This new routine encapsulates the
6249         process of turning the error into an exception and *clearing* the
6250         error afterwards.
6251         
6252 2006-04-27  Miguel de Icaza  <miguel@novell.com>
6253
6254         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
6255         with missing assemblies), and to cope with:
6256
6257                 * Missing fieldref from a non-existing assembly.
6258                 * Missing methodref from a non-existing assembly.
6259
6260         The first batch of work to address *some* of the issues from 76661.
6261         
6262         * object.c (mono_class_create_runtime_vtable): If we fail to
6263         initialize the class raise the exception here. 
6264
6265         * metadata.c (mono_class_get_overrides_full): If any methods fail
6266         to load return the failure to the caller.
6267
6268         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
6269         flagging assemblies that failed to load.   
6270
6271         Do not crash if we are unable to load the assembly.
6272
6273         (mono_assembly_close): Do nothing with REFERENCE_MISSING
6274         assemblies. 
6275
6276         * loader.c (mono_loader_set_error_type_load): Change the
6277         convention to always pass unallocated strings, so we make our own
6278         copies (I know our own code had duplicated strings before, but
6279         this keeps the normal conventions).
6280         (method_from_memberref): Call mono_loader_set_error_method_load
6281         for all possible failures of loading the class. 
6282         Remove assert, turn into a loader error.
6283
6284         (mono_loader_error_to_exception): Move this routine from mini
6285         (mini_loader_error_to_exception) there was no need to have that in
6286         mini. 
6287
6288         * class.c (mono_class_from_typeref): If we were not able to load
6289         the assembly with mono_assembly_load_reference, call the
6290         mono_loader_set_error_type_load to register the problem.
6291
6292         (mono_class_setup_fields): If we fail to load the type from
6293         mono_metadata_parse_type_full, call mono_class_set_failure and
6294         break from the loop.
6295
6296         If class->exception_type is set, we do not layout the fields as
6297         that might crash the runtime, and instead return (from breaking
6298         from the previous loop).
6299
6300         (mono_class_setup_vtable): This now returns a boolean indicating
6301         whether the table was properly setup.   The decision is driven by
6302         mono_class_get_overrides_full which might run into non-existing
6303         methods. 
6304         
6305         (mono_class_init): Returns TRUE on success or FALSE if there was a
6306         problem in loading the type (incorrect assemblies, missing
6307         assemblies, methods, etc).
6308
6309         When we call mono_class_setup_fields we also check for a potential
6310         error inside this call (either a class exception or a general
6311         loader exception).
6312
6313         (mono_class_create_from_typedef): If the parent fails to load
6314         (calling mono_class_get_full) return NULL.
6315         
6316         ** Important **
6317
6318         calls to mono_metadata_parse_type_full should be checked
6319         everywhere and set the mono_class_set_failure
6320         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
6321
6322         The current patch checks the places where my manually constructed
6323         tests show the errors are showing up, but we should do it
6324         everywhere. 
6325
6326         ** Important2 **
6327
6328         mono_class_init return values should be tested everywhere, like
6329         the previous case this is something that we should audit
6330         everywhere and not only on the cases exposed by the tests I
6331         created. 
6332
6333 2006-04-26  Miguel de Icaza  <miguel@novell.com>
6334
6335         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
6336         boolean parameter and instead pass the information on `options'
6337         parameter (FileOptions).
6338
6339         * icall.c: Register the new signature for MonoIO.Open.
6340
6341         * debug-helpers.c (dis_one): Trying to understand how coverity
6342         works.  Fix Run 5, item 78.
6343
6344 2006-04-26  Dick Porter  <dick@ximian.com>
6345
6346         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
6347         dereference.
6348
6349 2006-04-25  Martin Baulig  <martin@ximian.com>
6350
6351         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
6352
6353         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
6354         debugger_thread_created().
6355         (debugger_gc_push_all_stacks): Don't handle the main thread in any
6356         special way.
6357         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
6358         (mono_debugger_finalize_threads): New function; undo the effects
6359         of mono_debugger_init_threads().
6360         (mono_debugger_create_all_threads): Removed.
6361
6362 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
6363
6364         * image.c (mono_image_close): Tidy up trace messages.
6365
6366         * assembly.c (mono_assembly_close): Ditto.
6367
6368         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
6369         no longer references an already freed assembly. Fixes #78168.
6370
6371 2006-04-21  Dick Porter  <dick@ximian.com>
6372
6373         * threads.c (mono_thread_detach): Fix reference counting when
6374         detaching threads.
6375
6376 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
6377
6378         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
6379         #78155.
6380
6381 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
6382
6383         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
6384         (mono_type_to_stind): Ditto.
6385
6386         * marshal.c: Use the new helper functions to simplify code.
6387
6388         * image.c (mono_image_close): Add some code for help debug assembly unloading
6389         problems.
6390
6391         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
6392         image mempool.
6393
6394         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
6395         assembly was already loaded in another appdomain. Fixes #78083.
6396
6397 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
6398
6399         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
6400         referenced assemblies.
6401         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
6402
6403         * domain.c (mono_domain_free): Add a trace message.
6404
6405         * appdomain.c (add_assemblies_to_domain): Ditto.        
6406
6407         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
6408         field.  
6409
6410 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
6411
6412         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
6413
6414 2006-04-12  Martin Baulig  <martin@ximian.com>
6415
6416         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
6417         `USE_INCLUDED_LIBGC'.   
6418
6419 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
6420
6421         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
6422         the patch contains ../ and a small directory name later. Hopefully fixes
6423         #78035.
6424
6425 2006-04-10  Martin Baulig  <martin@ximian.com>
6426
6427         Clean up the debugger's thread-handling code.
6428
6429         The debugger's thread-handling code has been moved from
6430         ../mini/debug-debugger.c to threads.c.  We now iterate directly
6431         over the `threads' hash, keep track of exiting threads and also
6432         use proper locking.
6433
6434         We can now debug XSP and XSP based applications with the debugger.
6435
6436         * object-internals.h (MonoThread): Added `gpointer end_stack'.
6437
6438         * threads.h
6439         (MonoThreadCallbacks): Removed; this was only used by the debugger.
6440         (mono_install_thread_callbacks): Likewise.      
6441
6442         * threads.c (mono_thread_callbacks): Removed.
6443         (debugger_thread_created, debugger_thread_exited): New static functions.
6444         (start_wrapper): Call debugger_thread_created().
6445         (thread_cleanup): Call debugger_thread_exited().
6446         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
6447         (mono_debugger_init_threads): New public function.
6448         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
6449         iterate directly over the `threads' hash and also use proper locking.
6450
6451         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
6452
6453         * mono-debug-debugger.h
6454         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
6455
6456 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
6457
6458         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
6459         argument type=array. Fixes #78057.
6460
6461 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
6462
6463         * culture-info-table.h : regenerated. Fixed bug #69652.
6464
6465 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
6466
6467         * loader.c metadata.c: Reapply a variant r59116.
6468         
6469         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
6470
6471         * class.c (mono_class_setup_interface_offsets): New internal function.
6472
6473         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
6474         interfaces too. Fixes #77398.
6475
6476         * reflection.c (encode_cattr_value): Add support for 
6477         parameter type=object, argument type=array.
6478         (load_cattr_value): Ditto. Fixes #77916.
6479
6480         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
6481         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
6482
6483         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
6484         a byval char array and CharSet is Ansi.
6485
6486         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
6487
6488 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
6489
6490         * metadata.c: Add some locking comments.
6491         
6492         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
6493         mempool.
6494         (mono_metadata_free_method_signature): Don't free the signature itself.
6495
6496         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
6497
6498         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
6499         reference the same MonoImage.
6500         (mono_assembly_load_from_full): Add an assert.
6501
6502 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
6503
6504         * image.c (mono_image_close): Don't put the image we are about to free into the
6505         loaded_images_guid_hash.
6506
6507         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
6508         to reduce code duplication.
6509
6510         * marshal.c: Register the native functions called by this module as icalls, to
6511         somewhat centralize the creation of MonoMethodSignature's.
6512
6513         * loader.c (mono_method_signature): Add a cache for method signatures.
6514
6515         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
6516         the parameter attributes of a method.
6517         (mono_metadata_parse_method_signature_full): Refactored the computation of
6518         parameter attributes into a separate function. Also avoid one allocation in
6519         most cases.
6520
6521         * assembly.c (mono_assembly_close): Ditto.
6522
6523         * image.c (mono_image_close): Log trace messages with INFO level.
6524
6525         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
6526
6527         * image.c reflection.c: Correct reference counting of image modules.
6528         
6529         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
6530         of this function from the image mempool.
6531         
6532         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
6533         to allow more cached types to be used.
6534
6535         * mono-debug.c (mono_debug_add_method): Appled patch from
6536         David S. Miller  <davem@sunset.davemloft.net>: Access 
6537         minfo->lexical_blocks[] entry elements using read32().
6538
6539 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
6540
6541         * loader.c (mono_free_method): No longer free the method header for non-dynamic
6542         methods as it is allocated from the mempool.
6543
6544         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
6545         image mempool.
6546
6547         * metadata-internals.h: Add comments describing the reference counting scheme
6548         used for MonoImage and MonoAssembly.
6549
6550         * image.c assembly.c reflection.c: Rework reference counting of images and 
6551         assemblies so they are freed when the runtime is shut down. Free some 
6552         additional memory structures when an image is unloaded.
6553         
6554 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
6555
6556         * class.c loader.c reflection.c: Allocate more data structures in
6557         the image mempool.
6558
6559 2006-03-31  Miguel de Icaza  <miguel@novell.com>
6560
6561         * icall.c
6562         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
6563         build on pre glib 2.4 systems.
6564
6565 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
6566
6567         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
6568
6569         * icall.c: Fix some warnings.
6570
6571 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
6572
6573         * culture-info-table.h : regenerated.
6574
6575 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
6576
6577         * threads.c, object-internals.h, verify.c: changed the culture caching
6578         code to use a normal MonoArray for storage so the GC can keep track of
6579         them easily. Fixed bits of the cache logic, too and simplified the
6580         code.
6581
6582 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
6583
6584         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
6585         thread for non-Boehm GCs.
6586
6587 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
6588
6589         * domain.c, object.c, domain-internals.h: reduce the amount of memory
6590         needed to keep track of the data for static fields.
6591
6592 2006-03-29  Raja R Harinath  <rharinath@novell.com>
6593
6594         Fix #75172
6595         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
6596         for interface classes.  Use 'num_methods' instead.
6597         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
6598         before using '->vtable_size' field.
6599
6600 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
6601
6602         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
6603         doesn't contain managed pointers, so use a normal hashtable.
6604
6605 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
6606
6607         * reflection.c, class-internals.h, domain.c: fixed handling of types
6608         used as values for objects in custom attributes (bug #77915):
6609
6610 2006-03-24  Martin Baulig  <martin@ximian.com>
6611
6612         * class.c (mono_class_setup_fields): Added support for generic
6613         instances; fixes #77580.
6614
6615 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6616
6617         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
6618
6619 2006-03-24  Dick Porter  <dick@ximian.com>
6620
6621         * file-io.c (get_file_attributes): More stat macro breakage.
6622         Fixes bug 77759.
6623
6624 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
6625
6626         * profiler.c: added the file=filename option in the default profiler
6627         to output the profile data to filename.
6628
6629 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6630
6631         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
6632         bug #77877.
6633
6634 2006-03-22  Martin Baulig  <martin@ximian.com>
6635
6636         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
6637         allocated `MonoClassField *' in `fb->handle'.
6638
6639 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6640
6641         * class.c, image.c, metadata-internals.h: implemented new mechanism to
6642         allocate interface ID to save memory and allow better ID reuse on
6643         appdomain unload. setup_generic_vtable () removal from Martin.
6644
6645 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
6646
6647         * object.h, appdomain.c, domain.c, exception.c, icall.c,
6648         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
6649         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
6650         write barriers for reference stores with managed objects accessed with
6651         C structures in the runtime and in embedding programs.
6652
6653 2006-03-20  Raja R Harinath  <rharinath@novell.com>
6654
6655         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
6656         'interface_id' and 'max_interface_id' fields of MonoClasses
6657         representing open generic types.
6658
6659 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
6660
6661         * object.h, object.c, icall.c: added functions to deal with
6662         storing valuetypes that contain references in managed objects.
6663         * reflection.c, string-icalls.c, threads.c, marshal.c: small
6664         fixes and comments around uses of mono_array_addr ().
6665
6666 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
6667
6668         * object.h, icall.c, monitor.c: object.GetHashCode ()
6669         implementation that supports the moving garbage collector.
6670
6671 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
6672
6673         * icall.c, threads-types.h, threads.c: implemented finalizer for
6674         LocalDataStoreSlot.
6675
6676 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
6677
6678         * metadata.c (mono_type_size): Add a fixme.
6679         (mono_type_stack_size): Ditto.
6680
6681         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
6682         'type_forwarders' field.
6683
6684         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
6685         attribute from net 2.0.
6686
6687         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
6688         from class.c.
6689
6690         * class.c (mono_class_setup_fields): Fix a warning.
6691         
6692         * class.c (mono_class_from_name): Add support for assemblyref entries
6693         in the EXPORTEDTYPE table.
6694
6695         * reflection.c: Add support for handling type forwarders under net 2.0.
6696
6697         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
6698         
6699 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
6700
6701         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
6702         overwriting entries in ModuleBuild->types, also clean up the code
6703         a little. Fixes #77774.
6704
6705 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
6706
6707         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
6708         load friend assembly info when present.
6709
6710 2006-03-14  Raja R Harinath  <rharinath@novell.com>
6711
6712         Fix crasher on gtest-158.cs.
6713         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
6714         the return value if the MonoClass we want is yet in an
6715         inconsistent state.
6716         * class.c (mono_class_create_from_typedef): Add an comment
6717         explaining an order dependency between mono_class_setup_parent and
6718         mono_class_setup_mono_type.
6719
6720 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
6721
6722         * class.c: documentation updates and events bug fix.
6723
6724 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
6725
6726         * class.c: some cleanup, locking fixes.
6727
6728 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
6729
6730         * class.c: fix the generics code to setup nested
6731         type info to the instantiated type (bug #77770).
6732
6733 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
6734
6735         * marshal.c: fixed a few type correctness issues.
6736
6737 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
6738
6739         * loader.c: the Set/Get/Addrtess array methods should be public.
6740
6741 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
6742
6743         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
6744         
6745         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
6746         info->wrapper.
6747
6748 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
6749
6750         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
6751
6752         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
6753
6754         * mempool.c (mono_mempool_alloc): Speed this up a bit.
6755         (mono_mempool_alloc0): Ditto.
6756
6757 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6758
6759         * socket-io.c:
6760         (create_object_from_sockaddr): it was allocating 4 extra bytes
6761         for the AF_UNIX data. Fixes bug #77747.
6762
6763 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
6764
6765         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
6766
6767 2006-03-09  Dick Porter  <dick@ximian.com>
6768
6769         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
6770         Fixes bug 76966 again.
6771
6772 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
6773
6774         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
6775         names from r57532
6776         * appdomain.c: Bumped corlib version to 48 (due to r57532)
6777
6778 2006-03-07  Martin Baulig  <martin@ximian.com>
6779
6780         * object.c
6781         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
6782
6783 2006-03-07  Martin Baulig  <martin@ximian.com>
6784
6785         * class.c
6786         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
6787         regression introduced in r56970; see gtest-252.cs.
6788
6789         * loader.c (mono_get_method_constrained): Correctly handle generic
6790         methods; see gtest-253.cs.
6791
6792 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
6793
6794         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
6795
6796 2006-03-04  Martin Baulig  <martin@ximian.com>
6797
6798         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
6799         compute the parent type at runtime, just like we're already doing
6800         it for interfaces.
6801
6802         * reflection.c
6803         (mono_reflection_bind_generic_parameters): Don't compute the
6804         parent type anymore.
6805
6806         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
6807
6808 2006-03-04  Martin Baulig  <martin@ximian.com>
6809
6810         * mono-debug-debugger.h
6811         (mono_debugger_create_notification_function): Allocate memory at
6812         runtime and return a pointer to it.
6813
6814 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
6815
6816         * assembly.c: Fix windows build.
6817         
6818         * assembly.c: Fix build.
6819
6820         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
6821
6822         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
6823         
6824 2006-03-03  Dick Porter  <dick@ximian.com>
6825
6826         * process.c
6827         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
6828         Check parameters before dereferencing them.  Fixes Aaron's part of
6829         bug 77393.
6830
6831 2006-03-03  Raja R Harinath  <rharinath@novell.com>
6832
6833         Fix performance regression.
6834         * loader.c (find_method_in_class): Add 'from_class' argument.
6835         Rename 'klass' argument to 'in_class'.  The signature is compared
6836         against the method in 'in_class', and the corresponding method is
6837         returned from 'from_class'.
6838         (find_method): Walk both 'in_class' and 'from_class' in parallel.
6839         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
6840         type definition and generic instantiation in parallel.
6841         (mono_get_method_constrained): Update to changes.
6842
6843 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
6844
6845         * threads.c: make sure the domain is correct, too when doing
6846         mono_thread_attach ().
6847
6848 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
6849
6850         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
6851         windows. Fixes #77683.
6852
6853 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
6854
6855         * object.h, *: introduced specific way to set elements of an array
6856         of references to be used as write barrier. Still need to audit the
6857         uses of mono_array_addr.
6858
6859 2006-03-01  Miguel de Icaza  <miguel@novell.com>
6860
6861         * object-internals.h: New field to cache the assmebly name, patch
6862         from Tambet Ingo (tambet@ximian.com)
6863
6864 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
6865
6866         * decimal.h, class-internals.h, metadata-internals.h,
6867         file-io.h: mark a few function declarations as internal, to
6868         reduce the number of PLT entries.
6869
6870 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6871
6872         * file-io.c: fix typo in warning message.
6873
6874 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
6875
6876         * loader.c: on unix, lookup the "*A" version of a function
6877         if charset is auto as a second option before failing.
6878
6879 2006-02-28  Raja R Harinath  <rharinath@novell.com>
6880
6881         * class.h (mono_class_inflate_generic_method): Revert to two
6882         argument version.
6883         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
6884         (mono_class_inflate_generic_method_full): Add.
6885         * class.c (mono_class_inflate_generic_method_full): Rename from
6886         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
6887         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
6888         * loader.c, reflection.c: Update to changes.
6889
6890 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
6891
6892         * icall.c: const fixes and small improvements.
6893
6894 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6895
6896         * threadpool.c: for asynchronous connect(), enable the same workaround
6897         for BSD 6 as for the Mac. Fixes bug #77637.
6898
6899 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
6900
6901         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
6902         formatted classes. Fixes #77524.
6903
6904 2006-02-24  Raja R Harinath  <rharinath@novell.com>
6905
6906         * class.c (inflate_generic_type): Add a couple more
6907         micro-optimizations.
6908         (inflate_generic_context): Don't use the 'gmethod' from
6909         'inflate_with'.
6910         (mono_class_inflate_generic_method): If the method has generic
6911         parameters, but the passed-in context doesn't have a 'gmethod',
6912         create one.  Use the possibly simplified generic instantiation
6913         from the declaring class instead of the one passed in.
6914
6915 2006-02-24  Raja R Harinath  <harinath@gmail.com>
6916
6917         Make generic method signature and method header handling lazy.
6918         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
6919         (inflate_generic_header): Likewise.
6920         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
6921         parameter to avoid inflating types.
6922         (mono_get_inflated_method): Empty out.
6923         * class.h (mono_class_inflate_generic_method): Update to changes.
6924         * loader.c (mono_get_method_from_token): Don't parse signature for
6925         generic methods, nor methods of generic classes.
6926         (mono_method_signature): Rename from 'mono_method_signature'.
6927         Inflate signature on demand.
6928         (mono_method_get_header): Inflate method header on demand.
6929         * reflection.c: Update to changes.
6930
6931 2006-02-23  Raja R Harinath  <rharinath@novell.com>
6932
6933         * metadata.c (mono_metadata_inflate_generic_inst): If the
6934         instantiation is closed, don't bother expanding it in the new
6935         context.
6936         * class.c (inflate_generic_class): If the generic instantiation
6937         doesn't change after inflation, return the argument itself.
6938         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
6939         Add bounds checks.
6940         (inflate_generic_context): If neither the generic class nor the
6941         generic method instantiations change, return the original context.
6942         * reflection.c (mono_method_get_object): Do
6943         'mono_get_inflated_method' before accessing the ->klass field.
6944         (inflate_mono_method): Don't create a MonoGenericMethod unless
6945         necessary.
6946         (inflate_method): Don't pass a constructed type as the declaring
6947         type of a methodbuilder.
6948
6949 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
6950
6951         * object.c: fix memory overwrite.
6952
6953 2006-02-22  Dick Porter  <dick@ximian.com>
6954
6955         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
6956         it doesn't work any more.
6957         (mono_threads_request_thread_dump): Fix unused variable warnings.
6958
6959 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
6960
6961         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
6962         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
6963         the public header file.
6964
6965 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
6966
6967         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
6968
6969 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
6970
6971         * class-internals.h, object.c: reduce the size of MonoVTable
6972         and store the interface_offsets array at negative offsets.
6973
6974 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
6975
6976         * metadata.c: tweak table descriptors data structures to reduce
6977         size and runtime relocations.
6978
6979 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
6980
6981         * marshal.c: fix some types and opcodes to be type-safe
6982         in marshaling wrappers.
6983
6984 2006-02-21  Ankit Jain  <jankit@novell.com>
6985
6986         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
6987
6988 2006-02-21  Raja R Harinath  <rharinath@novell.com>
6989
6990         * metadata.c (get_constraints): Relax debugging checks for monodis.
6991
6992 2006-02-21  Ankit Jain  <jankit@novell.com>
6993
6994         * metadata.c (mono_metadata_load_generic_params): Move the code
6995         checking for ambiguous generic params from here to mono/dis/get.c
6996         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
6997
6998 2006-02-21  Raja R Harinath  <harinath@gmail.com>
6999
7000         Fix assertion triggered when compiling nemerle.
7001         * class.c (mono_get_shared_generic_inst): Rename from
7002         get_shared_inst and make non-static.
7003         * loader.c (mono_get_shared_generic_method): New.  Used to create
7004         the MonoGenericContext-equivalent of a MonoGenericContainer.
7005         (mono_get_method_from_token): Initialize the 'context' field of
7006         the created MonoGenericContainer.
7007         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
7008         * metadata.c (get_constraints): Add sanity check.
7009         * class-internals.h: Add new internal methods.
7010
7011         * reflection.c (verify_safe_for_managed_space): New sanity check.
7012         Currently checks that owner-less generic parameters aren't allowed
7013         in managed space.
7014         (mono_type_get_object): Use it.
7015         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
7016         that are now in mono_type_get_object.
7017         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
7018
7019 2006-02-19  Raja R Harinath  <harinath@gmail.com>
7020
7021         * metadata.c (mono_type_create_from_typespec): Rename from
7022         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
7023         argument and caching of types in the generic container.
7024         (unwrap_arrays, find_generic_param): Remove.
7025         * metadata-internals.h: Update.
7026         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
7027
7028 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
7029
7030         * class.c (mono_class_get_exception_for_failure): Fix a warning.
7031
7032         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
7033         return values. Fixes #77581.
7034
7035         * class.c (mono_fnptr_class_get): Switch name and name_space.
7036
7037         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
7038         classes and add support for [In, Out] attributes.
7039         (mono_marshal_free_asany): Ditto. Fixes #77524.
7040
7041 2006-02-18  Raja R Harinath  <harinath@gmail.com>
7042
7043         * class.c (mono_class_from_generic_parameter): Make more robust to
7044         incomplete MonoGenericContainers from monodis.
7045
7046 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7047
7048         * class-internals.h: added some more exception types.
7049         * class.c, metadata.c: added a few checks to handle missing
7050         types.
7051
7052 2006-02-17  Raja R Harinath  <rharinath@novell.com>
7053
7054         Use owner-less generic-params some more.
7055         * class.c (my_mono_class_from_generic_parameter): Remove.
7056         (mono_class_from_generic_parameter): Handle null image,
7057         param->name and param->owner.
7058         (mono_class_from_mono_type): Update.
7059         (mono_class_create_from_typespec): Remove 'container' parameter.
7060         If that parameter is non-null, the result is always inflated by
7061         'mono_class_get_full' anyway.
7062         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
7063         parameter.
7064         (mono_class_get_full): Update.
7065
7066         * class.c (inflate_generic_type) [GENERICINST]: If the generic
7067         instance is not open, don't bother inflating.
7068         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
7069         parse metadata for inflated classes.
7070         (_mono_class_get): Change GenericContext* parameter to
7071         GenericContainer*.
7072         (mono_class_create_from_typespec): Likewise.  Simplify, and
7073         implement trivially.  All the cases are handled in
7074         mono_class_from_mono_type.  Don't inflate returned class.
7075         (mono_class_get_full): Delegate GENERICINST optimization to
7076         inflate_generic_type.
7077         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
7078
7079 2006-02-16  Dick Porter  <dick@ximian.com>
7080
7081         * socket-io.c (create_object_from_sockaddr): Fix typo.
7082         (create_sockaddr_from_object): Check array lengths before
7083         potentially accessing items off the end.
7084         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
7085         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
7086         (ves_icall_System_Net_Sockets_Socket_Send_internal)
7087         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
7088         length checks to avoid wraparound overflows.
7089         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
7090         contents of the array of sockets
7091         (hostent_to_IPHostEntry2)
7092         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
7093         Check return value of inet_ntop ().
7094         (addrinfo_to_IPHostEntry): Fix typo
7095
7096 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7097
7098         Type metadata parsing doesn't use generic-instantiation information.
7099         * metadata.c (mono_metadata_parse_array_full): Change
7100         MonoGenericContext* parameter to MonoGenericContainer*.
7101         (mono_metadata_parse_type_full): Likewise.
7102         (mono_type_create_from_typespec_full): Likewise.
7103         (mono_metadata_parse_mh_full): Likewise.
7104         (mono_metadata_parse_generic_inst): Likewise.
7105         (do_mono_metadata_parse_generic_class): Likewise.
7106         (do_mono_metadata_parse_type): Likewise.
7107         * metadata-internals.h: Update to changes.
7108         * class.c (mono_class_find_enum_basetype): Likewise.
7109         (mono_class_setup_fields): Likewise.
7110         (mono_class_create_from_typespec): Likewise.
7111         * loader.c (method_from_methodspec): Likewise.
7112         (mono_get_method_from_token): Likewise.
7113         (mono_method_get_header): Likewise.
7114
7115 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7116
7117         * marshal.c: handle additional GENERICINST case (patch from
7118         Thong Nguyen <tum@veridicus.com>).
7119         Fix a few cases where LDIND_I/STIND_I was used for references.
7120
7121 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7122
7123         * reflection.c (mono_reflection_get_token): Remove unused variable.
7124
7125 2006-02-16  Martin Baulig  <martin@ximian.com>
7126
7127         * reflection.c (mono_reflection_get_token): Add support for fields
7128         in instantiated generic types.
7129
7130         * icall.c
7131         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
7132
7133 2006-02-15  Martin Baulig  <martin@ximian.com>
7134
7135         * icall.c
7136         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
7137         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
7138         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
7139         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
7140
7141 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
7142
7143         * class.c, metadata.c, metadata.h, object.c, icall.c,
7144         marshal.c: changed mono_type_get_underlying_type () to do
7145         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
7146         Fixed handling of instantiated generic valuetypes (bug #75479).
7147
7148 2006-02-15  Raja R Harinath  <rharinath@novell.com>
7149
7150         * metadata.c (mono_metadata_decode_signed_value): Simplify.
7151         Delegate to mono_metadata_decode_value, and work on the returned value.
7152
7153         * icall.c (ves_icall_MonoType_GetGenericArguments):
7154         Add consistency check here too.
7155         
7156 2006-02-15  Ankit Jain  <jankit@novell.com>
7157
7158         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
7159         char/short etc.
7160
7161 2006-02-15  Ankit Jain  <jankit@novell.com>
7162
7163         * metadata.c (mono_metadata_decode_signed_value): New function to decode
7164         signed values, used only for representing lower bounds of arrays.
7165         (mono_metadata_parse_array_full): Use new
7166         mono_metadata_decode_signed_value to decode lower bounds.
7167
7168 2006-02-14  Martin Baulig  <martin@ximian.com>
7169
7170         * reflection.c
7171         (mono_reflection_get_token): Support "MonoGenericMethod" and
7172         "MonoGenericCMethod" and allow generic instances / methods.
7173
7174 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
7175
7176         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
7177         to obtain the terminal size using an ioctl.
7178
7179         * object.c (mono_nullable_init): Revert this as nullable reference
7180         types are not valid.
7181         (mono_nullable_box): Ditto.
7182
7183 2006-02-09  Dick Porter  <dick@ximian.com>
7184
7185         * threads.c (mono_thread_detach): Drop a reference to the thread
7186         we're detaching.
7187
7188 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
7189
7190         * object.c (mono_nullable_init): Handle nullable reference types.
7191         (mono_nullable_box): Ditto. Fixes #77446.
7192
7193 2006-02-07  Martin Baulig  <martin@ximian.com>
7194
7195         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
7196
7197 2006-02-07  Ankit Jain  <jankit@novell.com>
7198
7199         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
7200         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
7201         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
7202         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
7203         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
7204         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
7205
7206 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
7207
7208         * class.c (mono_class_create_generic): Set type_token as well.
7209
7210         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
7211         compatible with MS.
7212
7213 2006-02-02  Martin Baulig  <martin@ximian.com>
7214
7215         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
7216         has never been used so far.
7217
7218 2006-02-02  Martin Baulig  <martin@ximian.com>
7219
7220         * mono-debug-debugger.h: Changed comment at the top of this file;
7221         the header is not installed, but it's safe to #include it from
7222         within the JIT.
7223
7224         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
7225         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
7226
7227 2006-02-02  Martin Baulig  <martin@ximian.com>
7228
7229         * mono-debug.h
7230         (MonoSymbolTable): Removed the `metadata_info' field.
7231
7232         * mono-debug.c
7233         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
7234
7235         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7236         (mono_debugger_add_builtin_types): Removed.
7237         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
7238         (mono_debugger_create_notification_function): We now operate on a
7239         pre-allocated area; take a `gpointer' and return `void'.
7240
7241         * mono-debug-debugger.c
7242         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
7243         (mono_debugger_add_builtin_types): Removed.
7244
7245 2006-02-02  Martin Baulig  <martin@ximian.com>
7246
7247         * threads.c (mono_debugger_create_all_threads): New public method.
7248
7249 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7250
7251         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
7252         breaks on several platforms.
7253
7254 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
7255
7256         * assembly.c: the VS.NET build doesn't supply default values for
7257         MONO_ASSEMBLIES and MONO_CFG_DIR.
7258
7259 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
7260
7261         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
7262         helper function.
7263
7264         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
7265
7266         * loader.c (method_from_memberref): Fix a warning.
7267
7268         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
7269
7270         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
7271         with explicit layout. Fixes #77433.
7272
7273 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
7274
7275         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
7276         max_interface_id is initialized before using it. Fixes #77398.
7277         (ves_icall_Type_GetInterfaces): Ditto.
7278
7279 2006-01-30  Raja R Harinath  <rharinath@novell.com>
7280
7281         * metadata.c (mono_metadata_parse_method_signature_full): Don't
7282         allocate memory for parameter attributes when parsing memberref
7283         signatures.
7284         * loader.c (mono_loader_set_error_method_load): Don't warn.
7285         (method_from_memberref): Ensure MissingMethodException gets thrown
7286         if method is not found.  Make warning more informative.
7287
7288 2006-01-29  Raja R Harinath  <harinath@gmail.com>
7289
7290         Fix #77397
7291         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
7292         return true if is byref.
7293         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
7294         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
7295         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
7296
7297 2006-01-27  Raja R Harinath  <rharinath@novell.com>
7298
7299         Fix tests/find-method.2.il
7300         * loader.c (find_method, find_method_in_class): Remove is_inflated
7301         argument.  Revert 2006-01-18 change.
7302         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
7303         is generic, search for method in its generic definition.
7304         * class.c (mono_class_setup_vtable_general): Print generic
7305         arguments of generic types in debugging printf.
7306
7307 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
7308
7309         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
7310
7311         * threads.c (mono_threads_request_thread_dump): New helper function.
7312
7313 2006-01-25  Raja R Harinath  <rharinath@novell.com>
7314
7315         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
7316
7317 2006-01-25  Ankit Jain  <jankit@novell.com>
7318
7319         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
7320         move definition to ..
7321         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
7322         
7323 2006-01-25  Ankit Jain  <jankit@novell.com>
7324             Raja R Harinath  <rharinath@novell.com>
7325
7326         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
7327         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
7328         as necessary.
7329
7330 2006-01-25  Martin Baulig  <martin@ximian.com>
7331
7332         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
7333         `MonoDebuggerThread' into debug-debugger.c.
7334
7335 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
7336
7337         * profiler.c: fix printing of data.
7338
7339 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
7340
7341         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
7342           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
7343
7344 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
7345
7346         * object.c: fix deadlock related to string interning.
7347
7348 2006-01-23  Martin Baulig  <martin@ximian.com>
7349
7350         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7351
7352         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
7353
7354 2006-01-23  Martin Baulig  <martin@ximian.com>
7355
7356         * mono-debug.h: Moved the prototypes of some functions which are
7357         used by the JIT here from mono-debug-debugger.h.
7358
7359 2006-01-21  Martin Baulig  <martin@ximian.com>
7360
7361         * Makefile.am: Don't install mono-debug-debugger.h.
7362
7363 2006-01-21  Martin Baulig  <martin@ximian.com>
7364
7365         * mono-debug-debugger.h: Enforce the private status of this header
7366         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
7367         Moved some stuff from mono-debugger-jit-wrapper.h here.
7368
7369 2006-01-20  Raja R Harinath  <rharinath@novell.com>
7370
7371         * class.c (mono_class_from_typeref): Add a sanity test to help
7372         catch lack of assembly load/search hooks.
7373
7374 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
7375
7376         * marshal.c (emit_struct_conv): Relax the fields with same offset
7377         check even more. Fixes #77230.
7378
7379 2006-01-18  Martin Baulig  <martin@ximian.com>
7380
7381         * loader.c (find_method_in_class): Added `gboolean is_inflated'
7382         argument; if false, we compare the uninstantiated signatures.
7383         (method_from_memberref): Compare the uninstantiated signatures;
7384         fixes #76417.
7385
7386 2006-01-18  Robert Jordan  <robertj@gmx.net>
7387
7388         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
7389         Clear the weak link. Fixes bug #77170.
7390
7391         * gc.c (mono_gchandle_free):
7392         Reflect *-gc.c changes (tiny optimization).
7393
7394 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
7395
7396         * metadata.c (mono_metadata_signature_dup): Applied patch from
7397         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
7398         Fixes #77288.
7399
7400 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
7401
7402         * marshal.c (emit_struct_conv): Allow fields with the same offset when
7403         marshalling from native to managed code. Fixes #77230.
7404
7405 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7406
7407         * threadpool.c: fix problem (Mac only) when more than one asynchronous
7408         connect. Fixes bug #77020.
7409
7410 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
7411
7412         * class.c: fixed id assignement for nested interfaces (bug #77275).
7413         Added also better info for --print-vtable debugging.
7414
7415 2006-01-12  Martin Baulig  <martin@ximian.com>
7416
7417         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
7418         interfaces on-the-fly; fixes #76625.
7419
7420         * class-internals.h
7421         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
7422         don't need that anymore.
7423
7424 2006-01-12  Miguel de Icaza  <miguel@novell.com>
7425
7426         * socket-io.c
7427         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
7428         To avoid initing the nested_classes when not needed I turned the
7429         PeerCredData as a toplevel internal class, as it has to be shared
7430         anyways. 
7431
7432         Fixes the CASA issue.
7433
7434 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
7435
7436         * domain.c: Accessors for MonoJitInfo
7437
7438         * profiler-private.h: Add jitinfo to the end jit hook
7439
7440         * profiler.[ch]: Define new hooks, called after jitting which give
7441         the MonoJitInfo that was compiled
7442
7443 2006-01-10  Martin Baulig  <martin@ximian.com>
7444
7445         * class.c (mono_class_setup_events): Add support for generic
7446         classes; fixes #76440.
7447
7448 2006-01-06  Raja R Harinath  <rharinath@novell.com>
7449
7450         Fix #77160.
7451         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
7452         on passed-in method.
7453
7454 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
7455
7456         * object.c (mono_runtime_invoke_array): Add Nullable support.
7457
7458         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
7459
7460 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
7461
7462         * file-io.c: Don't consider sockets as directory and avoid an endless
7463         loop. Fix bug #76966.
7464
7465 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
7466
7467         * object.c (mono_nullable_init): New helper function.
7468         (mono_nullable_box): Ditto.
7469
7470         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
7471
7472         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
7473
7474         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
7475         
7476 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
7477
7478         * class.c (mono_class_is_assignable_from): Make T assignable to 
7479         Nullable<T>.
7480
7481 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
7482
7483         * appdomain.c: Bump corlib version to 46.
7484         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
7485         serialization purpose) and changed ves_icall_System_Reflection_
7486         Assembly_get_code_base signature to accept a boolean (to escape, or 
7487         not, the assembly code base).
7488
7489 2005-12-23  Dick Porter  <dick@ximian.com>
7490
7491         * icall.c: 
7492         * threads-types.h: 
7493         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
7494         CreateEvent icall now returns "created" boolean parameter.
7495
7496 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
7497
7498         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
7499         #76967.
7500
7501         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
7502         when attr_klass is an interface. Fixes #77045.
7503
7504 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
7505
7506         * marshal.c (emit_struct_conv): Fix previous patch.
7507         
7508         * marshal.c (emit_struct_conv): Add a check for fields with the same
7509         offset.
7510
7511 2005-12-20  Raja R Harinath  <rharinath@novell.com>
7512
7513         Fix regression in Mono.C5.
7514         * class.c (mono_class_create_generic): If 'klass' is an interface
7515         set up the interface offsets.
7516         (mono_class_is_assignable_from): Don't throw away generic arguments.
7517
7518 2005-12-19  Raja R Harinath  <rharinath@novell.com>
7519
7520         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
7521         type parameters.
7522
7523 2005-12-15  Raja R Harinath  <rharinath@novell.com>
7524
7525         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
7526         dead store.
7527         (do_mono_metadata_parse_generic_class): Don't pass the current
7528         generic context when parsing the type being instantiated: it
7529         cannot use it, anyway.
7530
7531         * loader.c (method_from_memberref): Don't inflate a signature if
7532         it doesn't contain any type parameters.
7533
7534 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
7535
7536         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
7537
7538 2005-12-14  Martin Baulig  <martin@ximian.com>
7539
7540         * class.c
7541         (mono_type_get_name_recurse): Don't return null for type
7542         parameters and open generic classes.
7543         (mono_class_setup_methods): Don't exclude generic instances.
7544         (mono_get_unique_iid): Use different IDs for different
7545         instantiations of the same generic type.
7546         (mono_class_setup_vtable): Only use setup_generic_vtable() for
7547         open generic instances; create a normal vtable for closed generic
7548         instances.
7549         (mono_class_setup_vtable_general): We're now also called for
7550         closed generic instances.
7551
7552         * reflection.c
7553         (mono_reflection_bind_generic_parameters): Correctly use
7554         mono_metadata_lookup_generic_inst() everywhere.
7555
7556 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
7557
7558         * object.c (mono_class_create_runtime_vtable): Call 
7559         mono_class_setup_vtable ().
7560
7561         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
7562         function.
7563         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
7564         #76959.
7565
7566         * loader.c (mono_loader_set_error_type_load): Print the type load
7567         warnings to the console so they are more visible to the user.
7568         (mono_loader_set_error_method_load): Ditto.
7569
7570         * reflection.c (ensure_runtime_vtable): Revert the last change as it
7571         is still broken.
7572         
7573         * reflection.c (ensure_runtime_vtable): Fix build.
7574
7575         * reflection.c (ensure_runtime_vtable): Disable an optimization which
7576         doesn't work in all cases.
7577
7578 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
7579
7580         * object.c (mono_array_new_full): Treat a single dimensional array
7581         with 0 lower bounds as an szarray. Fixes #76973.
7582
7583         * reflection.c (custom_attr_visible): Really fix this.
7584
7585 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
7586
7587         * reflection.c (custom_attr_visible): Allow nested public attributes
7588         as well.
7589
7590         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
7591         interface check.
7592
7593 2005-12-12  Raja R Harinath  <harinath@gmail.com>
7594
7595         * class.c (set_generic_param_owner): Delete.
7596         (mono_class_create_from_typedef): Don't set ->owner field of
7597         generic parameters to "param containers" of enclosing classes.
7598         * reflection.c (mono_reflection_initialize_generic_parameter):
7599         Likewise.
7600
7601 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
7602
7603         * reflection.c (custom_attr_visible): Fix build.
7604
7605 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
7606
7607         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
7608         private attributes.
7609         
7610         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
7611         handling of null parameter defaults.
7612
7613 2005-12-09  Raja R Harinath  <rharinath@novell.com>
7614
7615         * class.c (mono_class_from_generic_parameter): Don't set
7616         klass->generic_container.
7617         (my_mono_class_from_generic_parameter): Likewise.
7618
7619 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
7620
7621         * reflection.c (load_public_key): Fix a warning.
7622         (method_encode_code): Fix unaligned accesses.
7623
7624 2005-12-07  Martin Baulig  <martin@ximian.com>
7625
7626         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
7627
7628         * reflection.c
7629         (write_generic_param_entry): Encode our custom attrs.
7630
7631         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
7632
7633 2005-12-07  Martin Baulig  <martin@ximian.com>
7634
7635         * reflection.c (encode_new_constraint): Removed; we don't use the
7636         `NewConstraintAttribute' anymore.
7637
7638 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
7639
7640         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
7641         not fire a TypeResolve event when Assembly.GetType () is called.
7642
7643 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
7644
7645         Beginning of support for nullable types in the runtime. Parts of
7646         this patch are from Martin.
7647
7648         * appdomain.c (MONO_CORLIB_VERSION): Bump
7649
7650         * domain.c (mono_init_internal): get the nullable type
7651
7652         * class.c (mono_class_is_nullable): New method
7653         (mono_class_get_nullable_param): New mehod
7654         (mono_class_create_generic): In types T? set cast_class to T
7655
7656         * class-internals.h (MonoDefaults): new nullable default class
7657         (mono_class_get_nullable_param, mono_class_get_nullable_param):
7658         new methods.
7659
7660 2005-12-05  Raja R Harinath  <rharinath@novell.com>
7661
7662         * metadata.c (select_container): New.  Refactor code to select the
7663         appropriate GenericContainer given the type of generic parameter
7664         we are looking for.
7665         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
7666         not a MonoGenericContext.  Use select_container.  Update parameters.
7667         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
7668         and MONO_TYPE_MVAR.
7669         (unwrap_arrays): Remove duplicate tests.
7670         (find_generic_param): Rename from 'has_same_context'.  Now walks a
7671         generic instantiated class to find any arguments that are generic
7672         parameters.
7673         (mono_type_create_from_typespec_full): Use find_generic_param to
7674         avoid evicting some generic instantiations from the typespec
7675         cache.
7676
7677 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
7678
7679         * reflection.c: fixed writing of doubles on ARM FPA.
7680
7681 2005-12-02  Robert Jordan  <robertj@gmx.net>
7682
7683         * icall.c: Fixed EventInfo.ReflectedType (#76829).
7684
7685 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7686
7687         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
7688         least on SUSE 10 they are not the same (on debian, they are just the
7689         same thing).
7690
7691 2005-12-01  Raja R Harinath  <rharinath@novell.com>
7692
7693         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
7694         DeclaringType for VARs and MVARs.
7695         * class.c (set_generic_param_owner): Fix initialization of owner
7696         fields.
7697
7698 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7699
7700         * icall.c: fixed Enum.ToObject() to correctly convert the values.
7701
7702 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7703
7704         * threadpool.c: workaround for a bug that shows up on the Mac:
7705         select()+connect() on a blocking socket is not like it should
7706         be, so we proceed to connect() in that case, wasting the I/O
7707         threadpool thread until connect succeedes. Fixes bug #75436.
7708
7709 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7710
7711         * threadpool.c: fix typo when setting file descriptor states.
7712
7713 2005-11-28  Raja R Harinath  <rharinath@novell.com>
7714
7715         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
7716         * metadata.c (mono_metadata_parse_method_signature_full): Don't
7717         create a temporary signature container.
7718         (mono_metadata_parse_generic_param): Update to changes.
7719         (mono_type_create_from_typespec_full): Update to changes.
7720         * loader.c (method_from_memberref): Don't use a
7721         MonoGenericContainer while parsing a memberref signature.
7722         (method_from_methodspec): Remove dead-store of the 'container'
7723         variable.  It's overwritten before use.
7724
7725         * metadata.c (mono_type_create_from_typespec_full): Make debugging
7726         checks tighter.
7727         (mono_metadata_parse_generic_param): Likewise.
7728         * loader.c (find_method_in_class): Does not need a
7729         MonoGenericContainer.  Use 'mono_method_signature' rather than
7730         'mono_method_signature_full'.
7731         (find_method, mono_get_method_constrained, method_from_memberref):
7732         Update to changes.
7733
7734         * metadata.c (mono_type_create_from_typespec_full): Ensure that
7735         owner-less generic-parameters are never evicted from the typespec
7736         cache.
7737
7738         * loader.c (method_from_memberref): Don't use the current context
7739         when parsing signatures.
7740         (method_from_methodspec, mono_get_method_from_token): Update to changes.
7741
7742         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
7743         side-effects in g_assert.
7744         * loader.c (mono_get_method_from_token): Resolve klass earlier so
7745         that we don't potentially lose information.
7746
7747 2005-11-26  Dick Porter  <dick@ximian.com>
7748
7749         * icall.c:
7750         * threads.c: icalls to implement basic (ie, not named)
7751         System.Threading.Semaphore.
7752
7753 2005-11-24  Dick Porter  <dick@ximian.com>
7754
7755         * process.c
7756         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7757         Use GetProcessId() if it's available.
7758
7759 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
7760
7761         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
7762
7763 2005-11-23  Raja R Harinath  <rharinath@novell.com>
7764             Ankit Jain  <jankit@novell.com>
7765
7766         * loader.c (mono_get_method_from_token): Initialize 'method' field
7767         of all generic parameters before parsing the signature.  Remove
7768         code that "fixed"-up MVAR references.
7769
7770 2005-11-23  Ankit Jain  <jankit@novell.com>
7771
7772         * metadata.c (mono_metadata_has_generic_params):
7773         (mono_metadata_load_generic_param_constraints):
7774         (mono_metadata_load_generic_params): Move duplicate code ...
7775         (mono_metadata_get_generic_param_row): ... here. Returns the
7776         first row-id in GenericParam table for a given owner (token).
7777         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
7778         prototype.
7779
7780 2005-11-23  Raja R Harinath  <rharinath@novell.com>
7781             Ankit Jain  <jankit@novell.com>
7782
7783         * metadata.c (mono_metadata_class_equal): Pass signature_only when
7784         comparing VARs too.
7785         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
7786         type->data.generic_param only if the type is an MVAR.
7787         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
7788         leak owner-less VARs and MVARs into managed space.
7789
7790 2005-11-21  Martin Baulig  <martin@ximian.com>
7791
7792         * class-internals.h
7793         (MonoMethod): Moved the `generic_container' here from
7794         `MonoMethodNormal' since we now also need it for
7795         `MonoMethodPInvoke';
7796         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
7797         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
7798         an union containing both `MonoMethodNormal' and
7799         `MonoMethodPInvoke'.
7800
7801         * loader.c
7802         (mono_get_method_from_token): Allow implementing generic methods
7803         as interncalls.
7804
7805         * threads.c
7806         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
7807         icall.
7808
7809 2005-11-17  Dick Porter  <dick@ximian.com>
7810
7811         * icall.c: 
7812         * process.h: 
7813         * process.c: Split the Process Start_internal icall into
7814         ShellExecuteEx_internal and CreateProcess_internal, which are
7815         called depending on whether UseShellExecute is true.  Fixes bug
7816         76670.
7817
7818         * appdomain.c (MONO_CORLIB_VERSION): Incremented
7819
7820 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
7821
7822         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
7823         'msize' parameters, use the information in 'mspec' instead.
7824         (emit_object_to_ptr_conv): Ditto.
7825
7826         * marshal.c (emit_struct_conv): Handle explicit layout structs with
7827         fields out of order. Fixes #76733.
7828
7829 2005-11-17  Ankit Jain  <jankit@novell.com>
7830
7831         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
7832
7833 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
7834
7835         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
7836           bug #76575.
7837
7838 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
7839
7840         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
7841         for types with non-auto layout. Fixes #76717.
7842
7843 2005-11-16  Ankit Jain  <jankit@novell.com>
7844
7845         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
7846         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
7847         if generic_context is null.
7848           (mono_metadata_generic_param_equal): param->owner can be null.
7849           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
7850         null.
7851
7852 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
7853
7854         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
7855         the correct value.
7856
7857 2005-11-15  Martin Baulig  <martin@ximian.com>
7858
7859         * object.c (set_value): Use mono_class_from_mono_type() instead of
7860         the hack for generic instances; fixes #76136.
7861
7862 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
7863
7864         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
7865         fields.
7866
7867         * image.c (load_metadata_ptrs): Initialize the new fields.
7868
7869         * reflection.c (create_dynamic_mono_image): Ditto.
7870
7871         * reflection.c (build_compressed_metadata): Use the new fields.
7872
7873         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
7874         icall.
7875
7876         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
7877         icall.
7878         
7879 2005-11-15  Ankit Jain  <jankit@novell.com>
7880             Raja R Harinath  <harinath@gmail.com>
7881
7882         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
7883         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
7884         new per-generic_container cache if the cached MonoType's context matches
7885         the current context.
7886           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
7887         to the expected context.
7888           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
7889
7890 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7891
7892         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
7893         we changed the signature of an icall.
7894         * icall.c: Modify to mono_double_ParseImpl return true/false 
7895         depending on the success, instead of throwing the exception. This will
7896         help us in Double.TryParse methods.
7897         
7898 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
7899
7900         * marshal.c (emit_marshal_object): Throw an exception when
7901         marshalling 'object' instead of crashing. Fixes #76696.
7902
7903 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
7904
7905         * class-internals.h: Add prototype for mono_type_get_full_name ().
7906
7907 2005-11-11  Dick Porter  <dick@ximian.com>
7908
7909         * threads.c (mono_thread_manage): Make sure the main thread has
7910         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
7911
7912 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
7913
7914         * loader.c (mono_loader_set_error_type_load): Log a warning to the
7915         console about the missing type.
7916         (mono_loader_set_error_method_load): Ditto.
7917
7918 2005-11-09  Miguel de Icaza  <miguel@novell.com>
7919
7920         * mono-config.c (mono_get_config_dir): Set the system defaults if
7921         none is specified.
7922
7923         * assembly.c (mono_set_dirs): New API entry point to set the
7924         assembly and the config directory in one call
7925
7926 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
7927
7928         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
7929         the ftnptr was created from a delegate in a domain other than the
7930         current domain. Fixes #75377.
7931
7932         * exception.h exception.c: Add mono_get_exception_not_supported ().
7933
7934 2005-11-08  Martin Baulig  <martin@ximian.com>
7935
7936         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
7937
7938 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
7939
7940         * security-manager.h: Added definitions to deal with strongname key 
7941         pairs bigger (and smaller) than 1024 bits.
7942         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
7943         adjust wrt the public key length being used.
7944
7945 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
7946
7947         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
7948           Windows build (r51396-51397).
7949
7950 2005-11-03  Martin Baulig  <martin@ximian.com>
7951
7952         * class.c (mono_class_setup_vtable_general): Also add generic
7953         methods to the vtable; fixes #76581.
7954
7955 2005-11-01  Miguel de Icaza  <miguel@novell.com>
7956
7957         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
7958         sure that we lookup GetString method from the System.Text.Encoding
7959         class, not the derived class or we get an empty method.
7960
7961         Fixed class #76612.
7962
7963 2005-10-25  Miguel de Icaza  <miguel@novell.com>
7964
7965         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
7966         if it has been previously set (embedders). 
7967
7968         Make mono_set_rootdir available also on Unix.
7969
7970 005-10-24  Robert Jordan  <robertj@gmx.net>
7971
7972         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
7973
7974 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
7975
7976         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
7977         only calls which are made to native code use this flag.
7978
7979         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
7980
7981 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
7982
7983         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
7984         Add support for FieldBuilders.
7985
7986 2005-10-29  Martin Baulig  <martin@ximian.com>
7987
7988         * mono-debug.c
7989         (mono_debug_using_mono_debugger): New public method; returns
7990         whether we're running inside the debugger.
7991
7992 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
7993
7994         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
7995         for Method/Constructor/FieldBuilders.
7996
7997 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
7998
7999         * reflection.c (module_add_cattrs): Save custom attributes for global methods
8000         and fields as well.
8001
8002 2005-10-26  Martin Baulig  <martin@ximian.com>
8003
8004         * mono-debug-debugger.c
8005         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
8006
8007 2005-10-24  Raja R Harinath  <harinath@gmail.com>
8008
8009         * icall.c (base64_to_byte_array): Don't pass an out-of-range
8010         integer to isspace.
8011
8012 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
8013
8014         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
8015         when passing valuetypes byref. Fixes #76502.
8016
8017 2005-10-19  Jackson Harper  <jackson@ximian.com>
8018
8019         * profiler.c: Don't put a . in front of types that are not in a
8020         namespace.
8021
8022 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
8023
8024         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
8025
8026 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
8027
8028         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
8029         #76436.
8030         (mono_marshal_get_ldflda_wrapper): Fix a warning.
8031
8032 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8033
8034         * assembly.c metadata-internals.h icall.c: Define an additional
8035         parameter for mono_assembly_name_parse_full, so we can avoid creating
8036         S.R.AssemblyName.Version when no version info wasn't passed.
8037         
8038 2005-10-09  Miguel de Icaza  <miguel@novell.com>
8039
8040         * class.c (mono_type_get_full_name): Reimplement method that was
8041         removed. 
8042
8043         * image.c: Some docs
8044
8045 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
8046
8047         * profiler.c (output_newobj_profile): Fix printing of Total memory
8048         on x86.
8049
8050 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
8051
8052         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
8053
8054 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
8055
8056         * threads.c: remove debug output.
8057
8058 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
8059
8060         * threads.c (mono_thread_manage): Fix crashes if more than 64
8061         threads need to be aborted. Hopefully fixes #75899.
8062
8063         * assembly.c (mono_stringify_assembly_name): New helper function.
8064
8065         * class.c: Use mono_stringify_assembly_name instead of the similar
8066         static function.
8067
8068         * assembly.h assembly.c: Add support for calling a postload search 
8069         hook if an assembly cannot be loaded.
8070
8071         * appdomain.c: Register new search hooks which call the AssemblyResolve
8072         events in AppDomain. Fixes #75231
8073
8074 2005-10-07  Martin Baulig  <martin@ximian.com>
8075
8076         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
8077         methods without debug info.
8078
8079 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
8080
8081         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
8082         wrappers.
8083
8084 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8085
8086         * file-io.c: now that we return symlinks, use lstat and, when the file
8087         is a symbolic link, stat, to get the file attributes. Also avoid the
8088         conversion to/from utf16/external.
8089
8090 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
8091
8092         * class.c (mono_class_layout_fields): Compute klass->has_references
8093         correctly if an embedded valuetype is not yet initialized. Fixes
8094         #76331.
8095
8096 2005-10-04  Martin Baulig  <martin@ximian.com>
8097
8098         * metadata.c
8099         (mono_metadata_load_generic_param_constraints): New public
8100         function; splitted the constraints loading out from
8101         mono_metadata_load_generic_params().
8102
8103         * class.c (mono_class_create_from_typedef): Call
8104         mono_metadata_load_generic_param_constraints() after setting up
8105         the type and creating our parent; fixes #75329.
8106
8107 2005-10-04  Martin Baulig  <martin@ximian.com>
8108
8109         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
8110         non-dynamic parent classes.
8111
8112 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
8113
8114         * file-io.c : win32 build fix (ETXTBSY seems not found).
8115
8116 2005-10-04  Martin Baulig  <martin@ximian.com>
8117
8118         * reflection.c
8119         (mono_image_get_methodspec_token): Make the cache actually work;
8120         fixes #75974.
8121
8122 2005-10-04  Martin Baulig  <martin@ximian.com>
8123
8124         * class.c (mono_class_name_from_token): Removed the unneccessary
8125         `MonoGenericContext *' argument.
8126
8127 2005-10-04  Martin Baulig  <martin@ximian.com>
8128
8129         * loader.c
8130         (method_from_methodspec): Make the caching work again; fixes the
8131         performance regression from #76262.
8132
8133 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8134
8135         * file-io.c:
8136         * file-io.h:
8137         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
8138         GetFileSystemEntries that performs the same work but without going
8139         into io-layer, locking, etc.
8140
8141 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
8142
8143         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
8144         ThreadState_Stopped as well. Fixes #76047.
8145
8146 2005-09-29  Martin Baulig  <martin@ximian.com>
8147
8148         * class.c
8149         (inflate_generic_context): If the new context has a `gmethod', set
8150         its `container' that that gmethod's `container'.
8151
8152         * metadata.c
8153         (mono_metadata_parse_generic_param): Simplify things;
8154         `generic_container = generic_context->container;' is just fine.
8155
8156         * loader.c (method_from_methodspec): Code cleanups.
8157
8158 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
8159
8160         * decimal.c: fix warning (and let gcc generate correct
8161         code on ARM with optimizations).
8162
8163 2005-09-28  Martin Baulig  <martin@ximian.com>
8164
8165         * loader.c
8166         (method_from_memberref): Added `MonoGenericContext *class_context'
8167         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
8168         (method_from_methodspec): If we're a memberref, use the enclosing
8169         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
8170
8171 2005-09-28  Martin Baulig  <martin@ximian.com>
8172
8173         * object.c (mono_runtime_invoke_array): Added support for
8174         MONO_TYPE_GENERICINST; fixes #75917.
8175
8176 2005-09-27  Martin Baulig  <martin@ximian.com>
8177
8178         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
8179         `k->byval_arg.type' to determine the actual type.
8180
8181         * loader.c (method_from_methodspec): Removed some hacks.
8182
8183 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
8184
8185         * class-internals.h (mono_field_is_deleted): Do the test for
8186         rtspecialname before we check the actual name of the field. This
8187         prevents us from dereferencing a pointer into the string table,
8188         saving us from accessing a few pages
8189
8190         * *.c: Replace the use of {Enter,Leave}CriticalSection with
8191         macros. This will allow a deadlock debugger to easily be plugged
8192         in.
8193
8194 2005-09-27  Martin Baulig  <martin@ximian.com>
8195
8196         * loader.c (method_from_methodspec): Create a "signature"
8197         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
8198
8199 2005-09-27  Martin Baulig  <martin@ximian.com>
8200
8201         * class.c
8202         (inflate_generic_class): Correctly set the new context's
8203         container.
8204
8205         * loader.c
8206         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
8207         instead of a `MonoGenericContext *'.
8208         (mono_method_signature_full): Take a `MonoGenericContainer *'
8209         instead of a `MonoGenericContext *'.
8210
8211         * metadata.c
8212         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
8213         instead of a `MonoGenericContext *'.
8214         (mono_metadata_parse_method_signature_full): Likewise.
8215
8216 2005-09-26  Martin Baulig  <martin@ximian.com>
8217
8218         * class.c
8219         (mono_class_from_generic_parameter): Set `klass->generic_container'
8220         (mono_class_from_generic_parameter): Likewise.
8221         (mono_bounded_array_class_get): We inherit the generic container
8222         from the element class.
8223
8224         * loader.c
8225         (find_method, find_method_in_class): Take a `MonoGenericContext *'
8226         argument rather than computing it here.
8227         (method_from_memberref): Correctly set the generic context before
8228         parsing the signature.  Fixes #75681.
8229
8230 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
8231
8232         * object.c (mono_class_has_special_static_fields): Fix warnings.
8233
8234 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8235
8236         * assembly.c: Add parse_public_key function, to
8237         par the public keys. Also added mono_assembly_name_parse_full,
8238         to define it the parsed key should be freed or not.
8239         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
8240         to parse a long format assembly name.
8241         * metadata-internals.h: Keep mono_assembly_name_parse_full as
8242         private, since calling it to preserve the key requires
8243         freeing it manually.
8244         
8245 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
8246
8247         * locales.c : removed HAVE_ICU part.
8248
8249 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
8250
8251         * object.c (mono_class_create_runtime_vtable): Avoid calling 
8252         field_is_special_static if the klass has no special static fields.
8253
8254         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
8255         (MonoCachedClassInfo): Likewise.
8256
8257         * object.c (mono_class_has_special_static_fields): New helper function.
8258
8259 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8260
8261         * class.c (mono_class_create_from_typedef): Don't call 
8262         interfaces_from_typedef_full for enums.
8263         (mono_class_create_from_typedef): Compute the base types of enums directly
8264         without calling mono_class_setup_fields ().
8265         (mono_class_find_enum_basetype): New helper function.
8266
8267         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
8268         one place inside the string heap.
8269         
8270 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
8271
8272         * class.c: locking fixes, code cleanups, some docs added.
8273         Allocate some data structures in the image mempool.
8274
8275 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8276
8277         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8278         the example code.
8279         
8280 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
8281
8282         * class-internals.h, class.c, reflection.c: reduce memory taken by
8283         MonoClass.
8284
8285 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
8286
8287         * metadata.c, metadata.h, loader.h: documentation updates, code and
8288         API cleanups.
8289
8290 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8291
8292         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8293         the example code.
8294
8295         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
8296         page faults caused by the runtime while reading metadata.
8297
8298 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8299
8300         * socket-io.c: the field names were changed 3 months ago and no one
8301         realized until bug #76077 got filed!
8302
8303 2005-09-20  Martin Baulig  <martin@ximian.com>
8304
8305         * icall.c (assembly_icalls): Removed some unused debugger icalls.
8306
8307 2005-09-20  Martin Baulig  <martin@ximian.com>
8308
8309         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
8310         write the rank into the class entry.
8311
8312 2005-09-20  Martin Baulig  <martin@ximian.com>
8313
8314         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
8315
8316 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
8317
8318         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8319
8320         * icall.c (custom_attrs_defined_internal): New icall.
8321
8322         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
8323         function.
8324         (mono_custom_attrs_construct_by_type): New helper function.
8325
8326 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
8327
8328         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
8329         terminate the resulting string. Fixes #76123.
8330
8331 2005-09-16  Martin Baulig  <martin@ximian.com>
8332
8333         * mono-debug.c
8334         (mono_debug_add_method): Ignore inflated methods for the moment.
8335
8336 2005-09-14  Martin Baulig  <martin@ximian.com>
8337
8338         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
8339
8340 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
8341
8342         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
8343         return a success/failure indication.
8344         (mono_metadata_interfaces_from_typedef_full): Ditto.
8345         (get_constraints): Ditto.
8346
8347 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
8348
8349         * marshal.c (emit_marshal_array): Fix handling of null arrays.
8350         
8351         * marshal.c (emit_marshal_array): Add support for returning string
8352         arrays from delegates. Fixes #76063.
8353
8354         * marshal.c: Use the emit_ldloc/stloc macros where possible.
8355
8356 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
8357
8358         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
8359         icall.
8360
8361 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
8362
8363         * reflection.c icall.c: Fix after mono_get_exception_type_load
8364         signature change.
8365
8366         * assembly.c (mono_assembly_get_assemblyref): New helper function.
8367         (mono_assembly_load_reference): Use the new helper.
8368
8369         * class-internals.h (MonoLoaderError): New structure containing 
8370         information about type loading errors.
8371
8372         * class-internals.h loader.c: Add APIs to store per-thread loader
8373         error information.
8374
8375         * loader.c class.c: Set the loader error if needed.
8376
8377         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
8378
8379 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
8380
8381         * decimal.c: fixed to handle the broken ARM fp format.
8382
8383 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
8384
8385         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
8386         broken.
8387
8388 2005-09-06  Martin Baulig  <martin@ximian.com>
8389
8390         * domain.c (supported_runtimes): Added v2.0.50727.
8391
8392 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
8393
8394         * culture-info.h: reduce the size of some structures.
8395
8396 2005-09-05  Martin Baulig  <martin@ximian.com>
8397
8398         Reflect latest API changes in the August CTP.
8399
8400         * icall.c
8401         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
8402         ("MonoType.HasGenericArguments"): Removed.
8403         ("MonoMethod.BindGenericParameters"): Renamed to
8404         "MakeGenericMethod".
8405         ("MethodBuilder.BindGenericParameters"): Renamed to
8406         "MakeGenericMethod".    
8407
8408 2005-09-05  Martin Baulig  <martin@ximian.com>
8409
8410         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
8411
8412 2005-09-05  Martin Baulig  <martin@ximian.com>
8413
8414         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8415
8416         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
8417         generic_container is non-NULL.
8418
8419 2005-09-05  Martin Baulig  <martin@ximian.com>
8420
8421         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8422
8423         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
8424
8425 2005-08-29  Michal Moskal  <malekith@nemerle.org>
8426
8427         * reflection.c (encode_locals,
8428         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
8429         for large generic types.
8430
8431 2005-09-05  Martin Baulig  <martin@ximian.com>
8432
8433         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8434
8435         * class.c (mono_dup_array_type): New public method.
8436         (mono_metadata_signature_deep_dup): New public method.
8437         (dup_type): Correctly duplicate array and function types.
8438
8439 2005-09-05  Martin Baulig  <martin@ximian.com>
8440
8441         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8442
8443         * reflection.c (get_default_param_value_blobs): Handle generic types
8444         and generic methods.
8445
8446 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
8447
8448         * class.c: Fixed error reporting (method/class were inversed) for 
8449         inheritance demands.
8450         * security-manager.c|h: Added the AppDomain when calling the managed
8451         System.Security.SecurityManager.InheritanceDemand method.
8452
8453 2005-09-01  Raja R Harinath  <rharinath@novell.com>
8454
8455         * reflection.c (encode_marshal_blob): 'marshaltype' and
8456         'marshaltyperef' are alternate sources for the custom marshaler
8457         name.
8458
8459 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
8460
8461         * class.c: fix creation of array classes with rank == 1
8462         (patch by Ankit Jain <jankit@novell.com>).
8463
8464 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
8465
8466         * object.c: fix check for creating the bound data for arrays vs
8467         szarrays.
8468
8469 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8470
8471         * object.c: configuration file name is now based on the executable name,
8472         not the image name. Fixes bug #75931.
8473
8474 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
8475
8476         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
8477         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
8478
8479 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
8480
8481         * rand.c: Use wincrypt.h instead of WinCrypt.h.
8482
8483 2005-08-24  Ankit Jain  <jankit@novell.com>
8484             Raja R Harinath  <rharinath@novell.com>
8485
8486         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
8487           called by it recursively.
8488           (mono_class_init): Remove special case in pending_init handling, since it's
8489           superseded by the fix to mono_class_from_typeref.
8490
8491 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
8492
8493         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
8494         BROKEN_THREAD_START stuff.
8495
8496 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
8497
8498         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
8499         trampoline.
8500
8501         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
8502         
8503         * object.c (mono_delegate_ctor): Replace the original function address with
8504         a delegate trampoline.
8505
8506 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
8507
8508         * icall.c: add boolean argument to base64_to_byte_array and 
8509         InternalFromBase64String to control whether a whitespace-only string
8510         is allowed (or should casue a FormatException to be thrown). We need
8511         this as the behavior has changed between MS.NET 1.x and 2.0, and we
8512         to match the MS behaviour in both profiles.
8513         * appdomain.c: Bump corlib version.
8514
8515 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8516
8517         This patch implements a big portion of publisher policy
8518         support, used to bind assembly versions and redirect
8519         one assembly from version A to version B.
8520
8521         * assembly.c:
8522         New GSList loaded_assembly_bindings, for storing the cached
8523         assembly bindings.
8524         (assembly_binding_maps_name): New static function for checking if a 
8525         assembly binding information maps an assembly name.
8526         (mono_assembly_binding_info_free): New function for freeing
8527         assembly binding information resources.
8528         (get_publisher_policy_info): New static function for retrieving 
8529         assembly binding information from a MonoImage.
8530         (compare_versions): New static function for comparing an assembly
8531         binding information data and the version of an assembly name.
8532         (check_policy_versions): New static function for checking if an
8533         assembly binding info mapping an assembly name is valid for it.
8534         (mono_assembly_load_publisher_policy): New static function for
8535         loading the 'policy.major.minor.MyAssembly' image for an assembly
8536         with an assembly name 'aname'.
8537         (mono_assembly_bind_version): New static function for updating
8538         assembly redirection.
8539         (mono_assembly_apply_binding): New static function for applying
8540         assembly binding.
8541         (search_binding_loaded): New static function for searching 
8542         loaded assembly binding infos in the cache domain.
8543         (mono_assembly_load_full): Don't apply assembly binding for
8544         reflection only assemblies.
8545
8546         * metadata-internals.h: Add MonoAssemblyBindingInfo,
8547         which contains information about assembly binding. Also
8548         declare signature for mono_config_parse_publisher_policy ()
8549         function, used to retrieve pub policy info.
8550         
8551         * mono-config.c:
8552         (publisher_policy_start): New static function used to parse publisher 
8553         policy config files.
8554         (publisher_policy_parser): New static MonoParseHandler containing 
8555         the functions used when parsing config files.
8556         (mono_config_parse_publisher_policy): New function for parsing
8557         publisher policy files.
8558         
8559 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
8560
8561         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
8562
8563         * marshal.c (mono_delegate_free_ftnptr): Ditto.
8564
8565         * object.c (mono_get_addr_from_ftnptr): New helper function.
8566
8567         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
8568
8569         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8570
8571 2005-08-19  Dick Porter  <dick@ximian.com>
8572
8573         * threads.c, threads.h, appdomain.c, appdomain.h,
8574         profiler-private.h, monitor.c, object.c, object-internals.h,
8575         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
8576         store the thread ID, so it can hold a 64 bit value if needed.
8577
8578 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
8579
8580         * reflection.c (mono_reflection_create_dynamic_method): Store the
8581         handle class into the method references as well so ldtoken works in
8582         dynamic methods.
8583
8584         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
8585         types.
8586
8587 2005-08-19  Ankit Jain <jankit@novell.com>
8588
8589         Fix #75847.
8590         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
8591           here rather than using the method signature of a arbitrary function
8592           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
8593           two arguments.
8594           Hack done with Harinath.
8595
8596 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8597
8598         * threadpool.c: disable printing stack traces when we get a exception
8599         in a threadpool thread. I need to do more testing to figure out which
8600         cases actually print this. Fixes bug #75828.
8601
8602 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8603
8604         * icall.c: there might be ignored whitespace after the last '='. This
8605         fixes length computation and bug #75840.
8606
8607 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
8608
8609         * assembly.c (mono_assembly_load_full): Consider .exe extension as
8610         well. Fixes #75809.
8611
8612         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
8613         #75784.
8614         
8615         * reflection.c (create_custom_attr_data): Ditto.
8616
8617 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
8618
8619         * locales.c, culture-info.h : removed RegionLCIDMap.
8620         * culture-info-tables.h : regenerated.
8621
8622 2005-08-16  Martin Baulig  <martin@ximian.com>
8623
8624         * class.c (mono_type_get_name_recurse): Small fix.
8625
8626 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
8627
8628         * locales.c : indentation fixie.
8629
8630 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
8631
8632         * object-internals.h,
8633           locales.h,
8634           locales.c,
8635           culture-info.h,
8636           icall.c : added RegionInfo table support.
8637         * culture-info-table.h : regenerated for region support.
8638
8639 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
8640
8641         * reflection.c (resolve_object): handle all kinds of MonoMethod
8642         including generic ones
8643
8644 2005-08-12  Ankit Jain <jankit@novell.com>
8645
8646         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
8647           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
8648
8649 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
8650
8651         * process.c: Don't close a thread handle when it's NULL. This is a
8652         workaround for bug #75733.
8653
8654 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
8655
8656         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
8657
8658 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
8659
8660         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
8661
8662 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8663
8664         * threadpool.c: if a work item in the thread pool has a callback that
8665         catches a exception, don't propagate it after invoking the callback.
8666         Fixes bug #75336.
8667
8668 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
8669
8670         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
8671
8672         * class-internals.h (MonoCachedClassInfo): Add some new fields.
8673
8674         * class.c (mono_class_init): Load field info lazily in the AOT case.    
8675
8676         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
8677
8678 2005-08-03  Ankit Jain  <jankit@novell.com>
8679
8680         Fix #75683.
8681         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
8682           PInvoke calling convention is 0.
8683
8684 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
8685
8686         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
8687         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
8688
8689 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
8690
8691         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
8692         to handle threads not started by the GC (patch by Michael Meeks
8693         <michael.meeks@novell.com>).
8694
8695 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
8696
8697         * reflection.c: Make buffer used in emitting types larger for some
8698         big generic types (patch by Michal Moskal).
8699
8700 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
8701
8702         * mono-debug.c: Fix some (not all) alignment problems.
8703
8704 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8705
8706         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
8707         Invoke mono_image_load_from_data_full passing the refonly
8708         parameter.
8709
8710         * assembly.c
8711         (mono_assembly_open_from_bundle): Add the refonly argument, 
8712         in order to pass it to other methods it calls to.
8713         (do_mono_assembly_open): Add the refonly argument, in order 
8714         to pass it to other methods it calls to.
8715         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
8716         the refonly parameter to it.
8717
8718         * image.c: Add loaded_images_refonly_hash and
8719         loaded_images_refonly_guid_hash to cache the reflection
8720         only loaded images.
8721         (mono_images_init): Initialize the hash tables used for
8722         caching the reflection only images.
8723         (load_modules): Invoke mono_image_open_full passing the refonly
8724         parameter to load the modules the correct way.
8725         (build_guid_table): Add the refonly argument, to re-build the 
8726         correct hash table.
8727         (do_mono_image_open): Added the refonly argument, in order to
8728         define it for the loaded image.
8729         (mono_image_loaded_full): New function, which receives an
8730         additional parameter to look for the image in the refonly or
8731         non-refonly section.
8732         (mono_image_loaded): Updated, using mono_image_loaded_full.
8733         (mono_image_loaded_by_guid_full): The same case that happens
8734         with mono_image_loaded_full.
8735         (mono_image_loaded_by_guid): Likewise.
8736         (register_image): Use the ref_only variable inside MonoImage
8737         to decide in which hash table store the current image.
8738         (mono_image_open_from_data_full): Rename
8739         mono_image_open_from_data to mono_image_open_from_data_full,
8740         adding the refonly argument, to define the ref_only variable 
8741         inside MonoImage.
8742         (mono_image_open_from_data): Return 
8743         mono_image_open_from_data_full.
8744         (mono_image_open_full): Rename mono_image_open to
8745         mono_image_open_full, receiving the new refonly argument,
8746         to pass it to inner methods.
8747         (mono_pe_file_open): Update this function, to open
8748         a MonoImage as a non-refonly image.
8749         (mono_image_close): Use the refonly variable inside
8750         MonoImage to remove the image from the correct caches.
8751
8752         * image.h: Add the signatures of mono_image_open_full,
8753         mono_image_open_from_data_full, mono_image_loaded_full,
8754         mono_image_loaded_by_guid_full.
8755
8756         * metadata-internals.h: Add the ref_only field to 
8757         MonoImage.
8758         
8759 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8760
8761         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
8762         Fix the last behavior, which used to load the assemblies and
8763         extract MonoReflectionAssemblyName information, instead of
8764         extract it from the metadata tables. Needed for Reflection
8765         Only assemblies.
8766         
8767 2005-07-29  Martin Baulig  <martin@ximian.com>
8768
8769         * mono-debug-debugger.c
8770         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
8771         not initialized.
8772
8773         * mono-debug.c
8774         (mono_debug_address_from_il_offset): Check whether we have
8775         debugging support before attempting to take the lock.
8776         (mono_debug_source_location_from_address): Likewise.
8777         (mono_debug_source_location_from_il_offset): Likewise.
8778         (mono_debug_il_offset_from_address): Likewise.
8779         (mono_debug_address_from_il_offset): Likewise.
8780
8781 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
8782
8783         * class.c (mono_class_from_name_case): Add support for dynamic images.
8784         Fixes #75650.
8785
8786         * object.c (mono_class_compute_gc_descriptor): Add a workaround
8787         for #75479.
8788
8789 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
8790         
8791         * reflection.c (mono_method_get_object): Fix warning.
8792
8793 2005-07-28  Martin Baulig  <martin@ximian.com>
8794
8795         * mono-debug.c
8796         (mono_debug_add_wrapper): Also write the wrapper type.
8797
8798 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
8799
8800         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
8801         
8802         * class.c (mono_class_init): Avoid reading nested classes if the AOT
8803         data indicates the class has none.
8804
8805 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
8806
8807         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
8808         loader lock with the debugger lock. Prevents deadlocks for beagle.
8809
8810         Beagle can now run on an smp box for a weekend without any
8811         issues. Woohoo!
8812
8813 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
8814
8815         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
8816         in a module. Fixes #75629.
8817
8818 2005-07-26  Martin Baulig  <martin@ximian.com>
8819
8820         * mono-debug.c (mono_debug_add_wrapper): New static method.
8821         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
8822         interncall or a wrapper.
8823
8824         * mono-debug.h (MonoDebugWrapperData): New public typedef.
8825         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
8826         (MONO_DEBUGGER_VERSION): Bump to 51.
8827
8828         * mono-debug-debugger.c
8829         (mono_debugger_add_type): Removed this empty function.
8830         (mono_debugger_add_method): Likewise.
8831
8832 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
8833
8834         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
8835         before accessing method->slot.
8836
8837 2005-07-21  Jb Evain  <jbevain@gmail.com>
8838
8839         * reflection.c (method_encode_clauses/class): Handle filters clauses.
8840         Fixes #75010.
8841
8842 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
8843
8844         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
8845         #75587.
8846
8847 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
8848
8849         * image.h image.c: Add mono_image_get_guid () API function.
8850
8851 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
8852
8853         There were issues when multiple threads tried to load
8854         assemblies. A deadlock was created between assemblies_mutex and
8855         mono_domain_assemblies_lock. This fixes the issue by making the
8856         assembly ref counting be lock free. See bug 75586.
8857         
8858         * image.c (mono_image_close): The add ref function here was using
8859         Interlocked operations while the unref was using a mutex and a
8860         --. I don't think this was ever a bug that would be exposed in a
8861         non-pendantic way (ie, by an embedder doing a ref on one thread
8862         and an unref on another), but for the sake of correctness, this is
8863         now Interlocked.
8864
8865         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
8866         (mono_assembly_load_reference): Call mono_assembly_addref rather
8867         than touching the refcount ourselves.
8868         (mono_assembly_close): Use InterlockedDecrement to unref the
8869         assembly. Don't acquire the lock unless it is actually needed.
8870
8871 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
8872
8873         * class.c (mono_class_layout_fields): Fix calculation of has_references
8874         for generic types.
8875
8876 2005-07-12  Martin Baulig  <martin@ximian.com>
8877
8878         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8879
8880         * metadata.c
8881         (mono_type_hash): Provide better hashing for generic instances.
8882         (mono_generic_inst_hash): Improve hashing.
8883         (mono_generic_class_hash): Likewise.
8884
8885         * reflection.c (mymono_metadata_type_hash): Improve hashing for
8886         generic instances.
8887
8888 2005-07-12  Martin Baulig  <martin@ximian.com>
8889
8890         * reflection.c (mono_reflection_create_runtime_class): Remove the
8891         hack for generic type definitions and non-`Run' assemblies.
8892         (mono_reflection_bind_generic_parameters): Also use
8893         `klass->wastypebuilder' to check for TypeBuilders.
8894
8895 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
8896
8897         * class.c (mono_class_layout_fields): Fix calculation of has_references
8898         for generic types.
8899
8900         * class.c (inflate_generic_class): Fix a leak.
8901         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
8902         for generic types.
8903
8904 2005-07-11  Martin Baulig  <martin@ximian.com>
8905
8906         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
8907         on error.
8908
8909 2005-07-11  Martin Baulig  <martin@ximian.com>
8910
8911         * loader.c (find_method): Also lookup in
8912         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
8913
8914 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
8915
8916         * appdomain.c (mono_domain_unload): Don't free the error message
8917         before passing it to mono_get_exception_...
8918
8919         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
8920         
8921 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
8922
8923         * threads.c: try to better guess an available RT signal (bug #75387).
8924
8925 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
8926
8927         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
8928         and CACHE_OBJECT.
8929
8930 2005-07-07  Martin Baulig  <martin@ximian.com>
8931
8932         * class.c (mono_type_get_name_full): Return NULL for
8933         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
8934         fixes #75408.
8935
8936 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
8937
8938         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
8939         exit the appdomain as well being aborted.
8940
8941         * threadpool.c: Create all threadpool threads inside the root appdomain, and
8942         change back to the root domain after calling managed code. This enables
8943         appdomains using threadpools to be unloaded.
8944
8945 2005-07-07  Martin Baulig  <martin@ximian.com>
8946
8947         * class-internals.h
8948         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
8949         into `MonoDynamicGenericClass' since we only need it for dynamic
8950         types.
8951
8952         * reflection.c (mono_class_bind_generic_parameters): We don't need
8953         to compute the `parent' here.
8954
8955 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
8956
8957         * culture-info-table.h : regenerated.
8958
8959 2005-07-06  Martin Baulig  <martin@ximian.com>
8960
8961         * icall.c
8962         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
8963
8964         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
8965
8966 2005-07-06  Martin Baulig  <martin@ximian.com>
8967
8968         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
8969         we're doing a signature-only comparision; fixes #74945.
8970
8971 2005-07-06  Martin Baulig  <martin@ximian.com>
8972
8973         * class-internals.h (MonoGenericClass): Moved some things out into
8974         a new `MonoInflatedGenericClass' type.  
8975         (MonoInflatedGenericClass): New type; the `klass' of a
8976         `MonoGenericClass' is now computed lazyly in
8977         mono_get_inflated_generic_class().      
8978
8979         * class.c (mono_get_inflated_generic_class): New public function.
8980         (mono_class_inflate_generic_method): Removed the unused
8981         `MonoClass *' argument.
8982         (setup_generic_vtable): Don't call mono_get_inflated_method() on
8983         all the methods.
8984         (mono_class_create_generic): Make this static and merge it with
8985         mono_class_create_generic_2(); we're now called automatically from
8986         mono_get_inflated_generic_class().
8987
8988         * loader.c (mono_method_signature): Call
8989         mono_get_inflated_method() here.
8990
8991 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
8992
8993         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
8994         type of fields with RVA.
8995
8996         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
8997         for this pseudo class.
8998         (my_mono_class_from_generic_parameter): Likewise.
8999         (mono_class_init): Allow interfaces to have cctors.
9000
9001 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
9002
9003         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
9004         lazily for AOT methods.
9005
9006 2005-07-05  Martin Baulig  <martin@ximian.com>
9007
9008         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
9009         returns FALSE for a successful match, not TRUE.
9010
9011 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
9012
9013         * loader.c (mono_method_get_index): Optimize this a bit.
9014
9015 2005-07-04  Martin Baulig  <martin@ximian.com>
9016
9017         * class.c
9018         (class_compute_field_layout): Move the check for generic type
9019         definitions into mono_class_layout_fields().  Fixes #74684.
9020         (mono_class_from_generic_parameter): Correctly compute
9021         `klass->parent'; fixes #75457.
9022
9023         * reflection.c (register_assembly, register_module): Make sure
9024         `domain->rejobject_hash' is already created.
9025
9026 2005-07-02  Martin Baulig  <martin@ximian.com>
9027
9028         * class-internals.h
9029         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
9030         `MonoDynamicGenericClass'.      
9031
9032 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
9033
9034         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
9035         returned by a field getter is null, since null is a valid value.
9036
9037 2005-07-01  Martin Baulig  <martin@ximian.com>
9038
9039         * reflection.c (mono_reflection_generic_class_initialize): Update
9040         the `dgclass->fields [i].parent' to the correct class.
9041         (mono_image_get_fieldref_token): Use the declaring type, not the
9042         reflected type.
9043
9044 2005-07-01  Martin Baulig  <martin@ximian.com>
9045
9046         * loader.c (find_method): Also look in the interfaces; fixes #75429.
9047
9048 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
9049
9050         * threads.c (thread_cleanup): assert that thread != NULL
9051         (wait_for_tids_or_state_change): We were using the wrong variable
9052         when accessing wait->threads. `i' was always out of the bounds of
9053         the array.
9054
9055 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9056
9057         * loader.c: map user32 and kernel32 to libMonoSupportW
9058
9059 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
9060
9061         * appdomain.c (unload_thread_main): Mark this as WINAPI.
9062
9063 2005-06-28  Martin Baulig  <martin@ximian.com>
9064
9065         * loader.c (method_from_methodspec): Fix #75334.
9066
9067 2005-06-28  Martin Baulig  <martin@ximian.com>
9068
9069         Fix #74953 - Arrays now implement the generic IList<T> interface
9070         on the 2.0 platform.
9071
9072         * class-internals.h (MonoDefaults): Added `generic_array_class'.
9073
9074         * reflection.c (mono_class_bind_generic_parameters): New public
9075         function; similar to mono_reflection_bind_generic_parameters(),
9076         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
9077
9078         * domain.c (mono_init_internal): Try to initialize.
9079         `mono_defaults.generic_array_class' here; this'll only succeed if
9080         we're using the 2.0 corlib.
9081
9082         * icall.c
9083         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
9084         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
9085         (mono_lookup_internal_call): Added support for nested classes.
9086
9087         * loader.c
9088         (mono_get_method_from_token): Set `result->signature->pinvoke' if
9089         we're an interncall and have generic arguments.
9090
9091         * class.c
9092         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
9093         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
9094         instance of System.Array.InternalArray<T> for arrays, so they
9095         implement the generic IList<T> interface.
9096
9097 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
9098
9099         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
9100         (chastamar@yahoo.com). Fixes #75374.    
9101
9102 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
9103
9104         * culture-info-table.h: regenerated.
9105
9106 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9107
9108         * icall.c: handle spaces correctly for base64 strings.
9109
9110 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
9111
9112         * *.c: Kill some warnings.
9113
9114 2005-06-23  Duncan Mak  <duncan@novell.com>
9115
9116         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
9117         that this builds on Solaris 10 (x86).
9118
9119 2005-06-23  Martin Baulig  <martin@ximian.com>
9120
9121         * class.c
9122         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
9123         generic type definitions.
9124
9125 2005-06-23  Martin Baulig  <martin@ximian.com>
9126
9127         Fix #75331.
9128
9129         * metadata.c (mono_class_get_overrides): Renamed to
9130         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
9131         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
9132         pass it to mono_get_method_full().
9133
9134 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
9135
9136         * reflection.c (mono_reflection_create_runtime_class): take the
9137         mono_domain_lock in this method. Prevents deadlocks
9138
9139 2005-06-22  Martin Baulig  <martin@ximian.com>
9140
9141         * loader.c (method_from_methodspec): Fix #75330.
9142
9143 2005-06-22  Martin Baulig  <martin@ximian.com>
9144
9145         * reflection.c (type_get_qualified_name): Use
9146         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
9147         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
9148         argument; use it if we don't have an assembly name.
9149
9150 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
9151
9152         * object.c: In mono_message_init, set "copy out" flag for in
9153         parameters with the [Out] flag.
9154
9155 2005-06-21  Martin Baulig  <martin@ximian.com>
9156
9157         * class.c
9158         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
9159         and MONO_TYPE_PTR.
9160
9161 2005-06-21  Martin Baulig  <martin@ximian.com>
9162
9163         * class.c (mono_class_init): Don't initialize `class->fields' for
9164         generic instances since they're initialized again in
9165         compute_field_layout(). 
9166         (compute_field_layout): Set the field's `generic_info' here; fix
9167         #75320. 
9168
9169 2005-06-21  Martin Baulig  <martin@ximian.com>
9170
9171         * class-internals.h
9172         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
9173
9174         * metadata.c (mono_metadata_generic_method_equal): Also
9175         distinguish the `generic_class'; fixes #75334.
9176
9177 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9178
9179         * domain.c:
9180         * appdomain.c:
9181         * domain-internals.h:
9182         * reflection.c: 'domain_assemblies' field is now protected by its own
9183         lock. Don't call into managed code to run the AssemblyLoad event if we
9184         now there are no registered delegates for it.
9185
9186 2005-06-20  Martin Baulig  <martin@ximian.com>
9187
9188         * class.c (mono_class_is_assignable_from): Use a custom version of
9189         mono_class_has_parent() to make things work for generic instances;
9190         fix #75300.
9191
9192 2005-06-20  Martin Baulig  <martin@ximian.com>
9193
9194         * loader.c (method_from_methodspec): Apply a patch from
9195         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
9196
9197 2005-06-20  Martin Baulig  <martin@ximian.com>
9198
9199         * class.c (mono_class_init): Reverted Zoltan's last change; it
9200         breaks generics.
9201
9202 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
9203
9204         * threads.c (wait_for_tids_or_state_change): Add missing locking.
9205
9206 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9207
9208         * socket-io.c: fix the index in the socket array for writable/error
9209         sockets. Fixes bug #75306.
9210
9211 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
9212
9213         * class.c (mono_class_init): Allow interfaces to have static ctors.
9214
9215 2005-06-17  Martin Baulig  <martin@ximian.com>
9216
9217         * loader.c (method_from_methodspec): Use `context->container' when
9218         parsing the `gmethod->inst'.
9219
9220 2005-06-17  Martin Baulig  <martin@ximian.com>
9221
9222         * class.c (mono_type_get_name_recurse): Don't add the assembly
9223         name for type arguments.
9224
9225 2005-06-15  Martin Baulig  <martin@ximian.com>
9226
9227         * reflection.c (mono_image_get_inflated_method_token): Encode
9228         correct klass; fixes #75260.
9229
9230 2005-06-13 Michal Moskal <malekith@nemerle.org>
9231
9232         * icall.c: Make GetCorrespondingMethod/Constructor take
9233         MonoReflectionMethod method not MonoMethod. Removed
9234         MonoType.GetCorrespondingField, and make
9235         MonoGenericType.GetCorrespondingField take name not
9236         MonoClassField.
9237
9238 2005-06-13  Michal Moskal <malekith@nemerle.org>
9239
9240         * reflection.c (field_encode_signature, encode_locals):
9241          Make sizes of buffers for types larger (for big generic types).
9242          (create_generic_typespec,
9243          mono_reflection_sighelper_get_signature_local,
9244          mono_reflection_sighelper_get_signature_field):
9245          Add asserts for too small buffers.
9246
9247 2005-06-15  Martin Baulig  <martin@ximian.com>
9248
9249         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
9250         if our parent is not a dynamic type.
9251
9252 2005-06-15  Martin Baulig  <martin@ximian.com>
9253
9254         * class-internals.h (MonoTypeNameFormat): New enum.
9255
9256         * class.c
9257         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
9258         (mono_type_get_full_name): Removed.
9259         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
9260         argument instead of the boolean's.
9261
9262         * icall.c (ves_icall_System_MonoType_getFullName):
9263         Added `gboolean assembly_qualified'.    
9264
9265         * reflection.h
9266         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
9267
9268         * reflection.c (mono_reflection_parse_type): Parse the new type
9269         name format.
9270
9271 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9272
9273         * icall.c: no need to convert from utf16 to utf8 and then back again
9274         after the call to GetLogicalDrives.
9275
9276 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9277
9278         * icall.c: frombase64. Fix problems exposed by new tests.
9279
9280 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9281
9282         * icall.c: added internal calls for converting char [] and strings in
9283         base64 into byte [].
9284
9285 2005-06-10  Martin Baulig  <martin@ximian.com>
9286
9287         * class.c (mono_class_create_generic_2): Read the nested classes
9288         from the metadata rather than from `gklass->nested_classes' since
9289         `gklass' might not be initialized yet.
9290
9291 2005-06-09  Duncan Mak  <duncan@novell.com>
9292
9293         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
9294         all public headers. Fixes #74919.
9295
9296 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
9297
9298         * domain.c: The key for proxy_vtable_hash is now a pointer
9299         array. Added new GHashFunc and GCompareFunc functions for this.
9300
9301         * class.h: The list of interfaces in MonoRemoteClass is known in
9302         advance and can't grow (we create a new MonoRemoteClass if needed),
9303         so now the interface array can be allocated together with
9304         MonoRemoteClass.
9305         
9306         * object.c: Added a new method create_remote_class_key.
9307         Fixed mono_remote_class so it does not depend on
9308         mono_upgrade_remote_class.
9309         Removed extend_interface_array.
9310         Added new method clone_remote_class(), which makes a copy of a remote
9311         class and adds a new interface or class to it.
9312         mono_upgrade_remote_class() now creates a new remote class (or gets
9313         it from the cache) if an vtable upgrade is needed. In this way
9314         we make sure that other objects sharing the same remote class
9315         don't get the new vtable with unwanted interfaces.
9316         
9317         * object-internals.h:
9318         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
9319         
9320         * marshal.c: Track changes in mono_upgrade_remote_class().
9321
9322 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
9323         * icall.c: Add runtime methods for obtaining members of inflated
9324         class, which were created from supplied non-inflated members. It
9325         is used in internal Get{Method,Constructor,Field} methods in
9326         System.Type
9327
9328 2005-06-09  Martin Baulig  <martin@ximian.com>
9329
9330         * reflection.c
9331         (mono_reflection_bind_generic_method_parameters): Fix #75169.
9332
9333 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9334         * reflection.c (mono_image_basic_init): Define
9335         Version in MonoDynamicAssembly. 
9336         
9337 2005-06-08  Martin Baulig  <martin@ximian.com>
9338
9339         Fix #75136.
9340
9341         * loader.c
9342         (mono_method_signature_full): New public method; takes a
9343         `MonoGenericContext *'.
9344         (find_method): Use mono_method_signature_full() and pass the
9345         klass'es context to it.
9346
9347         * class.c (mono_class_is_inflated_method): Use
9348         mono_method_signature_full() and pass the context to it.
9349
9350 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
9351
9352         * object.c: add proper locking in mono_remote_class_vtable(),
9353         fixes possible memory corruption.
9354
9355 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
9356
9357         * marshal.c (mono_remoting_marshal_init): set
9358         initialized after initialization.
9359
9360 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9361
9362         * locales.c : hush.
9363
9364 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
9365
9366         * object.c (extend_interface_array): fix really silly
9367         memory corrupting / comparison bug.
9368
9369 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9370
9371         * reflection.c: Functions added to support the creation
9372         of CustomAttributeData, which includes Attribute data
9373         used by ReflectionOnly methods.
9374
9375         * reflection.h:  mono_reflection_get_custom_attrs_data and
9376          mono_custom_attrs_data_construct added (functions exposed).
9377
9378          * icall.c: Added mono_reflection_get_custom_attrs_data
9379          as icall.
9380         
9381 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
9382
9383         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
9384         lupus's request.
9385
9386 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
9387
9388         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
9389
9390         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
9391         dynamic DllImportAttribute.
9392
9393         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
9394         dynamic DllImportAttribute.
9395
9396         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
9397         Fixes #75162.
9398
9399 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9400
9401         * threads.c: avoid segfault when an unstarted thread is aborted.
9402
9403 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
9404
9405         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
9406         Returns the name and version of the runtime for reporting.
9407
9408 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9409
9410         * appdomain.c: bump corlib version.
9411         * object-internals.h: new field in MonoReflectionAssembly.
9412
9413 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9414
9415         * object-internals.h: Carlos forgot to add this field.
9416
9417 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9418
9419         * icall.c: Added create_version to create instances
9420         of Version of MonoReflectionAssemblyName. This change helps
9421         the AssemblyName tests to keep running fine.
9422         
9423 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
9424   
9425         * object.c (mono_method_return_message_restore): A somehow less
9426         intrusive fix for #75138.
9427
9428 2005-06-03  Raja R Harinath  <rharinath@novell.com>
9429
9430         * object.c (mono_method_return_message_restore): Fix computation
9431         of expected number of out args.
9432
9433 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
9434
9435         * reflection.c (mono_image_get_method_info): Fix the case when the
9436         charset is empty.
9437
9438 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
9439
9440         * object.c: Added missing null check in
9441           mono_method_return_message_restore.
9442
9443 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
9444
9445         * reflection.c (mono_image_get_method_info): Handle the case when
9446         dllentry is empty.
9447
9448 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
9449
9450         * object.c: When creating the vtable for a proxy, take into account
9451         all inherited interfaces, not only the ones registered in
9452         iclass->interfaces. This fixs bug #74996.
9453         Also, in mono_method_return_message_restore, verify that the array
9454         of out args has the expected lengh.
9455
9456 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9457
9458         * socket-io.c: update the timeout in Poll when the call is interrupte.
9459
9460 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9461
9462         * socket-io.c: support abort/suspend in Select_internal after last
9463         change.
9464
9465 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9466
9467         * threadpool.c: remove warning.
9468
9469 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9470
9471         * icall.c:
9472         * socket-io.[ch]: Select_internal uses poll() now when available, thus
9473         removing the 1024 limit from select(). Runtime part of the fix for
9474         bug #71203.
9475
9476 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9477
9478         * socket-io.c: when resolving the addresses for the same
9479         host returned by gethostname(), get the local IPs from the interface
9480         list. Loopback addresses are discarded if the are interfaces up with
9481         non-loopback ones. Fixes bug #63265.
9482
9483 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
9484
9485         * appdomain.c, verify.c, object-internals.h, reflection.c:
9486         bumped corlib number to 36, and added new extra_flags field
9487         to ReflectionMethodBuilder and friends.  Fixes #75060.
9488
9489 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
9490
9491         * gc.c: register a new weak link only if the object is non-null
9492         (fixes bug#75047).
9493
9494 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9495
9496         * culture-info.h : short time pattern too.
9497
9498 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9499
9500         * culture-info.h : expand long time pattern string length.
9501
9502 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9503
9504         * culture-info-table.h : update (more French date format; #72788).
9505
9506 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
9507
9508         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
9509         the method is static. Fixes #75029.
9510
9511 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
9512
9513         * reflection.c: Update the table_idx field of method builders after
9514         saving the module, since it can change. This is a workaround for
9515         bug #74914. 
9516
9517 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9518
9519         * culture-info-table.h : update (additional French date format).
9520
9521 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
9522
9523         * icall.c (ves_icall_type_Equals): Revert last change.
9524         
9525         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
9526
9527         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
9528
9529 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
9530
9531         * class-internals.h: Added executioncontext_class field to 
9532         MonoDefaults structure.
9533         * domain.c: Cache System.Threading.ExecutionContext class in 
9534         mono_defaults.
9535         * object.c: Capture the ExecutionContext for asynchroneous calls in
9536          mono_async_result_new.
9537         * object-internals.h: Added execution_context and original_context 
9538         fields to MonoAsyncResult. Added execution_context to MonoThread.
9539         * security-manager.c|.h: Added mono_get_context_capture_method to 
9540         return the capture method (if required by the security manager or by
9541         the framework version used).
9542         * threadpool.c: Apply capture (if present) ExecutionContext in 
9543         mono_async_invoke and revert to original context after it completes.
9544
9545 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
9546
9547         * culture-info-table.h : updated (real hacky solution for zh-CHT).
9548
9549 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
9550
9551         * culture-info-table.h : zh-CHT related workaround.
9552
9553 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
9554
9555         * marshal.c (emit_marshal_custom): Add some error checking and call the
9556         methods in the ICustomMarshaler interface. Fixes #74875.
9557         
9558         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
9559         native->managed wrappers.
9560
9561 2005-05-12  Martin Baulig  <martin@ximian.com>
9562
9563         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
9564         here and use the loader lock.
9565
9566         * mono-debug.c: Properly lock when the debugger is not attached.
9567         (mono_debug_init): Release the initial lock if we're not running
9568         in the debugger.
9569
9570 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
9571
9572         * marshal.c (emit_marshal_custom): Pass through NULL values without
9573         calling the custom marshalling routines.
9574
9575         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
9576         conversion in structures. Fixes #74882.
9577
9578 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
9579
9580         * culture-info-table.h : zh-* cultures were missing.
9581
9582 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
9583
9584         * threads.c: Added a new event background_change_event which is signaled
9585         when a thread changes its background mode.
9586         Moved here several checks previously done in managed code. The checks
9587         require the thread lock, and using the thread lock in managed code
9588         can result in deadlocks.
9589         Merged Start_internal and Thread_internal into a single method. Now 
9590         Thread_internal does all work of creating and starting a thread.
9591         Added icalls for setting and getting the state of the object. Moved from
9592         managed code to avoid locking there.
9593         Added wait_for_tids_or_state_change() which is called instad of
9594         wait_for_tids when waiting for non-backround threads to end. This method
9595         will return if one of the threads ends or the background_change_event
9596         is signaled.
9597         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
9598         the background mode. This method signals the background_change_event
9599         event.
9600         * icall.c:
9601         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
9602         removed Start_internal.
9603         
9604 2005-05-11  Martin Baulig  <martin@ximian.com>
9605
9606         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
9607         to order of some fields to get proper alignment on 64-bit machines.
9608
9609 2005-05-11  Martin Baulig  <martin@ximian.com>
9610
9611         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
9612         changes as they're broken and completely fuck up the debugger.
9613
9614         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
9615
9616 2005-05-10  Martin Baulig  <martin@ximian.com>
9617
9618         * reflection.c (mono_reflection_generic_class_initialize): Don't
9619         call mono_class_setup_parent() here.
9620
9621 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9622
9623         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
9624         send/receive timeout use an integer in milliseconds. We were using a
9625         struct timeval.
9626
9627 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9628
9629         * locales.c:
9630         (internal_get_cultures): reserve the first slot of the array for the
9631         InvariantCulture, which will be filled in managed code.
9632
9633 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
9634
9635         * reflection.c (mono_image_fill_module_table): Initialize the
9636         GENERATION field as well.
9637
9638 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9639
9640         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
9641         Monitor.Enter on the object.
9642
9643 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
9644
9645         * threads.c: Enable the wait for running threads when exiting.
9646         * icall.c: Suspend all threads before exiting.
9647
9648 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
9649
9650         * assembly.c (mono_assembly_load_reference): Fix warning.
9651
9652 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9653
9654         * threadpool.c: changed the default number of threads per cpu. From now
9655         on, the default will be 20 + (5 * number of cpus) instead of 50.
9656
9657 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
9658
9659         * loader.c (mono_method_get_signature_full): Add locking here.
9660
9661 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
9662
9663         * appdomain.c: Moved methods for parsing and freeing assembly
9664         names to assembly.c.
9665         * assembly.c, domain-internals.h: Created public methods for parsing
9666         assembly names. Fixed mono_assembly_load_with_partial_name:
9667         it now finds the best match, taking into account the version,
9668         token and culture specified in the partial name. Also return
9669         the latest version if no version information is specified.
9670
9671 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
9672
9673         * threadpool.c: replace check for SocketAsyncCall class.
9674
9675 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9676
9677         * threadpool-internals.h:
9678         * Makefile.am: added threadpool-internals.h
9679
9680         * threadpool.c: call mono_unhandled_exception on exceptions not handled
9681         that happen in threadpool threads (tested on MS).
9682         (mono_thread_pool_remove_socket): new function that dispatch any pending
9683         AIO call on a socket that is closing. By now only epoll really needs it,
9684         as select/poll wake up when the socket closes.
9685
9686
9687         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
9688
9689 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
9690
9691         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
9692
9693 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
9694
9695         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
9696
9697 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
9698
9699         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
9700         has an abort request, convert it into a suspend request.
9701
9702 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
9703
9704         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
9705         warning for the usage of `UnmanagedFunctionPointerAttribute' which
9706         is not supported yet.
9707
9708 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9709
9710         * image.c: register assemblies loaded from data (bundles) in the loaded
9711         assemblies hash. Fixes bug #74772.
9712
9713 2005-04-29  Martin Baulig  <martin@ximian.com>
9714
9715         * class.c (mono_type_get_name_recurse): Update to the new naming
9716         schema from the latest .NET 2.x beta2.
9717         (mono_class_setup_vtable_general): If we're a generic instance,
9718         copy the vtable from our generic type definition and inflate all
9719         the methods in it.
9720
9721         * loader.c (find_method): Update to the new naming schema from the
9722         latest .NET 2.x beta2.
9723
9724 2005-04-29  Raja R Harinath  <harinath@gmail.com>
9725
9726         * class.c (mono_class_init): Add a mono_loader_unlock to the
9727         #74734 fix.
9728
9729 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
9730
9731         * icall.c (ves_icall_System_Environment_Exit): Remove the 
9732         suspend_all_other_threads () call for the time being, since it can hang.
9733
9734         * threads.c (mono_thread_manage): Similarly, disable the waiting for
9735         the background threads to exit, since it can also hang.
9736
9737         * class.c (mono_class_init): Applied patch from Ankit Jain 
9738         (radical@gmail.com). Avoid pending init errors when a field refers
9739         to a nested class using a typeref. Fixes #74734.
9740
9741         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
9742         this for dynamic modules.
9743
9744 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9745
9746         * threads.c: don't wait for threads that are in the process of aborting
9747         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
9748         and waiting for background threads to finish. This makes xsp and
9749         mod-mono-server exit without random length delays and/or hangs.
9750
9751 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9752
9753         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
9754
9755 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
9756
9757         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
9758         dynamic types to prevent infinite loops. Fixes #74727.
9759
9760         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
9761         ..._is_assignable_to.
9762
9763 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
9764
9765         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
9766
9767 2005-04-25  Martin Baulig  <martin@ximian.com>
9768
9769         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
9770
9771         * domain.c
9772         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
9773
9774         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
9775
9776         * reflection.c (build_compressed_metadata): Set metadata header
9777         version to 2.0.
9778
9779 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
9780
9781         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
9782         number into an integral and a decimal part. Fixes #70473.
9783
9784         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
9785
9786 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
9787
9788         * culture-info-table.h : reflected the latest locale-builder output.
9789
9790 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9791
9792         * threadpool.c: check for SuspendRequested too when deciding if
9793         mono_thread_interruption_checkpoint should be called.
9794
9795 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9796
9797         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
9798         * threads.c: remove interruption_mutex and use Interlocked instead. When
9799         suspending all the threads, wait for all the suspended events at once.
9800         If we're shutting down and get an APC that is going to be queued,
9801         call mono_thread_execute_interruption immediately, as the thread might
9802         be sleeping on a pthread condition or mutex.
9803
9804         * icall.c: call mono_runtime_set_shutting_down before suspending the
9805         threads.
9806
9807         Fixes bug #74693. And now xsp is happier when exiting.
9808
9809 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
9810
9811         * loader.c (mono_stack_walk): Fix #74690.
9812
9813 2005-04-22  Martin Baulig  <martin@ximian.com>
9814
9815         * mono-debug.h (MonoDebugMethodJitInfo): Added
9816         `MonoDebugMethodJitInfo *jit'.
9817
9818         * mono-debug.c (mono_debug_read_method): Cache the
9819         MonoDebugMethodJitInfo in `address->jit'.
9820         (mono_debug_free_method_jit_info): New public method.
9821
9822 2005-04-22  Martin Baulig  <martin@ximian.com>
9823
9824         * class.c (mono_class_is_assignable_from): Disallow
9825         type parameter -> interface.
9826
9827 2005-04-21  Dick Porter  <dick@ximian.com>
9828
9829         * threads.c (mono_thread_create): Turn an assertion into an error.
9830
9831 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
9832
9833         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
9834         
9835         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
9836         Fix some gcc 4.0 warnings.
9837
9838 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
9839
9840         * file-io.c: fix alt dir separator char on unix systems
9841         and cleanup (fixes bug #71214).
9842
9843 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
9844
9845         * marshal.c: Use CALLVIRT instead of CALL when dispatching
9846         a call to a remote domain, since the method may be an
9847         interface method in the client domain. This fixes bug #74192.
9848
9849 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9850
9851         * threadpool.c: recv/send are now performed before going back to managed
9852         code to save one transition.
9853
9854 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9855
9856         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
9857
9858         * metadata/threadpool.c: removed hack to workaround the bug above.
9859
9860         Fixes bug #74618.
9861
9862 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
9863
9864         * reflection.c reflection.h: Fix handling of parameter defaults in
9865         dynamic methods. Also fixes handling of parameter attributes.
9866         Fixes #74609.
9867
9868         * mono-debug.c (mono_debug_close_image): Fix warning.
9869
9870 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9871
9872         * socket-io.h: replaced old unused field with new 'blocking'.
9873         * threadpool.c: restore socket blocking state on windows(tm).
9874
9875 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
9876
9877         * icall.c: don't return the codebase in the AssemblyName[] returned by
9878         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
9879         * object-internals.h: Removed FIXME (fields were presents) and fixed
9880         versioncompat declaration.
9881
9882 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9883
9884         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
9885         not closed, so don't cleanup when it happens.
9886
9887 2005-04-13  Chris Toshok  <toshok@ximian.com>
9888
9889         * mono-debug-debugger.h: change prototype for
9890         mono_debugger_lookup_type.
9891
9892         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
9893         this function, although it should probably be named
9894         mono_debugger_init_type.
9895
9896 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9897
9898         * threadpool.c: fix non-AIO case.
9899
9900 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
9901
9902         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
9903         the built-in profiler to measure just JIT compilation times.
9904
9905 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9906
9907         * threadpool.c: the epollfd might be closed by another thread at
9908         any time, so ignore EBADF at treat it as a "we're closing" sign.
9909
9910 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9911
9912         * threadpool.c: release the semaphores with a count equals to the number
9913         of working threads in both IO and regular pools. Fixed typo that messed
9914         up the count of IO pool threads. Don't initialize the pipe handles if
9915         we're using epoll.
9916
9917 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9918
9919         * threadpool.c: some systems don't like a NULL when deleting the socket
9920         from epoll.
9921
9922 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9923
9924         * threadpool.c: fix semaphore allocation.
9925
9926 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9927
9928         * threadpool.c: added epoll() based implementation for asynchronous IO
9929         that is used instead of the default poll() when available.
9930         It can be disabled by setting MONO_DISABLE_AIO.
9931
9932 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9933
9934         * threadpool.c: windows needs 'closesocket' and instead of returning
9935         0 when the stream is closed while in select, it returns -1. Fixes bug
9936         #74573.
9937
9938 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
9939
9940         * class.c (class_compute_field_layout): Fix the regression caused by
9941         the previous try.
9942
9943 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9944
9945         * threadpool.c: separate pool for socket async. IO.
9946         * threadpool.h: mono_max_worker_threads is not a global any more.
9947
9948 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
9949
9950         * class.c (class_compute_field_layout): Fix #74549.
9951
9952 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9953
9954         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
9955         use 2 connected sockets instead.
9956
9957 2005-04-08  Miguel de Icaza  <miguel@novell.com>
9958
9959         * mono-config.c: Add new entry point for mkbundle
9960         mono_config_parse_memory. 
9961
9962 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9963
9964         * threadpool.c: removed another unused function.
9965
9966 2005-04-08  Ankit Jain  <radical@corewars.org>
9967
9968         * reflection.c (get_default_param_value_blobs): Add 'types'
9969         parameter to get the types encoded in the constant table.
9970         (mono_param_get_objects): Use the type from the constant table,
9971         not the type of the parameter, when creating default values.
9972         Handle null default values correctly.
9973
9974 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9975
9976         * file-io.c:
9977         * file-io.h:
9978         * threadpool.c:
9979         * threadpool.h:
9980         * icall.c:
9981         * socket-io.c: removed dead code for async IO.
9982
9983 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9984
9985         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
9986
9987         * threadpool.c: intercept socket async. calls and pass them to a thread
9988         that is polling and dispatching the job items to the threadpool as
9989         socket become ready. Fixes bugs #71217, #71933.
9990
9991         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
9992         between char and short/ushort arrays.
9993
9994         * socket-io.c: remove dead code.
9995
9996 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
9997
9998         * locales.c,
9999           icall.c : removed InternalToUpper_Comp() and
10000           InternalToLower_Comp().
10001
10002 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
10003
10004         * char-conversions.h : The tables were incorrectly generated. Should
10005           be generated against invariant culture.
10006
10007 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
10008
10009         * object.c (mono_runtime_invoke_array): Fix return value when 
10010         passing pre-created valuetype objects to ctors.
10011
10012         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
10013         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
10014         Fixes #74338.
10015
10016 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
10017
10018         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
10019         only used with --security and hides the wrong corlib version error.
10020
10021 2005-03-30  Joshua Tauberer  <tauberer@for.net>
10022
10023         * class.c: Changed mono_class_name_from_token so that types
10024         outside of a namespace don't have an initial period.  Improved
10025         the g_warning message used in _mono_class_get when loading
10026         fails.
10027         * assembly.c: In mono_assembly_load_reference, when an assembly
10028         can't be found, "No such file or directory" is misleading and
10029         unhelpful because a few paths were checked for the presence of
10030         the assembly.  When that happens (ENOENT), display a nicer
10031         message indicating the directories that were searched.  In all
10032         cases, the warning is made easier to read for non-hackers.
10033
10034 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
10035
10036         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
10037         project/solution.
10038         * appdomain.h|domain.c: Removed inline from functions.
10039         * appdomain.c: Reduced warnings when compiling on windows.
10040         * icall.c: Fixed output_debug declaration to gunichar2*.
10041         * mono-config.c: Reduced warnings when compiling on windows.
10042         * rand.c: Added missing "windows.h". Added missing return value.
10043         * rawbuffer.c: Added missing winsock2.h for windows.
10044         * sysmath.h: Added mono-compiler.h header to allow/ease 
10045         compilation with non-GCC compilers.
10046         * threads.c: Fixed declarations to compile with VS.NET C compiler.
10047         Removed cast warnings.
10048
10049         Adapted from the work of J Lothian (for VC6).
10050
10051 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
10052
10053         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
10054         from default_path.
10055
10056 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
10057
10058         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
10059         the 2.0 profile.
10060
10061 2005-03-27  Raja R Harinath  <harinath@gmail.com>
10062
10063         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
10064         has to be in $(exec_prefix).  $(prefix) is for arch-independent
10065         stuff, and it would probably use $(prefix)/share rather than
10066         $(prefix)/lib.
10067
10068 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10069
10070         * console-io.c: added 2 includes that might be missing.
10071
10072 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
10073
10074         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
10075         profile.
10076
10077         * reflection.c (create_custom_attr): Allocate the params array using
10078         alloca so it gets GC tracking.
10079
10080 2005-03-23  Chris Toshok  <toshok@ximian.com>
10081
10082         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
10083         out some spew.
10084
10085 2005-03-24  Raja R Harinath  <rharinath@novell.com>
10086
10087         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
10088         changes to pick up any changes in prefix, etc.
10089
10090 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
10091
10092         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
10093         
10094         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
10095         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
10096
10097 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
10098
10099         * class-internals.h object-internals.h class.c reflection.c: Extend the
10100         mono_lookup_dynamic_token () function to return the class of the
10101         token as well. 
10102
10103         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
10104         well. Fixes #73848.
10105
10106 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
10107
10108         * security-manager.c: Skip inheritance checks for intra-corlib
10109         class inheritance and method overrides. This skips a lot of checks
10110         and (anyway) permissions cannot work until corlib is loaded.
10111
10112 2005-03-23  Martin Baulig  <martin@ximian.com>
10113
10114         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
10115         MONO_TYPE_GENERICINST.  
10116
10117 2005-03-23  Martin Baulig  <martin@ximian.com>
10118
10119         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
10120
10121 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10122
10123         * class.c: added locking comments to some functions.
10124         Cache the interface offsets arrays (saves about 20 KB
10125         of runtime memory in a typical app).
10126         Reduce the time overhead in mono_class_setup_supertypes ().
10127
10128 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
10129
10130         * icall.c: speedup and fix leaks in GetMethodsByName and
10131         GetPropertiesByName.
10132
10133 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10134
10135         * reflection.c: some locking fixes.
10136
10137 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10138
10139         * metadata.c: added missing break in case statement.
10140
10141 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
10142
10143         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10144         typedbyref return values. Fixes #73941.
10145
10146 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
10147
10148         * security-manager.c|h: Added demandunmanaged method and 
10149         suppressunmanagedcodesecurity class to MonoSecurityManager.
10150         Renamed aptc class to allowpartiallytrustedcallers.
10151
10152 2005-03-17  Martin Baulig  <martin@ximian.com>
10153
10154         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
10155
10156 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10157
10158         * file-io.c: disabled file async. IO using aio_*. It uses the
10159         threadpool now. Workaround for bug #73718.
10160
10161 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10162
10163         * assembly.h, mono-config.c: added code to deal with bundled configs
10164         for bundled assemblies.
10165
10166 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
10167
10168         * *.c, private.h: cleanup, removing old private.h header file.
10169
10170 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
10171
10172         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
10173         and throw_on_unmappable_char attributes.
10174
10175 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
10176
10177         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
10178         _ProcessName_internal.
10179
10180 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
10181
10182         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
10183         #73631.
10184
10185         * icall.c threads.c threads-types.h: Remove slothash icalls as they
10186         are no longer used.
10187
10188 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
10189
10190         * object.c (compute_class_bitmap): Add support for generics. Fixes
10191         #73527.
10192
10193 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
10194
10195         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
10196
10197 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10198
10199         * filewatcher.c: commented out the code for windows watcher, as we don't
10200         use it (we use the managed implementation instead).
10201
10202 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
10203
10204         * object-internals.h (MonoThread): Remove 'unused1' field.
10205
10206         * appdomain.c: Bump corlib version.
10207
10208         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
10209
10210         * reflection.c (mono_reflection_create_runtime_class): Remove the
10211         AssemblyBuilder.Save optimization since it causes too many problems.
10212
10213 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
10214
10215         * exception.c|h: Added mono_get_exception_reflection_type_load to
10216         create a ReflectionTypeLoadException object.
10217         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
10218         to return NULL is a InheritanceDemand fails during reflection. Updated
10219         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
10220         ReflectionTypeLoadException if an InheritanceDemand fails during 
10221         reflection. Added icall mapping for GetLinkDemandSecurity.
10222         * security-manager.c|h: Added ves_icall_System_Security_
10223         SecurityManager_GetLinkDemandSecurity internal call to return the
10224         class and methods permissions set for a LinkDemand. Removed unused
10225         fields in MonoSecurityManager.
10226
10227 2005-03-10  Martin Baulig  <martin@ximian.com>
10228
10229         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
10230         it's a generic instance.
10231
10232 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
10233
10234         * reflection.c (mono_get_object_from_blob): Applied patch from
10235         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
10236
10237         * class.c (mono_class_is_assignable_from): Another try at fixing 
10238         #73469 without breaking anything.
10239
10240 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
10241
10242         * class.c: (mono_class_is_assignable_from): Revert the last changes
10243         since they don't work with generics.
10244         
10245         * class.c (mono_class_is_assignable_from): Fix build bustage.
10246
10247         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
10248         the managed IsAssignableFrom method. Fixes #73469.
10249
10250         * reflection.c (mono_reflection_call_is_assignable_from): New helper
10251         function.
10252
10253 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
10254
10255         * object.c (mono_load_remote_field_new): Fix returning uninitialized
10256         memory when the remoting callback does not sets the out arguments.
10257         Fixes #73007.
10258
10259         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
10260         by mistake.
10261
10262         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
10263
10264         * object-internals.h (MonoStackFrame): Sync with managed object layout.
10265
10266         * appdomain.c: Bump corlib version.
10267
10268 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
10269
10270         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
10271         function.
10272
10273         * threads.c (mono_thread_attach): Detect threads which are not started
10274         by the GC pthread wrappers.
10275
10276 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
10277
10278         * icall.c: Added new icall for RNG.
10279         * rand.c|h: Added new icall to open the RNG. This allows to share a 
10280         single handle on Linux to access /dev/urandom and fix #73183.
10281
10282 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
10283
10284         * object.c: setting the new vtable in a transparent proxy object must
10285         not change the GC descriptor.
10286
10287 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10288
10289         * object.c: fixed compilation without GCJ support.
10290         * reflection.c: for runtime-created types ensure klass->has_references
10291         is correct (bug #73215).
10292
10293 2005-03-02  Martin Baulig  <martin@ximian.com>
10294
10295         * class.c (mono_class_is_assignable_from): Make this work if
10296         `oklass' is a generic instance; fixes #72831.
10297
10298 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
10299
10300         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
10301         with hasthis set.
10302         
10303         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
10304
10305         * marshal.c: Reorganize native->managed marshalling code to also use
10306         the emit_marshal_... functions.
10307
10308 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10309
10310         * object.c: typed allocs have issues with bitmap sizes > 30,
10311         so check for max_set >= 30.
10312
10313 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
10314
10315         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
10316         managed code. Fixes #73012.
10317
10318         * metadata.h (MonoMarshalSpec): Add elem_mult field.
10319
10320         * metadata.c reflection.c: Load/Emit elem_mult as well.
10321         
10322         * metadata.h (MonoMarshalSpec): Add comment.
10323
10324         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
10325
10326         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
10327         num_elem to -1 if not given.
10328
10329         * object-internals.h (MonoReflectionMarshal): Add has_size field.
10330
10331         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
10332         given values.
10333
10334 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
10335
10336         * null-gc.c (mono_gc_free_fixed): Was not compilable.
10337
10338 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
10339
10340         * reflection.c (encode_marshal_blob): Encode param_num field as well.
10341
10342         * object-internals.h (MonoReflectionMarshal): Add param_num field.
10343
10344 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10345
10346         * object.c: generalized the reference bitmap creation
10347         and added hooks for the new GC.
10348         * class-internals.c: removed the gc_bitmap field from MonoClass.
10349
10350 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10351
10352         * domain.c: help the compiler to produce better code
10353         in mono_jit_info_table_find ().
10354
10355 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10356
10357         * object.c: make all allocations look typed.
10358
10359 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10360
10361         * socket-io.c: load Mono.Posix if it's not loaded already
10362         (fixes bug#73033).
10363
10364 2005-02-24  Martin Baulig  <martin@ximian.com>
10365
10366         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
10367         * reflection.c (dup_type): Likewise.
10368
10369 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
10370
10371         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
10372         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
10373
10374 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10375
10376         * domain.c, threads.c, object-internals.h: make the critical thread
10377         local vars use the fast access mode (even when we're compiled in
10378         a lib). Provide accessors to be used by the jit during codegen.
10379
10380 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10381
10382         * appdomain.c: Changed hook functios behavior to include
10383         support for the reflection only assemblies. Some icalls were changed
10384         to support the mentioned assemblies too. Signatures of static methods
10385         try_assembly_resolve and real_load now have an additional parameter:
10386         refonly.
10387
10388         * assembly.c: General changes to mono_assembly_ methods to support
10389         reflection only api. Functions mono_assembly_open, mono_assembly_load,
10390         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
10391         suffix, to support an additional gbool parameter to specify whether
10392         the assembli is reflection only or not. Created some new hook functions 
10393         to add support for reflection only assemblies. Signatures of static 
10394         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
10395         have now an additional parameter: refonly.
10396
10397         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
10398         indicating whether the assembly is reflection only or not.
10399
10400         * exception.c: Add mono_get_exception_invalid_operation.
10401
10402         * icall.c: Throw an InvalidOperationException when trying to invoke
10403         a property/method/event, or trying to set/get the value of a field.
10404         Also add an icall to retrieve the ref_only flag to the
10405         MonoReflectionAssembly.
10406
10407 2005-02-23  Chris Toshok  <toshok@ximian.com>
10408
10409         Part of fix for #72827.
10410         * mono-debug.c (mono_debug_add_method): add lexical block data to
10411         the info we write.  Kind of a hack at the moment - we copy the
10412         lexical block info from the MonoDebugMethodInfo to the
10413         MonoDebugMethodJitInfo here, before writing it.
10414         (mono_debug_read_method): read the lexical block info.
10415
10416         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
10417
10418         * debug-mono-symfile.h: add lexical block support.
10419
10420         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
10421         support.
10422
10423 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
10424
10425         * loader.c (mono_lookup_pinvoke_call): Fix warning.
10426
10427         * object.c (mono_runtime_free_method): Call mono_free_method () and
10428         put the TODOs there.
10429
10430         * loader.c (mono_free_method): Free up most memory allocated for 
10431         dynamic methods.
10432
10433 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
10434
10435         * reflection.c: properly flag a Type argument to a
10436         named custom attr value (bug #72248).
10437
10438 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10439
10440         * reflection.c: reduce code duplication in named custom
10441         attribute encoding.
10442
10443 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
10444
10445         * reflection.c: properly encode custom attrs of type object
10446         (bug #72649).
10447
10448 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
10449
10450         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
10451
10452 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
10453
10454         * socket-io.c: load System.dll if it's not loaded already
10455         (bug #72850 and #70477).
10456
10457 2005-02-21  Martin Baulig  <martin@ximian.com>
10458
10459         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10460         generic instances.
10461
10462 2005-02-21  Martin Baulig  <martin@ximian.com>
10463
10464         * reflection.c (mono_image_build_metadata): We also need to
10465         "fixup" the MethodImpl table after we computed the final method
10466         indices.  Call fixup_methodimpl() to do that.
10467         (fixup_methodimpl): New private method.
10468
10469 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10470
10471         * assembly.c: special case mscorlib.dll (bug#72536),
10472         patch from Carlos Alberto Cortez.
10473
10474 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
10475
10476         * threads-types.h threads.c: Fix build bustage.
10477
10478         * threads.c: Use a union for long<->double conversions.
10479
10480         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
10481         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
10482
10483         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
10484         containing the checkpoint call with NOT_TAKEN.
10485         
10486         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
10487         checkpoint before pushing the arguments, so they won't have to be
10488         spilled to stack.
10489
10490 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10491
10492         * domain.c, assembly.c, domain-internals.h: make some data
10493         const and relocation-free.
10494
10495 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
10496
10497         * object.c, appdomain.c, class-internals.h: introduce the
10498         MonoClassRuntimeInfo structure to hold the info needed to
10499         use a class at runtime. Made mono_class_vtable() lock-free
10500         for all the appdomains.
10501
10502 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
10503
10504         * metadata-internals.h, image.c: introduce a per-image mempool to
10505         be used for memory that has the same lifetime as the image.
10506
10507 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
10508
10509         * domain.c: In mono_init_internal(), instead of selecting the first
10510         runtime version supported by an executable, get a list of all
10511         supported versions and select the one for which an mscorlib exists
10512         (since even if the runtime supports a given version, it doesn't mean
10513         that the framework for that version is installed).
10514         Modified get_runtimes_from_exe to support this behavior.
10515         In supported_runtimes, added information about additional system
10516         assembly versions.
10517         
10518         * assembly.c: Added support for more than one system assembly version
10519         per runtime version. Updated the assembly list.
10520         In mono_assembly_remap_version, removed the initial version check,
10521         since we don't know to which version we need to compare until we
10522         get the version set on which the assembly is based.
10523         Moved the code for loading corlib into the new method
10524         mono_assembly_load_corlib(), so it can be used by the initialization
10525         code.
10526         
10527         * domain-internals.h: Updated data structures and added declaration
10528         for mono_assembly_load_corlib.
10529
10530 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
10531
10532         * reflection.c (resolve_object): Fix the creation of the signature in 
10533         the SignatureHelper case.
10534
10535         * assembly.c (mono_assembly_remap_version): Fix binary search.
10536         
10537 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
10538  
10539         * class.c: Added inheritance check when a method is overloaded (from a
10540         virtual method or when implementing an interface) and when a class is
10541         inherited. Added functions to set a failure for a class and to 
10542         retreive the exception from a failure.
10543         * class-internals.h: Added fields to MonoClass to keep the exception
10544         information status for inheritance (or other exceptions) to be thrown
10545         later (i.e. not at load time).
10546         * object.c: Throw the inheritance SecurityException when a type is to 
10547         be created with either class or method inheritance violations.
10548         * reflection.c|h: Fix when getting declsec from a class. Removed 
10549         unrequired code for class. Improved sanity in parameter naming.
10550         * security-manager.c|h: Added functions to check for class and method
10551         inheritance.
10552
10553 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
10554
10555         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
10556         and has_finalize in dynamic types as well.
10557
10558 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
10559
10560         * culture-info-table.h : fixed currency format for en-GB (and so on).
10561
10562 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
10563
10564         * gc.c: ensure the GC handles never have 0 as a value.
10565
10566 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
10567
10568         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
10569         a pointer to a struct to unmanaged code. Fixes #72625.
10570
10571 2005-02-16  Martin Baulig  <martin@ximian.com>
10572
10573         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
10574
10575 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
10576
10577         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
10578
10579 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
10580
10581         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
10582
10583         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
10584         UnmanagedFunctionPointerAttribute, use it for determining calling convention
10585         etc. Fixes #71471.
10586
10587         * reflection.c (mono_custom_attrs_get_attr): New helper function.
10588
10589         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
10590
10591 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
10592
10593         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
10594         changes to make the current context a field in MonoThread.
10595
10596 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
10597
10598         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
10599         the last change.
10600         
10601         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
10602         extracted from mono_marshal_get_native_wrapper.
10603
10604         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
10605         to create wrappers around native functions.
10606
10607         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
10608         delegates for arbitrary function pointers. Fixes #71472.
10609
10610 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
10611
10612         * threads.c: cleaned up the code a little.
10613
10614 2005-02-15  Martin Baulig  <martin@ximian.com>
10615
10616         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
10617         the data table.
10618
10619         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
10620         allocate larger chunks if needed.
10621
10622 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
10623
10624         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
10625         in by mistake.
10626
10627 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
10628
10629         * domain.c: keep the domains in an array and ensure the domain ids
10630         are kept small, so they can be used as indexes to domain-specific data
10631         with a small memory overhead.
10632
10633 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
10634
10635         * icall.c: Handle byref types in Type icalls. Fixes #72544.
10636
10637 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
10638
10639         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
10640
10641 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
10642
10643         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
10644
10645         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
10646         values.
10647
10648         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
10649         
10650 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
10651
10652         * domain-internals.h: add the hashtable here.
10653
10654         * class-internals.h: Remove `info' from MonoMethod
10655
10656         * domain.c: Add a new hashtable, jit_trampoline_hash
10657
10658 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
10659
10660         * object.c: don't set the value of static fields
10661         (fixes bug#72494).
10662
10663 2005-02-11  Martin Baulig  <martin@ximian.com>
10664
10665         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
10666         (mono_debug_add_method): Silently ignore the method if it's too big.
10667         (mono_debug_add_type): Likewise.
10668
10669 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
10670
10671         * threads.c, appdomain.c: remove #ifdefs from the code.
10672
10673 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
10674
10675         * metadata-internals.h: Added flags to MonoAssembly to cache the most
10676         common security informations. This allows us to stay in unmanaged code
10677         when doing LinkDemand and it's special cases (except for the first 
10678         time for initialization). The flags a very much used with --security.
10679         * reflection.c|h: Added code to get declarative security attributes 
10680         for LinkDemand and InheritanceDemand. This required to refactor the
10681         existing code for Demand.
10682         * security-manager.c|h: Added new method fields for the special cases
10683         of LinkDemand.
10684
10685 2005-02-10  Martin Baulig  <martin@ximian.com>
10686
10687         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
10688         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
10689
10690 2005-02-10  Martin Baulig  <martin@ximian.com>
10691
10692         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
10693         debugging code; this is almost a complete rewrite.
10694
10695         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
10696
10697 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10698
10699         * domain.c, object.h: expose mono_string_equal () and 
10700         mono_string_hash ().
10701         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
10702         it's implemented in managed code.
10703
10704 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10705
10706         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
10707         lo leak objects between appdomains.
10708
10709 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10710
10711         * assembly.c: old compilers compilation fix from 
10712         robertj@gmx.net (Robert Jordan).
10713
10714 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
10715
10716         * class-internals.h: Little reminder for the future.
10717
10718         * debug-helpers.c: Fix up wrapper_type_names
10719
10720 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10721
10722         * image.c, metadata-internals.h: when loading an image from a file,
10723         mmap all of it and use the same codepaths as when using a
10724         in-memory image: the code is simpler and we use less memory
10725         (both writable and readonly).
10726
10727 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
10728
10729         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
10730         API to alloc runtime data structures that need to be tracked by the
10731         GC and contain pointers.
10732         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
10733         make the code more readable and eventually use a different GC.
10734
10735 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
10736
10737         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
10738         for out arguments.
10739         
10740 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
10741
10742         * object.c: In release_type_locks(), don't release the cctor lock
10743         if it has already been released. This fixes a crash in the
10744         thread5 test.
10745
10746 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10747
10748         * gc.c, marshal.c, icall.c: register a delegate for finalization
10749         only when the native function pointer has been allocated for it.
10750
10751 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
10752
10753         * object.c: cleaned up some code, allocate objects that are
10754         pointer free with the atomic malloc variant. Allocate memory
10755         for static data from the mempool if it's pointer-free.
10756         Allocate the bounds array at the end of the array data, when needed.
10757         * object-internals.h, object.h: move a private function in a private
10758         header.
10759         * class.c: handle missing case in tracking references in fields.
10760
10761 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
10762
10763         * class.c, class-internals.h: keep track if a type has
10764         reference fields in either the instance or static fields.
10765
10766 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
10767
10768         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
10769         and renamed to MonoRuntimeInfo. Added fields to store the expected
10770         framework assembly version. Changed mono_get_framework_version and
10771         mono_get_runtime_version for a single mono_get_runtime_info method.
10772         
10773         * assembly.c: Added method to remap system assembly versions to the
10774         current executing runtime version. Removed old mapping code.
10775         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
10776         
10777         * icall.c, reflection.c: Track api changes.
10778
10779 2005-02-06  Miguel de Icaza  <miguel@novell.com>
10780
10781         * loader.c (method_from_memberref): Improve error reporting,
10782         produce the class name instead of the typeref/typedef index. 
10783
10784 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
10785
10786         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
10787
10788 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
10789
10790         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
10791         stdcall and charset name mangling.  Reorganize the code and add
10792         some tracing stuff.
10793
10794 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
10795
10796         * monodiet.c: More iters!
10797
10798         * marshal.c: Iter usage.
10799
10800         * icall.c: Iter usage.
10801
10802         * object.c: Use iters.
10803
10804         * debug-helpers.c: More iters
10805
10806 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
10807
10808         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
10809         under win32.
10810
10811 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
10812
10813         * mono-debug-debugger.c: use iters
10814
10815         * class.c, class-internals.h: mono_class_setup_events is static
10816         now
10817
10818         * All callers: use iters
10819
10820 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
10821
10822         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
10823         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
10824
10825 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
10826
10827         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
10828
10829         * marshal.h: Add prototypes for ldfld/stfld_remote.
10830
10831         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
10832         this is called during startup.
10833         
10834 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
10835
10836         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
10837         MonoThreadsSync struct private in monitor.c. Changed the way
10838         MonoThreadsSync is allocated so it's faster and there is no
10839         need to keep track of it with a finalizer and it uses less memory.
10840         This also finally allows us to allocate mono objects as ptrfree when
10841         there are no reference fields.
10842
10843 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
10844
10845         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
10846         disappearing link to the GC interface and use them to simplify
10847         the gchandles code.
10848
10849 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
10850
10851         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
10852         stfld_remote which call mono_load/store_field_new. This allows methods
10853         calling ldfld/stfld wrappers to be AOTed.
10854
10855         * console-io.c: Include sys/filio.h under solaris.
10856         
10857         * console-io.c: Include curses.h if needed correctly.
10858
10859 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
10860         
10861         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
10862         method->klass as well.
10863
10864         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
10865
10866         * class.c (mono_class_init): Switch on lazy initialization of 
10867         methods.
10868
10869         * class.c (mono_class_get_finalizer): Handle the case when the 
10870         finalizer is inherited.
10871
10872 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10873
10874         * console-io.c: <curses.h> is needed by term.h on solaris.
10875
10876 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
10877
10878         * icall.c, class-internals.h, monodiet.c, class.c: Remove
10879         mono_class_setup_properties where possible. Remove this ftn from
10880         the header file, and make it static.
10881
10882 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
10883
10884         * loader.c: Add missing setup_... call.
10885
10886         * class.c: Add missing setup_... calls.
10887
10888         * class.c (mono_class_init): Switch on lazy initialization of 
10889         the generic vtable.
10890         
10891         * class.c (mono_class_init): Fix generics broken by the recent changes.
10892
10893         * monodiet.c (handle_type): Add missing setup_... calls.
10894
10895         * class.c: Back out garbage in previous patch.
10896         
10897         * class.c: Add missing setup_... calls.
10898
10899         * class.c (mono_class_get_method_from_name_flags): Avoid calling
10900         mono_class_setup_methods () if possible.
10901
10902         * class-internals.h (MonoClass): Add 'has_cctor' flag.
10903
10904         * class-internals.h (MonoCachedClassInfo): New structure.
10905
10906         * class.c: Initialize properties and events fields of MonoClass lazily.
10907
10908         * class.c: Add infrastructure for lazily initializing the methods and
10909         vtable fields of MonoClass. Not yet used.
10910
10911         * class.c (mono_class_get_finalizer): New helper function.
10912
10913         * class.c: Add infrastructure for loading some class related data from
10914         an AOT file.
10915
10916         * object.c: Add infrastructure for initializing the vtable from data
10917         in the AOT file.
10918
10919         * gc.c (run_finalize): Use mono_class_get_finalizer ().
10920
10921         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
10922         appropriate initialization function before accessing parts of the
10923         MonoClass structure.
10924
10925         * marshal.c: Fix warnings.
10926         
10927         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
10928
10929         * mono-debug-debugger.c (get_exception_message): Use 
10930         mono_class_get_method_from_name_flags ().
10931
10932 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
10933
10934         * reflection.c, appdomain.c: Replace a few manual searches that
10935         Zoltan missed. (Paolo approved this part of my initial patch).
10936
10937 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
10938
10939         * profiler.c: disable recording statistical events at report time.
10940
10941 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10942
10943         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
10944         to byteswap arrays of enum values, too (bug #72080).
10945
10946 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
10947
10948         * appdomain.c (set_domain_search_path): Allow this to be called if
10949         domain->setup is not yet set.
10950
10951         * loader.c (mono_method_get_index): New helper function.
10952
10953         * loader.c reflection.c: Use mono_method_get_index ().
10954
10955         * class.c (mono_class_get_method_from_name_flags): New helper method.
10956
10957         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
10958         this.
10959
10960         * class.c (mono_class_get_cctor): New helper method.
10961
10962         * string-icalls.c object.c class.c marshal.c reflection.c: Use
10963         mono_class_get_method () to look up methods.
10964
10965 2005-02-01  Miguel de Icaza  <miguel@novell.com>
10966
10967         * console-io.c: Fix the build, this should work on Windows.
10968
10969 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
10970
10971         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
10972         be set to null to keep things valid
10973
10974 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10975
10976         * icall.c: added Console 2.0 icalls.
10977         * Makefile.am: added console-io.[ch]
10978         * console-io.[ch]: internal calls for Console 2.0 API.
10979
10980 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10981
10982         * class.c: make sure we consider all the interfaces
10983         when calculating max_interface_id (bug found by
10984         Jeroen Frijters running ikvm).
10985
10986 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
10987
10988         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
10989         valuetype fields to null.
10990
10991         * object.c (set_value): Ditto. Fixes #71669.    
10992
10993 2005-01-31  Martin Baulig  <martin@ximian.com>
10994
10995         * metadata.c (mono_metadata_has_generic_params): New public
10996         function; checks whether something is a generic method.
10997
10998 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
10999
11000         * appdomain.c: fix infinite recursion when adding assemblies.
11001
11002 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
11003
11004         * object.c: Fix small typo to return all items for Environment.
11005         GetCommandLineArgs.
11006
11007 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11008
11009         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
11010         reflection.c: more domain and assembly-unload related fixes
11011         and memory leaks plugs.
11012
11013 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
11014
11015         * 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.
11016
11017 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
11018
11019         * loader.c (mono_method_signature): Make this method lazy
11020         (mono_get_method_from_token): Don't computate the signature here.
11021
11022         Doing this saves quite a bit of memory. I got 90 kb on starting up
11023         monodoc. It should also save some disk reads on startup.
11024
11025         * *: MonoMethod->signature might be NULL now. You *MUST* use
11026         mono_method_signature.
11027
11028 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
11029
11030         * object.c (mono_runtime_get_main_args): Return an array from the
11031         current domain here. Fixes #71938.
11032
11033 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
11034
11035         * monitor.c: formatting changes to comply with the
11036         mono coding style and remove #ifdefs from the code.
11037
11038 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11039
11040         * metadata.c, private.h: remove some unneeded data
11041         and use a more compact representation for table schemas.
11042
11043 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
11044
11045         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
11046         to get a better distribution in hash tables.
11047         * *.c: use mono_aligned_addr_hash() where appropriate.
11048         * assembly.c: make var static.
11049
11050 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
11051
11052         * domain-internals.h: Put MonoJitInfo on a diet.
11053
11054         * domain.c: Fix a warning.
11055
11056 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11057
11058         * gc.c: rework the gc handles code to reuse handles
11059         when freed.
11060
11061 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11062
11063         * domain.c: fixed long standing bug in mono_string_equal() which
11064         was brought to light with the ldstr changes.
11065
11066 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
11067
11068         * reflection.c: Remove warning by adding missing include for marshal.h
11069
11070 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11071
11072         * domain.c, object.c: change the ldstr_table to hold
11073         MonoString* as keys: makes the runtime isinterned lookup
11074         faster and simplifies memory management.
11075
11076 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
11077  
11078         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
11079         possible to add imperative security checks before calling the icall.
11080         * reflection.c: Return security attributes on the original MonoMethod
11081         (and not the wrapped one). This fix permissions on icalls.
11082
11083 2005-01-25  Dick Porter  <dick@ximian.com>
11084
11085         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
11086         the check for mktime() support actually test the mktime() return
11087         value.  "Fixes" bug 71682, though the output is still different to
11088         MS.
11089
11090 2005-01-25  Martin Baulig  <martin@ximian.com>
11091
11092         * class.c (mono_class_is_assignable_from): Make this work for
11093         generic instances.
11094
11095 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
11096
11097         * marshal.c (mono_string_utf8_to_builder)
11098         (mono_string_builder_to_utf16): We might not have ownership of the
11099         string. In thise case, we need to create a new buffer.
11100
11101         * object-internals.h (mono_stringbuilder_capacity): sb->str might
11102         be null, in which case, use the default capacity.
11103
11104 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11105
11106         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
11107         GC events to the profiler.
11108
11109 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11110
11111         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
11112         if you don't want the GC to run.
11113
11114 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
11115
11116         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
11117         start providing a GC API and keeping different implementations in
11118         their own file.
11119         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
11120
11121 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
11122
11123         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
11124         mmap rather than allocating a huge buffer.
11125         (mono_debug_close_mono_symbol_file): Free the buffer allocated
11126         above.
11127
11128 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
11129
11130         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
11131         and CheckExecutionRights.
11132         * reflection.c|h: Keep the index of the declarative security to be 
11133         used, instead of the pointer, when AOT compiler is used. Also add 
11134         class initialization when requesting demands.
11135         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
11136         CheckExecutionRights. Both properties are now FALSE by default, and
11137         unmodifiable, unless the --security option is used.
11138
11139 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11140
11141         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
11142         reflection.c: properly refcount images and assemblies, many leaks fixed.
11143
11144 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11145
11146         * threadpool.c: increase the timeout for threads in the thread pool to
11147         10s.  Fixes bug #67159.
11148
11149 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
11150
11151         * class-internals.h: Sun's compiler insists on explicit
11152         signed on bit fields to handle then correctly.
11153
11154 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
11155
11156         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
11157         Make the size of the array fit only the number of invalid path
11158         chars that we have.
11159
11160         * class.c (_mono_class_get): Improve the error reporting when a
11161         class referenced is not found, to assist debugging. 
11162
11163 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
11164
11165         * threads.c: fix off-by-one error.
11166         * domain.c: free data allocated in the domain.
11167
11168 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
11169
11170         * reflection.c (mono_method_body_get_object): Fill out exception info
11171         as well.
11172
11173         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
11174         structure.
11175         
11176 2005-01-19  Martin Baulig  <martin@ximian.com>
11177
11178         * loader.c (mono_get_method_constrained): Make this work again.
11179
11180 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
11181
11182         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
11183         guint16 to match the managed side.
11184
11185         * reflection.c (mono_reflection_body_get_object): Fill out local
11186         variables array.
11187
11188         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
11189         as well.
11190
11191         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
11192         'local_var_sig_token'.
11193
11194 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
11195
11196         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
11197         System.Drawing.
11198
11199         * reflection.c (mono_method_body_get_object): Handle abstract and
11200         runtime methods.
11201
11202 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
11203
11204         * marshal.c, loader.c, class-internals.h, reflection.c:
11205         store the emthod data for a wrapper in an array instead of a list.
11206
11207 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
11208
11209         * marshal.c: change the code to allocate memory more
11210         conservatively for method wrappers.
11211
11212 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
11213
11214         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
11215         fields from MonoClass to the marshal info structure where they belong.
11216
11217 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11218
11219         * class.c, object.c, class-internals.h, marshal.c: rearrange
11220         some fields and tweak some types to lower memory usage.
11221
11222 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
11223
11224         * threads.c (signal_thread_state_change): Handle the case when the
11225         target thread is the current thread.
11226
11227         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
11228
11229         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
11230         emit_ptr_to_object_conv. 
11231
11232         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
11233         marshalling. Fixes #71352.
11234
11235 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11236
11237         * metadata.h, blob.h: move table enum to blob.h so it can be included
11238         in any header.
11239         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
11240         cut the size of MonoImage/MonoDynamicImage.
11241
11242 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
11243
11244         * profiler.c (mono_profiler_install_simple): Fix default arguments.
11245
11246 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11247
11248         * reflection.c, reflection.h, icall.c: add a function to check
11249         if an attribute type is defined for a metadata object.
11250
11251 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
11252
11253         * object-internals.h: Added some needed fields from StringBuilder class.
11254         * marshal.c: Set the maxCapacity when creating a StringBuilder.
11255
11256 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
11257
11258         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
11259         threads before shutting down the runtime.
11260
11261         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
11262
11263 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11264
11265         * object-internal.h, threads.c: implement stacksize and 
11266         parameterized thread start functionality (requires
11267         matching corlib). Marked broken code for later removal.
11268
11269 2005-01-12  Martin Baulig  <martin@ximian.com>
11270
11271         * class-internals.h (MonoGenericClass): Moved the `initialized'
11272         flag to MonoDynamicGenericClass, removed `init_pending'.
11273         (MonoGenericInst): Added `is_reference' flag.
11274
11275 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
11276
11277         * reflection.c (mono_image_create_pefile): Only set the pe_offset
11278         inside the MSDOS header. Fixes #71201.
11279
11280         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
11281         gc thread.
11282         (mono_domain_finalize): Ditto.
11283
11284 2005-01-12  Martin Baulig  <martin@ximian.com>
11285
11286         * class.c (mono_get_shared_generic_class): Use the cache for
11287         non-dynamic generic classes.
11288
11289         * class-internals.h (mono_class_create_generic_2): Removed
11290         function prototype, this function is now static inside class.c.
11291
11292         * class.c (mono_class_create_generic_2): Made this static, only
11293         call it from mono_class_init() and mono_class_setup_parent().
11294         (collect_implemented_interfaces_aux): Call mono_class_init() on
11295         the interfaces we collect.
11296         (mono_class_setup_vtable): Call mono_class_init (class->parent).
11297
11298 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
11299
11300         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
11301         it a real thread handle.
11302
11303         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
11304         MonoJitExceptionInfo, since each catch clause needs its own variable.
11305         
11306 2005-01-11  Dick Porter  <dick@ximian.com>
11307
11308         * image.c (mono_pe_file_open): New variant on mono_image_open()
11309         that does not set up the CLI metadata; used for FileVersionInfo so
11310         it can get the data for windows binaries too.
11311         
11312         * process.c (process_read_string_block): Don't read off the end of
11313         the StringTable block.
11314
11315         These both fix bug 70766.
11316
11317 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
11318
11319         * gc.c: set some fields to NULL at GC cleanup time.
11320         * threads.c: if we quit the main thread, call exit ().
11321
11322 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
11323
11324         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
11325
11326 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
11327
11328         * threads.h, threads.c, object.c: added accessor and settor for
11329         main_thread. Handle it specially when exiting from it: wait
11330         for other foreground threads to exit.
11331
11332 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
11333
11334         * process.c, verify.c: remove some bloat.
11335
11336 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
11337
11338         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
11339         the calling convention to cdecl under win32.
11340
11341 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
11342
11343         * object.c (mono_object_get_size): New function to get the size of
11344         an object instance.
11345
11346         * profiler.c (simple_allocation): Use above.
11347
11348 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
11349
11350         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
11351         ves_icall_System_AppDomain_getRootDomain (as it's not required to
11352         get an appdomain by it's id and we can't assume the root's id is 0).
11353         * domain-internals.h: Change the function prototype to match.
11354         * icall.c: Change the icall table for AppDomain.
11355
11356 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
11357
11358         * locales.c (string_invariant_compare_char): Only compute
11359         GUnicodeTypes in the case where we need them.  Test for ordinality
11360         first and return if so.
11361
11362         From the commit:
11363
11364                 /*
11365                  * FIXME: here we must use the information from c1type and c2type
11366                  * to find out the proper collation, even on the InvariantCulture, the
11367                  * sorting is not done by computing the unicode values, but their
11368                  * actual sort order.
11369                  */
11370
11371 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
11372
11373         * loader.c: for P/Invoke methods, allow the "Internal" shared
11374         library name to refer to the calling process symbol namespace.
11375
11376 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
11377
11378         * Makefile.am: Add the security manager to the build.
11379         * security-manager.c|h: New. Initialization of the security manager.
11380
11381 2005-01-07  Dick Porter  <dick@ximian.com>
11382
11383         * threads.c: 
11384         * monitor.c: Update thread state during Monitor and WaitHandle
11385         waits.  Fixes bug 71031.
11386
11387 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
11388
11389         * reflection.c (property_encode_signature): Correctly handle when the
11390         property has no methods.
11391
11392 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
11393
11394         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
11395         
11396         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
11397         fields from mb, not rmb. Fixes #71017.
11398
11399         * marshal.c (emit_ptr_to_str_conv): Add support for 
11400         ByValTStr -> string conversion. Fixes #71015.
11401
11402         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
11403
11404         * mempool.c (mono_mempool_contains_addr): New helper function.
11405
11406 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
11407
11408         * metadata.c (mono_metadata_compute_size): Fix size calculation of
11409         HasSematics encoded fields.
11410         
11411         * metadata.c (mono_type_to_unmanaged): Improve error message for 
11412         invalid string marshalling.
11413
11414         * metadata.c: Fix warnings.
11415         
11416 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11417
11418         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
11419         profiler support.
11420
11421 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
11422
11423         * domain.c object.c domain-internals.h: Revert part of r38077 since the
11424         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
11425         tests.
11426
11427 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
11428
11429         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
11430         so methods containing these can be AOTed.
11431
11432 2005-01-03  Martin Baulig  <martin@ximian.com>
11433
11434         * loader.c (find_method): Removed the hack for generic instances.
11435         (method_from_memberref): If our parent is a generic instance, pass
11436         its generic type definition to find_method() and then inflate the
11437         method.
11438         (mono_get_method_constrained): Pass the generic type definition to
11439         find_method() and inflate the method later.
11440
11441         * class-internals.h (MonoStats): Added `generic_class_count'.
11442
11443         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
11444         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
11445
11446         * reflection.c (mono_custom_attrs_from_params): Don't ignore
11447         generic type definitions.
11448
11449 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
11450
11451         * loader.c icall.c: Fix warnings.
11452
11453 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
11454
11455         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
11456         blittable types. Fixes #70864.
11457
11458 2004-12-29  Martin Baulig  <martin@ximian.com>
11459
11460         * icall.c
11461         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
11462
11463         * reflection.c (mono_method_get_object): Create a
11464         "System.Reflection.MonoGenericMethod" for inflated methods; don't
11465         call mono_get_inflated_method().
11466
11467         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
11468
11469 2004-12-27  Martin Baulig  <martin@ximian.com>
11470
11471         * class-internals.h (MonoMethod): Added `is_inflated' flag.
11472         (MonoMethodInflated): Added `inflated' field.
11473
11474         * class.c (mono_class_inflate_generic_method): Don't really
11475         inflate the method here; just set the `is_inflated' flag in the
11476         MonoMethod.
11477         (mono_class_get_inflated_method): Actually inflate the method here
11478         if it's not already inflated; we use the MonoMethodInflated's new
11479         `inflated' field as a cache.
11480
11481 2004-12-26  Martin Baulig  <martin@ximian.com>
11482
11483         * class.c
11484         (inflate_generic_class): Moved some code out of inflate_generic_type().
11485         (mono_class_inflate_generic_method): If we're already inflated,
11486         inflate the context and use the declaring method; ie. make sure
11487         the declaring method of an inflated method is always the generic
11488         method definition.
11489         (mono_class_create_from_typedef): Create
11490         `class->generic_container->context->gclass'.
11491
11492 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
11493
11494         * metadata-internals.h, marshal.c, reflection.c: More
11495         MonoGHashTable->GHashTable.
11496
11497         * domain-internals.h, class.c: Change MonoGHashTable's into
11498         GHashTables for some cases where no gc stuff is used
11499
11500         All users: update apis
11501
11502 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
11503
11504         * metadata.c (builtin_types): Make this `const'. Makes this get
11505         put into the shareable section.
11506         (mono_metadata_init): Casts to make gcc happy.
11507
11508 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
11509
11510         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
11511
11512 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
11513
11514         * icall.c: Added an internal call to retrieve the position and length
11515         of assembly-level declarative security attributes (RequestMinimum, 
11516         RequestOptional and RequestRefuse). This is used by the Assembly class
11517         to re-create the corresponding permission sets.
11518
11519 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
11520
11521         * marshal.c: fix the stelemref wrapper to be type correct
11522         (and faster).
11523
11524 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
11525
11526         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
11527         to do key & 0x7fffffff. Hashtable already does this. It just
11528         results in longer code.
11529
11530 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
11531
11532         * appdomain.c: Bump corlib version.
11533         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
11534         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
11535         * reflection.c|h: Add functions to get declarative security infos
11536         (blob position and length) for assemblies, classes and methods.
11537
11538 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
11539
11540         * reflection.c: sort the constant table (bug #70693).
11541
11542 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
11543
11544         * object-internals.h, threads.c, domain.c: add accessors for
11545         the MonoThread and MonoDomain tls keys.
11546
11547 2004-12-18  Martin Baulig  <martin@ximian.com>
11548
11549         * class.c (inflate_generic_type): If we're inflating a generic
11550         instance, set `ngclass->context->container = context->container';
11551         ie. the container we inflated into.
11552
11553         * metadata.c (mono_metadata_parse_generic_param): Reflect above
11554         inflate_generic_type() changes.
11555
11556 2004-12-17  Martin Baulig  <martin@ximian.com>
11557
11558         * class-internals.h
11559         (MonoGenericClass): Replaced `MonoType *generic_type' with
11560         `MonoClass *generic_class'.  Removed `dynamic_info'; if
11561         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
11562         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
11563
11564 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
11565
11566         * exception.c (mono_exception_from_token): New helper function.
11567
11568 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
11569
11570         * assembly.c (mono_assembly_load_with_partial_name): Call 
11571         mono_assembly_loaded before invoking the preload hooks. Fixes
11572         #70564.
11573
11574         * object-internals.h (MonoThread): Change culture_info and 
11575         ui_culture_info into an array.
11576
11577         * threads.c: Cache culture info objects from more than one appdomain.
11578
11579         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
11580         current UI culture.
11581
11582 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
11583
11584         * threads.h threads.c appdomain.c: Clear the culture_info field of
11585         all threads during unloading if they point to an object in the dying
11586         appdomain.
11587
11588 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
11589
11590         * culture-info.h (TextInfoEntry): New struct
11591         * object-internals.h: sync with managed
11592         * locales.c: fill the `text_info_data' field
11593         * culture-info-tables.h: update
11594
11595 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
11596
11597         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
11598         collector.
11599
11600 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
11601
11602         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
11603         (ves_icall_ModuleBuilder_getMethodToken): Ditto
11604
11605 2004-12-12  Martin Baulig  <martin@ximian.com>
11606
11607         * mono-debug-debugger.c (write_type): If we're an enum and the
11608         builtin types have already been initialized, call mono_class_init().
11609
11610 2004-12-11  Martin Baulig  <martin@ximian.com>
11611
11612         * metadata.c (mono_metadata_load_generic_params): Added
11613         `MonoGenericContainer *parent_container' argument; automatically
11614         compute `container->is_method'; pass the correct owner to
11615         get_constraints().      
11616
11617         * reflection.c (compare_genericparam): Sort the GenericParam table
11618         according to increasing owners. 
11619
11620 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
11621
11622         * profiler.c: allow disabling the default profiler.
11623
11624 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
11625
11626         * decimal.c, icall.c: allow disabling System.Decimal support.
11627
11628 2004-12-09  Marek Safar <marek.safar@seznam.cz>
11629
11630         * reflection.c: Add support for null attribute arguments.
11631
11632 2004-12-09  Martin Baulig  <martin@ximian.com>
11633
11634         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
11635         names to get rid of compiler warnings.
11636
11637 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
11638
11639         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
11640         mono_marshal_load_type_info (). Fixes #69625.
11641         (mono_marshal_get_ptr_to_struct): Likewise.
11642
11643 2004-12-08  Martin Baulig  <martin@ximian.com>
11644
11645         * mono-debug.h: Bumped version number to 47.
11646
11647         * mono-debug-debugger.c
11648         (mono_debugger_event_handler, mono_debugger_event): Take two
11649         guint64 arguments insteed of a gpointer and a guint32.  
11650
11651 2004-12-08  Martin Baulig  <martin@ximian.com>
11652
11653         * debug-mono-symfile.h
11654         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
11655         `address' to `native_offset'.
11656
11657 2004-12-08  Martin Baulig  <martin@ximian.com>
11658
11659         * class.c (mono_class_create_from_typespec): Only inflate if we
11660         either have `context->gclass' or `context->gmethod'.
11661
11662 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
11663
11664         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
11665
11666         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
11667
11668         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
11669
11670         * reflection.c (mono_assembly_get_object): Remove the workaround put
11671         in for the release.
11672         
11673         * appdomain.c: Use the corlib_internal field from MonoAssembly.
11674
11675         * appdomain.c: Bump corlib version.
11676
11677         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
11678         be visible in other appdomains.
11679
11680 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
11681
11682         * threads.c: Interlocked inc and dec for longs were messed up,
11683         use a KISS based impl for this. Fixes 70234
11684
11685 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
11686
11687         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
11688
11689 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
11690
11691         * icall.c: fix to follow policy not to allow struct
11692         arguments in icalls.
11693
11694 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11695
11696         * process.c: make the patch that handles spaces in file paths work
11697         on mono/windows too.
11698
11699 2004-12-06  Martin Baulig  <martin@ximian.com>
11700
11701         * class.c (mono_class_create_generic): Call
11702         mono_class_setup_supertypes() if we're dynamic.
11703         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
11704
11705 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
11706
11707         * object-internals.h: Add new fields to MonoThread.
11708
11709         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11710
11711         * icall.c threads-types.h threads.c: Add new icalls.
11712
11713         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
11714
11715         * object-internals.h (MonoReflectionAssembly): Sync object layout with
11716         managed side.
11717
11718         * appdomain.c: Bump corlib version.
11719
11720         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
11721         internal assemblies. Fixes #69181.
11722
11723 2004-12-05  Martin Baulig  <martin@ximian.com>
11724
11725         * class.c (mono_class_inflate_generic_signature): Make this a
11726         no-op if `context' is NULL or we don't have any type parameters;
11727         also copy `sentinelpos'.        
11728
11729 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
11730
11731         * image.c: Add unbox_wrapper_cache.
11732
11733         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
11734
11735         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
11736         function generator.
11737         
11738         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
11739         Fixes #70173.
11740
11741         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
11742         
11743 2004-12-04  Martin Baulig  <martin@ximian.com>
11744
11745         * loader.c (mono_method_get_signature_full): New public function;
11746         like mono_method_get_signature(), but with an additional
11747         `MonoGenericContext *' argument.
11748
11749         * class.c (mono_class_inflate_generic_signature): Formerly known
11750         as inflate_generic_signature(); make this public.
11751
11752 2004-12-04  Martin Baulig  <martin@ximian.com>
11753
11754         * metadata.c
11755         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
11756         instead of a `MonoGenericContainer *'.  
11757         (mono_metadata_parse_array_full): Likewise.
11758         (mono_metadata_parse_signature_full): Likewise.
11759         (mono_metadata_parse_method_signature_full): Likewise.
11760         (mono_metadata_parse_generic_inst): Likewise.
11761         (mono_metadata_parse_generic_param): Likewise.
11762         (mono_metadata_parse_mh_full): Likewise.
11763         (mono_type_create_from_typespec_full): Likewise.
11764
11765 2004-12-03  Martin Baulig  <martin@ximian.com>
11766
11767         * class-internals.h (MonoGenericContainer): Replaced the
11768         `MonoGenericContext * pointer with a `MonoGenericContext'
11769         structure and made it the first element.
11770
11771 2004-12-03  Martin Baulig  <martin@ximian.com>
11772
11773         * class.c
11774         (inflate_generic_type): Set the `context->container' when creating
11775         a new MonoGenericContext.
11776         (mono_class_inflate_generic_method): Likewise.
11777         (mono_class_create_from_typespec): Just use `context->container'
11778         to get the container.
11779
11780         * loader.c (method_from_methodspec): Set `context->parent' from
11781         `context->container' - and if that's a method container, use its
11782         parent.  Also set the `context->container' when creating a new
11783         MonoGenericContext.
11784         (mono_get_method_from_token): Use just `context->container' to get
11785         the container.
11786
11787         * metadata.c (do_mono_metadata_parse_generic_class): Also set
11788         `gclass->context->container'.
11789
11790         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
11791         the `context->container' when creating a new MonoGenericContext.
11792
11793 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
11794
11795         * reflection.c (compare_genericparam): Sort params with identical
11796         owner by their number. Fixes gen-111 on sparc.
11797
11798 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
11799
11800         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
11801         around the domain changes.
11802
11803         * appdomain.c (mono_domain_unload): Handle the case when the thread
11804         calling Unload is itself being aborted during unloading. Fixes #70022.
11805
11806         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
11807
11808         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
11809         checkpoint_func as an icall so it gets a wrapper.
11810         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
11811         in the cross-appdomain wrappers too.
11812
11813         * threads.c (mono_thread_has_appdomain_ref): Make this public.
11814
11815         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
11816
11817         * reflection.c: Fix some memory leaks.
11818         
11819 2004-12-02  Martin Baulig  <martin@ximian.com>
11820
11821         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
11822
11823         * metadata.c (generic_class_cache): New static hashtable.
11824         (mono_metadata_lookup_generic_class): New public method.
11825
11826 2004-12-02  Martin Baulig  <martin@ximian.com>
11827
11828         * class.c (mono_class_create_from_typedef): Call
11829         mono_class_setup_parent() and mono_class_create_mono_type() before
11830         parsing the interfaces.
11831
11832 2004-12-02  Martin Baulig  <martin@ximian.com>
11833
11834         * metadata.c (generic_inst_cache): New static hashtable.
11835         (mono_metadata_lookup_generic_inst): New public function.
11836         (mono_metadata_inflate_generic_inst): New public function.
11837         (mono_metadata_parse_generic_inst): New public function.
11838         (do_mono_metadata_parse_generic_class): Use the new
11839         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
11840         since this'll also use the cache.
11841
11842         * reflection.c (mono_reflection_bind_generic_method_parameters):
11843         Use mono_metadata_lookup_generic_inst() to use the new cache.
11844
11845         * class.c (inflate_mono_type): Use
11846         mono_metadata_inflate_generic_inst() to inflate a generic
11847         instance; this'll also use the new cache.
11848
11849         * loader.c (method_from_methodspec): Use
11850         mono_metadata_parse_generic_inst() and
11851         mono_metadata_inflate_generic_inst() rather than parsing it
11852         manually, so we can use the new cache.
11853
11854 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
11855
11856         * threads.c (wait_for_tids): Do not incorrectly free threads when 
11857         the wait times out.
11858
11859 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
11860
11861         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
11862         iter->args based on whether parameters are passed in registers (i.e.
11863         MONO_ARCH_REGPARMS is defined)
11864
11865 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
11866
11867         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
11868         the exception message. Fixes #70070.
11869         (method_from_methodspec): Fix warnings.
11870
11871 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11872
11873         * process.c: (complete_path) return the path quoted
11874
11875 2004-12-01  Martin Baulig  <martin@ximian.com>
11876
11877         * class-internals.h (MonoGenericInst): New structure.
11878         (MonoGenericClass): Replaced `type_argc', `type_argv' and
11879         `is_open' with `MonoGenericInst *inst'.
11880         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
11881         `is_open' with `MonoGenericInst *inst'.
11882
11883 2004-11-30  Martin Baulig  <martin@ximian.com>
11884
11885         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
11886
11887         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
11888         to `generic_class_cache'.
11889
11890         * metadata.c
11891         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
11892         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
11893         (mono_generic_inst_is_valuetype): Renamed to
11894         mono_generic_class_is_valuetype().
11895
11896         * class-internals.h
11897         (MonoGenericInst): Renamed to MonoGenericClass.
11898         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
11899         (MonoClass): Renamed `generic_inst' to `generic_class'.
11900         (MonoGenericContext): Renamed `ginst' to `gclass'.
11901
11902         * object-internals.h
11903         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
11904
11905         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
11906         mono_reflection_generic_class_initialize().
11907
11908         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
11909         now known as "System.Reflection.MonoGenericClass".
11910         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
11911
11912 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
11913
11914         * class-internals.h: Added a flag field to MonoClass to cache the
11915         declarative security attributes actions associated with the class.
11916         * domain-internals.h: Added booleans to MonoJitInfo to cache the
11917         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
11918         applicable to the JITted method.
11919         * reflection.c|h: Added functions to extract (as flags) which security
11920         actions are available (declaratively) for a method, class or assembly.
11921         * metadata.c|h: Added functions to search the declarative security
11922         table in the metadata.
11923         
11924 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
11925
11926         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
11927         EXPORTEDTYPES are already in the class name cache, so there is no
11928         need to add extra code here to look at them. Just removes a bit of
11929         cruft.
11930
11931         (ves_icall_System_Environment_get_TickCount): No need for #if
11932         WINDOWS. We already have the code in io-layer.
11933
11934 2004-11-28  Martin Baulig  <martin@ximian.com>
11935
11936         * loader.c
11937         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
11938         Fixes gen-112.cs.
11939
11940 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
11941
11942         * assembly.c (do_mono_assembly_open): Instead of having a
11943         conditional WITH_BUNDLE, incorporate support for bundles here, by
11944         having a global `bundles' variable holding a pointer to the actual
11945         bundles. 
11946
11947         (mono_register_bundled_assemblies): New API call used by the
11948         bundle code. 
11949
11950         See mkbundle.1 for details.
11951         
11952 2004-11-27  Martin Baulig  <martin@ximian.com>
11953
11954         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
11955         the vtable for generic methods.
11956
11957 2004-11-26  Martin Baulig  <martin@ximian.com>
11958
11959         * metadata.c
11960         (mono_metadata_generic_method_hash): New public function.
11961         (mono_metadata_generic_method_equal): Likewise.
11962
11963         * class-internals.h
11964         (MonoGenericContainer): Added `GHashTable *method_hash'.
11965
11966         * reflection.c (ReflectionMethodBuilder): Added
11967         `MonoGenericContainer *generic_container'.
11968         (reflection_methodbuilder_to_mono_method): Don't create a new
11969         MonoGenericContainer each time we're called.
11970         (mono_reflection_bind_generic_method_parameters): Use
11971         `container->method_hash' to cache the results so we don't create a
11972         different method if we're called several times with the same
11973         arguments.
11974
11975         * loader.c (method_from_methodspec): Use the new
11976         `container->method_hash' here, too.
11977
11978 2004-11-26  Martin Baulig  <martin@ximian.com>
11979
11980         * class.c (inflate_generic_signature): Correctly compute
11981         `res->has_type_parameters'.
11982         (mono_class_vtable): Use the `has_type_parameters' flag to
11983         determine whether we're a generic method.
11984
11985         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
11986
11987 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
11988
11989         * object.c (mono_runtime_run_main): Fix a small memory leak.
11990
11991 2004-11-25  Martin Baulig  <martin@ximian.com>
11992
11993         * class.c (set_generic_param_owner): Fixed the loop.
11994
11995 2004-11-25  Martin Baulig  <martin@ximian.com>
11996
11997         * object.c (mono_class_vtable): Don't create any JIT wrappers for
11998         generic methods.
11999
12000 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
12001
12002         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
12003         names. Fixes #69787.
12004
12005 2004-11-24  Martin Baulig  <martin@ximian.com>
12006
12007         * class.c (mono_class_create_generic_2): If we don't have a
12008         `ginst->parent', inflate `gklass->parent' to get our parent.
12009
12010 2004-11-24  Martin Baulig  <martin@ximian.com>
12011
12012         * reflection.c (compare_genericparam): Correctly sort the
12013         GenericParam table; fixes #69779.
12014
12015 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
12016
12017         * reflection.c: When writing a PE file, don't create a huge
12018         buffer in memory. Just write the arrays we have to the file.
12019         This reduces memory usage.
12020
12021         * metadata-internals.h: MonoDynamicStream pefile is no longer used
12022         globally.
12023
12024 2004-11-17  Martin Baulig  <martin@ximian.com>
12025
12026         * class.c (mono_class_init): Don't setup `class->parent' for
12027         dynamic instances; moved this to mono_class_generic_2().
12028         (mono_class_create_generic): Also set `klass->inited' for dynamic
12029         generic instances.
12030         (mono_class_create_generic_2): Don't do anything for dynamic
12031         generic instances.  Set `klass->parent' here and also call
12032         mono_class_setup_parent() here. 
12033
12034         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
12035         `MonoType *parent' argument; set `ginst->parent' before calling
12036         mono_class_create_generic_2(), so we set the correct parent.
12037
12038 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
12039
12040         * reflection.c: allow getting attributes from ModuleBuilder
12041         (used by ikvm).
12042
12043 2004-11-17  Martin Baulig  <martin@ximian.com>
12044
12045         * class.c (mono_class_create_from_typedef): If a type parameter is
12046         inherited from an outer class, set its owner to that class.
12047
12048 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
12049
12050         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
12051           for (int*) written size. This fixes bug #69592.
12052
12053 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
12054
12055         * icall.c: Added IsAuthenticodePresnet internal call.
12056         * image.c|h: New function that check a MonoImage for an Authenticode
12057         signature in the certificate PE data directory.
12058         * security.c|h: New internal call to ask the runtime if an 
12059         Authenticode signature seems referenced in the PE header.
12060
12061 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
12062
12063         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
12064
12065         * reflection.c (mono_image_create_pefile): Free the assembly streams
12066         after writing out the assembly file.
12067
12068         * object.c (mono_runtime_run_main): Fix small memory leak.
12069
12070         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
12071         property access modifiers. Fixes #69389.
12072
12073 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
12074
12075         * domain.c, object.c, object-internals.h, domain-internals.h,
12076         object.h, marshal.c: keep dynamic code info per domain.
12077
12078 2004-11-15  Martin Baulig  <martin@ximian.com>
12079
12080         * class.c (mono_type_get_name_recurse): Put type arguments in
12081         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
12082         see bug #68387.
12083
12084 2004-11-15  Martin Baulig  <martin@ximian.com>
12085
12086         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
12087         (mono_class_setup_vtable): When computing `the_cname' for a
12088         generic instance, don't include the namespace since we'd otherwise
12089         add it twice.
12090
12091 2004-11-15  Martin Baulig  <martin@ximian.com>
12092
12093         * class.c (mono_class_create_generic): Changed return type to void.
12094         (mono_class_create_generic_2): New public function; setup
12095         `class->method', `class->field' and `class->interfaces' here
12096         instead of in mono_class_init().
12097
12098         * class.h (mono_class_create_generic): Moved to class-internals.h.
12099
12100 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
12101
12102         * reflection.c (mono_image_create_pefile): take a file HANDLE.
12103         rather than writing to memory, write to this file. Right now,
12104         we are just writting into a buffer, and copying that. However
12105         we can avoid the buffer later.
12106
12107         (mono_dynamic_stream_reset): new function
12108
12109         * icall.c, object-internals.h: update for the above.
12110
12111 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
12112
12113         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
12114         have been using gc'd memory. First it is slower, unlikely
12115         the comment in the source code said, secondly, it increases
12116         our footprint to do it in the gc.
12117
12118         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
12119         the method so that it does not have to copy to managed code.
12120
12121 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
12122
12123         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
12124
12125 2004-11-12  Martin Baulig  <martin@localhost>
12126
12127         * reflection.c (mono_image_create_token): Allow generic method
12128         definitions here, since they may appear in an `.override'; see
12129         gen-98/gen-99 for an example.
12130
12131 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
12132
12133         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
12134         #69365.
12135
12136         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
12137         descriptive.
12138
12139 2004-11-11  Martin Baulig  <martin@ximian.com>
12140
12141         * class.c (mono_class_setup_vtable): In an explicit interface
12142         implementation, the method name now includes the arity.
12143
12144 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
12145
12146         * object.c (mono_array_full_copy): Fix warning.
12147
12148 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
12149
12150         * appdomain.c: Removed look_for_method_by_name(). Use the new method
12151         mono_class_get_method_from_name() instead.
12152         
12153         * class-internals.h: Added two new types of wrappers. 
12154         Added MonoRemotingTarget enum. Added new trampoline function type, which
12155         takes an additional MonoRemotingTarget value as parameter, so it is
12156         possible to request a trampoline for a specific target.
12157         
12158         * class.c: Added new mono_class_get_method_from_name() method.
12159         
12160         * class.h: In MonoRemoteClass, we can have now to vtables, one for
12161         general remoting sinks and one specific for cross domain calls.
12162         
12163         * debug-helpers.c: Added new wrapper names.
12164         
12165         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
12166         of a remote class.
12167         
12168         * image.c: Porperly delete value objects form the remoting invoke hashtable.
12169         
12170         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
12171         with several other methods (mono_marshal_get_xappdomain_dispatch,
12172         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
12173         and others) can generate a fast remoting wrapper for cross domain calls.
12174         More information can be found in docs/remoting.
12175         Other changes: Removed mono_find_method_by_name, and used
12176         mono_class_get_method_from_name instead.
12177         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
12178         is stored in the remoting invoke hashtable.
12179         
12180         * marshal.h: published the new method for getting the xdomain wrapper,
12181         and also added a method for getting the adequate wrapper for a given
12182         method and target.
12183         
12184         * object-internals.h, object.c: Added a couple of methods for capying and
12185         cloning arrays.
12186         Modified mono_install_remoting_trampoline, which takes the new remoting
12187         trampoline that has a remoting target as parameter.
12188         mono_class_proxy_vtable now also takes a remoting target as parameter, and
12189         will return the most suitable vtable for the target.
12190         Added mono_remote_class_vtable, which returns the vtable of a remote class
12191         (which can be the normal remoting vtable or the xdomain vtable).
12192         
12193         * threads.c: the xdomain invoke and dispatch wrappers must also be
12194         protected against interruptions.
12195
12196 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12197
12198         * icall.c: use memmove in BlockCopyInternal when the source and
12199         destination arrays are the same.
12200
12201 2004-11-09  Martin Baulig  <martin@ximian.com>
12202
12203         * class-internals.h (MonoGenericContainer): Removed `method' and
12204         `signature', replaced them with `is_method' and `is_signature'
12205         flags.  Added `context'.
12206
12207         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
12208         instead of a `MonoGenericContainer *'.
12209
12210         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
12211         for dynamic type parameters.
12212         (mono_metadata_load_generic_params): Setup `container->context'.
12213
12214         * reflection.c (mono_reflection_setup_generic_class): Setup
12215         `tb->generic_container->context'.
12216         (do_mono_reflection_bind_generic_parameters): Use
12217         mono_class_inflate_generic_type() to correctly inflate types,
12218         rather than using our own hack just for MONO_TYPE_VAR.
12219
12220 2004-11-09  Martin Baulig  <martin@ximian.com>
12221
12222         * class.c (mono_class_inflate_generic_method): Small fix; don't
12223         crash here.
12224
12225         * icall.c
12226         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
12227         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
12228         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
12229         (ves_icall_Type_BindGenericParameters): Likewise.
12230         (ves_icall_Type_get_IsGenericInstance): Likewise.
12231         (ves_icall_Type_GetGenericParameterPosition): Likewise.
12232         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
12233         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
12234         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
12235
12236 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
12237
12238         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
12239         assembly versions and public key tokens. Fixes #69113.
12240
12241 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
12242
12243         * metadata.c: fix bug introduced with the type cache changes
12244         on 2004-11-06.
12245
12246 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
12247
12248         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
12249         the MonoClass pointer instead of the token in exception clauses.
12250         * reflection.c: updates for the above and make the code not depend
12251         on the structure of MonoExceptionClause.
12252
12253 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
12254
12255         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12256         Add support for dynamic assemblies. Fixes #69114.
12257
12258         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
12259
12260 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
12261
12262         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
12263         since most only those methods use it. the code member of
12264         MonoMethodPInvoke was dead, so that can be removed too. Also,
12265         remove inline_count (again, not used), and move slot so that it
12266         can share bits with some other flags. This saves 8 bytes in the
12267         structure and gives us about 50 kb back for mcs helloworld.cs
12268
12269         * *.[ch]: Do naming changes for the above.
12270
12271         * loader.c (mono_method_get_header): Lazily init the header
12272         on first access.
12273         (mono_get_method_from_token): don't init the header here
12274         (mono_free_method): the header may never be allocated
12275
12276         Overall, this saves 150 kb of unmanaged allocations
12277         for mcs helloworld.cs. That accounts for 10% of the unmanaged
12278         memory at runtime.
12279         
12280         * loader.c, loader.h (mono_method_get_header): new accessor.
12281
12282         * *.[ch]: use the above method. Prepares us to lazily load
12283         the header.
12284
12285         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
12286         three warnings, which are actual bugs (see 69206).
12287
12288         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
12289         unused. Saves a cool 4 bytes / method.
12290
12291 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
12292
12293         * metadata.c (builtin_types): Add types for System.Object here.
12294         (mono_metadata_parse_type_full): Cache MonoType*'s that are
12295         for a class or valuetype from klass->this_arg or klass->byval_arg.
12296
12297         On mcs for a hello world, this gets us down from 21836 MonoType's
12298         to 14560.
12299
12300         (mono_metadata_free_type): Account for the above change.
12301
12302 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
12303
12304         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
12305         exception instead of asserting if name is null.
12306         (ves_icall_System_AppDomain_GetData): Ditto.
12307
12308 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
12309
12310         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
12311         EnumBuilder.
12312
12313         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
12314         Return NULL when the domain does not have entry_assembly set.
12315
12316         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
12317         Add a 'resource_modules' argument.
12318         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
12319
12320         * reflection.c (mono_reflection_create_runtime_class): Move setting
12321         of wastypebuilder here, so mono_get_type_object () returns a MonoType
12322         for enums too.
12323
12324         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
12325         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
12326         Throw an ArgumentNullException if 'ptr' is null.
12327
12328         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
12329         assemblies here. Fixes #69020.
12330
12331 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
12332
12333         * reflection.c (build_compressed_metadata): Fix the previous patch for
12334         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
12335         the stack.
12336
12337 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
12338
12339         * assembly.c (mono_assembly_names_equal): Allow a match if one of
12340         the cultures is false. Fixes #69090.
12341
12342         * reflection.c (build_compressed_metadata): Fix invalid memory read 
12343         detected by valgrind.
12344         
12345         * reflection.c (mono_reflection_get_type): Avoid triggering a 
12346         TypeResolve multiple times for the same type. Fixes #65577.
12347
12348 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
12349
12350         * marshal.c: Avoid using ldftn to call managed functions. It is
12351         much slower than just a call.
12352
12353         * reflection.c (mono_module_get_object): free the basename we
12354         allocate here from glib.
12355         
12356         * reflection.c (ensure_runtime_vtable): make sure to free
12357         overrides.  Also, we were allocating an array of MonoMethod not an
12358         array of MonoMethod*.
12359
12360         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
12361
12362         * image.c (mono_image_close): free image->guid here.
12363
12364 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
12365
12366         * reflection.c: Fix some spec conformance issues with the PE file
12367         structures so mcs compiled apps run on the Net 2.0 beta.
12368
12369 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
12370
12371         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
12372         Implement this. Fixes #67264.
12373
12374         * debug-helpers.h debug-helpers.c marshal.c: Move 
12375         mono_find_method_by_name to debug-helpers.c.
12376
12377 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
12378
12379         * object.c (mono_release_type_locks): type_initialization_hash is
12380         a GHashTable.
12381
12382         * reflection.c object.c object-internals.h: Fix warnings.
12383
12384         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
12385         without accessors. Fixes #61561.
12386
12387         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
12388         application base from the root domain if not set. Fixes #65641.
12389         (mono_runtime_init): Fix warning.
12390
12391 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12392
12393         * appdomain.c: call mono_thread_pool_init.
12394         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
12395         of worker threads based on the number of CPUs and the environment
12396         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
12397         for non-windows (windows) systems.
12398
12399 2004-10-27  Chris Toshok  <toshok@ximian.com>
12400
12401         * mono-debug-debugger.c (write_class): don't call mono_class_init
12402         here, as even with the check for (!klass->init_pending), we get
12403         into a situation where we're hitting cycles in class
12404         initialization.  Fixes #68816.
12405
12406 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
12407
12408         * image.c: Avoid overwriting values in the loaded_images_hash when an
12409         assembly is loaded multiple times. Fixes #61152.
12410
12411         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
12412         so multiple satellite assemblies for the same name can be loaded.
12413         Fixes #68259.
12414
12415         * mono_domain_assembly_preload: Actually return the loaded assembly, 
12416         not NULL.
12417
12418         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
12419         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
12420
12421         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
12422         pending finalizers are not invoked after the appdomain has been 
12423         unloaded. Fixes #67862.
12424
12425 2004-10-22  Martin Baulig  <martin@ximian.com>
12426
12427         * mono-debug-debugger.c
12428         (mono_debugger_runtime_invoke): Don't box valuetypes.
12429
12430 2004-10-22  Chris Toshok  <toshok@ximian.com>
12431
12432         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
12433         don't hide private methods.
12434
12435 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
12436
12437         * icall.c: Allows the runtime to "share" (when known) the public key
12438         token of an assembly. This avoid the need to recalculate the token 
12439         (from the public key) in managed code.
12440
12441 2004-10-21  Chris Toshok  <toshok@ximian.com>
12442
12443         * debug-helpers.c (append_class_name): argh, revert last patch.
12444         
12445 2004-10-21  Chris Toshok  <toshok@ximian.com>
12446
12447         * debug-helpers.c (append_class_name): use '+' as the delimiter,
12448         not '/', so that it matches what the debugger uses to look up
12449         methods.
12450
12451 2004-10-21  Martin Baulig  <martin@ximian.com>
12452
12453         * mono-debug-debugger.c (mono_debugger_throw_exception): New
12454         public method; this is called each time an exception is thrown and
12455         allows the debugger to use exception catch points.
12456
12457 2004-10-21  Martin Baulig  <martin@ximian.com>
12458
12459         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
12460         the stack pointer and the exception object in some struct and pass
12461         that to the debugger.
12462
12463 2004-10-21  Chris Toshok  <toshok@ximian.com>
12464
12465         * mono-debug-debugger.c (do_write_class): add instance/static
12466         event support.  We don't expose "raise" or "other" yet.
12467         (event_is_static): new method.
12468
12469 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
12470
12471         * mono-debug-debugger.c
12472         (mono_debugger_handle_exception): Remove
12473         bogus return value for fussy compilers.
12474
12475 2004-10-20  Martin Baulig  <martin@ximian.com>
12476
12477         * mono-debug-debugger.c
12478         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
12479         (mono_debugger_handled_exception): Likewise.
12480
12481 2004-10-20  Martin Baulig  <martin@ximian.com>
12482
12483         * mono-debug-debugger.h (MonoDebuggerEvent): Added
12484         MONO_DEBUGGER_EVENT_EXCEPTION.
12485
12486         * mono-debug-debugger.c (mono_debugger_handle_exception): New
12487         public function to send the debugger a notification for an
12488         exception and inform it about a catch/finally clause.
12489
12490 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
12491
12492         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
12493         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
12494         fix 2.95 build. 
12495
12496         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
12497
12498 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
12499
12500         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
12501         marshalled as [In,Out]. Fixes #58325.
12502
12503 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
12504
12505         * reflection.c (mono_method_body_get_object): Implement some fields.
12506
12507 2004-10-12  Martin Baulig  <martin@ximian.com>
12508
12509         * reflection.c (mono_reflection_bind_generic_parameters): Small
12510         fix, correctly retrieve our parent from a generic instance.
12511
12512 2004-10-12  Martin Baulig  <martin@ximian.com>
12513
12514         * metadata.c (mono_metadata_generic_param_equal): We always have
12515         an owner.
12516
12517         * class.c
12518         (mono_class_from_generic_parameter): We need to have an owner.
12519         (my_mono_class_from_generic_parameter): Likewise.
12520
12521         * reflection.c (mono_reflection_setup_generic_class): Renamed to
12522         mono_reflection_create_generic_class() and added a new
12523         mono_reflection_setup_generic_class().  
12524         (mono_reflection_initialize_generic_param): If we're a nested
12525         generic type and inherited from the containing class, set our
12526         owner to the outer class.
12527
12528 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
12529
12530         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
12531
12532         * reflection.c (mono_method_body_get_object): New function to create
12533         a MethodBody object.
12534
12535         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
12536
12537 2004-10-11  Martin Baulig  <martin@ximian.com>
12538
12539         * metadata.c (_mono_metadata_type_equal): Renamed to
12540         do_mono_metadata_type_equal() and made static.
12541
12542 2004-10-11  Martin Baulig  <martin@ximian.com>
12543
12544         * appdomain.c: Bump corlib version number to 28.
12545
12546 2004-10-10  Martin Baulig  <martin@ximian.com>
12547
12548         * class-internals.h
12549         (MonoGenericInst): Added `MonoGenericContainer *container'.
12550         (MonoGenericMethod): Likewise.
12551         (MonoGenericContext): Likewise.
12552         (MonoGenericParam): Added `MonoGenericContainer *owner'.
12553
12554         * metadata.c
12555         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
12556         (do_mono_metadata_parse_generic_inst): Likewise.
12557         (mono_metadata_parse_type_full): New public method.  This is the actual
12558         mono_metadata_parse_type() implementation - with an additional
12559         `MonoGenericContainer *' argument.
12560         (mono_metadata_parse_array_full): Likewise.
12561         (mono_metadata_parse_signature_full): Likewise.
12562         (mono_metadata_parse_method_signature_full): Likewise.
12563         (mono_metadata_parse_mh_full): Likewise.
12564         (mono_type_create_from_typespec): Likewise.
12565         (mono_metadata_interfaces_from_typedef_full): New public method;
12566         this is similar to the other _full() methods, but we take a
12567         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
12568         (mono_metadata_parse_generic_param): Take an additional
12569         `MonoGenericContainer *' argument and lookup the MonoGenericParam
12570         from that container.
12571         (mono_metadata_generic_param_equal): New static method to compare
12572         two type parameters.
12573         (_mono_metadata_type_equal): New static method; takes an
12574         additional `gboolean signature_only' argument - if true, we don't
12575         compare the owners of generic parameters.
12576         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
12577         with a TRUE argument - do a signature-only comparision.
12578
12579         * loader.c: Use the new _full() methods and pass the
12580         MonoGenericContainer to them.
12581
12582         * object-internals.h (MonoReflectionTypeBuilder): Added
12583         `MonoGenericContainer *generic_container' field.
12584         (MonoReflectionMethodBuilder): Likewise.
12585
12586 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
12587
12588         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
12589         case initial images of dynamic assemblies.
12590
12591         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
12592
12593         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
12594
12595         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
12596         length of event->other array.
12597         (typebuilder_setup_events): Ditto.
12598
12599         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
12600         'assembly_by_name' and add an 'assemblies' list.
12601
12602         * assembly.h assembly.c: Add a new search hook for determining whenever
12603         an assembly is already loaded. Use this instead of searching in the
12604         loaded_assemblies list.
12605
12606         * domain.c appdomain.c: Implement the new search hook so loaded 
12607         assemblies are now scoped by appdomain. Fixes #67727.
12608
12609 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
12610
12611         * threads.c (mono_thread_attach): Initialize synch_lock field so
12612         mono_thread_detach works again.
12613
12614         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
12615         'lib' too. Fixes #63130.
12616
12617 2004-10-06  Jackson Harper  <jackson@ximian.com>
12618
12619         * culture-info-tables.h: regenerated.
12620
12621 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
12622
12623         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
12624         implemented by other interfaces in the result. Fixes #65764.
12625         
12626         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12627         Handle unloadable modules without crashing.
12628
12629         * image.c (load_modules): Revert the previous patch since modules must
12630         have a fixed index inside the array.
12631         
12632         * image.c (load_modules): Don't include native modules in the modules
12633         array.
12634
12635 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
12636
12637         * reflection.h: Add param_defaults field.
12638
12639         * reflection.c: Add support for parameter defaults in dynamic methods.
12640         Fixes #64595.
12641
12642         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
12643         an empty string when a type has no namespace. Fixes #64230.
12644
12645 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
12646
12647         * tabledefs.h: Added "internal" security actions to support non-CAS
12648         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
12649         Note: they do not seems to be used anymore in 2.0 (new metadata format)
12650
12651 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
12652
12653         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
12654         constructor of abstract class. Fixes #61689.
12655
12656 2004-10-04  Martin Baulig  <martin@ximian.com>
12657
12658         * class-internals.h (MonoGenericContainer): New type.
12659         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
12660         `MonoGenericContainer *generic_container'.
12661         (MonoClass): Replaced `gen_params' and `num_gen_params' with
12662         `MonoGenericContainer *generic_container'.
12663
12664         * metadata.c (mono_metadata_load_generic_params): Return a
12665         `MonoGenericContainer *' instead of a `MonoGenericParam *';
12666         removed the `num' argument.
12667
12668 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
12669
12670         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
12671         for dynamic images.
12672
12673         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
12674         machine fields.
12675
12676         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
12677
12678         * reflection.c: Save pe_kind and machine values into the generated
12679         image file.
12680
12681         * appdomain.c: Bump corlib version number.
12682
12683         * object-internals.h: Reorganize layout of LocalBuilder.
12684
12685         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
12686         New helper function.
12687
12688         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
12689         created MonoType for dynamic types. Fixes #66180.
12690
12691 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
12692
12693         * threadpool.c: the ares hashtable needs a critical section around it.
12694         this prevents some nasty segfaults
12695
12696 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
12697
12698         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
12699         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
12700         bug 67324).
12701         
12702 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
12703
12704         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
12705         
12706 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
12707
12708         * image.c: Always canonicalize image file names, to avoid loading
12709         the same assembly twice when referenced using a relative path.
12710
12711 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
12712
12713         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
12714
12715         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
12716
12717         * marshal.c: Fix warnings.
12718
12719 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
12720
12721         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
12722         attempting to marshal the delegate_trampoline as the method_addr.
12723         This patch has a static hashtable of marshalled delegates so that 
12724         we can map delegate_trampoline addresses back to delegates.  This
12725         allows a delegate passed to managed code to be passed back into native
12726         code.  Fixes #67039
12727
12728 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
12729
12730         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
12731
12732         * reflection.c (method_encode_code): Align method headers properly.
12733         Fixes #66025.
12734
12735 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
12736
12737         * marshal.c: In the runtime invoke wrapper, reset the abort
12738         exception if it is cached. This avoids the automatic rethrowal of 
12739         the exception after the catch of the wrapper. Also check for pending
12740         interruptions before calling the managed method. This is done using
12741         the new method emit_thread_force_interrupt_checkpoint, since the
12742         normal checkpoint method is ignored when running the invoke wrapper.
12743         * object.c: If the abort exception is rethrown, set the abort_exc
12744         field of the thread, so it will be rethrown aftere every catch.
12745         * threadpool.c: Only run an interruption checkpoint if what has been
12746         requested is a stop of the thread (aborts will be ignored).
12747         * threads.c: By default, a thread will now never be interrumped while
12748         running the runtime invoke wrapper (this ensures that runtime_invoke
12749         will always return to the caller if an exception pointer is provided).
12750         There is a new special method mono_thread_force_interruption_checkpoint()
12751         to force an interruption checkpoint even if running a protected
12752         wrapper, which is used by the same runtime invoke wrapper to do a check
12753         at a safe point.
12754
12755 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
12756
12757         * object.c, object-internals.h: Implemented mono_release_type_locks,
12758         which releases the cctor locks held by a thread.
12759         * threads.c, threads.h: In thread_cleanup, release cctor locks held
12760         by a thread. Added mono_thread_exit() method to be used to safely stop
12761         a thread.
12762
12763 2004-09-28  Raja R Harinath  <rharinath@novell.com>
12764
12765         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12766         Move null check before dereference.  Avoid indexing beyond the end
12767         of the 'modules' array.
12768
12769 2004-09-28  Raja R Harinath  <rharinath@novell.com>
12770
12771         * metadata-internals.h (MonoImage): Add module_count field.
12772         * image.c (load_modules): Set image->module_count.
12773         (mono_image_load_file_for_image): Use image->module_count.
12774         * reflection.c (mono_image_load_module): Append to image->modules array 
12775         of dynamic assembly.
12776         (mono_module_get_object): Fix loop to actually increment index.
12777         Use image->module_count.
12778         * assembly.c (mono_assembly_load_references): Use image->module_count.
12779         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
12780         Likewise.
12781
12782 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
12783
12784         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
12785         Avoid assert on generic types.
12786
12787 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
12788
12789         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
12790
12791         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
12792
12793         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
12794         function to convert a MarshalSpec structure to its managed counterpart.
12795
12796         * reflection.c: Fix warnings.
12797         
12798         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
12799         field.
12800
12801         * icall.c (mono_create_icall_signature): Fix build.
12802
12803 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
12804
12805         * icall.c: Add MakePointType icall.
12806
12807         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
12808         warnings.
12809
12810 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12811
12812         * threadpool.c: reuse allocated slots in the queue.
12813
12814 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
12815
12816         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
12817
12818         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
12819
12820         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
12821         previous change.
12822
12823         * tabledefs.h: Add constants for pinvoke attributes BestFit and
12824         ThrowOnUnmappableChar.
12825
12826         * icall.c (ves_icall_Type_GetPacking): New icall.
12827
12828 2004-09-24  Martin Baulig  <martin@ximian.com>
12829
12830         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
12831
12832 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12833
12834         * appdomain.c:
12835         (mono_domain_set): allow setting a domain that is being unloaded.
12836         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
12837         being unloaded.
12838
12839 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
12840
12841         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
12842         the GetCustomAttributes icall.
12843
12844 2004-09-23  Martin Baulig  <martin@ximian.com>
12845
12846         * object-internals.h (MonoReflectionGenericParam): Replaced
12847         'has_ctor_constraint', `has_reference_type' and `has_value_type'
12848         with `guint32 attrs'.
12849
12850 2004-09-23  Martin Baulig  <martin@ximian.com>
12851
12852         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
12853
12854 2004-09-23  Martin Baulig  <martin@ximian.com>
12855
12856         * object-internals.h (GenericParameterAttributes): New enum.
12857
12858 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
12859
12860         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
12861         
12862         * class.c (init_events): Fill out event->other field.
12863
12864         * class.c: Fix warnings.
12865
12866         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
12867
12868 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
12869
12870         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
12871         walk which doesn't supply the IL offset.
12872
12873 2004-09-22  Martin Baulig  <martin@ximian.com>
12874
12875         * reflection.c (mono_reflection_setup_internal_class): If we're
12876         System.ValueType, System.Object or System.Enum, set
12877         `klass->instance_size' and create the vtable.
12878         (mono_reflection_create_internal_class): If we're an enum type,
12879         get the base class from our current corlib.
12880
12881 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
12882
12883         * reflection.h (MonoResolveTokenError): New type.
12884
12885         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
12886         icall.
12887
12888         * icall.c: Add an 'error' argument to the ResolveToken icalls.
12889
12890 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
12891
12892         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
12893         Support also calling constructors, but only for already allocated objects.
12894
12895 2004-09-17  Geoff Norton <gnorton@customerdna.com>
12896
12897         * reflection.c (type_get_qualified_name): If the klass is null
12898         return the typename to avoid a NullRefEx.
12899         (encode_cattr_value): Get the qualified name of the boxed type,
12900         not the underlying enumtype.  Fixes #62984.
12901
12902 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
12903
12904         * marshal.c: Fix problems with previous checkin.
12905
12906 2004-09-21    <vargaz@freemail.hu>
12907
12908         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
12909         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
12910
12911         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
12912
12913 2004-09-21  Geoff Norton <gnorton@customerdna.com>
12914
12915         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
12916         should only return a type for pointers, arrays, and passbyref types.
12917         Fixes bug #63841.
12918
12919 2004-09-21  Martin Baulig  <martin@ximian.com>
12920
12921         * domain.c (mono_debugger_check_runtime_version): New public
12922         function.
12923
12924         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
12925
12926 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
12927
12928         * reflection.c: Added missing sort to the declarative security 
12929         attributes table. MS implementation stops seeing the attributes if the
12930         token number regress in the table (as shown by ildasm and permview).
12931
12932 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
12933
12934         * object-internals.h (MonoReflectionModule): Add 'token' field.
12935         
12936         * reflection.c (mono_reflection_get_token): Add support for Module
12937         and Assembly.
12938         (mono_module_get_object): Set 'token' field.
12939         (mono_module_file_get_object): Set 'token' field.
12940
12941         * icall.c: Add new Assembly and Module icalls.
12942
12943         * appdomain.c: Bump corlib version.
12944
12945 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
12946
12947         * loader.h loader.c class.h class.c: Add helper functions for obtaining
12948         tokens of metadata objects.
12949
12950         * reflection.h reflection.c (mono_reflection_get_token): New function
12951         to obtain the token of a metadata object.
12952
12953         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
12954
12955 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
12956
12957         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
12958         
12959         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
12960
12961 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
12962
12963         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
12964         * object-internals.h: Added 3 MonoArray* members to MonoReflection
12965         AssemblyBuilder to access the permissions set in the class lib.
12966         * reflection.c: Added security attributes encoding step in 
12967         mono_image_build_metadata.
12968         * tabledefs.h: Added new security actions defined in 2.0:
12969         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
12970
12971 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
12972
12973         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
12974         macro parameter.
12975
12976 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
12977  
12978         * locales.c: nullify the ICU_collator member of CompareInfo when it is
12979           finalized. There where random SIGSEVs at program termination, when
12980           an object being finalized was trying to do a string comparison and
12981           the current culture was already finalized.
12982  
12983 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12984
12985         * threads.c: call thread_cleanup before finishing the thread if we get
12986         there.
12987
12988 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
12989
12990         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
12991         assemblies from the parent. Fixes #65665.
12992
12993 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
12994
12995         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
12996         modifiers.
12997
12998 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
12999
13000         * reflection.h: add prototype for mono_get_dbnull_object
13001         * reflection.c: add prototypes for get_default_param_value_blobs 
13002         and mono_get_object_from_blob for fussier compilers
13003
13004 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
13005  
13006         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
13007         false deadlock checks in class initialization.
13008  
13009 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
13010
13011         * image.c (mono_image_addref): Fix comment.
13012
13013         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
13014         possible.
13015
13016 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
13017
13018         * reflection.c (mono_param_get_objects): Modified to return
13019         ParameterInfo.DefaultValue object.
13020
13021         (get_default_param_value_blobs):
13022         (mono_get_object_from_blob):
13023         (mono_get_dbnull_object): New helper routines. 
13024
13025         * object.c (mono_get_constant_value_from_blob): New helper routine
13026         carved out from get_default_field_value ()
13027
13028         * object-internals.h (mono_get_constant_value_from_blob): Added
13029         function declaration.
13030
13031 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
13032
13033         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
13034         referenced assemblies. Fixes #62135.
13035
13036         * exception.h exception.c (mono_get_exception_file_not_found2): New
13037         helper function.
13038
13039 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
13040
13041         * class.h class.c: Add mono_type_get_underlying_type ().
13042
13043 2004-09-09  Geoff Norton <gnorton@customerndna.com>
13044
13045         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
13046         Fix GetTypes() to support dynamically created assemblies.
13047
13048 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
13049
13050         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
13051         
13052         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
13053         previous patch.
13054
13055         * reflection.h reflection.c loader.c: Allow dynamic construction of
13056         pinvoke methods. Fixes #65571.
13057         
13058         * reflection.c (mono_reflection_get_type): Revert previous change since
13059         it causes regressions.
13060
13061 2004-09-08  Martin Baulig  <martin@ximian.com>
13062
13063         * class.c (class_compute_field_layout): Don't call
13064         mono_class_layout_fields() for open generic instances.
13065
13066 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
13067         * threads.c appdomain.c: fix typo in GC macro
13068
13069 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13070
13071         * threads.c: don't call mono_thread_detach() in start_wrapper(),
13072         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
13073
13074 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
13075
13076         * image.c (mono_image_close): Applied patch from 
13077         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
13078         assembly is loaded multiple times from data.
13079         
13080         * image.c (mono_image_open): Fix warning.
13081
13082 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13083
13084         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
13085         once. Fixes #58334.
13086         
13087         * reflection.c (mono_reflection_create_runtime_class): Initialize
13088         klass->nested_classes. Fixes #61224.
13089
13090 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
13091
13092         * threads.c: sched_yield() on exit, to allow threads to quit.
13093
13094 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13095
13096         * object.c (mono_unhandled_exception): Remove leftover debug code.
13097
13098 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
13099
13100         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
13101
13102 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13103
13104         * marshal.c (emit_marshal_array): Really null terminate string arrays.
13105         
13106         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
13107
13108 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13109
13110         * marshal.c (emit_marshal_array): Null terminate string arrays.
13111         
13112         * marshal.c (raise_auto_layout_exception): Fix warning.
13113
13114         * reflection.c (mono_param_get_objects): Initialize the default value
13115         with DBNull.Value, not null. Fixes #62123.
13116
13117 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
13118
13119         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
13120         throw an exception with a cute explanation.
13121
13122 2004-09-06  Dick Porter  <dick@ximian.com>
13123
13124         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
13125         Close the new process's thread handle, as we don't use it.  The
13126         handle stays around forever otherwise.
13127
13128 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13129
13130         * object.c (arith_overflow): Fix warning.
13131
13132         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
13133         calling conventions in method refs. Fixes #65352.
13134
13135         * reflection.c: Fix warnings.
13136
13137 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13138
13139         * icall.c: Add a new icall for Array.Clear
13140
13141 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13142
13143         * object.c: When allocating an array, we have to throw
13144         an overflow exception if any of the lengths are < 0.
13145
13146 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13147
13148         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
13149         properly. Also move implementation of string array marshalling to 
13150         managed code. Fixes #42316.
13151
13152 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13153
13154         * assembly.c: provide more information when loading an assembly fails.
13155
13156 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13157
13158         * filewatcher.c: don't expect the development fam package to be
13159         installed.
13160
13161 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
13162
13163         * marshal.c: Make a copy of the signature cookie since it will be
13164         freed by the caller.
13165         
13166         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
13167
13168         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
13169
13170         * metadata.c (mono_metadata_free_marshal_spec): New function to free
13171         marshal specs.
13172
13173         * marshal.c: More refactoring.
13174         
13175         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
13176         smaller functions.
13177
13178 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
13179
13180         * object.c: In mono_message_invoke, fill the output parameter array after
13181           calling the managed method (it was done before the call). This fixes
13182           bug #59299.
13183
13184 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
13185
13186         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
13187         as well.
13188
13189 2004-09-02  Martin Baulig  <martin@ximian.com>
13190
13191         * class.c (mono_class_instance_size): Don't allow generic type
13192         definitions or open generic instances.
13193         (mono_class_array_element_size): If we're a value type, call
13194         mono_class_instance_size() on the original class.
13195
13196         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
13197         handle generic instances.
13198
13199         * mono-debug-debugger.c (write_type): Handle generic instances
13200         like classes.
13201
13202 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
13203
13204         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
13205         the allocation request fails. Fixes #65089.
13206
13207         * object.c (mono_runtime_free_method): Do not call mono_free_method.
13208         
13209         * object.c (mono_runtime_free_method): New function to free a dynamic
13210         method.
13211
13212         * marshal.c (mono_delegate_free_ftnptr): New function to free the
13213         delegate trampoline.
13214
13215         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
13216         with hasthis as dynamic,
13217
13218         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
13219
13220         * domain.c (mono_jit_info_table_remove): New function to remove an
13221         entry from the jit info table.
13222
13223         * class-internals.h (MonoMethod): Add 'dynamic' field.
13224
13225         * loader.c: Fix warnings.
13226
13227 2004-09-01  Martin Baulig  <martin@ximian.com>
13228
13229         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
13230         instead of mono_debugger_lock() because the latter one is a no-op
13231         unless running in the debugger.
13232
13233 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
13234
13235         * class.c (class_compute_field_layout): Classes with auto-layout or
13236         reference fields are not blittable.
13237         
13238 2004-09-01  Dick Porter  <dick@ximian.com>
13239
13240         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
13241         mono_image_get_filename() to get the assembly location.
13242
13243         * icall.c:
13244         * metadata.h: Fix compile warnings
13245
13246 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
13247
13248         * class.c (class_compute_field_layout): System.Object is blittable.
13249
13250         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
13251         as in/out. Fixes #59909.
13252
13253 2004-09-01  Martin Baulig  <martin@ximian.com>
13254
13255         * metadata.h (MONO_TYPE_ISREFERENCE): Call
13256         mono_metadata_generic_inst_is_valuetype() if we're a generic
13257         instance to check whether our underlying type is a reference type.
13258
13259 2004-09-01  Martin Baulig  <martin@ximian.com>
13260
13261         * metadata.c (mono_type_size): If we're a generic instance, call
13262         mono_class_value_size() for value types.
13263
13264 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
13265
13266         * marshal.c: Implement more custom marshalling functionality. Fixes
13267         #64915.
13268
13269 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
13270
13271         * mono-debug.c, debug-mono-symfile.c: add some locking love.
13272
13273 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
13274
13275         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
13276
13277         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
13278
13279         * icall.c: Fix some warnings.
13280
13281         * threads.c (abort_appdomain_thread): Fix unref errors.
13282         (mono_thread_current): Fix THREAD_DEBUG define.
13283
13284 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
13285
13286         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
13287
13288         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
13289
13290 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
13291
13292         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
13293         string arrays.
13294
13295 2004-08-28  Martin Baulig  <martin@ximian.com>
13296
13297         * metadata.c
13298         (mono_metadata_generic_inst_is_valuetype): New public function.
13299
13300         * metadata.h (MONO_TYPE_ISSTRUCT): Call
13301         mono_metadata_generic_inst_is_valuetype() if we're a generic
13302         instance to check whether our underlying type is a valuetype.
13303
13304 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
13305
13306         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
13307         #63768.
13308
13309 2004-08-25  Martin Baulig  <martin@ximian.com>
13310
13311         * loader.c (mono_get_method_from_token): Abstract methods can also
13312         be generic and thus have type parameters.
13313
13314         * metadata-internals.h
13315         (MonoDynamicImage): Added `GPtrArray *gen_params'.
13316
13317         * reflection.c (mono_image_get_generic_param_info): Don't create a
13318         metadata row, just add an entry to the `gen_params' array.
13319         (build_compressed_metadata): Sort the `gen_params' array and then
13320         actually create the metadata.
13321
13322 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13323
13324         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
13325
13326 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
13327
13328         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
13329
13330 2004-08-24  Martin Baulig  <martin@ximian.com>
13331
13332         * class.cs (mono_class_is_subclass_of): Like an interface, a
13333         generic instance also derives from System.Object.
13334
13335 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
13336
13337         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
13338         custom modifiers to be in any order. Fixes #61990.
13339
13340 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
13341
13342         * object.c: Register mono_object_new_fast icall.
13343         
13344         * object.c (mono_class_get_allocation_ftn): Return to calling
13345         mono_object_new_fast, since it seems faster to compute the object 
13346         size in unmanaged code than passing it as a parameter.
13347
13348         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
13349
13350         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
13351         this function with Boehm as the oom handler, so we don't have to check
13352         the result of GC_malloc.
13353
13354         * object.c: Remove checks for oom.
13355
13356         * object.h object.c (mono_class_get_allocation_ftn): New function to
13357         return the icall which can be used to allocate an instance of a given
13358         class. 
13359
13360         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
13361
13362         * class-internals.h: Add 'enabled' field.
13363
13364 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
13365
13366         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
13367
13368 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
13369         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
13370         value 0x0010.
13371
13372 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
13373
13374         * appdomain.c: use the Tls function for appdomain too,
13375         at Zoltan's request. Actually return in mono_context_get
13376
13377         * appdomain.c, profiler.c, threads.c: use __thread
13378
13379 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
13380
13381         * appdomain.c threads.c: Call GC_CreateThread on windows.
13382
13383         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
13384         multiple libraries since this don't work on windows.
13385
13386 2004-08-18  Martin Baulig  <martin@ximian.com>
13387
13388         * class-internals.h
13389         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
13390         MonoMethodHeader.
13391
13392         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
13393         MonoMethodNormal since we also need it for abstract and interface
13394         methods.
13395
13396         * reflection.c
13397         (build_compressed_metadata): Sort the GenericParam table.
13398         (mono_image_create_token): Added `gboolean create_methodspec'
13399         argument; this is false when generating a MethodImpl token.
13400         (reflection_methodbuilder_to_mono_method): Abstract and interface
13401         methods may also have generic parameters.
13402
13403 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
13404
13405         * appdomain.c: thread local alloc
13406
13407 2004-08-17  Martin Baulig  <martin@ximian.com>
13408
13409         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
13410
13411         * icall.c
13412         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
13413         argument.
13414
13415         * class.c (mono_type_get_full_name): New public function.
13416         (mono_type_get_name): Don't include the type arguments.
13417
13418 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
13419
13420         * Makefile.am: Build static versions of libmetadata and libmonoruntime
13421         for inclusion into the mono executable.
13422
13423 2004-08-16  Martin Baulig  <martin@ximian.com>
13424
13425         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
13426         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
13427
13428 2004-08-14  Martin Baulig  <martin@ximian.com>
13429
13430         * class.c (dup_type): Also copy the `byref' field.
13431
13432 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
13433
13434         * reflection.c (create_dynamic_mono_image): Revert the last change 
13435         since it breaks bootstrap.
13436
13437 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
13438
13439         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
13440
13441         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
13442         not free them with g_free.
13443
13444 2004-08-11  Martin Baulig  <martin@ximian.com>
13445
13446         * reflection.c (mono_reflection_setup_internal_class): Also call
13447         mono_class_setup_mono_type() if we already have a `tb->type.type'.
13448
13449 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
13450
13451         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
13452         called during default (first) AppDomain creation. Keep track of
13453         Evidence when loading assemblies.
13454
13455 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
13456
13457         * opcodes.c, opcodes.h: reduce runtime relocations.
13458
13459 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
13460
13461         * culture-info.h, locales.c: fixes and chages to sue the new
13462         optimized format of the locale data.
13463         * culture-info-tables.h: regenerated.
13464
13465 2004-08-06  Geoff Norton <gnorton@customerdna.com>
13466         
13467         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
13468
13469 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
13470
13471         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
13472         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
13473         * domain-internals.h: icall declaration.
13474         * icall.c: icall registration.
13475         * object-internals.h: New fields in MonoAssembly for CAS.
13476
13477 2004-08-05  Duncan Mak  <duncan@ximian.com>
13478
13479         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
13480         CEE_LDELEM_ANY.
13481
13482 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
13483
13484         * reflection.c: fix to deal with object[] arrays in custom ctors
13485         (bug #62550).
13486
13487 2004-08-05  Martin Baulig  <martin@ximian.com>
13488
13489         * class.c (mono_class_array_element_size): Added support for
13490         generic instances and correctly handle "recursive" types.
13491
13492 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
13493
13494         * assembly.c: Fix warnings.
13495
13496 2004-08-04  Martin Baulig  <martin@ximian.com>
13497
13498         * class.c
13499         (mono_type_get_name_recurse): Added `gboolean include_arity'
13500         argument specifying whether or not we should include the generic
13501         arity in the type name.
13502         (_mono_type_get_name): New static function.
13503         (mono_class_setup_vtable): If we're a generic instance, don't
13504         include the generic arity in the names of explicit method
13505         implementations.        
13506
13507 2004-08-03  Martin Baulig  <martin@ximian.com>
13508
13509         * class.c (mono_type_get_name_recurse): Enclose the generic type
13510         arguments in `<', '>'.
13511
13512 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13513
13514         * gc.c: make GC warning messages use the trace API, they are just
13515         noise to most of the users.
13516
13517 2004-08-03  Martin Baulig  <martin@ximian.com>
13518
13519         * debug-mono-symfile.c (read_string): Correctly read the string.
13520
13521 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
13522
13523         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
13524         
13525         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
13526         icalls.
13527         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
13528
13529 2004-07-30  Martin Baulig  <martin@ximian.com>
13530
13531         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
13532         Reflect latest symbol writer changes.   
13533
13534 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13535
13536         * object.c: always create an object if null is passed
13537         to Invoke() where a valuetype is expected.
13538
13539 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
13540
13541         * marshal.c (mono_marshal_init): make managed
13542         signatures match native ones better for 64bits.
13543
13544 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13545
13546         * appdomain.c: hack to build correctly the private bin path on windows.
13547         Fixes bug #61991.
13548
13549 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
13550
13551         * assembly.c: Load mscorlib from the correct framework directory
13552           (mono/<version>/mscorlib.dll).
13553         * appdomain.h: Added prototypes for new functions.
13554         * internals.h: Added some prototypes.
13555         * domain.c: When initializing the runtime, get from the executable and
13556           the configuration files the runtime version that the app supports.
13557           Added support methods for reading app.exe.config. Added list of versions
13558           supported by the JIT. Added two new methods: mono_init_from_assembly,
13559           which initializes the runtime and determines the required version from
13560           the provided exe file, and mono_init_version, which initializes
13561           the runtime using the provided version.
13562         * icall.c: Get machine.config from version-specific directory.
13563         * reflection.c: When generating an image, embed the version number
13564           of the current runtime.
13565
13566 2004-07-28  Dick Porter  <dick@ximian.com>
13567
13568         * socket-io.c
13569         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
13570         returned sockaddr size before creating the remote address object.
13571         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
13572         61608.
13573
13574 2004-07-28  Dick Porter  <dick@ximian.com>
13575
13576         * locales.c (string_invariant_compare_char): Fix invariant char
13577         compares between upper and lower cases.  Fixes bug 61458.
13578
13579 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
13580         
13581         * marshal.c: actually cache stelem.ref wrappers.
13582         
13583 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
13584
13585         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
13586         sections and remove the mono_cli_rva_map () function.
13587
13588 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
13589
13590         * debug-mono-symfile.c: fix one more endianess issue, from a patch
13591         by Geoff Norton (<gnorton@customerdna.com>).
13592
13593 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13594
13595         * class.c: fix class loads for pointer types (typeof(int) !=
13596         typeof(int*)).
13597
13598 2004-07-27  Martin Baulig  <martin@ximian.com>
13599
13600         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
13601         reading the debugging information from an external ".mdb" file.
13602
13603 2004-07-24  Martin Baulig  <martin@ximian.com>
13604
13605         * reflection.c (mono_image_get_type_info): Only write a class
13606         layout entry if we actually have a size or a packing size.
13607
13608 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
13609
13610         * reflection.c (type_get_fully_qualified_name): 
13611         insert cast to get type checking of ?: with non-gcc compilers
13612
13613 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
13614
13615         * rand.c: use g_getenv for both lookups of
13616         MONO_EGD_SOCKET
13617
13618 2004-07-17  Martin Baulig  <martin@ximian.com>
13619
13620         * reflection.c (mono_reflection_bind_generic_method_parameters):
13621         Set `gmethod->reflection_info'.
13622
13623 2004-07-17  Martin Baulig  <martin@ximian.com>
13624
13625         * class.c (mono_class_create_from_typedef): Insert the newly
13626         created class into the hash table before computing the interfaces
13627         since we could be called recursively.
13628
13629 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
13630
13631         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
13632         function to implement stelem.ref in managed code
13633         * class-internals.h, debug-helpers.c: a new wrapper type
13634         for the above.
13635
13636 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13637
13638         * gc.c: allow GC handles to work even when no GC is compiled in.
13639         Fix part of bug #61134 (GetAddrOfPinnedObject).
13640
13641 2004-07-13  Peter Williams  <peter@newton.cx>
13642  
13643         * process.c (complete_path): Make sure we don't attempt to execute
13644         directories.
13645  
13646 2004-07-12  Geoff Norton <gnorton@customerdna.com>
13647
13648         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
13649           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
13650           and will add/subtract the hour if needed
13651
13652 2004-07-12  Martin Baulig  <martin@ximian.com>
13653
13654         * reflection.c (mono_field_get_object): If we have
13655         `field->generic_info', take the attributes from
13656         `field->generic_info->generic_type'.    
13657
13658 2004-07-12  Martin Baulig  <martin@ximian.com>
13659
13660         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
13661         This function must be called before initializing the runtime.
13662         (mono_debug_init_1): New function; call this after initializing
13663         the runtime, but before loading the assembly.  It tells the
13664         debugger to load corlib and the builtin types.
13665
13666         * mono-debug-debugger.c: Did some larger changes in the debugging
13667         code; support recursive class declarations, make sure we actually
13668         add all classes.
13669
13670 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13671
13672         * debug-helpers.c: undo my previous patch and fixed the real issue in
13673         ../mini/exceptions-x86.c
13674
13675 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13676
13677         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
13678         when no HOME env. variable was set and a NullRef was thrown in a .cctor
13679         called from other .cctors.
13680
13681 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
13682
13683         * loader.c: Removed the mono_loader_wine_init hack now that we are
13684         doing a managed version of Windows.Forms.
13685
13686 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
13687
13688         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
13689         threadpool.c, threads.c: remove static data from rootset.
13690
13691 2004-07-09  Dick Porter  <dick@ximian.com>
13692
13693         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
13694         Don't do any more processing if the matched length was 0.  It was
13695         increasing the size of the string before.  Fixes bug 61167.
13696
13697 2004-07-09  Dick Porter  <dick@ximian.com>
13698
13699         * socket-io.h:
13700         * socket-io.c
13701         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
13702         Add support for SO_PEERCRED if its available.
13703
13704 2004-07-09  Peter Bartok <pbartok@novell.com>
13705         * loader.c: winelib.exe.so error message is now only displayed if
13706         MONO_DEBUG is set. To help us avoid questions when people are trying
13707         out the new Managed.Windows.Forms.
13708
13709 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
13710
13711         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
13712         for isinst and castclass wrappers.
13713
13714         * class-internals.h icall.c: Move registration and lookup of JIT icalls
13715         to libmetadata from the JIT, so they could be used by the marshalling
13716         code and the interpreter.
13717
13718         * marshal.c: Register marshalling related JIT icalls here instead of
13719         in mini.c. Use CEE_MONO_ICALL instead of the family of 
13720         CEE_MONO_PROC<x> opcodes to call marshalling functions.
13721
13722         * metadata.h: Remove unneeded marshalling conversions.
13723
13724         * opcodes.c: Update for new opcodes.
13725         
13726 2004-07-08  Martin Baulig  <martin@ximian.com>
13727
13728         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
13729         (mono_debug_get_domain_data): Make this function static.
13730
13731 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
13732
13733         * gc.c, object.h: add nice GC handle API for embedders.
13734
13735 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
13736
13737         * reflection.c: more changes for the new api
13738
13739         * object.c: When we reflect on a field w/ a constant value, it
13740         will not have a memory location, so we must access metadata. Also,
13741         allow easier reading of strings so that we can read them from
13742         the constant data.
13743
13744         * class.c (mono_class_layout_fields): no need for literal fields here.
13745
13746         * class-internals.h: api changes for const fields
13747
13748         * icall.c (ves_icall_get_enum_info): use new apis for const fields
13749
13750 2004-07-06  Martin Baulig  <martin@ximian.com>
13751
13752         * mono-debug.h: Increment version number to 44.
13753
13754         * mono-debug.c (mono_debug_add_wrapper): The second argument is
13755         now a gpointer, rewrote this whole method.
13756
13757         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
13758         function.  Add information about the wrapper in a new "misc table".
13759
13760         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
13761         for the new misc table.
13762
13763 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
13764
13765         * metadata-internals.h image.c: Add a cache for helper signatures.
13766
13767         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
13768
13769 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
13770
13771         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
13772         delegates from a delegate. Fixes #61033.
13773         
13774         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
13775         marshalling of stringbuilder arrays. Fixes #59900.
13776
13777 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
13778
13779         * icall.c: Add EnumBuilder:setup_enum_type icall.
13780
13781 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
13782
13783         * icall.c: Added a new icall for the property version of
13784         OffsetOfStringData.
13785
13786 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
13787
13788         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
13789         it has a constant size across platforms.
13790
13791         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
13792         stack trace.
13793
13794 2004-06-29  Martin Baulig  <martin@ximian.com>
13795
13796         * mono-debug.c (mono_debug_add_method): Protect the whole function
13797         in mono_debugger_lock(), not just parts of it.
13798
13799 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
13800
13801         * reflection.c: make sure padding bytes in heaps are zeroed.
13802
13803 2004-06-24  David Waite  <mass@akuma.org>
13804
13805         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
13806         image.c, loader.c, locales.c, marshal.c, metadata.c,
13807         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
13808         string-icalls.c, threads.c: change to C90-style comments from C99 /
13809         C++ -style
13810
13811 2004-06-24  Dick Porter  <dick@ximian.com>
13812
13813         * threads.c
13814         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
13815         return createdNew.  Fixes bug 60412.
13816
13817         * threads-types.h: 
13818         * icall.c: Add createdNew parameter to CreateMutex icall
13819
13820 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
13821
13822         * reflection.c, object-internals.h: save default value in params.
13823
13824 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13825
13826         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
13827         no need to build a new path combining that with the application base.
13828         Fixes bug #60442.
13829
13830 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
13831
13832         * reflection.c: fixed minor standard compliance issues.
13833
13834 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
13835
13836         * reflection.c: fixed issue with encoding some custom attributes
13837         (arrays in properties and fields, bug #60411).
13838
13839 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13840
13841         * reflection.c: fix start address when copying the public key token.
13842
13843 2004-06-23  Martin Baulig  <martin@ximian.com>
13844
13845         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
13846         the `exc' object in a static object to put it into the GC's root set.
13847
13848 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
13849
13850         * reflection.c: make mono_reflection_setup_internal_class ()
13851         callable a second time to setup a new parent class.
13852
13853 2004-06-23  Dick Porter  <dick@ximian.com>
13854
13855         * threads.c: Check for WAIT_IO_COMPLETION return values.
13856
13857 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
13858
13859         * appdomain.c: Removed the g_free on the public key token. Now copy 
13860         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
13861         * assembly.c: Added public key token string value when loading 
13862         assemblies. Fix bug #60439.
13863         * icall.c: Added missing informations (like public key) in 
13864         GetReferencedAssemblies. Fix #60519.
13865         * image.h: Changed definition for public key token from const char*
13866         public_tok_value to guchar public_key_token [17];
13867         * reflection.c: Updated for changes to public key token.
13868
13869 2004-06-22  Lluis Sanchez Gual
13870
13871         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
13872         for the field in base classes.
13873
13874 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
13875
13876         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
13877         mark headers as not supported, they are installed only for use by the
13878         debugger.
13879
13880 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
13881
13882         * *.c, *.h: avoid namespace pollution in public headers.
13883
13884 2004-06-21  Martin Baulig  <martin@ximian.com>
13885
13886         * exception.c (mono_get_exception_security): It's in
13887         "System.Security", not in "System".
13888
13889         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
13890         the exception classes.
13891
13892 2004-06-21  Martin Baulig  <martin@ximian.com>
13893
13894         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
13895         Protect the exception object from being finalized.
13896
13897 2004-06-21  Martin Baulig  <martin@ximian.com>
13898
13899         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
13900         public function.
13901
13902 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
13903
13904         * reflection.c: Load the assembly in mono_reflection_type_from_name,
13905         if it was not loaded before. Fix parts of #60439.
13906
13907 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
13908
13909         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
13910         code that was broken since Ben's change: wrappers are now
13911         dependent on the method signature only again.
13912
13913 2004-06-21  Martin Baulig  <martin@ximian.com>
13914
13915         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
13916         added interface support.
13917
13918 2004-06-21  Martin Baulig  <martin@ximian.com>
13919
13920         * class.c (mono_vtable_get_static_field_data): New public method.
13921
13922 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
13923
13924         * filewatcher.c : Windows build fix to be compliant with API changes.
13925
13926 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
13927
13928         * class.h, class.c: more accessors.
13929         * metadata.h, metadata.c: prepare for hiding MonoType and
13930         MonoMethodSignature: people should use the accessors from now on
13931         outside of the tree.
13932
13933 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
13934
13935         * *.c, *.h: more API cleanups.
13936
13937 2004-06-18  Jackson Harper  <jackson@ximian.com>
13938
13939         * assembly.c: Trace loading assemblies.
13940         * loader.c: Trace loading native libraries.
13941         * mono-config.c: Trace loading config files.
13942         
13943 2004-06-18  Dick Porter  <dick@ximian.com>
13944
13945         * locales.c: Tell ICU the lengths of strings, it can cope with
13946         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
13947
13948 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
13949
13950         * image.c: swapped name/filename;
13951
13952 2004-06-18  Martin Baulig  <martin@ximian.com>
13953
13954         * mono-debug-debugger.c (write_class): Write the parent class at
13955         the end of the header.
13956
13957 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
13958
13959         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
13960
13961 2004-06-17  Raja R Harinath  <rharinath@novell.com>
13962
13963         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
13964         (bundle_obj): New conditional define.
13965         (BUILT_SOURCES): Remove.
13966         ($(bundle_srcs)): Make parallel-make safe.
13967         (libmonoruntime_la_LIBADD): Make unconditional.
13968         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
13969         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
13970
13971 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
13972
13973         * culture-info-tables.h: It was inconsistent with the latest
13974           supp info files.
13975
13976 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
13977
13978         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
13979         be loaded.
13980
13981         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
13982         with gcc 2.95.
13983
13984 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
13985
13986         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
13987         cleaned up public header threads.h.
13988
13989 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
13990
13991         * Makefile.am, *.c, *.h: more API cleanups.
13992
13993 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
13994
13995         * Makefile.am: removed monosn from compilation.
13996         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
13997         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
13998         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
13999         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
14000         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
14001         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
14002
14003 2004-06-15  Jackson Harper  <jackson@ximian.com>
14004
14005         * assembly.c: Make locales lower case when searching the GAC for
14006         assemblies. gacutil will always make locales lowercase when
14007         installing so this effectively makes them case insensitive.
14008         
14009 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
14010
14011         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
14012         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
14013           parameter which allows to choose whether the wait can be interrupted or 
14014           not. Also added the method mono_monitor_enter(), which locks the monitor
14015           using an infinite wait and without allowing interruption.
14016           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
14017           interrupted.
14018         * object.h: Added new fields in MonoThread. suspend_event holds the event
14019           used to susped/resume the thread. synch_lock is the lock object to use for
14020           modifying the thread state.
14021         * threads.c: Use the new synch_lock object for locking, instead of "this",
14022           which can generate deadlocks.
14023           Moved thread state change in Thread.Sleep and Thread.Join from managed
14024           to unmanaged code. This avoids a deadlock when the thread was suspended
14025           just after acquiring the thread lock.
14026           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
14027           Implemented Thread.Suspend using an event instead of ThreadSuspend,
14028           which is not fully implemented in the io-layer.
14029         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
14030
14031 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
14032
14033         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
14034         threads-types.h: more API cleanups.
14035
14036 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14037
14038         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
14039         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
14040         threadpool.c, threads.c: first pass at the exported API cleanup.
14041
14042 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
14043
14044         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
14045
14046 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14047
14048         * icall.c: added internalGetHome.
14049
14050 2004-06-14  Dick Porter  <dick@ximian.com>
14051
14052         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
14053         possible to return successfully when '.' or '..' were the only
14054         entries in a directory, but were skipped.  The MonoIOStat was not
14055         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
14056         Fixes bug 59574.
14057
14058 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
14059
14060         * reflection.c: make binaries run on .Net 1.1 by default.
14061
14062 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
14063
14064         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
14065
14066 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
14067
14068         * marshal.c: keep track of struct size with explicit layout
14069         (bug #59979).
14070
14071 2004-06-12  Martin Baulig  <martin@ximian.com>
14072
14073         * mono-debug-debugger.c: Comment out a debugging g_message().
14074
14075 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14076
14077         * reflection.c, reflection.h: do not free custom attrs that are cached.
14078         * icall.c: use braces to make code clearer.
14079
14080 2004-06-11  Martin Baulig  <martin@ximian.com>
14081
14082         * class.h (MonoInflatedField): New type.
14083         (MonoClassField): Replaced `MonoType *generic_type' with
14084         `MonoInflatedField *generic_info'.
14085
14086         * icall.c
14087         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
14088
14089 2004-06-11  Martin Baulig  <martin@ximian.com>
14090
14091         * reflection.c (mono_image_create_method_token): Correctly encode
14092         varargs methods.
14093
14094 2004-06-11  Martin Baulig  <martin@ximian.com>
14095
14096         * metadata.c (mono_metadata_parse_method_signature): When parsing
14097         a MethodDef which has VarArgs, also set sentinelpos if we don't
14098         have any parameters.
14099
14100 2004-06-11  Martin Baulig  <martin@ximian.com>
14101
14102         * verify.c (mono_method_verify): In CEE_CALL, use
14103         mono_method_get_signature() to get the method's signature, unless
14104         we're a PInvoke method.
14105
14106 2004-06-10  Jackson Harper  <jackson@ximian.com>
14107
14108         * assembly.c: Use <path>/lib/mono/gac for the extra paths
14109         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
14110         logical name as the supplied path is just a prefix to the gac not
14111         the direct path to it.
14112         
14113 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
14114
14115         * reflection.c: make the token for a created method match
14116         the token of the MethodBuilder it was created from
14117         (IKVM requires this behaviour now).
14118
14119 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
14120
14121         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
14122         reflection.c, socket-io.c: leak fixes.
14123
14124 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
14125
14126         * icall.c: handle sentinel pos in vararg methods in position different
14127         from 0.
14128
14129 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14130
14131         * culture-info-tables.h: freshly generated.
14132
14133 2004-06-09  Martin Baulig  <martin@ximian.com>
14134
14135         * loader.c (mono_get_method_constrained): Call `mono_class_init
14136         (constrained_class)'.   
14137
14138 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
14139
14140         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
14141         any methods. Fixes #59629.
14142
14143 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14144
14145         * culture-info-tables.h: reflecting locale-builder updates.
14146
14147 2004-06-08  Dick Porter  <dick@ximian.com>
14148
14149         * object.h:
14150         * locales.c: Fixed compile warnings, including a real bug in
14151         CompareInfo_internal_compare.
14152         
14153 2004-06-08  Dick Porter  <dick@ximian.com>
14154
14155         * locales.c
14156         (ves_icall_System_Globalization_CompareInfo_internal_index):
14157         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14158         Double-check the resuls of usearches, because ICU currently
14159         ignores most of the collator settings here.  Fixes bug 59720.
14160         
14161 2004-06-08  Dick Porter  <dick@ximian.com>
14162
14163         * locales.c
14164         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14165         Fix memory leak and segfault-causing typo.  No idea how this one
14166         lasted so long without being noticed.
14167
14168 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
14169
14170         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
14171         any methods. Fixes #59629.
14172
14173 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14174
14175         * assembly.c:
14176         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
14177         own the critical section before). Removed dead code (that's done
14178         in the preload hook).
14179
14180         (mono_assembly_load_with_partial_name): call the preload hook.
14181
14182 2004-06-08  Martin Baulig  <martin@ximian.com>
14183
14184         * metadata.c (mono_metadata_signature_alloc): Default
14185         `sentinelpos' to -1.
14186
14187         * reflection.c (mono_image_get_array_token): Likewise.
14188
14189 2004-06-08  Martin Baulig  <martin@ximian.com>
14190
14191         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
14192
14193         * metadata.c (mono_metadata_parse_method_signature): When parsing
14194         a MethodDef which has VarArgs, set sentinelpos.
14195
14196         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
14197         `gint16' since we're using -1 for non-varargs methods.
14198
14199         * reflection.c
14200         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
14201         (method_encode_signature): Added varargs support.
14202         (method_builder_encode_signature): Likewise.
14203         (mono_image_get_varargs_method_token): New static method.
14204         (mono_image_create_method_token): New public method; this is
14205         called via an icall instead of mono_image_create_token() when
14206         calling a varargs method.       
14207
14208 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
14209
14210         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
14211
14212 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14213
14214         * culture-info-tables.h : Reflecting the latest locale-builder that
14215           fixed empty array representation ({} to {0}).
14216
14217 2004-06-07  Jackson Harper  <jackson@ximian.com>
14218
14219         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
14220         looking up extra gac paths. This allows MONO_GAC_PATH to act
14221         exactly like a prefix.
14222         
14223 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
14224
14225         * reflection.c (mono_reflection_type_from_name): Make a copy of the
14226         type name before modifying it. Fixes #59405.
14227
14228 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14229
14230         * culture-info.h: added fields for "all datetime patterns".
14231         * locales.c: (  ves_icall_System_Globalization_CultureInfo
14232           _construct_datetime_format ()): fill xxx_patterns fields.
14233         * object.h: added fields for "all datetime patterns" to
14234           MonoDateTimeFormatInfo.
14235         * culture-info-tables.h: reflecting locale-builder updates.
14236
14237 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
14238
14239         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
14240         the event has no add and remove methods. Fixes #59629.
14241
14242 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
14243
14244         * object.c: Fixed possible integer overflow when allocating large
14245         strings.
14246
14247 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
14248
14249         * culture-info-tables.h: reflecting locale-builder updates.
14250
14251 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
14252
14253         * culture-info-tables.h: reflecting locale-builder updates.
14254
14255 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
14256
14257         * culture-info-tables.h: reflecting locale-builder updates.
14258
14259 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
14260
14261         * threads.c: Made Thread.Sleep abortable.
14262
14263 2004-06-02  Martin Baulig  <martin@ximian.com>
14264
14265         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
14266
14267         * debug-mono-symfile.h: Bumped symbol file version number to 37.
14268
14269 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
14270
14271         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
14272
14273 2004-05-30  Jackson Harper  <jackson@ximian.com>
14274
14275         * reflection.c: Do not hardcode assembly versions or public key
14276         tokens anymore. All of this except the corlib section was dead
14277         code anyways.
14278         
14279 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
14280
14281         * object.c (mono_runtime_invoke_array): Automatically create boxed
14282         objects for byref valuetypes if needed. Fixes #59300.
14283         
14284         * object.c (mono_method_return_message_restore): Handle 
14285         MONO_TYPE_OBJECT as well.
14286
14287 2004-05-28  Jackson Harper  <jackson@ximian.com>
14288
14289         * reflection.c: The modified type encoding was causing build
14290         problems. Reverted for now.
14291         
14292 2004-05-28  Jackson Harper  <jackson@ximian.com>
14293
14294         * reflection.c/h: Take an assembly ref so that we dont create
14295         fully qualified names when encoding types in the same assembly as
14296         the custom attribute being emitted.
14297         * appdomain.c: Increment version number.
14298         
14299 2004-05-26  Duncan Mak  <duncan@ximian.com>
14300
14301         * icall.c
14302         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14303         Set the full version number (major, minor, build, revision).
14304
14305 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
14306
14307         * marshal.c (emit_struct_conv): increment src/dst after blit
14308         (mono_marshal_get_managed_wrapper,
14309         mono_marshal_get_native_wrapper): make sure we have marshalling
14310         info before marshalling params (info computation affects
14311         blittable)
14312
14313         * class.c (class_compute_field_layout): correctly deal with
14314         blittable
14315         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
14316         value types (as per what windows dows by default)
14317         (mono_class_setup_mono_type): System.ValueType is blittable
14318         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
14319         blittable
14320
14321         * marshal.c (mono_marshal_load_type_info): flag types  as
14322         non-blittable if the native layout doesn't match the managed
14323         layout
14324
14325 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14326
14327         * appdomain.c: don't add stuff in the private search path that is
14328         above the application base. If application base is not set, there's
14329         no private search path.
14330
14331 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
14332
14333         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
14334         byref struct arguments in native->managed marshalling.
14335
14336 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
14337
14338         * marshal.c (mono_marshal_get_runtime_invoke): correctly
14339         cache methods using signature (special case for methods
14340         that are value type or string class)
14341         
14342         * image.c (mono_image_close): clean up allocated GSList's
14343         in runtime_invoke_cache.
14344
14345 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14346
14347         * mono-config.c: set the correct path for mono_cfg_dir on windows when
14348         there's no MONO_CFG_DIR environment variable defined.
14349
14350 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14351
14352         * threads.c: windows version must be >= 0x0500 to include OpenThread.
14353
14354 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
14355
14356         * threadpool.c: Really wait for 500ms after the async call, even if the wait
14357           is interrumped.
14358         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
14359           before waiting for it, and call CloseHandle after the wait to unref it.
14360           This will make sure that handles are not disposed too early.
14361
14362 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14363
14364         * appdomain.c:
14365         * appdomain.h:
14366         * icall.c: removed
14367         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
14368         needed now.
14369
14370         * object.c: se the application_base only for the domain that runs
14371         Main. Fixes bug #59216,
14372
14373 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14374
14375         * appdomain.c:
14376         * object.c: only the domain in which Main is run have
14377         SetupInformation.ConfigurationFile set, so moved a few lines from
14378         appdomain.c to object.c.
14379
14380 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14381
14382         * appdomain.c: we tried to load [name].(dll|exe), but according
14383         to bug #57710, we must also try [culture]/[name].(dll|exe) and
14384         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
14385         There's a test case attached to bug #58922.
14386
14387 2004-05-27  Dick Porter  <dick@ximian.com>
14388
14389         * icall.c:
14390         * file-io.c: Implemented icalls for locking and unlocking regions
14391         in a file.
14392         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
14393         FALSE on error (fixes both compiler warning and real bug.)
14394
14395 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
14396
14397         * culture-info-tables.h: reflecting locale-builder updates.
14398
14399           (Added missing ChangeLog entry for 05/26)
14400
14401 2004-05-27  Jackson Harper  <jackson@ximian.com>
14402
14403         * locales.c: Fix some cut and paste errors.
14404         
14405 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14406
14407         * mono-config.c: set the correct path for config. directory on windows.
14408
14409 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
14410
14411         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
14412           on win32.
14413
14414 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
14415
14416         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
14417         from pinvoke functions.
14418         
14419         * marshal.c (mono_ftnptr_to_delegate): Implement this.
14420
14421 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
14422
14423         * culture-info-tables.h: reflecting locale-builder updates.
14424
14425 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
14426
14427         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
14428         #59086.
14429
14430 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
14431
14432         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
14433         * icall.c: Modified icalls for RNG.
14434         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
14435         Windows (CryptoAPI).
14436
14437 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
14438
14439         * locales.c: Fix build.
14440
14441 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
14442
14443         * culture-info-tables.h: reflecting locale-builder updates.
14444
14445 2004-05-25  Jackson Harper  <jackson@ximian.com>
14446
14447         * locales.c: When creating the current culture use the $LANGs
14448         specific culture. So DateTimeFormat and NumberFormat entries are created.
14449         
14450 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
14451
14452         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
14453         a char array as parameter.
14454
14455 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
14456
14457         * image.c: In mono_image_open(), always use an absolute path name to
14458           look for already loaded images.
14459
14460 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
14461
14462         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
14463         missing in the windows build (like older cygwin include files).
14464
14465 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
14466
14467         * icall.c: Fixed check for possible integer overflow in Buffer_
14468         BlockCopy icall. Replaced comments style // by /* */.
14469
14470 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
14471
14472         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
14473         
14474         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
14475         check after MONO_VTADDR. Fixes pinvoke2.exe.
14476
14477         * marshal.h marshal.c metadata.h: Add beginnings of support for
14478         ftnptr -> delegate marshalling.
14479
14480 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
14481
14482         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
14483         * threads.c: Fix warnings.
14484
14485 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
14486
14487         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
14488         * icall.c: Registered icalls for Suspend and Resume.
14489         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
14490           Thread.Abort.
14491         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
14492         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
14493         * process.c: Use WaitForSingleObjectEx.
14494         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
14495           checkpoints.
14496         * threads.c, threads.h: Make use of new Ex wait methods. Improved
14497           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
14498           for Suspend and Resume. Added new mono_thread_stop, used for stoping
14499           background threads. Added basic support for Abort in Windows.
14500           Start new threads using a managed delegate invoke wrapper. This wrapper
14501           has an interruption checkpoint that is needed since an interruption
14502           can be requested before the thread leaves the unmanaged code that starts 
14503           the thread.
14504         * marshal.c: Added interruption checkpoint after every native call, and
14505           also before managed calls for wrappers called from unmanaged code to
14506           go into managed code.
14507         * object.h: Added new field in MonoThread to keep track of interruption
14508           requests.
14509
14510 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
14511
14512         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
14513         calls.
14514
14515 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14516
14517         * appdomain.c:
14518         * assembly.c:
14519         * gc.c:
14520         * locales.c:
14521         * mono-config.c:
14522         * rand.c: getenv -> g_getenv (windows!)
14523
14524         * process.c: complete_path is also used on non-windows platforms.
14525
14526 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14527
14528         * icall.c: new signature for Process_Start.
14529
14530         * process.[ch]: new signature for Process_Start. If we're on windows
14531         and UseShellExecute is false, we have to search for the program by
14532         ourselves if we don't get a full path.
14533
14534 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
14535
14536         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
14537         marshalling and call CleanUpNativeData if needed. Fixes #58646.
14538
14539 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14540
14541         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
14542         Fixes bug #58373.
14543
14544 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14545
14546         * process.c: use double quotes to quote program name and arguments on
14547         windows. Fixes bug #58575.
14548
14549 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14550
14551         * file-io.c: don't return "." and ".." when using windows Find*File.
14552
14553 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
14554
14555         * marshal.c: Don't pass wrappers to message init because method 
14556         addressed used to lookup metadata. part of remoting[2|3] fix.
14557
14558 2004-05-15  Jackson Harper  <jackson@ximian.com>
14559
14560         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
14561         path is essentially the same as MONO_PATH except that it points to
14562         GACs instead of lib directories.
14563         * loader.h: The user gac is gone so we dont need function to
14564         enable/disable it.
14565         * mono-config.c: user gac option is now gone.
14566         
14567 2004-05-15  Jackson Harper  <jackson@ximian.com>
14568
14569         * culture-info.h: Make defines more consistent, add calendar data
14570         to the culture info table.
14571         * culture-info-tables.h: Add basic calendar data. Basically
14572         everyone gets default gregorian until all the data is
14573         updated.
14574         * locales.c: Use the new consistent defines. Set calendar data for
14575         culture info objects.
14576         * object.h: add a field for calendar data to CultureInfo
14577         
14578 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
14579
14580         * image.c: image->runtime_invoke_cache is keyed on signatures now.
14581         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
14582         a signature.
14583         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
14584         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
14585         an extra param that is the pointer of the method to invoke. The IL for
14586         the invoke method is no longer specific to the method, but to the
14587         signature of the method. Thus, we can share the same code for multiple
14588         methods. This reduces the number of methods that have to be compiled.
14589
14590 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
14591
14592         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
14593
14594         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14595
14596         * icall.c: Optimize Buffer.BlockCopy.
14597
14598 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14599
14600         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
14601         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
14602         quote). Changed them to "MMMM yyyy".
14603
14604 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
14605
14606         * rand.c
14607         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
14608
14609 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
14610
14611         * reflection.h: Updated after changes to managed structures.
14612
14613         * appdomain.c: Bump corlib version.
14614
14615 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14616
14617         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
14618         windows.
14619
14620 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14621
14622         * Makefile.am: link to ../os/libmonoos.la on windows.
14623
14624         * assembly.c:
14625                 -If MONO_DEBUG, warn about non-existing directories in
14626                 MONO_PATH.
14627                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
14628                 compile time variable.
14629                 -Removed init_default_path and call mono_set_rootdir from
14630                 libmonoos.a instead (windows only).
14631
14632         * assembly.h: declare mono_assembly_getrootdir().
14633
14634         * domain.c:
14635         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
14636
14637         * loader.c: s/getenv/g_getenv/
14638
14639 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
14640
14641         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
14642
14643         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
14644
14645         * metadata.h: Add new marshalling conversions.
14646
14647         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
14648         function.
14649
14650         * reflection.c (mono_reflection_get_type): Lookup the type in all
14651         modules of a multi-module assembly. Fixes #58291.
14652
14653 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
14654
14655         * threads.c: Before aborting a background, set the StopRequested
14656         state.  This avoids throwing the Abort exception.
14657         In mono_thread_manage, don't continue with the shutdown until all
14658         aborted threads have actually stopped.
14659
14660 2004-05-10  Jackson Harper  <jackson@ximian.com>
14661
14662         * locales.c: Remove the modifier from culture names.
14663         
14664 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14665
14666         * Makefile.am: monosn is not installed any more. It has been deprecated
14667         in favor of sn.
14668
14669 2004-05-07  Jackson Harper  <jackson@ximian.com>
14670
14671         * locales.c
14672         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
14673         Fix array construction, add bailout if the length is 0.
14674
14675 2004-05-07  Dick Porter  <dick@ximian.com>
14676
14677         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
14678         machine doesn't have a DNS entry.  Patch by Urs Muff
14679         (umuff@quark.com), fixes bug 57928.
14680
14681 2004-05-06  Jackson Harper  <jackson@ximian.com>
14682
14683         * reflection.c: Handle null PublicTokens properly. alloc mem for
14684         assembly names culture so we dont crash when freeing it.
14685         
14686 2004-05-06  Jackson Harper  <jackson@ximian.com>
14687
14688         * assembly.c: Check the usergac when loading with partial names.
14689         
14690 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
14691
14692         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
14693         does nothing for now (not required for Linux/Windows) but the class
14694         library can call it (and a newer or modified runtime could need it).
14695         * icall.c: Registred icall.
14696
14697 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14698
14699         * loader.c: prints a message on module loading error we set MONO_DEBUG
14700         environment variable.
14701
14702 2004-05-05  Jackson Harper  <jackson@ximian.com>
14703
14704         * appdomain.c: Handle PublicKeyToken=null properly.
14705         
14706 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
14707
14708         * environment.c|h: Added icall ves_icall_System_Environment_
14709         GetOSVersionString to get the current OS version as a string.
14710         * icall.c: Registred icall.
14711
14712 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
14713
14714         * object.c: in mono_object_get_virtual_method(), take into account that
14715         non-virtual methods don't have a slot in the vtable. Check needed when
14716         the object is a proxy.
14717
14718 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
14719
14720         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
14721         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
14722
14723         * object.c (mono_class_compute_gc_descriptor): Fix warning.
14724
14725         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
14726         passed when a valuetype is expected.
14727
14728         * object.c (mono_unhandled_exception): Only set the exit code if the
14729         exception happens in the main thread. Fixes thread5.exe.
14730
14731         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
14732         invalid names. Fixes #58047.
14733
14734 2004-05-03  Jackson Harper  <jackson@ximian.com>
14735
14736         * assembly.c: This line was committed accidently and is unneeded.
14737         
14738 2004-05-03  Jackson Harper  <jackson@ximian.com>
14739
14740         * icall.c: Add new icall for Assembly::LoadWithPartialName
14741         * assembly.c/.h: new function that probes the GAC to load partial
14742         assembly names by Paolo Molaro.
14743         
14744 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14745
14746         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
14747         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
14748         (type_get_fully_qualified_name): Added PublicKeyToken when building a
14749         full type name.
14750
14751 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14752
14753         * appdomain.c: fixed check for 'neutral' culture and removed warning.
14754         * reflection.c: fix bug when parsing a full type name and Version is not
14755         the last thing in the string.
14756
14757 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
14758
14759         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
14760         crashes when it is freed.
14761
14762 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14763
14764         * assembly.c: print the compat warning to stderr.
14765
14766 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
14767
14768         * assembly.c (mono_assembly_load_references): Add a compatibility
14769         hack to run old applications that might be still referencing the
14770         3300-based assemblies, only do this for System.xxx.
14771
14772 2004-05-01  Jackson Harper  <jackson@ximian.com>
14773
14774         * appdomain.c: If the culture is neutral we set it to "".
14775         
14776 2004-04-29  Jackson Harper  <jackson@ximian.com>
14777
14778         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
14779
14780 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
14781  
14782         * string-icalls.c: added low overhead function for copying chars
14783         * icall.c: added needed icall for the above function
14784  
14785 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14786
14787         * icall.c: fix return value of get_global_assembly_cache.  Implemented
14788         Environment.GetLogicalDrives.
14789
14790 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
14791
14792         * rand.c: try and talk to egd or prngd
14793         for random bytes if opening devices fail.
14794
14795 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
14796
14797         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
14798         alignment for the type using the native alignment of its members 
14799         instead of using klass->min_align.
14800
14801         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
14802
14803 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14804
14805         * file-io.c:
14806         * socket-io.c: added check for sys/aio.h.
14807
14808 2004-04-28  Dick Porter  <dick@ximian.com>
14809
14810         * threads.c: Don't abort a thread thats already aborting, when
14811         terminating everything.
14812
14813 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14814
14815         * icall.c: added 2 new async calls for Socket.
14816
14817         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
14818         IO on *nix systems.
14819
14820         * threadpool.c: removed unused variable.
14821
14822 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
14823
14824         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
14825
14826 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14827
14828         * locales.c: put back string_invariant_tolower () and
14829         string_invariant_toupper ().
14830
14831 2004-04-26 David Waite <mass@akuma.org>
14832
14833         * file-io.h:
14834         * socket-io.h:
14835         * threads.h:
14836         * unicode.h: remove comma from end of enumeration declarations
14837
14838 2004-04-26 David Waite <mass@akuma.org>
14839
14840         * debug-mono-symfile.h:
14841         * decimal.c:
14842         * mono_debug.h:
14843         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
14844
14845
14846 2004-04-26  Jackson Harper  <jackson@ximian.com>
14847
14848         * appdomain.c: Increment version number.
14849         
14850 2004-04-26  Jackson Harper  <jackson@ximian.com>
14851
14852         * appdomain.c: Set assembly references public token value when
14853         PublicKeyToken is specified, not the hash_value. Free public token
14854         values when free assembly name data. Previously the public key
14855         token was hex decoded, however we are using hex encoded public key
14856         tokens, so this is not neccasary.
14857         * assembly.c: Lookup assemblies in the gac if their public token
14858         value is set. Add function to allow enabling user gac
14859         lookups. Specify whether or not the assembly was loaded from the
14860         GAC. Compare full assembly names when checking the cache for
14861         assemblies (Temporarily disabled see comment in code). Remove
14862         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
14863         specifies trace-loader they get extra info to stdout on the
14864         loading of assemblies.
14865         * image.h: Add a field for an assembly references public token
14866         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
14867         whether an assembly has been loaded from the GAC.
14868         * image.c: Remove a corlib -> mscorlib name mapping.
14869         * loader.h: Add function to enable/disable the user gac.
14870         * mono-config.c: Check if the usergac is enabled in the config
14871         file.
14872         * icall.c: New icall to determine whether or not an assembly has
14873         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
14874         * tabldefs.h: Add constant for assemblyref flag that specifies a
14875         full public key is used instead of a public token.
14876         * reflection.c: Remove mscorlib -> corlib mappings. Set
14877         PublicTokenValue instead of hash value. This value is a hex
14878         string so it does not need to be expanded.
14879
14880 2004-04-26  Martin Baulig  <martin@ximian.com>
14881
14882         * mono-debug-debugger.c (mono_debugger_initialize): Set
14883         `mono_debugger_initialized' before calling mono_debug_lock().
14884
14885 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
14886
14887         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
14888           InternalToUpper/InternalToLower.
14889         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
14890           removed invariant culture shortcut.  This is now done in managed code.
14891         * locales.c: (string_invariant_toupper/tolower) removed.
14892
14893 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14894
14895         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
14896         Added Poll internal call.
14897
14898         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
14899         call for Poll. Select was too heavy for polling a single socket.
14900
14901         * threadpool.[ch]: added mono_threadpool_cleanup.
14902         * threads.c: use it. Don't use Thread_Abort on windows.
14903
14904 2004-04-23  Martin Baulig  <martin@ximian.com>
14905
14906         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
14907
14908 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
14909
14910         * icall.c: Registred new icalls for key pair protection and added an
14911         icall for Environment.GetFolderPath on Windows.
14912         * security.c|h: Added new icalls for key pair protection.
14913
14914 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14915
14916         * socket-io.c: don't display the non-supported family warning for known
14917         families. Now this is not displayed on windows when checking support
14918         for IPv4/IPv6.
14919
14920 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14921
14922         * class.c: don't display the layout warning for static fields.
14923
14924 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
14925
14926         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
14927         * locales.c, locales.h: Added new icalls for culture-specific
14928         Char.ToLower and Char.ToUpper.
14929
14930 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14931
14932         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
14933         by David Waite.
14934
14935 2004-04-20  Martin Baulig  <martin@ximian.com>
14936
14937         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
14938         of the type name before passing it to mono_reflection_type_from_name().
14939
14940 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
14941
14942         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
14943         encodings here. Fixes #56965.
14944
14945 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
14946
14947         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
14948         fix test on strstr result not that I can see anything that
14949         relies on the result.
14950
14951 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
14952
14953         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
14954         Fixes #57081.
14955
14956         * marshal.c (mono_marshal_get_string_encoding): New helper function.
14957
14958         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
14959         function to determine which marshalling to use for strings. Fixes
14960         #56965.
14961
14962         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
14963
14964         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
14965
14966 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
14967
14968         * icall.c: #include mono-config.h
14969
14970 2004-04-15  Jackson Harper  <jackson@ximian.com>
14971
14972         * culture-info-tables.h: Fix date formats for en-US culture.
14973         
14974 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
14975
14976         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
14977         ThreadPool.SetMinThreads.
14978         * threadpool.c: Implemented ThreadPool.GetMinThreads and
14979         ThreadPool.SetMinThreads.
14980
14981 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
14982
14983         * mono-config.c: also load the .config file in the directory
14984         where the assembly was found.
14985
14986 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
14987
14988         * assembly.c: load per-assembly config files.
14989         * icall.c: decrapified code to get the config dir and moved to
14990         mono-config.c.
14991         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
14992         per-assembly config files. When doing a dll map lookup give precedence
14993         to the per-assembly data.
14994
14995 2004-04-14  Martin Baulig  <martin@ximian.com>
14996
14997         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
14998         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
14999         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
15000
15001         * mono-debugger-debugger.c: While the debugger is locked, remember
15002         whether the symbol tables have changes and send one single
15003         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
15004
15005 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
15006
15007         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
15008
15009         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
15010         function.
15011
15012         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
15013         account when marshalling string arrays. Fixes #56965.
15014
15015 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
15016
15017         * icall.c: Add new icalls mapping for security.
15018         * security.c|h: Add internal calls for WindowsIdentity,
15019         WindowsImpersonationContext and WindowsPrincipal.
15020
15021 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
15022
15023         * class.c: Added comment to ensure the System.MonoDummy class
15024         is removed when no longer necessary
15025
15026 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
15027
15028         * appdomain.c: Pass arguments to the bootstraping exceptions to
15029         minimize JITed methods at boot
15030
15031         * metadata.c (mono_exception_from_name_two_strings): Allow for the
15032         second string to be null.
15033
15034         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15035         Change the protocol to minimize the JIT methods at startup.  Now
15036         it Returns the internal codepage, if the value of "int_code_page"
15037         is 1 at entry, and we can not compute a suitable code page
15038         number, returns the code page as a string.
15039
15040 2004-04-13  Jackson Harper  <jackson@ximian.com>
15041
15042         * culture-info-tables.h: Fix number of decimal digits for all
15043         english locales.
15044
15045 2004-04-13  Jackson Harper  <jackson@ximian.com>
15046
15047         * icall.c: Clairfy out of sync error message. It is not always
15048         your corlib that is out of sync.
15049
15050 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
15051
15052         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
15053         properties when only the set accessor is overriden. Fixes #55874.
15054
15055 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
15056
15057         * assembly.c (mono_assembly_load_references): Make this thread safe.
15058         Fixes #56327.
15059
15060 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
15061
15062         * monosn.c: Add missing initialization calls.
15063
15064 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
15065
15066         * locales.c:
15067         ves_icall_System_Globalization_CultureInfo_construct_number_format
15068         Fix g_assert so it compiles on fussier compilers re int/ptr
15069         mismatch
15070
15071 2004-04-08  Dick Porter  <dick@ximian.com>
15072
15073         * socket-io.h:
15074         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
15075         53992.  Also rearrange the code so that the internal calls return
15076         an error value and exceptions are thrown from managed code.
15077
15078         * icall.c: Add type info to the socket icalls.
15079
15080 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15081
15082         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
15083         owes me a beer.
15084
15085 2004-04-07  Martin Baulig  <martin@ximian.com>
15086
15087         * class.c (mono_class_from_generic_parameter): Don't default
15088         `klass->parent' to `mono_defaults.object_type'.
15089
15090 2004-04-07  Martin Baulig  <martin@ximian.com>
15091
15092         * reflection.c (mono_reflection_initialize_generic_parameter): Set
15093         `param->pklass->reflection_info'.       
15094
15095 2004-04-07  Jackson Harper  <jackson@ximian.com>
15096
15097         * culture-info-tables.h: Fix date separator symbol.
15098         
15099 2004-04-07  Martin Baulig  <martin@ximian.com>
15100
15101         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
15102         from System.Type to System.MonoType.
15103
15104 2004-04-07  Martin Baulig  <martin@ximian.com>
15105
15106         * reflection.h
15107         (MonoReflectionGenericParam): Added `has_reference_type' and
15108         `has_value_type' fields.
15109
15110         * reflection.c (mono_image_get_generic_param_info): Encode the
15111         correct flags if we have the `class' or `struct' constraint.
15112
15113 2004-04-07  Martin Baulig  <martin@ximian.com>
15114
15115         * reflection.h
15116         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
15117
15118 2004-04-07  Jackson Harper  <jackson@ximian.com>
15119
15120         * appdomain.c: Revert extra patches, just wanted to bump the
15121         version number.
15122         
15123 2004-04-07  Jackson Harper  <jackson@ximian.com>
15124
15125         * Makefile.am: Add culture-info private headers.
15126         * icall.c: Add new icalls for contructing locales.
15127         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
15128         * locales.h: Declare new culture info construction methods.
15129         * object.h: Add new fields used to avoid the CultureMap to
15130         MonoCultureInfo.
15131         * culture-info.h: Definition of structs used in the culture info
15132         tables.
15133         * culture-info-tables.h: Autogenerated tables that contain culture
15134         info data. This file was generated with the locale-builder tool.
15135         * appdomain.c: Incement corlib version number.
15136         
15137 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
15138
15139         * appdomain.c: (mono_runtime_init) move mono_thread_init
15140         to before mono_object_new calls so critical sections
15141         are initialized before use.
15142
15143 2004-04-07  Martin Baulig  <martin@ximian.com>
15144
15145         * icall.c
15146         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
15147         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
15148         (ves_icall_MonoGenericParam_initialize): Removed.
15149         (monogenericparam_icalls): Removed.
15150         (generictypeparambuilder_icalls): Added new table for
15151         System.Reflection.Emit.GenericTypeParameterBuilder.
15152
15153         * reflection.c
15154         (mono_reflection_define_generic_parameter): Removed.
15155         (mono_reflection_initialize_generic_parameter): This is now called
15156         from GenericTypeParameterBuilder's .ctor.
15157
15158 2004-04-06  Martin Baulig  <martin@ximian.com>
15159
15160         * class.c (mono_class_init): Don't inflate nested classes in a
15161         generic instance.
15162         (mono_type_get_name_recurse): Include the generic arguments for
15163         generic instances and generic type declarations.
15164         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
15165         (_mono_class_get_instantiation_name): Removed.
15166         (mono_class_create_generic): Always use `gklass->name' as our name.
15167
15168         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
15169
15170         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
15171         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
15172         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
15173         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
15174         closed generic methods here.
15175
15176         * reflection.c
15177         (mono_reflection_generic_inst_get_nested_types): Removed.
15178         (inflate_mono_method): Copy the generic parameters from the
15179         MonoMethodHeader into out MonoGenericMethod.
15180
15181 2004-04-06  Martin Baulig  <martin@ximian.com>
15182
15183         * row-indexes.h
15184         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
15185
15186         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
15187
15188         * reflection.c (build_compressed_metadata): If we have any entries
15189         in the GenericParam, MethodSpec or GenericParamConstraint tables,
15190         set the header version to 1.1.
15191
15192 2004-04-06  Martin Baulig  <martin@ximian.com>
15193
15194         * class.c (mono_class_init): If we're a generic instance,
15195         initialize our nested classes, too.
15196         (_mono_class_get_instantiation_name): Deal with the new `!%d'
15197         suffix. 
15198
15199 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15200
15201         * process.c: quote the argument passed to the shell on windows.
15202
15203 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
15204
15205         * threads.c (mono_alloc_special_static_data): Allow this to be
15206         called during startup.
15207
15208 2004-04-02  Martin Baulig  <martin@ximian.com>
15209
15210         * icall.c
15211         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
15212
15213 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
15214
15215         * icall.c: Fix build.
15216
15217 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
15218
15219         * Makefile.am: Added security.c|h.
15220         * icall.c: Added icall for get_UserName;
15221         * security.c: New file for security related icalls. Added function
15222         get_UserName for System.Environment (fix #56144).
15223         * security.h: New. Header file for security.c
15224
15225 2004-04-02  Dick Porter  <dick@ximian.com>
15226
15227         * icall.c: Deleted the icalls that were obsoleted some time ago
15228         by the ICU string code, and which were mixed into the icall
15229         rearranging.  Fixes bug 55969.
15230
15231         * string-icalls.h: 
15232         * string-icalls.c: Deleted the code that those icalls reference.
15233
15234 2004-04-01  Martin Baulig  <martin@ximian.com>
15235
15236         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
15237
15238         * class.c (mono_class_from_generic_parameter): Don't set 
15239         TYPE_ATTRIBUTE_INTERFACE.
15240         (my_mono_class_from_generic_parameter): Likewise.
15241
15242 2004-04-01  Martin Baulig  <martin@ximian.com>
15243
15244         * loader.c (find_method): Added an optional `MonoClass *ic'
15245         argument to search in a specific interface.
15246         (mono_get_method_constrained): New public function.
15247
15248 2004-04-01  Martin Baulig  <martin@ximian.com>
15249
15250         * reflection.c (mono_image_get_generic_field_token): Use the
15251         `handleref' cache here.
15252
15253 2004-04-01  Martin Baulig  <martin@ximian.com>
15254
15255         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
15256
15257         * reflection.c (create_generic_typespec): Use the `typespec' hash
15258         here, not the `typeref' one.    
15259
15260 2004-04-01  Martin Baulig  <martin@ximian.com>
15261
15262         * class.c (mono_class_inflate_generic_type): Moved the
15263         functionality into a new static inflate_generic_type() which
15264         returns NULL if it didn't do anything.  Only increment the
15265         `mono_stats.inflated_type_count' if we actually inflated
15266         something.
15267         (mono_class_get_full): Check the classes type to see whether we
15268         need to inflate it; also inflate MONO_TYPE_(M)VAR.
15269
15270 2004-04-01  Jackson Harper  <jackson@ximian.com>
15271
15272         * reflection.c: Set culture for assembly references.
15273         
15274 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
15275
15276         * reflection.[ch], icall.[ch], Fix support for pinning variables.
15277
15278 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15279
15280         * assembly.c:
15281         (do_mono_assembly_open): the critical section also covers
15282         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
15283
15284 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15285
15286         * threads.c:
15287         (mono_manage_threads): abort the background threads when finishing.
15288         Fixes bug #47232.
15289
15290 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15291
15292         * gc.c: only close the done_event handle if there was no timeout.
15293         C-ified comments.
15294
15295 2004-03-30  Martin Baulig  <martin@ximian.com>
15296
15297         * icall.c (icall_entries): It's called "System.Activator", not
15298         "System.Activation".    
15299
15300 2004-03-30  Martin Baulig  <martin@ximian.com>
15301
15302         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
15303         (mono_class_create_from_typespec): Likewise.
15304
15305 2004-03-30  Martin Baulig  <martin@ximian.com>
15306
15307         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
15308         `has_ctor_constraint' and `initialized'.
15309
15310 2004-03-30  Martin Baulig  <martin@ximian.com>
15311
15312         * reflection.c (encode_new_constraint): New static function to add
15313         the constructor constraint attribute to a type parameter.
15314         (encode_constraints): Call encode_new_constraint() if necessary.
15315
15316         * reflection.h
15317         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
15318
15319         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
15320         
15321 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
15322
15323         * reflection.c, icall.c: add support for pinning variables. 
15324
15325 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
15326
15327         * marshal.c (mono_marshal_get_managed_wrapper):
15328         init bool local with zero rather than null.
15329
15330 2004-03-29  Martin Baulig  <martin@ximian.com>
15331
15332         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
15333         the "official" behavior here.
15334         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
15335
15336 2004-03-29  Martin Baulig  <martin@ximian.com>
15337
15338         * icall.c: Reflect latest API changes.
15339
15340 2004-03-29  Martin Baulig  <martin@ximian.com>
15341
15342         * loader.c (mono_get_method_from_token): Also call
15343         mono_metadata_load_generic_params () for abstract and interface
15344         methods; replace the type arguments in the method signature with
15345         the ones which are loaded from the metadata.
15346
15347 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
15348
15349         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
15350         of the lock is not the current thread. MS.NET don't do it, in spite of
15351         what the documentation says. See bug #56157.
15352
15353 2004-03-28  Martin Baulig  <martin@ximian.com>
15354
15355         * class.c (mono_class_init): Don't call init_properties() and
15356         init_events() for generic instances; set `prop->parent' when
15357         inflating properties.
15358
15359         * reflection.c (mono_generic_inst_get_object): Call
15360         `mono_class_init (ginst->klass)'.
15361         (mono_type_get_object): Only create a MonoGenericInst if your
15362         generic type is a TypeBuilder.
15363         (do_mono_reflection_bind_generic_parameters): Only set
15364         `ginst->is_dynamic' if our generic type is a TypeBuilder.
15365
15366 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
15367
15368         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
15369         Fixes #56091.
15370
15371 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15372
15373         * icall.c: added Kill_internal icall.
15374         * process.[ch]: added Kill_internal icall.
15375
15376 2004-03-25  Martin Baulig  <martin@ximian.com>
15377
15378         * class.h (MonoStats): Added `generic_instance_count',
15379         `inflated_method_count', `inflated_type_count' and
15380         `generics_metadata_size'.       
15381
15382 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15383
15384         * reflection.c: no warnings now.
15385
15386 2004-03-25  Martin Baulig  <martin@ximian.com>
15387
15388         * class.c (mono_class_get_full): New public function; does a
15389         mono_class_get(), but also takes a `MonoGenericContext *'.
15390
15391         * loader.c (mono_field_from_memberref): Renamed to
15392         `field_from_memberref', made static and added `MonoGenericContext *'
15393         argument.
15394         (mono_field_from_token): Added `MonoGenericInst *' argument.
15395         (method_from_memberef): Likewise.
15396         (mono_get_method_from_token): Likewise.
15397         (mono_get_method_full): New public function; does a
15398         mono_get_method(), but also takes a `MonoGenericContext *'.
15399
15400         * verify.c (mono_method_verify): Get the method's generic context
15401         and pass it to mono_field_from_token(), mono_get_method_full() and
15402         mono_class_get_full().
15403
15404 2004-03-25  Martin Baulig  <martin@ximian.com>
15405
15406         * class.c (mono_class_inflate_generic_type): Take a
15407         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
15408         `MonoGenericMethod *'.
15409
15410 2004-03-25  Martin Baulig  <martin@ximian.com>
15411
15412         * loader.h (MonoMethodInflated): Store the MonoGenericContext
15413         instead of the MonoGenericMethod here.
15414
15415 2004-03-25  Martin Baulig  <martin@ximian.com>
15416
15417         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
15418         each time we create a new MonoGenericInst, we also create a new
15419         context which points back to us.
15420
15421         * class.c (inflate_method): Use `ginst->context' instead of
15422         creating a new context.
15423
15424         * loader.c (method_from_memberref): Use
15425         `klass->generic_inst->context' instead of creating a new context.
15426
15427 2004-03-25  Martin Baulig  <martin@ximian.com>
15428
15429         * class.h (MonoGenericContext): New struct.
15430         (MonoGenericMethod): Removed `generic_inst'.
15431
15432         * class.c (mono_class_inflate_generic_method): Take a
15433         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
15434
15435 2004-03-25  Martin Baulig  <martin@ximian.com>
15436
15437         * loader.h (MonoMethodInflated): New typedef.
15438
15439         * metadata.h (MonoMethodSignature): Removed `gen_method', make
15440         `generic_param_count' consume just 30 bits, added `is_inflated'
15441         and `has_type_parameters' flags (one bit each).
15442
15443         * class.c (mono_class_inflate_generic_method): Create a
15444         MonoMethodInflated instead of a MonoMethodNormal and set
15445         `is_inflated' in the method signature.
15446
15447         * class.h (MonoGenericMethod): Removed `generic_method'.
15448
15449 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
15450
15451         * image.c: Make sure the name of a MonoImage is always an absolute path.
15452           This fixes bug #54415.
15453
15454 2004-03-24  Martin Baulig  <martin@ximian.com>
15455
15456         * class.c (mono_class_setup_vtable): If we're a generic instance,
15457         use our generic type's vtable size.
15458
15459 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
15460
15461         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
15462         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
15463         problems.
15464
15465 2004-03-23  Martin Baulig  <martin@ximian.com>
15466
15467         * class.h (MonoDynamicGenericInst): Added `int count_events' and
15468         `MonoEvent *events'.
15469
15470         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
15471         (typebuilder_icalls): Added "get_event_info"; calls
15472         mono_reflection_event_builder_get_event_info(). 
15473
15474         * reflection.c (mono_reflection_generic_inst_initialize): Added
15475         `MonoArray *events'.
15476         (mono_reflection_event_builder_get_event_info): New function.
15477
15478 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
15479
15480         * object.h: add mono_type_initialization_init
15481
15482         * object.c (mono_runtime_class_init): 
15483         implement class constructor synchronization rules
15484         to cope with threading issues.  
15485         add mono_type_initialization_init
15486
15487         * appdomain.c (mono_runtime_init): call 
15488         mono_type_initialization_init
15489
15490         * class.h: removing initializing field from MonoVTable
15491
15492 2004-03-23  Martin Baulig  <martin@ximian.com>
15493
15494         * class.c (my_mono_class_from_generic_parameter): Use
15495         `param->name' if it's not NULL. 
15496
15497 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
15498
15499         * class.c: do not insert non-virtual methods in the vtable.
15500         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
15501         that means the method is non-virtual. This never would have
15502         happened before.
15503
15504 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
15505
15506         * profiler.c: Added lock for accessing coverage_hash.
15507
15508 2004-03-22  Martin Baulig  <martin@ximian.com>
15509
15510         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
15511         `method->method->signature->generic_param_count != 0' to make it
15512         work for interface methods.
15513
15514 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15515
15516         * process.c: quote the string passed to the shell using g_shell_quote.
15517
15518 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15519
15520         * threads.c:
15521         (mono_threads_manage): don't remove the finalizer thread and self
15522         from the threads hash table so that mono_thread_manage can be called
15523         more than once.
15524
15525 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15526
15527         * process.c: quote the arguments when UseShellExecute is true. Fixes
15528         bug #55790.
15529
15530 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15531
15532         * threads.c: set mono_thread_detach as a cleanup routine for every
15533         thread. This way it's always executed upon thread termination, either
15534         aborted or finished normally. No more xsp hangs!
15535
15536 2004-03-17  Martin Baulig  <martin@ximian.com>
15537
15538         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
15539         `int count_nested' and a `MonoType **nested'.
15540
15541         * reflection.c (mono_reflection_bind_generic_parameters): Moved
15542         most of the functionality into a new static
15543         do_mono_reflection_bind_generic_parameters() and don't take a
15544         `MonoType *nested_in' argument any more.  Don't compute nested
15545         types here.
15546         (mono_reflection_generic_inst_get_nested_types): New public method
15547         to get nested types.
15548
15549         * class.c (mono_class_create_generic): Set `klass->nested_in' if
15550         we're a nested class.
15551
15552         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
15553         mono_reflection_generic_inst_get_nested_types() to compute the
15554         nested types.
15555
15556 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
15557
15558         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
15559         descriptive error message under windows.
15560         
15561 2004-03-17  Martin Baulig  <martin@ximian.com>
15562
15563         * class.c (dup_type): Added `const MonoType *original' argument;
15564         copy the attrs from the original type.
15565
15566 2004-03-17  Martin Baulig  <martin@ximian.com>
15567
15568         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
15569         `m->generic_inst_cache' here.
15570
15571 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
15572
15573         * exception.h exception.c: Add stack_overflow_exception.
15574
15575 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15576
15577         * threadpool.c:
15578         (overlapped_callback): call SetEvent *after* invoking the callback.
15579         No need to call CloseHandle.
15580
15581 2004-03-16  Martin Baulig  <martin@ximian.com>
15582
15583         * reflection.c (mono_image_get_fieldref_token): Take a
15584         `MonoReflectionField *' instead of a `MonoClassField *' and a
15585         `MonoClass *'; store the `MonoReflectionField *' in the hash.
15586
15587 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15588
15589         * appdomain.c: don't add the culture to the filename we're looking for
15590         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
15591
15592 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15593
15594         * locales.c: don't ignore symbols when doing case insensitive compares.
15595         Thanks Dick! Fixes bug #54046.
15596
15597         * threads.c: surround 'threads' usage with enter/leave in
15598         mono_thread_manage.
15599
15600 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
15601
15602         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
15603         implicitly marshalled as [Out]. Fixes #55450.
15604
15605         (mono_marshal_get_runtime_invoke): Zero out the result if there is
15606         an exception.
15607
15608 2004-03-16  Martin Baulig  <martin@ximian.com>
15609
15610         * class.c (mono_class_from_generic_parameter): Use the actual
15611         parameter name. 
15612
15613 2004-03-16  Martin Baulig  <martin@ximian.com>
15614
15615         * reflection.c (type_get_signature_size): New static function.
15616         Compues the size of the type in a method signature.
15617         (method_get_signature_size): New static function; calls
15618         type_get_signature_size() to compute the actual size of the
15619         method's signature.
15620         (method_encode_signature): Use method_get_signature_size() to get
15621         the signature's size rather than using `nparams * 10'.
15622
15623 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15624
15625         * file-io.h: define here WapiOverlapped on windows. I don't want the
15626         regular OVERLAPPED one.
15627
15628         * file-io.c:
15629         * threadpool.c: somehow, BindIoCompletionCallback is not found.
15630         Disabling AIO on windows.
15631
15632 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15633
15634         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
15635         bug #55385.
15636
15637 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15638
15639         * appdomain.c: upgraded corlib version.
15640
15641         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
15642         and BeginWrite. Allow opening files for asynchrnous operations.
15643
15644         * file-io.h: new struct that maps FileStreamAsyncResult.
15645         * icall.c: added new icalls.
15646         * process.[ch]: support setting child process environment variables
15647         and use the SHELL or COMSPEC when UseShellExecute is true.
15648
15649         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
15650         callback for async. IO is here and also BindHandle.
15651
15652         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
15653         from here.
15654
15655 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
15656
15657         * reflection.c (create_custom_attr): Allow len == 0.
15658
15659         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
15660         computation on big-endian machines.
15661
15662 2004-03-13  Martin Baulig  <martin@ximian.com>
15663
15664         * class.h (MonoGenericInst): Added `int count_ifaces'.
15665
15666         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
15667         `ginst->count_ifaces' instead `klass->interface_count' since we
15668         may get called before the vtable is created.
15669
15670         * loader.c (mono_method_get_param_names): If we're a generic
15671         instance, return and don't initialize the class.
15672
15673         * reflection.c (mono_reflection_setup_generic_class): Don't call
15674         ensure_runtime_vtable().
15675         (mono_reflection_bind_generic_parameters): Set
15676         `ginst->count_ifaces'.
15677
15678 2004-03-11  Jackson Harper <jackson@ximian.com>
15679
15680         * icall.c:
15681         * unicode.c:
15682         * unicode.h: Remove unused System.Char icalls.
15683         
15684 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
15685
15686         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
15687         code when we P/Invoke the first library in Windows.Forms, instead
15688         of when we first open the assembly.
15689
15690         * assembly.c: Drop the lookup from here.
15691
15692 2004-03-10  Martin Baulig  <martin@ximian.com>
15693
15694         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
15695         class for properties, fields and events.  Finally fixes #54945.
15696
15697 2004-03-10  Martin Baulig  <martin@ximian.com>
15698
15699         * metadata.c (mono_metadata_class_equal): New static function;
15700         checks whether two generic instances or two generic parameters are
15701         equal.
15702         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
15703         compare classes.        
15704
15705 2004-03-10  Martin Baulig  <martin@ximian.com>
15706
15707         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
15708
15709         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
15710         argument and write it into the `reflection_info' field.
15711
15712         * icall.c
15713         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
15714         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
15715
15716 2004-03-09  Jackson Harper  <jackson@ximian.com>
15717
15718         * char-conversions.h: use 8 bits for numeric data its all we need
15719         * icall.c: numeric data is only 8 bits now.
15720
15721 2004-03-09  Martin Baulig  <martin@ximian.com>
15722
15723         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
15724
15725         * class.c (init_properties, init_events): Initialize the new
15726         `parent' field.
15727
15728         * reflection.c (typebuilder_setup_properties): Likewise.
15729         (typebuilder_setup_events): Likewise.
15730
15731         * reflection.h (MonoEventInfo): Replaced `parent with
15732         `declaring_type' and `reflected_type'.
15733
15734         * icall.c (ves_icall_get_property_info): Distinguish between
15735         declaring and reflected type.
15736         (ves_icall_get_event_info): Likewise.
15737
15738 2004-03-09  Martin Baulig  <martin@ximian.com>
15739
15740         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
15741         (ves_icall_Type_GetField): Correctly set field->klass.
15742
15743 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
15744
15745         * loader.h: Fix warning.
15746
15747 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
15748
15749         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
15750         library routine if present.  Notice that it will still continue
15751         executing even if its missing, for those working on the Gtk#
15752         edition of Windows.Forms.
15753
15754         * assembly.c (do_mono_assembly_open): If loading the
15755         System.Windows.Forms call mono_loader_wini_init.
15756
15757 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
15758
15759         * class.h: Added MonoRemoteClass struct.
15760         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
15761         function for MonoStrings.
15762         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
15763         Added internal call for getting the proxy type.
15764         * marshal.c: Get the type of transparent proxies from its remote_class.
15765         Added methods that generate the IL for type checks and casts:
15766         mono_marshal_get_isinst, mono_marshal_get_castclass, 
15767         mono_marshal_get_proxy_cancast.
15768         * marshal.h: Declaration of the previous new methods.
15769         * object.c: Added new moethods for creating and updating MonoRemoteClass
15770         instances: mono_remote_class, mono_upgrade_remote_class, 
15771         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
15772         * verify.c: FIx transparent_proxy_fields layout.
15773         * appdomain.c: Bump corlib version.
15774
15775 2004-03-04  Jackson Harper  <jackson@ximian.com>
15776
15777         * icall.c: Add icall to access char conversion tables.
15778         * char-conversions.h: Character conversion tables.
15779         * Makefile.am: Add char-conversions.h private header file.
15780         
15781 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
15782
15783         * appdomain.c (unload_thread_main): Increase unloading timeout to
15784         10 sec as a temporary workaround for Nant problems.
15785
15786 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
15787
15788         * gc.c: Add checks for GC_enable and GC_disable.
15789
15790         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
15791         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
15792         (bug #54988).
15793         
15794 2004-02-27  Martin Baulig  <martin@ximian.com>
15795
15796         * reflection.c (mono_reflection_bind_generic_parameters): Take a
15797         `MonoReflectionType *' instead of a `MonoType *'.
15798
15799 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
15800
15801         * gc.c (run_finalize): Avoid finalizing the object representing the
15802         finalizer thread.
15803         (finalizer_thread): Fix warning.
15804
15805 2004-02-25  Martin Baulig  <martin@ximian.com>
15806
15807         * class.c (_mono_class_get_instantiation_name): Added `int offset'
15808         argument for nested types.
15809         (mono_class_create_generic): Added support for nested generictypes.
15810
15811         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
15812         `GList *nested'.
15813
15814         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
15815
15816         * reflection.c (method_encode_signature): Increase the minimum
15817         value of `size' from 10 to 11.
15818         (mono_reflection_bind_generic_parameters): Take `int type_argc'
15819         and `MonoType **types' arguments instead of the `MonoArray
15820         *types'; added `MonoType *nested_in'.  Recursively instantiate
15821         nested classes. 
15822
15823 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
15824
15825         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
15826         stack_overflow_ex members which are used by exception handling.
15827
15828         * appdomain.c (mono_runtime_init): Initialize the new members.
15829
15830         * gc.c (mono_gc_enable): New helper function.
15831         * gc.c (mono_gc_disable): New helper function.
15832
15833 2004-02-23  Martin Baulig  <martin@ximian.com>
15834
15835         * icall.c: I must have been really stupid - make it actually work
15836         this time ;-)
15837
15838 2004-02-23  Martin Baulig  <martin@ximian.com>
15839
15840         * loader.c (method_from_memberref): Only inflate the method if
15841         it's in another klass.
15842
15843 2004-02-23  Martin Baulig  <martin@ximian.com>
15844
15845         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
15846         (mono_class_init): If we're a generic instance and an interface,
15847         compute `class->interface_id'; also create `class->interfaces'
15848         here and inflate them.
15849
15850         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
15851         `ginst->is_open'.
15852         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
15853
15854         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
15855
15856 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
15857
15858         * reflection.c (method_encode_code): Improved the error message
15859         generated by the exception.
15860
15861 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15862
15863         * icall.c: Martin did not do what he said in the ChangeLog for
15864         2004-02-18, but put back the changes for properties and events.
15865         Commenting those changes out again and adding comment to bug #54518.
15866         
15867         * process.c: removed warning.
15868
15869 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
15870
15871         * marshal.c (emit_struct_conv): Print an error message instead of
15872         asserting when a type does not have the StructLayout attribute.
15873
15874 2004-02-20  Martin Baulig  <martin@ximian.com>
15875
15876         * reflection.c (mono_type_get_object): Also use the cache for
15877         generic instances.
15878         (mono_reflection_bind_generic_parameters): Always compute
15879         `ginst->ifaces'.        
15880
15881 2004-02-20  Martin Baulig  <martin@ximian.com>
15882
15883         * class.h (MonoGenericMethod): Removed `klass'.
15884
15885         * class.c (mono_class_inflate_generic_method): Added `MonoClass
15886         *klass' argument.
15887
15888 2004-02-20  Martin Baulig  <martin@ximian.com>
15889
15890         * reflection.c (method_encode_methodspec): Actually use the
15891         uninflated signature for the memberref.
15892
15893 2004-02-20  Martin Baulig  <martin@ximian.com>
15894
15895         * class.h (MonoGenericMethod): Removed `declaring'.
15896
15897         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
15898         is NULL, compute it here.
15899
15900 2004-02-20  Martin Baulig  <martin@ximian.com>
15901
15902         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
15903
15904         * metadata.c (mono_metadata_generic_inst_hash): New method.
15905         (mono_metadata_generic_inst_equal): New method.
15906
15907         * reflection.c (mono_reflection_bind_generic_parameters): Use the
15908         `klass->image->generic_inst_cache' cache to avoid creating
15909         duplicate MonoGenericInst's.
15910
15911         * class.c (mono_class_inflate_generic_type): Use the cache.
15912
15913 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
15914
15915         * object.c: fixed gc descriptor calculation for embedded valuetypes.
15916
15917 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15918
15919         * icall.c: added Socket.WSAIoctl icall.
15920
15921         * socket-io.[ch]: implemented
15922         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
15923
15924 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
15925
15926         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
15927
15928 2004-02-18  Urs C Muff  <umuff@quark.com>
15929
15930         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
15931         this work on PPC and other big-endian architectures.
15932
15933         * debug-mono-symfile.h: Prepended the names of all the `guint32'
15934         fields with an underscore to make sure they're only accessed by
15935         the read32() macro.
15936
15937 2004-02-18  Martin Baulig  <martin@ximian.com>
15938
15939         * icall.c: Put the klass->refclass changes back for methods and
15940         fields, but not for properties and events.  We're currently not
15941         distinguishing between DeclaringType and ReflectedType for
15942         properties and events, that's what caused the regressions.
15943
15944 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15945
15946         * object.c:
15947         (mono_async_result_new): the handle can be NULL.
15948
15949         * threadpool.c: Use an event instead of a semaphore, don't initialize
15950         it until needed. This saves quite a few semaphores from being created
15951         when using the threadpool.
15952
15953 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
15954
15955         * object.c (mono_string_is_interned_lookup): Fix interning of long
15956         strings. Fixes #54473.
15957
15958         * domain.c (ldstr_equal): Optimize if the two strings are equal.
15959
15960         * icall.c: Revert the klass->refclass changes since they introduce
15961         regressions (bug #54518).
15962
15963 2004-02-18  Martin Baulig  <martin@ximian.com>
15964
15965         * class.c (mono_class_init): If we're a generic instance and don't
15966         come from a TypeBuilder, inflate our members here.
15967         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
15968         (mono_class_create_generic): New public method.
15969         (mono_class_initialize_generic): Removed.
15970         (get_instantiation_name): Renamed to
15971         _mono_class_get_instantiation_name() and made it public.
15972
15973 2004-02-18  Martin Baulig  <martin@ximian.com>
15974
15975         * class.c (mono_class_inflate_generic_type): Clear the new
15976         instance's `nginst->klass' when inflating a generic instance.
15977         (mono_class_is_subclass_of): Added (basic) support for generic
15978         instances.
15979
15980 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
15981
15982         * appdomain.h, domain.c: use a MonoCodeManager instead of a
15983         MonoMempool to hold compiled native code.
15984
15985 2004-02-17  Martin Baulig  <martin@ximian.com>
15986
15987         * class.h (MonoDynamicGenericInst): Added `count_properties' and
15988         `properties'.
15989
15990         * reflection.c (mono_reflection_generic_inst_initialize): Added
15991         `MonoArray *properties' argument.
15992
15993         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
15994
15995 2004-02-17  Martin Baulig  <martin@ximian.com>
15996
15997         * icall.c (ves_icall_Type_GetFields): Renamed to
15998         ves_icall_Type_GetFields_internal() and added a
15999         `MonoReflectionType *rtype' argument; pass it to
16000         mono_field_get_object() to set the field's "reflected" type.
16001         (ves_icall_Type_GetConstructors): Likewise.
16002         (ves_icall_Type_GetEvents): Likewise.
16003         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
16004         argument; pass it to mono_method_get_object() to set the method's
16005         "reflected" type.       
16006
16007 2004-02-17  Martin Baulig  <martin@ximian.com>
16008
16009         * class.h (MonoDynamicGenericInst): New type.
16010         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
16011
16012         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
16013         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
16014         (ves_icall_MonoGenericInst_GetFields): New interncall.
16015
16016         * class.c (mono_class_from_generic): Don't call
16017         mono_class_initialize_generic() if this is a dynamic instance;
16018         ie. it's being created from a TypeBuilder.
16019         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
16020         `class->byval_arg.type'.
16021
16022         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
16023         to `inflate_method' and made static.
16024         (mono_reflection_inflate_field): Removed.
16025         (mono_reflection_generic_inst_initialize): New public method.
16026
16027         * reflection.h (MonoReflectionGenericInst): Removed `methods',
16028         `ctors' and `fields'; added `initialized'.
16029
16030 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
16031
16032         * debug-helpers.c (mono_method_full_name): Fix output for empty
16033         namespaces.
16034
16035 2004-02-12  Martin Baulig  <martin@ximian.com>
16036
16037         * class.h (MonoClassField): Added `MonoType *generic_type'.
16038
16039         * reflection.c (mono_image_get_fieldref_token): Added support for
16040         instantiated generic types.
16041         (field_encode_inflated_field): Removed.
16042         (mono_image_get_inflated_field_token): Removed.
16043         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
16044
16045         * reflection.h (MonoReflectionInflatedField): Removed.
16046
16047 2004-02-12  Martin Baulig  <martin@ximian.com>
16048
16049         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
16050         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
16051
16052         * reflection.c (mono_image_get_methodspec_token): Take a
16053         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
16054         (mono_image_create_token): Check whether we have a
16055         `method->signature->gen_method' and call
16056         mono_image_get_methodspec_token() if appropriate.
16057         (inflated_method_get_object): Removed.
16058         (mono_reflection_bind_generic_method_parameters): Return a
16059         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
16060         (mono_reflection_inflate_method_or_ctor): Likewise.
16061
16062         * reflection.h (MonoReflectionInflatedMethod): Removed.
16063
16064 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
16065
16066         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
16067         for custom valuetype marshalling.
16068
16069         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
16070
16071 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16072
16073         * icall.c: fixed WSAGetLastError_internal name.
16074
16075 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
16076
16077         * threads.c (mono_thread_attach): Allow this to be called multiple
16078         times for a thread.
16079         
16080         * threads.c (build_wait_tids): Do not wait for ourselves.
16081
16082         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
16083         appdomain list is empty.
16084
16085         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
16086         memory returned by mono_string_builder_to_utf16, since it points into
16087         managed memory. Thanks to Bernie Solomon for noticing this.
16088
16089         * icall.c: Add AppDomainSetup icalls.
16090
16091         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
16092
16093         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
16094         types.
16095
16096         * reflection.c (reflection_methodbuilder_to_mono_method): Save
16097         custom attributes to the method_aux struct. Also fix array indexes etc.
16098
16099         * loader.c (mono_method_get_param_names): Make dynamic case work again.
16100         
16101 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
16102
16103         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
16104         (both static and runtime) and reduce startup time.
16105
16106 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
16107
16108         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
16109         AsAny marshalling conversion instead of crashing.
16110
16111         * marshal.c: Fix warnings.
16112
16113 2004-02-09  Martin Baulig  <martin@ximian.com>
16114
16115         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
16116
16117         * reflection.h (MonoReflectionInflatedMethod): Removed the
16118         `declaring' field, it's now in the unmanaged MonoGenericMethod.
16119
16120         * reflection.c (method_encode_methodspec): Removed the `method'
16121         argument; we get it from `gmethod->declaring'.
16122         (inflated_method_get_object): Removed the `declaring' argument.
16123
16124 2004-02-09  Martin Baulig  <martin@ximian.com>
16125
16126         * class.h (MonoGenericMethod): New type.
16127         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
16128         `generic_method'.
16129
16130         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
16131         a `MonoGenericMethod *gen_method' one.
16132
16133         * class.c (mono_class_inflate_generic_type): Take an additional
16134         `MonoGenericMethod * argument.  This is only non-NULL if we're
16135         inflating types for a generic method.   
16136         (mono_class_inflate_generic_signature): Renamed to
16137         inflate_generic_signature() and made static; take a
16138         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16139         (inflate_generic_header): Take a `MonoGenericMethod *' argument
16140         instead of a `MonoGenericInst *' one.
16141         (mono_class_inflate_generic_method): Likewise.
16142
16143         * reflection.c (encode_generic_method_sig): Take a
16144         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16145         (method_encode_methodspec): Likewise.
16146         (inflated_method_get_object): Likewise. 
16147
16148         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
16149         field with a `MonoGenericMethod *gmethod' one.  
16150
16151 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
16152
16153         * class.h (mono_class_has_parent): add parens to expansion
16154         so you can ! this.
16155
16156 2004-02-08  Martin Baulig  <martin@ximian.com>
16157
16158         * image.h (MonoImage): Removed `generics_cache'.
16159
16160         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
16161         instead of a `MonoType *' argument; removed the `inflate_methods'
16162         argument.  Don't inflate methods here.
16163
16164         * loader.c (find_method): If it's a generic instance, call
16165         mono_class_init() on the `sclass->generic_inst->generic_type'.
16166
16167         * metadata.c (mono_type_size): Make this work on uninitialized
16168         generic instances; call it on the `ginst->generic_type's class.
16169
16170         * reflection.c (mono_reflection_bind_generic_parameters): Call
16171         mono_class_from_generic() to create the `ginst->klass'.
16172
16173 2004-02-08  Martin Baulig  <martin@ximian.com>
16174
16175         * class.h (MonoClass): Changed type of `generic_inst' from
16176         `MonoType *' to `MonoGenericInst *'.
16177
16178 2004-02-08  Martin Baulig  <martin@ximian.com>
16179
16180         * icall.c (ves_icall_Type_BindGenericParameters): Just call
16181         mono_type_get_object(), this is now creating a `MonoGenericInst'
16182         for MONO_TYPE_GENERICINST.
16183         (ves_icall_MonoGenericInst_GetParentType): Likewise.
16184         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
16185
16186         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
16187         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
16188         (inflated_method_get_object): Added `MonoClass *refclass' argument.
16189         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
16190         and reflected type.
16191
16192         * reflection.h (MonoReflectionInflatedMethod): Removed
16193         `declaring_type' and `reflected_type'.
16194
16195 2004-02-08  Martin Baulig  <martin@ximian.com>
16196
16197         * class.h (MonoGenericInst): Added `MonoType *parent' and
16198         `MonoType **ifaces'.
16199
16200         * reflection.h (MonoReflectionGenericInst): Removed `klass',
16201         `parent' and `interfaces'.
16202
16203         * reflection.c (mono_reflection_bind_generic_parameters): Take a
16204         `MonoType *' argument and return a `MonoType *'.
16205
16206         * icall.c
16207         (ves_icall_MonoGenericInst_GetParentType): New interncall.
16208         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
16209
16210 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
16211
16212         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
16213         valuetype marshalling.
16214
16215 2004-02-06  Martin Baulig  <martin@ximian.com>
16216
16217         * class.c
16218         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
16219         (my_mono_class_from_generic_parameter): Likewise.
16220
16221 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
16222
16223         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
16224         contents of the symbol files lazily.
16225
16226         * object.h (MonoThread): Add 'name' and 'name_len' fields.
16227
16228         * threads.h threads.c icall.c: New icalls for getting and setting the
16229         threads name.
16230
16231 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
16232
16233         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
16234         Raise an exception when the domain is not found.
16235
16236 2004-02-03  Martin Baulig  <martin@ximian.com>
16237
16238         * reflection.c (mono_image_get_methodspec_token): Use the
16239         uninflated signature; fixes gen-33.
16240
16241 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
16242
16243         * gc.c threads.c: Make the finalizer thread a normal managed thread so
16244         the finalizer code can use thread functionality.
16245
16246         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
16247         the finalizer thread.
16248
16249         * threads.c: Make some functions more robust.
16250
16251         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
16252
16253         * metadata.h: Add new marshalling conventions.
16254
16255         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
16256         stringbuilder marshalling. Fixes #53700.
16257
16258         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
16259
16260         * reflection.c (mono_image_get_type_info): Save declarative security
16261         info.
16262
16263         * reflection.c (mono_image_get_field_info): Handle uninitialized 
16264         unmanaged fields as well.
16265
16266         * appdomain.c: Bump corlib version.
16267
16268 2004-02-01  Martin Baulig  <martin@ximian.com>
16269
16270         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
16271         method type arguments.  
16272
16273 2004-01-30  Duncan Mak  <duncan@ximian.com>
16274
16275         * marshal.h: Add prototype for
16276         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
16277         and
16278         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
16279         fix the build.
16280
16281 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
16282
16283         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
16284         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
16285
16286 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
16287
16288         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16289         custom marshalling of valuetypes.
16290
16291         * marshal.c: Fix some warnings.
16292
16293 2004-01-29  Martin Baulig  <martin@ximian.com>
16294
16295         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
16296         for generic method parameters.
16297
16298         * reflection.c (method_encode_methodspec): Write the uninflated
16299         signature into the methodspec table.
16300         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
16301         is always the uninflated method.
16302         (reflection_methodbuilder_to_mono_method): Copy the generic
16303         parameters from the MethodBuilder into `header->gen_params'.
16304
16305 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
16306
16307         * class.c (mono_class_from_generic_parameter): Fix warning.
16308
16309 2004-01-27  Martin Baulig  <martin@ximian.com>
16310
16311         * class.c (mono_class_from_generic_parameter): Don't create
16312         `klass->methods' here.  
16313
16314 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
16315
16316         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
16317         extension since it does not work with libraries named lib<FOO>.dll.so.
16318
16319 2004-01-25  Martin Baulig  <martin@ximian.com>
16320
16321         * class.c (mono_class_inflate_generic_type): Added support for
16322         MONO_TYPE_GENERICINST.
16323
16324         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
16325         inflate methods on open constructed types.      
16326
16327 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16328
16329         * object.c: fire ProcessExit event in the root AppDomain after running
16330         Main. Fixes bug #53299.
16331
16332 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
16333
16334         * socket-io.c: include the new socket-wrappers.h header.
16335         Use the wrappers instead of the unix socket functions to make the code
16336         more clear.
16337
16338 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
16339
16340         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
16341
16342         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16343         Fixes #22532.
16344
16345 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
16346
16347         * reflection.c (mono_image_create_pefile): Handle the case when the
16348         entry point is not a MethodBuilder.
16349
16350         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16351         field to ReflectionMethod since it is not allways a builder.
16352
16353         * reflection.c (type_get_fully_qualified_name): New helper function to
16354         return the fully qualified name of a type.
16355
16356         * reflection.c (encode_marshal_blob): Always emit the fully qualified
16357         type name for custom marshallers.
16358
16359         * reflection.c (mono_marshal_spec_from_builder): Ditto.
16360
16361         * class.c (mono_class_setup_vtable): If a parent class already 
16362         implements an interface, use the implementing methods from that class.
16363         Fixes #53148.
16364
16365 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16366
16367         * threadpool.c: just return instead of ExitThread to allow for thread
16368         clean up earlier.
16369
16370 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
16371
16372         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
16373         when closing resource modules.
16374
16375         * reflection.c (mono_image_create_pefile): Handle the case when the
16376         entry point is not a MethodBuilder.
16377
16378         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16379         field to ReflectionMethod since it is not allways a builder.
16380
16381 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
16382
16383         * marshal.c (mono_marshal_get_managed_wrapper): 
16384         mono_marshal_alloc takes native int so CONV_I
16385         the arg for 64bits.
16386
16387 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
16388
16389         * reflection.c (fixup_cattrs): New function to fixup the methoddef
16390         tokens in the cattr table. Fixes #53108.
16391
16392 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16393
16394         * loader.c: don't trim ".dll" before looking up in the config file.
16395         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
16396
16397 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
16398
16399         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
16400         Return the module which contains the resource as well.
16401         (ves_icall_System_Reflection_Module_Close): New icall.
16402
16403         * appdomain.c: Bump corlib version number.
16404
16405         * image.c (mono_image_addref): New public function.
16406
16407         * assembly.c: Call mono_image_addref.
16408
16409         * reflection.c (mono_module_get_object): Increase reference count of 
16410         the image.
16411
16412         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16413         Fixes #22532.
16414
16415         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
16416         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
16417         proper exceptions on DllImport problems.
16418
16419 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
16420
16421         * class.c, metadata.c: eliminate CSIZE macro.
16422
16423 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
16424
16425         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
16426         * object.h: Added async_callback field in MonoAsyncResult.
16427         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
16428         * verify.c: Added async_callback in MonoAsyncResult layout.
16429
16430 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
16431
16432         * reflection.c (mono_reflection_get_custom_attrs): Add support
16433         for Modules.
16434
16435 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
16436
16437         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
16438         marshalling.
16439         (mono_marshal_method_from_wrapper): Add null pointer check.
16440
16441 2004-01-16  Martin Baulig  <martin@ximian.com>
16442
16443         * debug-mono-symfile.h: Set version number to 36 and reflect
16444         latest symbol writer changes.
16445
16446 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
16447
16448         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
16449         multi-dimensional arrays.
16450         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
16451         (mono_class_from_mono_type): Use bounded_array_class_get.
16452         
16453         * class.c (mono_bounded_array_class_get): New function which takes
16454         a 'bounded' bool argument to distinguish vectors from one dimensional
16455         arrays.
16456
16457         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
16458         bounded_array_class_get if the array has bounds.
16459
16460         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
16461         Search modules loaded using AssemblyBuilder:AddModule as well.
16462
16463 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16464
16465         * appdomain.c: increased corlib version.
16466         * filewatcher.c: removed g_print.
16467         * icall.c:
16468         (get_property_info): only allocate what is actually requested.
16469         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
16470
16471 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16472
16473         * Makefile.am: added filewatcher.[ch]
16474         * filewatcher.[ch]: FileSystemWatcher runtime support.
16475         * icall.c: added new FSW icalls.
16476
16477 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
16478
16479         * string-icalls.c: fix stringbuilder regression as suggested by
16480         Iain McCoy <iain@mccoy.id.au>.
16481
16482 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
16483
16484         * process.c (process_read_stringtable_block): Recognize '007f' as
16485         a language neutral stringtable block.
16486
16487 2004-01-12  Patrik Torstensson
16488
16489         * object.h (MonoStringBuilder) : Changed layout to support our
16490         new stringbuilder class.
16491         * marshal.c: Change marshalling to support the new layout of 
16492         string builder.
16493         * appdomain.c: increased version number because new layout of
16494         string builder.
16495
16496 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
16497
16498         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
16499         assembly name as an string instead of an AssemblyName, since it is
16500         easier to extract info from it.
16501
16502         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
16503         the culture subdirectories too. Fixes #52231.
16504
16505 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16506
16507         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
16508         It takes 2 new parameters with an optional name for the method to look
16509         for and case ignoring info.
16510
16511         * threadpool.c: removed unused variable.
16512
16513 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16514
16515         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
16516         It takes 2 new parameters with an optional name for the property to look
16517         for and case ignoring info.
16518         Fixes bug #52753.
16519
16520 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
16521
16522         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
16523         Fix #52451.
16524
16525 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16526
16527         * appdomain.c:
16528         * assembly.c: escape the uri before passing it to g_filename_from_uri.
16529         Fixes bug #52630.
16530
16531 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
16532
16533         * reflection.c: Add support for more than one unmanaged resource.
16534
16535         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
16536         in field->def_value, as done in all other cases.
16537
16538         * reflection.c (mono_reflection_get_custom_attrs): Add support for
16539         TypeBuilders.
16540
16541         * reflection.c (mono_reflection_create_runtime_class): Remove 
16542         errorneous assignment to klass->element_class, since it is already
16543         done in mono_reflection_setup_internal_class.
16544
16545 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16546
16547         * gc.c: added missing LeaveCriticalSection.
16548         * icall.c: indented a couple of lines.
16549         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
16550         if we call EndInvoke inside a callback. Fixes bug #52601.
16551
16552 2004-01-07  Martin Baulig  <martin@ximian.com>
16553
16554         * mono-debug-debugger.h
16555         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
16556
16557 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
16558
16559         * appdomain.c: Use messages in NotImplementedException.
16560
16561         * exception.c (mono_get_exception_not_implemented): Now this takes
16562         a message argument.
16563
16564         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
16565         exception instead of g_asserting an aborting when something is not
16566         implemented.
16567
16568         Add some inline docs.
16569
16570 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
16571
16572         * reflection.h: Update after changes to object layout.
16573
16574         * reflection.c: Implement saving of unmanaged aka win32 resources.
16575
16576         * appdomain.c: Bump version number.
16577
16578         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
16579         Handle missing domains gracefully.
16580
16581 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
16582
16583         * file-io.c : On Windows, there are much more invalid_path_chars.
16584
16585 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
16586
16587         * class.h, object.c: prepare for GetType () speedup.
16588
16589 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
16590
16591         * profiler.c: workaround for --profile null reference exception on
16592           cygwin. Patch by Patrik Torstensson.
16593
16594 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
16595
16596         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
16597         make work for unaligned access.
16598
16599 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
16600
16601         * class.c: small cleanup (class->fields [i] -> field).
16602         * image.c: check address of metadata is valid.
16603
16604 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
16605
16606         * assembly.h assembly.c (mono_assembly_loaded): New public function to
16607         search the list of loaded assemblies.
16608
16609         * reflection.c (mono_reflection_type_from_name): Use 
16610         mono_assembly_loaded instead of mono_image_loaded.
16611
16612         * reflection.c: Fix warnings.
16613
16614 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
16615
16616         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
16617         is dynamic. This is needed since an assembly can contain both dynamic and
16618         non-dynamic images.
16619
16620         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
16621         assembly->dynamic.
16622
16623         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
16624
16625         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
16626         to store modules loaded using AddModule.
16627
16628         * reflection.c (mono_image_fill_file_table): Generalize this so it works
16629         on Modules.
16630
16631         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
16632
16633         * reflection.c (mono_image_fill_export_table_from_module): New function to
16634         fill out the EXPORTEDTYPES table from a module.
16635
16636         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
16637         into a separate function. Also handle loaded non-dynamic modules.
16638
16639         * reflection.c (mono_image_basic_init): Fix memory allocation.
16640
16641         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16642
16643         * assembly.c (mono_assembly_load_references): Make this public.
16644
16645 2003-12-19  Martin Baulig  <martin@ximian.com>
16646
16647         * class.c (mono_class_initialize_generic): Made this static, take
16648         a `MonoGenericInst *' instead of a `MonoClass *'.
16649         (mono_class_from_generic): Call mono_class_initialize_generic()
16650         unless we're already initialized or being called from
16651         do_mono_metadata_parse_generic_inst().
16652
16653         * class.h (MonoGenericInst): Added `initialized' and
16654         `init_pending' flags.
16655
16656         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
16657         `mono_class_init (gklass)' or mono_class_initialize_generic()
16658         here; set `generic_inst->init_pending' while parsing the
16659         `type_argv'.
16660
16661 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
16662
16663         * locales.c: include string.h for memxxx prototypes
16664
16665 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
16666
16667         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
16668         constructor when accessing literal fields.
16669
16670 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
16671
16672         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16673
16674         * reflection.c (assembly_add_resource_manifest): New function to fill
16675         the MANIFESTRESOURCE table.
16676
16677         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
16678
16679         * reflection.h: Update to changes in class layout.
16680
16681         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
16682         Reenable call to mono_runtime_is_shutting_down ().
16683
16684         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
16685         determine if the runtime is shutting down.
16686
16687 2003-12-16  Jackson Harper <jackson@ximian.com>
16688
16689         * icall.c: comment out call to mono_runtime_is_shutting_down to
16690         fix build.
16691         
16692 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
16693
16694         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
16695         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
16696
16697 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
16698
16699         * reflection.c: move definition of swap_with_size
16700         to before its first call
16701
16702 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
16703
16704         * appdomain.c (mono_runtime_is_shutting_down): New public function.
16705
16706         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
16707         icall.
16708
16709         * object.c: Fix warnings.
16710
16711         * icall.c (ves_icall_Type_Get...): Only consider inherited static
16712         members if FlattenHierarchy is set.
16713
16714         * reflection.c (mono_image_add_decl_security): New function to emit
16715         declarative security.
16716
16717         * reflection.h reflection.c: Add support for declarative security.
16718
16719         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
16720         
16721 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
16722
16723         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
16724         
16725         * appdomain.c verify.c: Moved corlib version checking into its own
16726         function in appdomain.c since it needs to create vtables etc.
16727
16728 2003-12-13  Patrik Torstensson <p@rxc.se>
16729
16730         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
16731         instead of unwrapped server.
16732
16733 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
16734
16735         * verify.c (check_corlib): Fix field index.
16736
16737 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
16738
16739         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
16740         GetGacPath icall.
16741
16742 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
16743
16744         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
16745         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
16746         cope with sizeof(size_t) != sizeof(guint32).
16747
16748 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16749
16750         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
16751         in case of failure.
16752
16753 2003-12-10  Mark Crichton <crichton@gimp.org>
16754
16755         * icall.c: removed the GetNonZeroBytes.  We now handle this case
16756         in managed code.
16757
16758         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
16759
16760 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
16761
16762         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
16763         marked as deleted.
16764
16765 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
16766
16767         * verify.c (check_corlib): Handle the case when the version field is 
16768         initialized by a static constructor.
16769
16770 2003-12-08  Patrik Torstensson  <p@rxc.se>
16771
16772     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
16773
16774 2003-12-08  Martin Baulig  <martin@ximian.com>
16775
16776         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
16777         a MonoReflectionGenericParameter, also take the parameter index
16778         and name as arguments.
16779         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
16780         (ves_icall_MonoGenericParam_initialize): New interncall.
16781         (ves_icall_Type_make_byref_type): New interncall.
16782
16783         * reflection.h (MonoReflectionGenericParam): Derive from
16784         MonoReflectionType, not just from MonoObject.  Added `refobj' and
16785         `index' fields.
16786
16787         * reflection.c (mono_reflection_define_generic_parameter): Create
16788         and return a new MonoReflectionGenericParam; don't initialize the
16789         constraints here.
16790         (mono_reflection_initialize_generic_parameter): New public method;
16791         initializes the constraints and creates the `param->pklass'.
16792
16793 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
16794
16795         * reflection.h reflection.c: Use the new fields 'num_types', 
16796         'num_fields' and 'num_methods' to track the number of types etc.
16797
16798         * verify.c (check_corlib): Check corlib version number.
16799
16800 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
16801
16802         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
16803         function works on all methods.
16804
16805 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
16806
16807         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
16808         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
16809         the custom_type_info flag of the transparent proxy.
16810         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
16811         objects that supports IRemotingTypeInfo.
16812         * object.h: Added custom_type_info field in transparent proxy.
16813
16814 2003-12-06  Martin Baulig  <martin@ximian.com>
16815
16816         * class.c (mono_class_create_from_generic): Removed.
16817         (mono_class_from_generic): Check `ginst->klass' before doing
16818         anything else.  This is important to fully support "recursive"
16819         generic types.
16820
16821         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
16822         empty `generic_inst->klass' before doing anything else.
16823
16824 2003-12-06  Dick Porter  <dick@ximian.com>
16825
16826         * verify.c: 
16827         * object.h:
16828         * icall.c:
16829         * locales.c: Use C structs to access class fields.  Don't do a
16830         conversion between MonoString and UChar because both are
16831         platform-endian UTF-16.  Compare now takes startindex and count
16832         parameters.  Add a char overload for IndexOf.  Speed up the
16833         invariant string IndexOf.
16834
16835 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
16836
16837         * Makefile.am (monosn_LDADD): Fix parallel build.
16838
16839 2003-12-04  Martin Baulig  <martin@ximian.com>
16840
16841         * icall.c
16842         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16843         (ves_icall_Type_make_array_type): New interncall.       
16844
16845 2003-12-04  Martin Baulig  <martin@ximian.com>
16846
16847         * locales.c: also change it in the !HAVE_ICU case.
16848
16849 2003-12-04  Dick Porter  <dick@ximian.com>
16850
16851         * icall.c:
16852         * locales.c: construct_compareinfo is now in CompareInfo, not
16853         CultureInfo.
16854
16855 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
16856
16857         * image.c (mono_image_load_file_for_image): Cache loaded images in the
16858         image->files array.
16859
16860         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
16861         table as well.
16862
16863         * assembly.c (mono_assembly_load_references): Only load references
16864         once.
16865
16866         * class.c (mono_class_from_name): Avoid linear search of the 
16867         EXPORTEDTYPE table.
16868
16869         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
16870
16871 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
16872
16873         * image.h (MonoImage): Add 'field_cache' field.
16874
16875         * loader.c (mono_field_from_token): Cache field lookups.
16876         
16877         * reflection.c (mono_module_get_object): Fix name property.
16878
16879         * icall.c (ves_icall_get_enum_info): Update after changes to 
16880         mono_metadata_get_constant_index ().
16881
16882         * icall.c: Get rid of get_type_info icall, use a separate icall for
16883         each type property to avoid needless memory allocations. Fixes #51514.
16884
16885         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
16886         to avoid needless binary searches.
16887
16888         * class.c (class_compute_field_layout): Move the initialization of
16889         field->def_value to mono_class_vtable ().
16890
16891         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
16892         non-corlib types.
16893
16894         * object.c (mono_object_allocate): Make it inline.
16895
16896         * object.c (mono_object_allocate_spec): Make it inline.
16897         
16898 2003-12-02  Dick Porter  <dick@ximian.com>
16899
16900         * locales.c (create_NumberFormat): NumberFormatInfo construction.
16901         Patch by Mohammad DAMT (mdamt@cdl2000.com).
16902
16903 2003-12-01  Dick Porter  <dick@ximian.com>
16904
16905         * threads.c: Fix signature and call in CreateMutex and
16906         CreateEvent.
16907
16908 2003-12-01  Dick Porter  <dick@ximian.com>
16909
16910         * icall.c: 
16911         * locales.c: Implement string compares and searching
16912
16913         * object.h: Add extra Thread field
16914
16915 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
16916
16917         * reflection.c (fixup_method): Add support for MonoCMethod.
16918
16919 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
16920
16921         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
16922
16923         * reflection.c (assembly_name_to_aname): Allow extra characters in
16924         assembly names. Fixes #51468.
16925
16926 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
16927
16928         * exception.c (mono_exception_from_name_domain): New helper function.
16929
16930         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
16931         exception object in the correct domain.
16932
16933         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
16934         formatting + make a copy a the input data.
16935
16936         * loader.c (mono_get_method_from_token): Methods which contain
16937         native code do not have entries in the ImplMap.
16938
16939         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
16940         Thanks to Gonzalo for spotting this.
16941         
16942         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
16943         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
16944
16945         * assembly.h (mono_assembly_load_from): Split the second part of 
16946         assembly loading into a new public function.
16947
16948         * exception.h (mono_get_exception_bad_image_format): New function.
16949
16950 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
16951
16952         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
16953         Enumerate all modules inside a dynamic assembly. Fixes #51293.
16954         
16955         * icall.c: Add new icall for creating dynamic methods.
16956
16957         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
16958
16959         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
16960
16961         * reflection.c (mono_reflection_create_dynamic_method): New icall to
16962         create a dynamic method.
16963
16964         * reflection.c (resolve_object): New helper function.
16965
16966         * reflection.c: Generalize ReflectionMethodBuilder and the functions
16967         which manipulate it so they can also work on dynamic methods.
16968
16969         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
16970         creating the MonoReflectionMethodAux structure if it is not needed.
16971         
16972         * reflection.h verify.c: Update after changes to object layout.
16973
16974         * reflection.c (method_builder_encode_signature): Fix compilation on
16975         gcc 2.95.x.
16976
16977 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
16978
16979         * appdomain.h: Added support for context static fields. Added static_data
16980           field to MonoAppContext and renamed thread_static_fields to a more
16981           generic special_static_fields in MonoAppDomain, since it can now contain
16982           context static fields.
16983         * domain.c: Updated hashtable name.
16984         * object.c: Replaced field_is_thread_static() for a more generic
16985           field_is_special_static() which also checks for context static attribute.
16986           In mono_class_vtable(), added support for static context fields.
16987         * threads.c: Changed methods that manage thread static fields to more
16988           generic methods so they can be reused both for thread and context static
16989           data.
16990         * threads.h: Declared some new methods.
16991
16992 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
16993
16994         * reflection.h: Update after changes to the managed types.
16995
16996         * reflection.c (encode_custom_modifiers): New helper function.
16997
16998         * reflection.c (method_encode_signature): Emit custom modifiers.
16999
17000         * reflection.c (field_encode_signature): Emit custom modifiers.
17001
17002 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
17003
17004         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
17005
17006         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
17007         implementation.
17008
17009         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
17010         icall.
17011
17012         * object.c (mono_field_get_value_object): New function.
17013
17014         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
17015         specific.
17016
17017 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
17018
17019         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
17020         return a preallocated out-of-memory exception instance.
17021
17022         * object.c (out_of_memory): Use the new function.
17023
17024         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
17025         flag is before the custom modifiers. Fixes #49802.
17026
17027 2003-11-16  Martin Baulig  <martin@ximian.com>
17028
17029         * class.c (mono_class_is_open_constructed_type): Implemented the
17030         MONO_TYPE_GENERICINST case.
17031
17032 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
17033
17034         * assembly.c (mono_assembly_fill_assembly_name): New function to
17035         fill out the MonoAssemblyName structure.
17036         (mono_assembly_open): Use the new function.
17037
17038         * icall.c (fill_reflection_assembly_name): New helper function.
17039
17040         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
17041         new function.
17042
17043         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
17044
17045 2003-11-15  Martin Baulig  <martin@ximian.com>
17046
17047         * class.c (mono_class_is_open_constructed_type): New public
17048         function; checks whether a type is an open constructed type,
17049         ie. whether it still contains type parameters.
17050         (mono_class_inflate_generic_type): If we're a type parameter and
17051         the inflated type is also a MONO_TYPE_(M)VAR, return the original
17052         type.
17053
17054         * class.h (MonoGenericInst): Added `guint32 is_open'.
17055
17056         * loader.c (method_from_methodspec): Check whether we're an open
17057         or closed constructed type and set `ginst->is_open'.
17058
17059         * reflection.c (mono_reflection_bind_generic_parameters): Check
17060         whether we're an open or closed constructed type and set
17061         `ginst->is_open'.
17062         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
17063         from open constructed types.
17064
17065 2003-11-15  Martin Baulig  <martin@ximian.com>
17066
17067         * reflection.c (mono_reflection_bind_generic_parameters): If we're
17068         a generic instance (instead of a generic type declaration) with
17069         unbound generic parameters, bind them to our actual types.
17070
17071 2003-11-14  Martin Baulig  <martin@ximian.com>
17072
17073         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
17074
17075         * reflection.c (mono_reflection_bind_generic_parameters): If we're
17076         an interface type, populate `res->interfaces' with instantiated
17077         versions of all the interfaces we inherit.
17078
17079 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
17080
17081         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
17082         when MONO_PATH is set but doesn't contain the install dir.
17083
17084 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17085
17086         * icall.c:
17087         (ves_icall_Type_GetInterfaces): don't return an interface twice when
17088         it's also implemented in base classes. Fixes bug #50927.
17089
17090 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
17091
17092         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
17093         if this method is called from a finalizer. Fixes #50913.
17094
17095 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
17096
17097         * threads.c: Implement VolatileRead/VolatileWrite
17098
17099         * icall.c: Add new icalls for VolatileRead/VolatileWrite
17100
17101 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17102
17103         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
17104         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
17105         2.95.3.
17106
17107         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
17108         from Peter Ross (pro@missioncriticalit.com).
17109         
17110 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
17111
17112         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
17113
17114 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17115
17116         * assembly.c (mono_assembly_load_references): Disable check because it
17117         triggers on older corlibs which lots of people have.
17118
17119 2003-11-12  Jackson Harper  <jackson@ximian.com>
17120
17121         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
17122         load corlib.dll if mscorlib.dll is not found.
17123         * assembly.h: Remove corlib name define.
17124         * class.c:
17125         * domain.c:
17126         * image.c: Change corlib name to mscorlib.
17127         
17128 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17129
17130         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
17131
17132 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
17133
17134         * appdomain.h: Added loader_optimization here to sync with the C#
17135         code, and add disallow_binding_redirects field.
17136
17137 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17138
17139         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
17140
17141         * reflection.c (mono_image_build_metadata): Fix crash on modules
17142         with no types.
17143
17144         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
17145
17146         * icall.c (ves_icall_get_method_info): Return callingConvention as
17147         well.
17148
17149         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
17150         namespaces from the EXPORTEDTYPE table as well.
17151
17152         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
17153         from all modules inside the assembly.
17154         
17155 2003-11-11  Martin Baulig  <martin@ximian.com>
17156
17157         * reflection.c (mono_reflection_bind_generic_parameters): Make
17158         this work for interfaces.
17159
17160 2003-11-11  Martin Baulig  <martin@ximian.com>
17161
17162         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
17163
17164 2003-11-11  Martin Baulig  <martin@ximian.com>
17165
17166         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
17167         "MonoInflatedMethod" and "MonoInflatedCtor".
17168
17169 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17170
17171         * reflection.c (resolution_scope_from_image): Use the assembly table
17172         from the manifest module, since other modules don't have it.
17173
17174         * debug-helpers.c (mono_type_full_name): New helper function.
17175
17176         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
17177
17178         * image.c (mono_image_load_file_for_image): New public function which
17179         is a replacement for the load_file_for_image in class.c.
17180
17181         * assembly.c (mono_assembly_load_module): A wrapper for the function
17182         above which does assembly association and reference loading too.
17183
17184         * class.c (mono_class_from_name): Call mono_assembly_load_module.
17185
17186 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17187
17188         * appdomain.c: not all of the attributes for the full assembly name
17189         are required and the order doesn't matter. Fixes bug #50787.
17190
17191 2003-11-10  Dick Porter  <dick@ximian.com>
17192
17193         * locales.c: Use platform-endian UTF16
17194
17195 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
17196
17197         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17198         
17199 2003-11-10  Martin Baulig  <martin@ximian.com>
17200
17201         * metadata.c
17202         (mono_metadata_load_generic_params): Make this actually work.
17203
17204         * reflection.c (mono_reflection_bind_generic_parameters): If our
17205         parent is a generic instance, pass all the `types' to it, no
17206         matter whether it has the same number of type parameters or not.
17207
17208 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
17209
17210         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17211
17212         * assembly.c (mono_assembly_load_references): Move the image<->assembly
17213         assignment code to this function so it gets called recursively for all
17214         modules.
17215
17216         * image.c (load_modules): Remove the assembly assignment since it is
17217         now done by mono_assembly_load_references.
17218         
17219         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17220         Add 'module' argument.
17221         (mono_module_get_types): New helper function.
17222         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
17223
17224 2003-11-08  Martin Baulig  <martin@ximian.com>
17225
17226         * class.c (mono_class_inflate_generic_method): Interface method
17227         don't have a header.
17228
17229         * reflection.c (mono_image_get_methodspec_token): Take an
17230         additional `MonoGenericInst *' argument instead of reading it from
17231         the header; this is necessary to support interfaces.
17232         (mono_image_create_token): Pass the `MonoGenericInst *' from the
17233         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
17234         (inflated_method_get_object): Take an additional `MonoGenericInst *'
17235         argument.
17236
17237         * reflection.h (MonoReflectionInflatedMethod): Added
17238         `MonoGenericInst *ginst'.
17239
17240 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
17241
17242         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
17243
17244 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
17245
17246         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
17247
17248 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
17249
17250         * reflection.c 
17251         (reflection_methodbuilder_from_method_builder):
17252         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
17253         initialize a ReflectionMethodBuilder structure.
17254         (mono_image_get_methodbuilder_token):
17255         (mono_image_get_ctorbuilder_token): New functions to emit memberref
17256         tokens which point to types in another module inside the same assembly.
17257
17258         * reflection.c: Use the new helper functions.
17259         
17260         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
17261
17262         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
17263         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
17264
17265         * reflection.c (resolution_scope_from_image): Emit a moduleref if
17266         neccesary.
17267
17268         * reflection.c (mono_image_build_metadata): Emit metadata only for the
17269         current module. Emit the manifest only for the main module.
17270
17271         * reflection.c (mono_image_create_token): Add assertion when a 
17272         memberref needs to be created.
17273
17274         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
17275
17276         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
17277         larger buffer for the custom attribute blob. Fixes #50637.
17278         
17279 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17280
17281         * threadpool.c: notify listener on async processing handles after
17282         invoking the async callback. Thanks to Zoltan.
17283
17284 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17285
17286         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
17287         avoid code duplication.
17288
17289         * reflection.h (MonoDynamicImage): New type which is currently unused,
17290         but will be used through the ref.emit code in place of 
17291         MonoDynamicAssembly.
17292
17293         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17294         object layout.
17295
17296         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
17297         a MonoDynamicImage instead of just a MonoImage.
17298         
17299         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
17300         icalls to ModuleBuilder but keep their semantics, so they will work
17301         with moduleb->assemblyb. This will change later.
17302         
17303 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17304
17305         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17306         object layout.
17307
17308         * reflection.c (mono_image_build_metadata): Avoid creation of a default
17309         main module, since it is now done by the managed code.
17310
17311 2003-11-03  Martin Baulig  <martin@ximian.com>
17312
17313         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
17314         `ginst->klass' here.
17315         (method_encode_methodspec): Don't use the `ginst->generic_method's
17316         klass if it's a generic instance, use `ginst->klass' in this case.
17317
17318 2003-11-03  Martin Baulig  <martin@ximian.com>
17319
17320         * reflection.c (mono_image_get_generic_method_param_info):
17321         Removed, use mono_image_get_generic_param_info() instead.
17322         (mono_image_get_type_info): Write the GenericParam table before
17323         the Method table.  This is neccessary because in the GenericParam
17324         table, type parameters of the class (ie. '!0' etc.) must come
17325         before the ones from its generic methods (ie. '!!0' etc).
17326
17327 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17328
17329         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
17330
17331 2003-11-02  Martin Baulig  <martin@ximian.com>
17332
17333         * reflection.c (create_generic_typespec): Take a
17334         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
17335         the generic parameters from it.
17336
17337 2003-11-02  Martin Baulig  <martin@ximian.com>
17338
17339         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
17340         instead of a `MonoClassField *' since we just need the type.
17341         (create_generic_typespec): New static function.  Creates a
17342         TypeSpec token for a generic type declaration.
17343         (mono_image_get_generic_field_token): New static function.
17344         (mono_image_create_token): If we're a FieldBuilder in a generic
17345         type declaration, call mono_image_get_generic_field_token() to get
17346         the token.
17347
17348 2003-11-02  Martin Baulig  <martin@ximian.com>
17349
17350         * reflection.h
17351         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
17352         `MonoReflectionGenericInst *declaring_type' and
17353         `MonoReflectionGenericInst *reflected_type' fields.
17354
17355         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
17356         `MonoReflectionGenericInst *declaring_type' and a
17357         `MonoReflectionGenericInst *reflected_type' argument instead of a
17358         single `MonoReflectionGenericInst *type' one.  Set
17359         `res->declaring_type' and `res->reflected_type' from them.
17360         (mono_reflection_inflate_field): Likewise.      
17361
17362 2003-11-02  Martin Baulig  <martin@ximian.com>
17363
17364         * class.c (mono_class_setup_vtable): Don't store generic methods
17365         in the vtable.  
17366
17367 2003-11-02  Martin Baulig  <martin@ximian.com>
17368
17369         * reflection.h (MonoReflectionGenericInst): Added
17370         `MonoReflectionType *declaring_type'.
17371
17372         * reflection.c (mono_reflection_bind_generic_parameters): Use
17373         `if (tb->parent)' instead of `klass->parent'.
17374
17375 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
17376
17377         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
17378         with an empty ASSEMBLY table.
17379
17380         * reflection.c (mono_image_build_metadata): Avoid using the same loop
17381         variable in the inner and outer loops.
17382
17383 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
17384
17385         * metadata.h (mono_metadata_make_token): Put parentheses around macro
17386         argument.
17387
17388         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
17389         
17390         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
17391         icalls. Instead, do everything in managed code. This is needed since
17392         it is hard to restore the original domain etc. in unmanaged code in the
17393         presence of undeniable exceptions.
17394
17395         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
17396         New icalls to push and pop appdomain refs.
17397
17398 2003-10-31  Martin Baulig  <martin@ximian.com>
17399
17400         * class.c (inflate_generic_type): Renamed to
17401         mono_class_inflate_generic_type() and made it public.
17402
17403         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
17404         New interncall.
17405
17406         * loader.c (mono_field_from_memberref): Also set the retklass for
17407         typespecs.
17408
17409         * fielder.c (mono_image_get_inflated_field_token): New static
17410         method; creates a metadata token for an inflated field.
17411         (mono_image_create_token, fixup_method): Added support for
17412         "MonoInflatedField".
17413         (fieldbuilder_to_mono_class_field): New static function.
17414         (mono_reflection_inflate_field): New public function.
17415
17416         * reflection.h
17417         (MonoReflectionGenericInst): Added `MonoArray *fields'.
17418         (MonoReflectionInflatedField): New typedef.     
17419
17420 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
17421
17422         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
17423         for Solaris and other platforms without s6_addr16
17424
17425 2003-10-30  Martin Baulig  <martin@ximian.com>
17426
17427         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
17428         argument instead of two.
17429         (mono_class_inflate_generic_signature): Likewise.
17430         (inflate_generic_header): Likewise.
17431         (mono_class_inflate_generic_method): Likewise.  In addition, if
17432         `ginst->klass' is set, it becomes the new `method->klass'.
17433
17434         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
17435         field.
17436
17437         * reflection.c (encode_generic_method_sig): Write a 0xa as the
17438         first byte. [FIXME]
17439         (method_encode_methodspec): If we have generic parameters, create
17440         a MethodSpec instead of a MethodRef.
17441         (fixup_method): Added support for "MonoInflatedMethod" and
17442         "MonoInflatedCtor".
17443         (mono_image_create_token): Added support for "MonoInflatedMethod"
17444         and "MonoInflatedCtor".
17445         (inflated_method_get_object): New static function; returns a
17446         managed "System.Reflection.MonoInflatedMethod" object.
17447         (mono_reflection_bind_generic_method_parameters): Return a
17448         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
17449         (mono_reflection_inflate_method_or_ctor): Likewise.
17450         (mono_image_get_generic_method_param_info): Initialize unused
17451         fields to zero.
17452         (mono_image_get_generic_param_info): Likewise.
17453
17454         * reflection.h (MonoReflectionInflatedMethod): New public
17455         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
17456         "S.R.MonoInflatedCtor" classes.
17457
17458         * loader.c (method_from_memberref): If we're a TypeSpec and it
17459         resolves to a generic instance, inflate the method.
17460
17461 2003-10-28  Dick Porter  <dick@ximian.com>
17462
17463         * object.c (mono_runtime_run_main): Convert command-line arguments
17464         into utf8, falling back to the user's locale encoding to do so.
17465
17466 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
17467
17468         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
17469         at this time.
17470
17471         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
17472
17473         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
17474         up icalls at method definition time. Partially fixes #33569.
17475
17476 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
17477
17478         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
17479         marshalling of arrays. Fixes #50116.
17480
17481         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
17482
17483         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
17484         points to a vtable in the dying appdomain.
17485
17486         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
17487         listeners into unmanaged code inside the lock.
17488
17489         * object.c (mono_class_vtable): Turn off typed allocation in non-root
17490         domains and add some comments.
17491
17492 2003-10-25  Martin Baulig  <martin@ximian.com>
17493
17494         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
17495
17496         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
17497
17498         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
17499         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
17500         currently parsing.  Create the generic class and store it in
17501         `generic_inst->klass' before parsing the type arguments.  This is
17502         required to support "recursive" definitions; see mcs/tests/gen-23.cs
17503         for an example.
17504         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
17505         to support recursive typespec entries.
17506
17507         * class.c (mono_class_setup_parent): If our parent is a generic
17508         instance, we may get called before it has its name set.
17509         (mono_class_from_generic): Splitted into
17510         mono_class_create_from_generic() and mono_class_initialize_generic().
17511
17512 2003-10-25  Martin Baulig  <martin@ximian.com>
17513
17514         * icall.c (ves_icall_Type_BindGenericParameters): Return a
17515         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
17516         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
17517         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
17518
17519         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
17520         (create_typespec): Likewise.
17521         (mono_reflection_bind_generic_parameters): Return a
17522         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
17523         (mono_reflection_inflate_method_or_ctor): New public function.
17524
17525         * reflection.h (MonoReflectionGenericInst): New typedef.        
17526
17527 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
17528
17529         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
17530         inside the domain lock. Fixes #49993.
17531         
17532         * object.c (mono_class_vtable): When typed allocation is used, 
17533         allocate vtables in the GC heap instead of in the mempool, since the
17534         vtables contain GC descriptors which are used by the collector even
17535         after the domain owning the mempool is unloaded.
17536
17537         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
17538
17539         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
17540         reflect what it does. Also invalidate mempools instead of freeing
17541         them if a define is set.
17542
17543         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
17544         of the appdomain.
17545         
17546         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
17547         hold the finalizable objects in this domain.
17548
17549         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
17550         appdomain.
17551
17552         * appdomain.c (mono_domain_set): New function to set the current
17553         appdomain, but only if it is not being unloaded.
17554
17555         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
17556         appdomain which is being unloaded.
17557         
17558         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
17559         unloading of the root appdomain.
17560
17561         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
17562         icall to execute a method in another appdomain. Intended as a 
17563         replacement for InternalSetDomain, which can confuse the code 
17564         generation in the JIT.
17565
17566         * appdomain.c (mono_domain_is_unloading): New function to determine
17567         whenever an appdomain is unloading.
17568
17569         * appdomain.c (mono_domain_unload): New function to correctly unload
17570         an appdomain.
17571
17572         * assembly.c (mono_assembly_load_references): Check that an assembly
17573         does not references itself.
17574
17575         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
17576         domain manually, it asks the finalizer thread to do it, then waits for
17577         the result. Also added a timeout.
17578
17579         * icall.c: Register the new icalls.
17580
17581         * threads.h threads.c: Export the mono_gc_stop_world and 
17582         mono_gc_start_world functions.
17583         
17584         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
17585         function to fill out the mempool with 0x2a.
17586
17587 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
17588
17589         * reflection.h (MonoReflectionMethodAux): New structure to store
17590         information which is rarely used, thus is not in the MonoMethod
17591         structure.
17592
17593         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
17594         store the aux info.
17595
17596         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
17597         and marshalling info into the aux structure.
17598
17599         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
17600         from the aux structure.
17601
17602         * loader.c (mono_method_get_param_names): Retrieve the param names from
17603         the aux structure.
17604         
17605 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
17606
17607         * exception.h exception.c: Add AppDomainUnloadedException && fix 
17608         warning.
17609
17610 2003-10-21  Dick Porter  <dick@ximian.com>
17611
17612         * socket-io.c
17613         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
17614         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
17615
17616 2003-10-21  Martin Baulig  <martin@ximian.com>
17617
17618         * reflection.c (mono_reflection_bind_generic_parameters):
17619         `klass->parent' is NULL for interfaces.
17620
17621 2003-10-21  Martin Baulig  <martin@ximian.com>
17622
17623         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17624
17625 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
17626
17627         * exception.c (mono_exception_from_name_msg): New helper function for
17628         creating exceptions and initializing their message field.
17629
17630         * exception.c: Simplify functions using the new helper.
17631
17632         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
17633         New function.
17634
17635         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
17636         mono_raise_exception, since otherwise gcc doesn't generate the function
17637         epilog for raise_exception, confusing the stack unwinding in the JIT.
17638         Fixes #45043.
17639
17640         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
17641         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
17642         Fixes #49499.
17643
17644 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17645
17646         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
17647         utf8.
17648
17649 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
17650
17651         * icall.c: Removed GetUninitializedObject method because
17652           AllocateUninitializedClassInstance does the same.
17653
17654 2003-10-18  Martin Baulig  <martin@ximian.com>
17655
17656         * class.c (inflate_generic_signature): Renamed to
17657         mono_class_inflate_generic_signature() and made it public.
17658         (my_mono_class_from_generic_parameter): New static function; if we
17659         don't already have the generic parameter's MonoClass, create a
17660         very simple one which is just used internally in the runtime and
17661         not passed back to managed code.
17662
17663         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
17664
17665         * metadata.h (MonoMethodSignature): Moved the
17666         `MonoGenericParam *gen_params' to the MonoMethodHeader.
17667         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
17668
17669         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
17670         ves_icall_MonoMethod_GetGenericArguments(); this is now an
17671         interncall on the MonoMethod class, not on MethodInfo.
17672         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
17673         calling mono_reflection_bind_generic_method_parameters() directly.
17674
17675         * loader.c (mono_method_get_signature): If this is a MethodSpec;
17676         return the already computed `method->signature'.
17677         (method_from_methodspec): New static function to load a method
17678         from a MethodSpec entry.
17679         (mono_get_method_from_token): Call the new method_from_methodspec()
17680         for MethodSpec tokens.  
17681         (mono_get_method_from_token): If we're a generic method, load the
17682         type parameters.
17683
17684         * reflection.c (mono_image_get_memberref_token): Allow
17685         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
17686         table.
17687         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
17688         (mono_image_create_token): First check whether it's a generic
17689         method (so we'd need to create a MethodSpec), then do the other
17690         two alternatives.
17691         (mono_reflection_bind_generic_method_parameters): Return a
17692         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
17693         called directly from the interncall.
17694
17695 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
17696
17697         * reflection.c (load_public_key): Move loading of the public key
17698         into managed code.
17699
17700         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
17701
17702         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
17703         fields.
17704
17705         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
17706         culture, hash_alg and public_key. Fixes #49555.
17707
17708 2003-10-17  Martin Baulig  <martin@ximian.com>
17709
17710         * class.h (MonoGenericInst): Moved this declaration here and added
17711         `MonoMethod *generic_method'.
17712
17713         * icall.c
17714         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
17715         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
17716
17717         * metadata.c (mono_metadata_type_equal): Two types of
17718         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
17719         index; ie. don't compare the address of the `MonoGenericParam'
17720         structure.
17721         (mono_metadata_load_generic_params): Removed the `MonoMethod
17722         *method' argument.
17723
17724         * metadata.h (MonoGenericInst): Moved declaration to class.h.
17725         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
17726
17727         * reflection.c (method_encode_signature): Encode the number of
17728         generic parameters.
17729         (encode_generic_method_sig): New static function.
17730         (method_encode_methodspec): New static function; creates an entry
17731         in the MethodSpec table for a generic method.
17732         (mono_image_get_methodspec_token): New static function.
17733         (mono_image_create_token): Call mono_image_get_methodspec_token()
17734         for generic methods.
17735         (mono_reflection_bind_generic_method_parameters): New public
17736         function.  Instantiates a generic method.
17737
17738 2003-10-16  Martin Baulig  <martin@ximian.com>
17739
17740         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
17741         *gen_params' here from MonoMethodHeader.
17742
17743         * metadata.c (mono_metadata_parse_method_signature): If we have
17744         generic parameters, initialize `method->gen_params' and then set
17745         the correct `type->data.generic_param' in all the parameters.
17746
17747 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
17748
17749         * threads.c (mono_threads_get_default_stacksize): New function to 
17750         return the default stacksize.
17751
17752         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
17753         termination of the finalizer thread, since the previous method had
17754         race conditions. Fixes #49628.
17755
17756         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
17757         as for the other managed threads.
17758
17759 2003-10-16  Martin Baulig  <martin@ximian.com>
17760
17761         * class.c (inflate_generic_signature): Copy `generic_param_count'
17762         and `gen_params'.
17763
17764         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
17765         New interncall.
17766
17767         * metadata.c (mono_metadata_parse_method_signature): Actually set
17768         the `method->generic_param_count' here.
17769         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
17770
17771 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
17772
17773         * object.h: Add a new field to TypedRef to simplify the implementation
17774         of the REFANY opcodes in the JIT.
17775
17776         * icall.c: Make use of the new field.
17777
17778         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
17779         dynamically.
17780
17781 2003-10-15  Martin Baulig  <martin@ximian.com>
17782
17783         * class.c (mono_class_from_gen_param): Renamed to
17784         mono_class_from_generic_parameter() and moved most of the
17785         functionality from mono_reflection_define_generic_parameter()
17786         here; ie. we create a "real" class here.
17787         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
17788         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
17789         previously been called.
17790
17791         * class.h (MonoGenericParam): Moved the declaration of this struct
17792         here from metadata.h and added `MonoMethod *method'.
17793
17794         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
17795         interncall.
17796
17797         * loader.c (mono_get_method_from_token): If we have any generic
17798         parameters, call mono_metadata_load_generic_params() to read them
17799         from the MONO_TABLE_GENERICPAR.
17800
17801         * metadata.c (mono_metadata_load_generic_params): Added
17802         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
17803
17804         * metadata.h (MonoMethodSignature): Replaced
17805         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
17806         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
17807
17808         * reflection.c (mono_reflection_define_generic_parameter): Moved
17809         most of the functionality into the new
17810         mono_class_from_generic_parameter(); set the `method' field if
17811         we're a method parameter.       
17812
17813 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
17814
17815         * marshal.c (emit_struct_conv): if native size is 0
17816         emit no code.
17817
17818 2003-10-14  Martin Baulig  <martin@ximian.com>
17819
17820         * icall.c: The generics API has changed in the spec since it was
17821         added to System.Type; these modifications make it match the spec
17822         again.
17823         (ves_icall_Type_GetGenericParameters): Renamed to
17824         `ves_icall_Type_GetGenericArguments'.
17825         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
17826         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
17827         `ves_icall_MonoType_get_HasGenericArguments'.
17828         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
17829         `ves_icall_MonoType_get_IsGenericParameter'.
17830         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
17831         this is no interncall anymore.
17832         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
17833         `ves_icall_TypeBuilder_get_IsGenericParameter'.
17834
17835 2003-10-14  Martin Baulig  <martin@ximian.com>
17836
17837         * reflection.c (mono_reflection_bind_generic_parameters): Also
17838         inflate generic methods if we're reading the class from IL.
17839
17840 2003-10-13  Martin Baulig  <martin@ximian.com>
17841
17842         * reflection.c (mono_reflection_define_generic_parameter): This
17843         method isn't called directly from the icall anymore; take a
17844         `MonoReflectionAssemblyBuilder *' so we can use this for type and
17845         method generic parameters.
17846         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
17847         (method_builder_encode_signature): Encode generic parameters.
17848         (mono_image_get_method_info): Write generic params to the
17849         MONO_TABLE_GENERICPARAM table.
17850
17851         * reflection.h (MonoReflectionMethodBuilder): Added
17852         `MonoArray *generic_params'.
17853
17854         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
17855
17856         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
17857         wrapper for mono_reflection_define_generic_parameter().
17858         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
17859
17860 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
17861
17862         * marshal.h: Add missing function to fix build.
17863
17864         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
17865         the SetLastError pinvoke attribute.
17866
17867         * marshal.c (mono_marshal_set_last_error): New helper function called
17868         by the generated code.
17869         
17870         * marshal.c (mono_mb_emit_branch): New helper function.
17871
17872         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
17873
17874         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17875         classes as parameters and return values of delegates. Fixes #29256. 
17876
17877 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
17878
17879         * locales.c: use gint32 in non HAVE_ICU case
17880
17881 2003-10-11  Martin Baulig  <martin@ximian.com>
17882
17883         * mono-debug.c (mono_debug_add_method): Added a workaround for
17884         bug #48591.
17885
17886 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
17887
17888         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
17889         delegates passed to native code must use the STDCALL calling 
17890         convention. Fixes #35987.
17891
17892 2003-10-10  Martin Baulig  <martin@ximian.com>
17893
17894         * class.c (inflate_generic_type): If we're inflating for a generic
17895         type instance (and not for a generic method), return
17896         MONO_TYPE_MVAR unchanged.
17897
17898 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17899
17900         * string-icalls.c: Join ignores null strings in the source array.
17901         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
17902         * threads.c: GetAvailableTheads is slightly more accurate.
17903
17904 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
17905
17906         * threads.h threads.c : add mono_threads_set_default_stacksize
17907         and pass default to CreateThread calls.
17908
17909 2003-10-09  Dick Porter  <dick@ximian.com>
17910
17911         * icall.c:
17912         * locales.h:
17913         * locales.c: Internal calls for constructing CultureInfo and
17914         related objects from libicu (if its available.)
17915
17916 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
17917
17918         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
17919
17920 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17921
17922         * threadpool.c: added an argument to async_invoke_thread that is the
17923         item to process, pass the MonoAsyncResult to the thread start function
17924         when creating a new thread. This way we don't need to acquire any lock
17925         when we're creating a new thread. Readded a semaphore for faster
17926         response times (instead of that Sleep i added).
17927
17928 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
17929
17930         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
17931         get daylight change dates better on Windows, fix handling
17932         of platforms without tm_gmtoff.
17933
17934 2003-10-06  Martin Baulig  <martin@ximian.com>
17935
17936         * class.c (inflate_generic_method): Renamed to
17937         mono_class_inflate_generic_method() and made public.
17938         (mono_class_init): Don't inflate the generic methods here.
17939         (mono_class_from_generic): Added `gboolean inflate_methods'
17940         argument.  Inflate the methods here.
17941
17942         * loader.c (mono_method_get_param_names): Ignore instances of
17943         generic types for the moment.
17944
17945         * reflection.c (fixup_method): Added support for inflated methods.
17946         (mono_image_create_token): Use mono_image_get_methodref_token()
17947         for inflated methods.
17948         (mono_custom_attrs_from_param): Ignore instances of generic types
17949         for the moment.
17950         (mono_reflection_bind_generic_parameters): New public function.
17951         Moved all the functionality from
17952         ves_icall_Type_BindGenericParameters() here and added support for
17953         dynamic types.
17954         (mono_reflection_define_generic_parameter): Initialize
17955         `klass->methods' here.
17956
17957         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
17958         functionality into mono_reflection_define_generic_parameter().
17959         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
17960         TypeBuilder, return that TypeBuilder.
17961
17962 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17963
17964         * appdomain.c: removed mono_delegate_semaphore.
17965
17966         * threadpool.c:
17967         (mono_thread_pool_add): moved hash table creation inside and the thread 
17968         creation outside of the critical region.
17969         (mono_thread_pool_finish): removed obsolete code.
17970         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
17971         continue or exit the thread depending on the queue.
17972
17973 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
17974
17975         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
17976         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
17977         handle more bool marshalling options
17978
17979 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
17980
17981         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
17982         arrays of structs. Also add a more descriptive error message when
17983         a structure member is marshalled as LPArray.
17984
17985 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
17986
17987         * marshal.c (mono_marshal_get_native_wrapper): Add support for
17988         marshalling arrays of complex types. Fixes #29098. Also remove an
17989         usused and incomplete function.
17990
17991 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
17992
17993         * gc.c: report heap_size - free_bytes as total memory allocated
17994         (bug#49362).
17995
17996 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
17997
17998         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
17999         fix timezone handling problems on Windows.
18000         
18001         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
18002         asserts when the year is outside the range handled by ms the functions.
18003
18004         * class.c (setup_interface_offsets): If the class is an interface,
18005         fill out its interface_offsets slot.
18006
18007 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18008
18009         * threadpool.c: mark threadpool threads as background.
18010
18011 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
18012
18013         * decimal.c - define DECINLINE to nothing if not using GCC
18014
18015 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
18016
18017         * assembly.c: More refcount fixes.
18018
18019 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18020
18021         * string-icalls.c: if we're not trimming, return the same string.
18022         When not splitting, don't create a new string.
18023
18024 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18025
18026         * image.c:
18027         (mono_image_open): increment the ref_count inside the critical section.
18028
18029 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
18030
18031         * image.c (mono_image_open): Fix reference counting bug.
18032
18033 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
18034
18035         * marshal.c (mono_marshal_type_size) struct alignment changed for 
18036         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
18037         64bits. Avoid leak in mono_marshal_get_native_wrapper when
18038         mono_lookup_pinvoke_call throws.        
18039
18040 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
18041
18042         * reflection.c (mono_reflection_parse_type): Fix #49114.
18043
18044         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
18045         temporary workaround for cygwin header problem.
18046
18047         * object.c (mono_object_isinst): Synchronize this with the code
18048         generated by the JIT for casts.
18049
18050 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
18051
18052         * reflection.c (encode_type): Fix #38332.
18053
18054 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
18055
18056         * marshal.c (mono_marshal_method_from_wrapper): New function to return
18057         the original method from the wrapper method.
18058
18059 2003-09-25  Martin Baulig  <martin@ximian.com>
18060
18061         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
18062         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
18063         (ves_icall_Type_get_IsGenericInstance): New interncall.
18064
18065 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
18066
18067         * object.c: fix cast warning in big endian code.
18068
18069 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
18070
18071         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
18072         
18073 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18074
18075         * assembly.c: don't call check_env from mono_assembly_load. It's
18076         already done once in mono_assemblies_init and may cause headaches when
18077         multiple threads are loading assemblies.
18078
18079 2003-09-19  Martin Baulig  <martin@ximian.com>
18080
18081         * reflection.c (mono_reflection_define_generic_parameter): Don't
18082         allocate `klass->methods', set `klass->flags' to
18083         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
18084
18085 2003-09-18  Martin Baulig  <martin@ximian.com>
18086
18087         * class.c (mono_class_init): Don't create `class->methods' if it's
18088         already initialized.
18089
18090         * metadata.c (mono_metadata_load_generic_params): Make this
18091         actually work.
18092
18093         * reflection.c (mono_reflection_define_generic_parameter): Set
18094         parent class and interfaces from the constraints.
18095
18096         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
18097         to keep this struct in sync with the declaration in TypeBuilder.cs.
18098
18099 2003-09-17  Martin Baulig  <martin@ximian.com>
18100
18101         * metadata.h (MonoType): Replaced the data's `int type_param'
18102         field with `MonoGenericParam *generic_param'.
18103         (MonoGenericParam): Added `MonoClass *klass'.
18104
18105         * class.c (mono_class_from_gen_param): Removed the
18106         `MonoImage *image' and `int type_num' arguments.
18107
18108         * metadata.c (mono_metadata_parse_generic_param): New static
18109         method; creates a MonoGenericParam which just contains the index.
18110         (do_mono_metadata_parse_type): Call
18111         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
18112         MONO_TYPE_MVAR.
18113
18114         * reflection.c (mono_image_typedef_or_ref): Generic type
18115         parameters may be in the same assembly, but never use a typedef
18116         for them.
18117         (mono_reflection_define_generic_parameter): We're now creating a
18118         "real" class for the type parameter; it's now safe to call
18119         mono_class_from_mono_type() on the class'es type, it'll do the
18120         right thing.
18121
18122 2003-09-16  Martin Baulig  <martin@ximian.com>
18123
18124         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
18125         `symfile->range_entry_size' and `symfile->class_entry_size' here;
18126         the `symfile' data structure must be fully initialized before it
18127         gets added to the table.
18128
18129 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
18130
18131         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
18132
18133         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
18134         class init trampolines.
18135
18136 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
18137
18138         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
18139         to the built-in profiler to turn off time and allocation profiling
18140         respectively.
18141
18142 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
18143
18144         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
18145         g_direct_equal.
18146
18147         * debug-helpers.c (mono_method_full_name): Print the wrapper type
18148         in human readable form.
18149
18150 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
18151
18152         * reflection.c icall.c: Fixed warnings.
18153
18154         * image.c (load_class_names): Use a temporary hash table to hold the
18155         namespaces in order to avoid doing many string comparisons.
18156
18157         * image.h: Fix typo.
18158
18159         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
18160         Pass NULL instead of g_direct_equal to the GHashTable constructor 
18161         since the NULL case is short-circuited inside g_hash_table_lookup, 
18162         leading to better performance.  
18163
18164         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
18165         obtain the first custom attribute for a given index. Depends on the
18166         CustomAttribute table being sorted by the parent field.
18167
18168         * reflection.c (mono_custom_attrs_from_index): Use the new function 
18169         for better performance.
18170
18171 2003-09-07  Martin Baulig  <martin@ximian.com>
18172
18173         * class.c (mono_class_init): If we're a generic instance, inflate
18174         all our methods instead of loading them from the image.
18175         (mono_class_from_generic): Set `class->methods = gklass->methods'.
18176
18177 2003-09-07  Martin Baulig  <martin@ximian.com>
18178
18179         * mono-debug-debugger.c: Added support for constructors.
18180
18181 2003-09-06  Martin Baulig  <martin@ximian.com>
18182
18183         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
18184         New interncall.
18185
18186         * reflection.c (mono_reflection_setup_generic_class): Call
18187         ensure_runtime_vtable() to create the vtable.
18188
18189 2003-09-05  Martin Baulig  <martin@ximian.com>
18190
18191         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
18192         MONO_TYPE_MVAR.
18193
18194 2003-09-04  Martin Baulig  <martin@ximian.com>
18195
18196         * reflection.c (mono_reflection_define_generic_parameter): Generic
18197         parameters start with zero.
18198
18199 2003-09-04  Martin Baulig  <martin@ximian.com>
18200
18201         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18202
18203         * reflection.h (MonoReflectionGenericParam): New typedef.
18204         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
18205         the generic parameters from the managed TypeBuilder.
18206
18207         * reflection.c (mono_reflection_define_generic_parameter): New function.
18208         (mono_reflection_create_runtime_class): Encode generic parameters.
18209         (mono_reflection_setup_generic_class): New function; this is
18210         called after adding adding all generic params to the TypeBuilder.
18211         (encode_type): Added MONO_TYPE_VAR.
18212
18213 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
18214
18215         * class.h class.c (mono_class_needs_cctor_run): Moved this method
18216         here from the JIT.
18217
18218         * assembly.h assembly.c: Moved the AOT loading code into an assembly
18219         load hook.
18220
18221 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
18222
18223         * reflection.h reflection.c class.h class.c: Delete duplicate 
18224         definition of mono_type_get_name () from reflection.c and export the
18225         one in class.c.
18226
18227         * class.c: Class loading fixes from Bernie Solomon 
18228         (bernard@ugsolutions.com).
18229
18230         * reflection.c: Endianness fixes from Bernie Solomon 
18231         (bernard@ugsolutions.com).
18232         
18233 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
18234
18235         * assembly.h assembly.c: Define a file format version for AOT
18236         libraries.
18237         
18238         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
18239
18240         * appdomain.h (MonoJitInfo): New field to determine whenever the
18241         code is domain neutral.
18242         
18243 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
18244
18245         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
18246
18247 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
18248
18249         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
18250         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
18251         Avoid caching the result since strings must be domain specific. Fixes
18252         #48050.
18253
18254 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
18255
18256         * marshal.c (mono_marshal_init): Make this callable multiple times
18257         since it is hard to find a correct place to call it.
18258
18259         * object.c (mono_runtime_class_init): Execute static constructors in
18260         the correct appdomain.
18261
18262         * image.c (build_guid_table): Handle the case when multiple images have
18263         the same GUID.
18264
18265 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18266
18267         * icall.c: added a couple of icalls for System.Web.
18268
18269 2003-08-28  Martin Baulig  <martin@ximian.com>
18270
18271         * icall.c (ves_icall_Type_BindGenericParameters): Use
18272         `klass->generic_inst' instead of `&klass->byval_arg' in the
18273         mono_type_get_object() call.  The returned type must be
18274         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
18275
18276 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
18277
18278         * NOTES: New file.
18279
18280         * object.c (mono_class_proxy_vtable): Make it thread safe.
18281
18282         * pedump.c: Fix warning.
18283
18284         * object.c appdomain.h: Get rid of metadata_section. 
18285         It is no longer needed and it was causing deadlocks with domain->lock.
18286
18287         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
18288
18289 2003-08-26  Martin Baulig  <martin@ximian.com>
18290
18291         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
18292
18293 2003-08-26  Martin Baulig  <martin@ximian.com>
18294
18295         * pedump.c (main): Call mono_metadata_init(),
18296         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
18297         and mono_loader_init().
18298
18299 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
18300
18301         * loader.h: Add missing include to fix build.
18302
18303         * image.h: mono_image_load_references is no more.
18304
18305         * assembly.c: Reworked assembly loading to make it really thread safe.
18306         After these changes, the assembly returned by mono_assembly_open is
18307         fully initialized, i.e. all its references assemblies are loaded.
18308
18309         * assembly.c (mono_image_load_references): Renamed to 
18310         mono_assembly_load_references, and made private, since clients no
18311         longer need to call it.
18312
18313         * class.c: Removed calls to mono_assembly_load_references, since it was
18314         a source of deadlocks.
18315
18316         * loader.h loader.c class.h class.c: Protect data structures using a 
18317         new lock, the loader lock.
18318
18319         * class.c (mono_class_setup_vtable): Create temporary hash tables and
18320         GPtrArrays only when needed.
18321
18322         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
18323         into empty structures by mcs. Fixes pinvoke7.cs.
18324         
18325         * domain.c (mono_init): Call a new initialization function.
18326
18327         * appdomain.c (mono_runtime_init): Call the new initializer function
18328         of the marshal module.
18329
18330         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
18331         inserted into empty structures by mcs. Fixes pinvoke7.cs.
18332
18333         * marshal.h marshal.c: Added locks around the wrapper caches to make
18334         this module thread safe.
18335
18336         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
18337         this argument. Fixes pinvoke1.exe.
18338
18339 2003-08-25  Lluis Sanchez <lluis@ximian.com>
18340
18341         * object.h: Added call_type field to MonoMethodMessage and the corresponding
18342         enumeration of values. Removed fields to store remote call output values in
18343         MonoAsyncResult. Not needed any more.
18344         * object.c: Initialize call_type and async_result fields in mono_message_init.
18345         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
18346         dispatching the message.
18347         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
18348         async call to finish. To do it use a message with EndInvoke call type.
18349
18350 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
18351
18352         * loader.h loader.c (mono_method_hash_marhal_info): New function which
18353         determines whenever a method has marshalling info.
18354
18355 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18356
18357         * assembly.c: fix the build on windows.
18358
18359 2003-08-22 Lluis Sanchez <lluis@ximian.com>
18360
18361         * object.cs: Fixed bug #47785.
18362
18363 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
18364
18365         * string-icalls.c (StringReplace): If their are no occurances of
18366         the old string found return a reference to the supplied
18367         string. This saves some memory and matches MS behavoir.
18368         
18369 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18370
18371         * socket-io.c: fixed compilation for systems that define AF_INET6
18372         and don't define SOL_IP/SOL_IPV6.
18373
18374 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
18375
18376         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
18377         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
18378
18379         * rawbuffer.c rawbuffer.h: Make this module thread safe.
18380
18381         * domain.c: Make this module thread safe.
18382
18383         * domain.c (mono_init): Call new initialization function.
18384
18385         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
18386         reference types too. Fixes #38812.
18387
18388         * image.c (mono_image_init): Fixed warnings.
18389
18390         * class.c (mono_class_from_typeref): Handle assembly load failure
18391         correctly.
18392
18393         * appdomain.c (add_assemblies_to_domain): Handle the case when
18394         the references of an assembly are not yet loaded.
18395
18396         * metadata.c image.c assembly.c: Moved initialization of global
18397         variables to a separate function called at startup since lazy 
18398         initialization of these variables is not thread safe.
18399         
18400         * image.c assembly.c: Made this module thread safe by adding locks in 
18401         the appropriate places.
18402
18403         * domain.c (mono_init): Call the new initialization functions of the
18404         three modules.
18405
18406 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
18407
18408         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
18409           make a direct call. It is proxy's work to make the call asynchronous.
18410           mono_delegate_end_invoke(): If the targe is a proxy, just collect
18411           the return values.
18412         * object.cs: mono_method_call_message_new(): read AsyncResult and
18413           state object from parameters list, if this info is requested.
18414         * object.h: Added fields to store remote call output values in
18415           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
18416
18417 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18418
18419         * object.h: add needed fields to MonoThread.
18420         * threads.c, threads.h: allow registering a function to cleanup data
18421         allocated per thread by the JIT.
18422
18423 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18424
18425         * loader.h: portability fix by Bernie Solomon
18426         * <bernard@ugsolutions.com>.
18427
18428 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
18429
18430         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
18431         return a MonoArray. This simplifies the code and also ensures that
18432         the cache allways contains an object reference as a value.
18433
18434         * icall.c (ves_icall_get_parameter_info): Simplified using the new
18435         function.
18436
18437 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18438
18439         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
18440         fixes a problem with byte ordering when getting the address family for
18441         a socket.
18442
18443 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
18444
18445         * .cvsignore: Added monosn.
18446
18447         * reflection.h reflection.c loader.c: Added support for parameter
18448         marshalling to dynamically created types. Fixes #47295.
18449
18450 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
18451
18452         * rand.c: remove useless warnings.
18453
18454 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
18455
18456         * class.c: implemented ldtoken for methods and fieldrefs.
18457
18458 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18459
18460         * threadpool.c: when mono_async_invoke was called, no one took care of
18461         monitoring the queue. So if the method invoked took some time and we
18462         got new async invoke requests after 500 ms (the thread created waited
18463         that long in WaitForSingleObject), the new async invoke was not called
18464         until the previous one finished.
18465
18466         This is fixed now. Thanks to Totte for helping with it.
18467
18468 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18469
18470         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
18471
18472 2003-08-11  Martin Baulig  <martin@ximian.com>
18473
18474         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
18475
18476 2003-08-06  Martin Baulig  <martin@ximian.com>
18477
18478         * mono-debug-debugger.c: Added support for static fields,
18479         properties and methods.
18480
18481 2003-08-06  Martin Baulig  <martin@ximian.com>
18482
18483         * mono-debug-debugger.c: Don't store the MonoString's vtable to
18484         make this work for applications with multiple application domains.
18485
18486 2003-08-04  Martin Baulig  <martin@ximian.com>
18487
18488         * mono-debug-debugger.c: Completely reworked the type support; the
18489         most important thing is that we're now just using one single
18490         `MonoType' instance per type.
18491
18492 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
18493
18494         * mono-endian.h, mono-endian.c, icall.c: Added icall
18495         ves_icall_System_Double_AssertEndianity to assert double word endianity
18496         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
18497
18498 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18499
18500         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
18501         support, icalls and fixes.
18502
18503 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
18504
18505         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
18506         classes that are a punctuation character in .NET is not the same a
18507         g_unichar_ispunct.
18508
18509 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18510
18511         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
18512
18513 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
18514
18515         * icall.c: Add new MemCopy internalcall.
18516         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
18517         Simplified code; It is not necessary to handle all the cases here,
18518         as the C# code takes care of it.  Only handle the case of the name
18519         resource embedded into the assembly.
18520
18521         Changed signature to return the data pointer and the size of the
18522         data. 
18523
18524 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
18525
18526         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
18527         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
18528
18529 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
18530
18531         * socket-io.c: ignore EINTR error in select.
18532
18533 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
18534
18535         * class.h, class.c: removed unused subclasses field in MonoClass.
18536
18537 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
18538
18539         * icall.c: improve fix of get_base_definition(). If the parent class
18540           doesn't have the mehod, look at the parent of the parent.
18541         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
18542           to check if a parameter is an in or out parameter
18543           (PARAM_ATTRIBUTE_IN is not set by default).
18544           mono_method_return_message_restore(): Use mono_class_value_size to
18545           get the size of a value type. mono_type_stack_size (parameterType)
18546           does not return the correct value if parameterType is byRef.
18547           mono_load_remote_field(), mono_load_remote_field_new(),
18548           mono_store_remote_field(), mono_store_remote_field_new():
18549           raise exception if the remote call returns an exception.
18550
18551 2003-07-28  Martin Baulig  <martin@ximian.com>
18552
18553         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
18554         method.  This is a wrapper around mono_runtime_invoke() which
18555         boxes the instance object if neccessary.
18556
18557 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18558
18559         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
18560         metadata.h, row-indexes.h, verify.c: first cut of generics support.
18561
18562 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18563
18564         * icall.c: disable mcs bug workaround.
18565
18566 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
18567
18568         * object.c (mono_runtime_class_init): Take the metadata_section
18569         mutex before obtaining the domain mutex.
18570
18571         * appdomain.h: Added definition of metadata_section mutex here. 
18572
18573         * object.c: define metadata_mutex here.
18574
18575 2003-07-24  Ravi Pratap  <ravi@ximian.com>
18576
18577         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
18578         fixed.
18579
18580 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
18581
18582         * reflection.c: Fix bug #46669
18583
18584 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18585
18586         * exception.c:
18587         * exception.h:
18588         * icall.c:
18589         * object.h: fill in the type name for TypeLoadException.
18590
18591 2003-07-23  Ravi Pratap  <ravi@ximian.com>
18592
18593         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
18594         relationship between TypeBuilders while compiling corlib) and bug
18595         45993 (Array types returned from the runtime while compiling
18596         corlib were from the loaded corlib).
18597
18598 2003-07-22  Martin Baulig  <martin@ximian.com>
18599
18600         * mono-debug-debugger.c: Reworked the type support a bit more;
18601         distinguish between types and classes.
18602
18603 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
18604
18605         * icall.c: add IsArrayImpl icall.
18606
18607 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
18608
18609         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
18610         initializing real_size only once. Also fix bug #46602.
18611
18612 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
18613
18614         * object.c: Renamed mono_metadata_section to metadata_section.
18615
18616 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
18617
18618         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
18619           empty array if the type is an array. Fixed.
18620           ves_icall_MonoMethod_get_base_definition: if the base method
18621           is abstract, get the MethodInfo from the list of methods of
18622           the class.
18623         * reflection.c: ParameterInfo.PositionImpl should be zero-based
18624           and it was 1-based. Fixed in mono_param_get_objects.
18625
18626 2003-07-20  Martin Baulig  <martin@ximian.com>
18627
18628         * mono-debug.h: Set version number to 31.
18629         (mono_debug_init): Added `MonoDomain *' argument.
18630
18631         * mono-debug-debugger.c: Reworked the type support; explicitly
18632         tell the debugger about builtin types; pass the `klass' address to
18633         the debugger.
18634
18635 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
18636
18637         * image.c: Allow new metadata tables to be loaded without a
18638         warning. Also update the warning message to give the new constant value.
18639                 
18640 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
18641
18642         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
18643         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
18644         array type representation changes.
18645
18646 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
18647
18648         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
18649         on Environment.Exit () call.
18650
18651 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
18652
18653         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
18654         requires a matching corlib.
18655
18656 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
18657
18658         * Changelog: My editor decided to add a CR to each line. Sorry about that.
18659           Committed again without the CRs.
18660         
18661 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
18662
18663         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
18664           getting it from the "this" socket instance. Did not work
18665           if the socket is a subclass of Socket.
18666           Also fixed bug #35371.
18667
18668 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
18669
18670         * metadata.c: fixed size for TypedByRef.
18671         * loader.c: when searching for a method, consider the vararg amrker.
18672         * unicode.c, decimal.c: constify some arrays.
18673
18674 2003-07-15  Dick Porter  <dick@ximian.com>
18675
18676         * socket-io.c: Fixed compilation for gcc < 3.2.
18677
18678         Fixed compilation for machines that don't have AF_INET6 (thanks to
18679         Bernie Solomon <bernard@ugsolutions.com> for that part.)
18680
18681         Fixed compile warnings.
18682         
18683         Fixed formatting and line endings.
18684
18685 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
18686
18687         * socket-io.h:
18688         * socket-io.c: Added IPv6 support.
18689
18690 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
18691
18692         * class.c (mono_class_is_assignable_from): New function to implement
18693         the is_assignable_from logic. Used by mono_object_isinst, 
18694         Type::IsAssignableFrom () and the interpreter.
18695
18696         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
18697         Object, even interfaces.
18698         
18699         * object.c (mono_object_isinst): Implement in terms of 
18700         is_assignable_from.
18701
18702         * icall.c (ves_icall_type_is_assignable_from): New icall.
18703
18704 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
18705
18706         * domain.c (foreach_domain): fix compiler warning.
18707
18708 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
18709
18710         * image.c (load_metadata_ptrs): use g_strndup because strndup is
18711         not available on all plattforms
18712
18713 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
18714
18715         * image.h image.c: Store the metadata version string in MonoImage.
18716         * icall.c: New icall to retrieve the image version.
18717         * reflection.c (create_dynamic_image): Fill in the image version field
18718         * reflection.c (build_compressed_metadata): Use the image version
18719         from the image structure.
18720
18721 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18722
18723         * appdomain.c: modified comment.
18724         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
18725         That will be its last iteration when mono_gc_cleanup is called from
18726         mono_runtime_cleanup and before the domain is unloaded.
18727
18728         Fixes bug #45962.
18729
18730 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
18731
18732         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
18733         attributes.
18734
18735 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18736
18737         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
18738         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
18739         Bernie Solomon <bernard@ugsolutions.com>.
18740
18741 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
18742
18743         * object.c, object.h: provide mono_object_new_fast() for faster
18744         allocation in some special cases.
18745
18746 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
18747
18748         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
18749         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
18750
18751 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
18752
18753         * threadpool.c: fix leaks.
18754
18755 2003-07-01  Dick Porter  <dick@ximian.com>
18756
18757         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
18758         using MonoGHashTables.  Fixes threadpool bug posted to list.
18759
18760 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
18761
18762         * image.h, image.c: added support to load an assembly from a byte array.
18763         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
18764         assembly bundle support.
18765
18766 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
18767
18768         * threadpool.c (mono_thread_pool_add): keep a reference to the
18769         AsyncResult to prevent GC
18770
18771 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
18772
18773         * class.c: leak fix.
18774
18775 2003-06-25  Dick Porter  <dick@ximian.com>
18776
18777         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
18778         for the async object, the WaitHandle object will close the handle.
18779         Fixes bug 45321.
18780
18781 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
18782
18783         * class.c: in mono_array_class_get (), lookup from the hash with the
18784         same type we insert: this works around a bug in
18785         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
18786         lluis. The real fix will have to wait for after the release.
18787
18788 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
18789
18790         * icall.c: fix memory leak when getting type members.
18791
18792 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
18793
18794         * reflection.c: added more pubtoken special cases.
18795
18796 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
18797
18798         * class.c: handle field offset correctly when class size
18799         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
18800
18801 2003-06-20  Martin Baulig  <martin@ximian.com>
18802
18803         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
18804         *image' field.
18805
18806 2003-06-20  Martin Baulig  <martin@ximian.com>
18807
18808         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
18809
18810 2003-06-20  Martin Baulig  <martin@ximian.com>
18811
18812         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
18813         just distinguish between variables in registers and variables at
18814         an offset relative to a register.
18815
18816 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18817
18818         * icall.c: #ifdef out latest changes until mcs is fixed.
18819
18820 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18821
18822         * icall.c: return members in metadata order.
18823
18824 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
18825
18826         * icall.c: avoid infinite loop in GetTimeZoneData.
18827
18828 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
18829
18830         * icall.c: added Marshal.Prelink/All icalls.
18831
18832 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
18833
18834         * object.c, object.h: fix warnings and do some overflow checking
18835         when creating arrays.
18836
18837 2003-06-17  Dick Porter  <dick@ximian.com>
18838
18839         * file-io.h:
18840         * file-io.c: File attributes need to be tweaked slightly when
18841         passed from the managed to the w32 world.
18842
18843 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
18844         * profiler.h profiler-private.h profiler.c: Rework last patch
18845         based on suggestion by Paolo.
18846         
18847 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
18848
18849         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
18850         instruction level coverage data collection.
18851         * profiler.h profiler.c (: Added new callback function which can be
18852         used by the profiler to limit which functions should have coverage
18853         instrumentation.
18854         * profiler.c (mono_profiler_load): Call g_module_build_path to
18855         generate the file name of the profiler library.
18856
18857 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18858
18859         * profiler.c, profiler.h, profiler-private.h: added basic block 
18860         coverage profiling API.
18861
18862 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
18863
18864         * reflection.c (mono_reflection_create_runtime_class): Add support
18865         for events in dynamically generated code.
18866
18867         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
18868         not allocated.
18869
18870 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
18871
18872         * icall.c: when getting timezone info, return reasonable values if we
18873         can't get the actual data.
18874
18875 2003-06-14  Dick Porter  <dick@ximian.com>
18876
18877         * threads.c (start_wrapper): Remove the reference to the thread
18878         object in the TLS data, so the thread object can be finalized.
18879         This won't be reached if the thread threw an uncaught exception,
18880         so those thread handles will stay referenced :-( (This is due to
18881         missing support for scanning thread-specific data in the Boehm GC
18882         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
18883
18884 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
18885
18886         * reflection.c: ensure streams and tables are first allocated with
18887         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
18888
18889 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18890
18891         * icall.c: fixed GetElementType for byrefs (bug# 44792).
18892
18893 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
18894
18895         * reflection.c (mono_reflection_create_runtime_class): Add support for
18896         properties to dynamically created classes.
18897         * reflection.c: Fix a few places where non-MonoObjects were inserted
18898         into the tokens hashtable.
18899
18900 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
18901
18902         * object.c: some support to handle out of memory exceptions.
18903
18904 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
18905
18906         * marshal.c (mono_marshal_get_native_wrapper): support reference
18907         return types
18908
18909 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
18910
18911         * object.h, object.c: more portability stuff from Bernie Solomon.
18912         Unexport mono_object_allocate(). Added mono_object_unbox ().
18913         Set exitcode when an unhandled exception is thrown.
18914
18915 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
18916
18917         * marshal.c (mono_marshal_get_native_wrapper): use custom
18918         marshaler for return types.
18919
18920 2003-06-10  Dick Porter  <dick@ximian.com>
18921
18922         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
18923         ip_mreq is available
18924
18925 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
18926
18927         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
18928         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
18929         by Bernie Solomon <bernard@ugsolutions.com>.
18930
18931 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
18932
18933         * gc.c (mono_gc_init): Avoid error message on shutdown when
18934         GC_DONT_GC=1 is used.
18935
18936         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
18937         New icall to return the GUID of a module.
18938
18939 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
18940
18941         * class.c: ensure instance size always includes the parent's size
18942         even whem class size is set explicitly (fixes bug#44294).
18943
18944 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
18945
18946         * profiler.h, profiler.c: made the simple profiler thread-safe,
18947         get more accurate timing info. Allow the loading of an
18948         externally-developed profiler module.
18949
18950 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
18951
18952         * marshal.c (mono_marshal_get_native_wrapper): improved
18953         class/byref arguments.
18954         (mono_marshal_get_native_wrapper): better string marshaling support.
18955
18956 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
18957
18958         * class.c: ensure .pack and .size are handled correctly and
18959         simplified layout of static fields.
18960
18961 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
18962
18963         * appdomain.c
18964         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
18965
18966         * loader.c (mono_lookup_pinvoke_call): look for modules in the
18967         current directory (fix bug 44008)
18968
18969 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
18970
18971         * marshal.c (mono_marshal_get_native_wrapper): started support for
18972         custom marshalers.
18973         (mono_delegate_to_ftnptr): consider marshalling specifications
18974
18975 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
18976
18977         * reflection.c, reflection.h: emit custom marshal info.
18978
18979 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18980
18981         * object.c: free the GError.
18982         * icall.c: added CloseEvent_internal.
18983         * threads.[ch]:
18984         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
18985         call.
18986
18987 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
18988
18989         * loader.c (mono_method_get_signature): Add support for dynamic
18990         assemblies.
18991
18992 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
18993
18994         * reflection.c: fixed bug #43905.
18995
18996 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
18997
18998         * class.c, domain.c, icall.c, metadata.h, object.h: support for
18999         handling TypedReference and ArgIterator.
19000         * loader.c, loader.h: added function to get signature at call site.
19001
19002 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19003
19004         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
19005         data readonly. Buglets and warning fixes. Some MethodSpec support.
19006
19007 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19008
19009         * class.h, class.c, object.c: remove relative numbering support.
19010
19011 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
19012
19013         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
19014         free the string, until we get a chance to fix Gtk#
19015
19016 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19017
19018         * marshal.c: revert last patch.
19019
19020 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
19021
19022         * icall.c: updates for new mono_class_vtable() not calling
19023         the type constructor anymore.
19024
19025 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19026
19027         * object.h, object.c: separate vtable creation from type
19028         initialization. Make running the .cctor thread safe.
19029
19030 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
19031
19032         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
19033
19034 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
19035
19036         * loader.c (mono_get_method): consider calling convention
19037
19038 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
19039
19040         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
19041         to return the invisible global type for a module.
19042
19043         * reflection.c (mono_image_build_metadata): Emit global fields too.
19044
19045 2003-05-20  Peter Williams  <peterw@ximian.com>
19046
19047         * loader.c (mono_lookup_internal_call): Add a few newlines.
19048
19049 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
19050
19051         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
19052         literal strings.
19053
19054         * appdomain.c (set_domain_search_path): Recalculate search path when
19055         AppDomainSetup.PrivateBinPath changes.
19056
19057         * object.c (mono_class_compute_gc_descriptor): It turns out some
19058         parts of the class libs (like System.Thread) holds pointers to
19059         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
19060         to treat native int a pointer type here.
19061         
19062 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
19063
19064         * appdomain.h, domain.c: add hashtable for jump target resolution.
19065
19066 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
19067
19068         * reflection.h reflection.c icall.c: Added new icalls 
19069         GetManifestResourceInfoInternal, GetModulesInternal and support
19070         infrastructure.
19071
19072 2003-05-16  Dick Porter  <dick@ximian.com>
19073
19074         * icall.c:
19075         * file-io.h:
19076         * file-io.c: Implement System.IO.MonoIO::GetTempPath
19077
19078 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
19079
19080         * object.c: mono_store_remote_field: little fix to previous patch.
19081
19082 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19083
19084         * class.c: add constructors to array classes.
19085         * icall.c: special case array construction for InternalInvoke (),
19086
19087 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
19088
19089         * class.h class.c reflection.c object.c: Added support for field
19090         defaults in dynamically generated classes.
19091
19092 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
19093
19094         * reflection.c: properly encode charset for ddlimport.
19095
19096 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
19097
19098         * threads.c: allow compiling without GC.
19099
19100 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19101
19102         * appdomain.h, object.c, object.h, threads.c, threads.h: added
19103         handling of thread static data.
19104
19105 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19106
19107         * reflection.h, reflection.c: added mono_custom_attrs_free ().
19108
19109 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
19110
19111         * class.c (mono_array_class_get): always set the serializable flags
19112         (mono_array_class_get): always set the SEALED attribute for array types
19113
19114 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
19115
19116         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
19117         attributes (fix for bug 42021).
19118
19119 2003-05-12  Dick Porter  <dick@ximian.com>
19120
19121         * gc.c: Don't run finalizers when the finalizer thread is
19122         finishing up, because the default domain has already been
19123         destroyed.
19124
19125 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
19126
19127         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
19128         value is null, we should throw an exception.   This is slightly
19129         different than the other conventions used for the constructor.
19130
19131 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19132
19133         * socket-io.c: fixed windows build.
19134
19135 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19136
19137         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
19138
19139 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
19140
19141         * object.c (mono_string_new_wrapper): Compatibility fix for MS
19142         compilers.
19143
19144 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
19145
19146         * class.c (mono_class_layout_fields): Add experimental GC aware
19147         auto layout facility. Requires class library changes to work correctly.
19148
19149         (mono_class_setup_vtable): Avoid overriding explicit interface
19150         method implementations. Fixes iface3.exe test.
19151
19152         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
19153         object reference.
19154         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
19155         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
19156
19157         * metadata.h: Add new type classification macro which determines
19158         whenever the type holds an object reference.
19159
19160 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
19161
19162         * marshal.c (mono_marshal_get_native_wrapper): cleanups
19163
19164 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
19165
19166         * gc.c (finalizer_thread): Work around a GC bug.
19167
19168 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
19169
19170         * marshal.c (emit_struct_conv): allow unions
19171
19172         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
19173
19174 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
19175
19176         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
19177
19178 2003-05-06  Martin Baulig  <martin@ximian.com>
19179
19180         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
19181
19182 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19183
19184         * socket-io.c:
19185         (Select_internal): allow NULLs, don't create arrays if not needed.
19186         Coupled with Socket.cs changes.
19187
19188         * threadpool.c:
19189         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
19190         register a finalizer for it that will close the semaphore handle. This
19191         fixes the leak and make Lupus' test run with > 4080 loops.
19192
19193 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
19194
19195         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
19196         Jerome Laban (bug #42287)
19197
19198 2003-05-02  Martin Baulig  <martin@ximian.com>
19199
19200         * debug-mono-symfile.h
19201         (MonoSymbolFile): Moved declaration into mono-debug.h.
19202         (MonoDebugMethodJitInfo): Likewise.
19203         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
19204         argument.
19205         (_mono_debug_address_from_il_offset): Take a
19206         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
19207
19208         * mono-debug.h
19209         (MonoDebugDomainData): New struct.
19210         (mono_debug_get_domain_data): New function.
19211         (mono_debug_add_method): Take an additional `MonoDomain *'
19212         argument.
19213         (mono_debug_source_location_from_address): Likewise.
19214         (mono_debug_il_offset_from_address): Likewise.
19215         (mono_debug_address_from_il_offset): Likewise.
19216
19217 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
19218
19219         * reflection.c: one more check for null type in custom attrs.
19220
19221 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19222
19223         * reflection.c: avoid warning (comparison is always false due to limited
19224         range of data type).
19225
19226 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19227
19228         * icall.c: throw an exception in Type.GetField if the argument 'name'
19229         is NULL.
19230
19231 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
19232
19233         * reflection.c: fixed handling of enums in named arguments to custom
19234         attributes (bug #42123).
19235
19236 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
19237
19238         * reflection.c: use the right array element type and handle
19239         a null for a Type argument, too.
19240
19241 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
19242
19243         * reflection.c: handle arrays as arguments to custom attributes.
19244
19245 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
19246
19247         * reflection.c: handle a string value in a custom attr
19248         ctor that takes an object.
19249
19250 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
19251
19252         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
19253         (fix bug #42063)
19254
19255 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
19256
19257         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
19258
19259 2003-04-27  Martin Baulig  <martin@ximian.com>
19260
19261         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
19262         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
19263         MONO_DEBUGGER_EVENT_BREAKPOINT.
19264         (mono_breakpoint_trampoline_code): Removed.
19265         (mono_debugger_event_handler): The last argument is now a
19266         `guint32'.
19267         (mono_debugger_insert_breakpoint_full): Removed the
19268         `use_trampoline' argument.
19269         (mono_debugger_method_has_breakpoint): Likewise.
19270         (mono_debugger_trampoline_breakpoint_callback): Renamed to
19271         mono_debugger_breakpoint_callback(); take the method and
19272         breakpoint number as arguments.
19273
19274 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
19275
19276         * metadata.c: fix off by one when loading parameters attributes.
19277
19278 2003-04-24  Martin Baulig  <martin@ximian.com>
19279
19280         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
19281
19282 2003-04-24  Martin Baulig  <martin@ximian.com>
19283
19284         * mono-debug-debugger.c: Moved all code which interacts with the
19285         Mono Debugger here.
19286
19287         * debug-mono-symfile.c: This code now just deals with the symbol
19288         file itself, the debugger code is now in mono-debug-debugger.c.
19289
19290 2003-04-23  Martin Baulig  <martin@ximian.com>
19291
19292         * mono-debug.c (mono_debug_source_location_from_il_offset):
19293         New method; like mono_debug_source_location_from_address(), but
19294         takes an IL offset instead of a machine address.
19295
19296 2003-04-23  Martin Baulig  <martin@ximian.com>
19297
19298         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
19299         `line' field; this is now computed by the debugger.
19300
19301 2003-04-23  Martin Baulig  <martin@ximian.com>
19302
19303         * mono-debug.[ch]: New files.  This is the new debugging interface.
19304
19305         * mono-debug-debugger.[ch]: New files.  Moved all code which
19306         interacts with the Mono Debugger here.
19307
19308 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
19309
19310         * domain.c (mono_init): initialize mono_defaults.monitor_class
19311
19312 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
19313
19314         * reflection.c (method_encode_code): Add a spicy exception to help
19315         future compiler authors.
19316
19317 2003-04-21  Martin Baulig  <martin@ximian.com>
19318
19319         * icall.c
19320         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
19321         Make this work with relative pathnames; g_filename_to_uri() needs
19322         an absolute filename.
19323
19324 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
19325
19326         * icall.c: Track name changes in Object and ValueType.
19327
19328 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
19329
19330         * metadata.c (mono_type_stack_size): size should be a multiple of
19331         sizeof (gpointer)
19332
19333 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19334
19335         * gc.c:
19336         (internal_domain_finalize): moved into mono_domain_finalize. No need
19337         to create another thread because the finalizers will be run in the
19338         finalizer thread.
19339         
19340         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
19341         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
19342         to be run (MS does this too).
19343
19344 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
19345
19346         * object.c (mono_class_compute_gc_descriptor): Update comment.
19347
19348         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
19349
19350         * image.h: Add synchronized wrapper cache.
19351
19352         * image.c (do_mono_image_open): Initialize cache.
19353
19354         * reflection.c (create_dynamic_mono_image): Initialize cache.
19355
19356 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19357
19358         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
19359         ves_icall_System_Buffer_ByteLengthInternal.
19360
19361 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19362
19363         * reflection.c: setup klass->nested_in earlier. Allow
19364         a dash in the assembly name.
19365
19366 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
19367
19368         * metadata.c (mono_type_to_unmanaged): dont access
19369         type->data.klass for MONO_TYPE_OBJECT
19370         (mono_type_to_unmanaged): consider System.Delegate class
19371
19372 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
19373
19374         * class.c: just setup supertypes in the proper place instead of
19375         initializing the full element class for arrays.
19376
19377 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19378
19379         * class.c: ensure the element class of arrays is initialized.
19380         Setup the supertype info for array classes, too.
19381
19382 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
19383
19384         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
19385
19386 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19387
19388         * Makefile.am: re-added -m option when running cygpath. This way,
19389         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
19390         separator.
19391         * mono-config.c: same codepath for locating mono config file for WIN32
19392         and the rest.
19393         * assembly.c: if mono_assembly_setrootdir is called, don't override
19394         the value set.
19395
19396 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19397
19398         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
19399         MONO_ASSEMBLIES variable.
19400
19401 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
19402
19403         * icall.c: added Assembly::GetNamespaces() icall.
19404
19405 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19406
19407         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
19408
19409 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
19410
19411         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
19412         * object.c: fixed bug in the construction of vtable for proxies
19413
19414 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
19415
19416         * object.c (mono_array_new): Mark mono_array_new as an icall.
19417
19418 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19419
19420         * class.c: fixed test for public method when overriding interfaces.
19421         Closes bug #40970.
19422
19423 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19424
19425         * appdomain.h, domain.c: added mono_domain_foreach() to
19426         be able to access the currently loaded appdomains.
19427         * object.c: make string interning work across sppdomains.
19428         Mark some functions for use as icalls.
19429
19430 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
19431
19432         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
19433
19434         * reflection.h reflection.c: Allocate long living data using 
19435         GC_MALLOC_ATOMIC so the collector does not need to scan it.
19436
19437         * reflection.c: Double the allocation size in streams instead of
19438         increasing it, to prevent unneccesary copying on large assemblies.
19439         
19440         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
19441         creation if the assembly does not have the Run flag set.
19442
19443 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
19444
19445         * class.h: avoid the C++ keywords in header files (Jerome Laban
19446         spotted and fixed this).
19447
19448 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19449
19450         * object.c:
19451         (mono_unhandled_exception): fill in the arguments for the
19452         UnhandledException event. Only trigger that event for the default
19453         domain (as MS does).
19454
19455 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
19456
19457         * object.c: Improve typed allocation stuff based on suggestions from
19458         Paolo. Also turn it on if the GC library supports it.
19459
19460 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
19461
19462         * object.c object.h class.h: Added experimental typed allocation
19463         facility using the interfaces in gc_gcj.h.
19464
19465         * os/gc_wrapper.h: Added new include files.
19466         
19467 2003-04-03  Martin Baulig  <martin@ximian.com>
19468
19469         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
19470         which is not yet enabled by default.
19471
19472         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
19473         functions.
19474         (mono_gc_lock, mono_gc_unlock): New static functions.
19475
19476         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
19477         functions; stop/start the world for the garbage collector.  This
19478         is using the windows API; we need to complete the SuspendThread()/
19479         ResumeThread() implementation in the io-layer to make this work on Unix.
19480         (mono_gc_push_all_stacks): New public function; tells the garbage
19481         collector about the stack pointers from all managed threads.
19482
19483 2003-04-03  Martin Baulig  <martin@ximian.com>
19484
19485         * object.h (MonoThread): Added `gpointer stack_ptr'.
19486
19487         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
19488
19489 2003-04-03  Martin Baulig  <martin@ximian.com>
19490
19491         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
19492
19493 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
19494
19495         * reflection.c (typebuilder_setup_fields): Initialize field.first and
19496         field.last.
19497
19498 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
19499
19500         * loader.c (mono_lookup_internal_call): Report the corlib that is
19501         out of sync.
19502
19503 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
19504
19505         * icall.c (ves_icall_type_GetTypeCode): fixed check for
19506         System.DBNull (it's class not valuetype).
19507
19508 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19509
19510         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
19511         if the array method was already assigned a token (fixes bug#40646).
19512
19513 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
19514
19515         * reflection.c (mono_reflection_get_type): Attempt type resolve even
19516         if no assembly is given.
19517
19518 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
19519
19520         * metadata.h: Added the new tables.
19521
19522         * row-indexes.h: Added definitions for new tables.
19523
19524         * metadata.c: Add schemas for new tables, and add support for
19525         computing the sizes of them.
19526
19527         * class.c: Update for handling the new type cases.
19528
19529 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
19530
19531         * metadata.h (MONO_TYPE_IS_VOID): new macro
19532
19533 2003-03-31  Martin Baulig  <martin@ximian.com>
19534
19535         * threads.h (MonoThreadCallbacks): Added `thread_created'.
19536
19537         * threads.c (mono_thread_new_init): Call `thread_created' in the
19538         mono_thread_callbacks.
19539
19540 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
19541
19542         * loader.h: added marshalbyrefobject_class to mono_defaults
19543         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
19544         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
19545           generation of output parameters.
19546           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
19547         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
19548           contextbound and the target object belongs to the context of the caller.
19549         * object.h: added context and unwrapped_server variables in MonoRealProxy.
19550         * object.c: Implemented support for interfaces and abstract classes
19551           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
19552           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
19553
19554 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
19555
19556         * class.h class.c (mono_class_is_subclass_of): New function.
19557         
19558         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
19559         routines for most common case (calls from ArrayList::ToArray).
19560
19561         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
19562         routine so programs which call Environment::Exit() can be profiled.
19563
19564         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
19565         Added MONO_ARCH_SAVE_REGS.
19566
19567         * icall.c (ves_icall_type_is_subtype_of): Use new function.
19568
19569 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
19570
19571         * blob.h: Add a couple of new MonoType types definitions.
19572
19573         * tabledefs.h: Add a couple of new call convs.
19574
19575 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
19576
19577         * reflection.h (MonoReflectionDynamicAssembly): track changes in
19578         the layout of the class.
19579
19580         * reflection.c (alloc_table): double the size on overflow to avoid
19581         unnecessary copying.
19582
19583         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
19584         avoid filling out metadata tables and blobs. Also set mb->ilgen to
19585         null so it can be garbage collected.
19586         
19587 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
19588
19589         * reflection.c (mono_reflection_get_type): Return the resolved type
19590         only if it is in the assembly we searched.
19591
19592         * reflection.c (ensure_runtime_vtable): Initialize method slots.
19593
19594         * class.c (mono_class_setup_vtable): Set the slot of the overriding
19595         method.
19596
19597 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19598
19599         * appdomain.c:
19600         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
19601         the right one is 'file:///blah', but MS allows it.
19602         * assembly.c:
19603         (mono_assembly_open): allow 'file://blah'
19604
19605         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
19606
19607 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
19608
19609         * socket-io.c: fixes bug #40310.
19610
19611 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
19612
19613         * reflection.c (mono_reflection_parse_type): handle deeply nested
19614         types correctly.
19615
19616         * reflection.c (mono_image_create_token): Use unique token values
19617         since they will be put into a hash table.
19618
19619         * class.c (mono_class_setup_vtable): If a method occurs in more than
19620         one place in the vtable, and it gets overriden, then change the
19621         other occurances too.
19622
19623         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
19624         object as return type.
19625
19626 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
19627
19628         * icall.c: Deleted "ToString" implementation for double and float
19629         because they are full implemented in managed code.
19630
19631 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
19632
19633         * reflection.c, reflection.h: implemented and exported functions
19634         to retrieve info about custom attributes.
19635
19636 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19637
19638         * appdomain.c: moved Uri handling to assembly.c
19639         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
19640         work when using a file Uri in *nix and windows.
19641
19642         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
19643         GetReferencedAssemblies.
19644
19645 2003-03-18  Dick Porter  <dick@ximian.com>
19646
19647         * icall.c: Rename a couple of internal calls
19648
19649         * threads.c: Set the thread state to Stopped when a thread exits.
19650         Fixes bug 39377.
19651
19652 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
19653
19654         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
19655         New icall.
19656
19657         * object.c (mono_class_vtable): fix warning.
19658
19659 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
19660
19661         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
19662
19663         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
19664         memory.
19665         (method_encode_clauses): Create exception info structures in the right
19666         order.
19667         (mono_reflection_setup_internal_class): Initialize supertypes field.
19668
19669         * class.c object.c: Handle interfaces which implement other interfaces 
19670         correctly.
19671
19672         * class.h class.c: Move the supertypes array initialization code into 
19673         a separate function so it can be used for dynamic types too. Also call
19674         it earlier, in mono_class_init(), since it can be used before the
19675         type is initialized.
19676
19677 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19678
19679         * Makefile.am:
19680         * assembly.c:
19681         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
19682
19683         * appdomain.c:
19684         * appdomain.h:
19685         * marshal.c:
19686         * object.c: remove warnings.
19687
19688 2003-03-13  Martin Baulig  <martin@ximian.com>
19689
19690         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
19691         (MonoDebugLexicalBlockEntry): New types.
19692
19693         * debug-mono-symfile.c
19694         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
19695
19696 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19697
19698         * process.c: ret can be any non-zero value accroding to MS doc.
19699
19700 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
19701
19702         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
19703         fixing a warning for a miss-used prototype, would have cause
19704         random memory corruption.
19705
19706 2003-03-07  Martin Baulig  <martin@ximian.com>
19707
19708         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
19709         getting really annoying ....
19710
19711 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
19712
19713         * reflection.c (fixup_method): added support for array methods.
19714
19715 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
19716
19717         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
19718         (pointed out by Michael Adams).
19719
19720 2003-03-04  Dick Porter  <dick@ximian.com>
19721
19722         * icall.c: Temporarily reverted the Double and Single ToString()
19723         change, because it broke nunit.
19724
19725 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
19726
19727         * object.h, threads.h: make include files compatible with C++
19728         (patch by Jerome Laban <jlaban@wanadoo.fr>).
19729
19730 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
19731
19732         * icall.c: Erased ToString helper functions for Double and Single.
19733         Now, that implementations ar all in managed code (Double and Single
19734         Formatters).
19735
19736 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
19737
19738         * appdomain.c: Added method for initializing the default context of
19739         a domain. Added internal call for getting the default context.
19740         * appdomain.h: Added context variable in MonoDomain struct.
19741         * domain.c: mono_domain_set also sets the default context of the domain
19742         * icall.c: Mapped internal method InternalGetDefaultContext.
19743         * object.c: mono_object_get_virtual_method returns always a remoting
19744         wrapper if the object is a transparent proxy.
19745         mono_runtime_invoke_array: when creating an object by calling the
19746         constructor, if the created object is a proxy, then the constructor should
19747         be called using the a remoting wrapper.
19748
19749 2003-03-03  Dick Porter  <dick@ximian.com>
19750
19751         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
19752         variable so it compiles on solaris.  Problem spotted by
19753         Christopher Taylor <ct@cs.clemson.edu>
19754
19755 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19756
19757         * appdomain.c:
19758         (get_info_from_assembly_name): don't leak value.
19759
19760         * icall.c:
19761         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
19762         result.
19763
19764 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
19765
19766         * assembly.c: export mono_image_load_references ().
19767         * class.c: handle function pointers. mono_class_from_name() now
19768         supports nested type names directly.
19769
19770 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
19771
19772         * reflection.h reflection.c: Encode already created dynamic methods 
19773         and fields correctly as a DEF instead of a REF.
19774
19775         * reflection.c: Get rid of the force_ref argument to 
19776         mono_image_typedef_or_ref since it was wrong in the first place.
19777
19778         * string-icalls.c: add error checking to string constructors according
19779         to the MSDN docs.
19780
19781         * reflection.c: Emit types in the order their TypeBuilders were 
19782         created. Previously, a new table index was assigned to each type before
19783         the tables were emitted. This was wrong because the signature blob
19784         might already refer to a type by its original table index.
19785
19786 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
19787
19788         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
19789         change.
19790         
19791 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19792
19793         * Makefile.am: make assemblies dir have \ instead of / on windows.
19794
19795 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
19796
19797         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
19798         iterate over the NESTEDCLASS table using a linear search since the
19799         table is not guaranteed to be sorted by the secondary key.
19800
19801         * class.c (mono_class_create_from_typedef): fixed up call to
19802         mono_metadata_nesting_typedef.
19803         
19804 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
19805
19806         * marshal.c (mono_string_to_byvalstr): clear the memory as
19807         suggested by Jerome Laban <jlaban@wanadoo.fr>
19808
19809 2003-02-26  Dick Porter  <dick@ximian.com>
19810
19811         * process.c: Cope with padding in .rsrc blocks
19812
19813 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
19814
19815         * metadata.h: reverted the filter_len change, it breaks reflection
19816         
19817 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
19818
19819         * metadata.h: added a new field to store the filter_len
19820         
19821
19822 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
19823
19824         * reflection.c: handle custom attributes for types and members
19825         created with Reflection.Emit (bug#38422).
19826
19827 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
19828
19829         * reflection.c: define RTSpecialName automatically for constructors for
19830         compatibility with MS.NET.
19831
19832         * reflection.c (mono_reflection_create_runtime_class): initialize
19833         nested_in field of dynamically created classes.
19834
19835 2003-02-22  Martin Baulig  <martin@ximian.com>
19836
19837         * debug-mono-symfile.h: Incremented version number.
19838
19839 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
19840
19841         * object.h icall.c process.c: fix warnings.
19842
19843 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
19844
19845         * appdomain.h appdomain.c:
19846         (mono_domain_try_type_resolve): split the 
19847         name_or_tb argument into a name and a tb argument.
19848         (mono_domain_has_type_resolve): new function to check whenever the
19849         application has registered a TypeResolve event handler.
19850         
19851         * icall.c reflection.h reflection.c: move the type resolve logic into
19852         mono_reflection_get_type () so it will be invoked when 
19853         Assembly::GetType () is called.
19854
19855         * reflection.c:
19856         (mono_reflection_get_type): renamed to get_type_internal.
19857         (mono_reflection_get_type): fixed type name generation so it works 
19858         for nested types too.
19859         (mono_reflection_get_type): call has_type_resolve () to avoid the 
19860         costly type name generation if there is no resolve event handler.
19861
19862 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
19863
19864         * class.c, image.c: load exported types from file references.
19865
19866 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
19867
19868         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
19869           used to cache the managed methods used to create proxies and make 
19870           remote invocation of methods.
19871         * class.h: Added in MonoVTable a flag to indicate that a class needs 
19872           to be remotely created.
19873         * object.c: Modified the method mono_class_vtable(). It now initializes 
19874           the remote flag of the vtable. Modified mono_object_new_specific(), 
19875           so now it checks the remote flag.
19876         * icall.c: Added a couple of internal methods, one for enabling instance 
19877           creation interception for a type, and one for creating objects bypassing
19878           the remote check.
19879
19880 2003-02-18  Martin Baulig  <martin@ximian.com>
19881
19882         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
19883         New interncall to get a method's metadata token.
19884
19885         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
19886         New interncall for the debugger.
19887
19888 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
19889
19890         * class.c (mono_class_setup_vtable): allocate supertype array
19891
19892 2003-02-18  Martin Baulig  <martin@ximian.com>
19893
19894         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
19895
19896 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19897
19898         * reflection.c:
19899         (assembly_name_to_aname): jump over unknown properties (i've found
19900         something like: 'type, assembly, version=xxx, custom=null, public...',
19901         so now will ignore custom=null and still get the rest of the values).
19902
19903 2003-02-17  Dick Porter  <dick@ximian.com>
19904
19905         * threads.c: Have Thread.Start() wait for a semaphore to signal
19906         that the thread has set up all its local data.  This fixes bug
19907         34323, where Abort() raced the new thread's TLS data.
19908
19909         Also removes the handle_store() call from start_wrapper, because
19910         threads are now always created suspended and there is no longer a
19911         race between the parent and child threads to store the info.
19912
19913 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
19914
19915         * image.c: explain the #- heap issue in a message, hopefully
19916         avoiding FAQs on mono-list.
19917
19918 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19919
19920         * icall.c:
19921         (GetEntryAssembly): if the domain has not invoked
19922         AppDomain.ExecuteAssembly yet, return the assembly of the default
19923         AppDomain.
19924
19925 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
19926
19927         * class.c (mono_ldtoken): make it work in dynamic assemblies.
19928
19929 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
19930
19931         * metadata.c, reflection.c: simple speedup to type hash
19932         and equals code.
19933
19934 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
19935
19936         * image.c, image.h, class.c, assembly.c: move module loading
19937         to MonoImage. When loading metadata, consider alignemnet from
19938         the start of metadata, not from the metadata address in memory.
19939
19940 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
19941
19942         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
19943         AssemblyBuilder objects. Factored out custom attribute creation into
19944         a separate function.
19945         (create_custom_attr): new function to create custom attributes.
19946
19947 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
19948
19949         * Makefile.am: Got tired of typing the full pathname to pedump.
19950         Until there is another option, am installing this.
19951
19952 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
19953
19954         * class.c (class_compute_field_layout): always set field->parent 
19955         (mono_ldtoken): use mono_defaults.fieldhandle_class;
19956
19957 2003-02-11  Dick Porter  <dick@ximian.com>
19958
19959         * threads-types.h:
19960         * monitor.c: Rewrote Monitor, making lock much faster and
19961         Pulse/Wait work as specified.  Also uses much fewer handles, and only
19962         creates them as needed.
19963
19964         * exception.c: Added SynchronizationLockException
19965
19966         * threads.c: Deleted old Monitor implementation.  The new one is
19967         in a new file.
19968
19969 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
19970
19971         * class.c: handled TypedReference type code. Set the correct size for
19972         class data. Setup interface_offsets for interface classes, too.
19973
19974 2003-02-09  Martin Baulig  <martin@ximian.com>
19975
19976         * debug-mono-symfile.h: Reflect latest symbol writer changes.
19977
19978 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
19979
19980         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
19981         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
19982         * object.c: fixed mono_object_get_virtual_method () for interfaces.
19983         * verify.c: check for code that runs after the end of the method.
19984
19985 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
19986
19987         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
19988         "System.Math::Round2".
19989         * sysmath.h: Added Floor, Round and Round2 definitions.
19990         * sysmath.c: Modified certain functions that were not 100% compliant
19991         with MS.NET (math precision) and added the implementation of Floor,
19992         Round and Round2.
19993
19994 2003-02-07  Martin Baulig  <martin@ximian.com>
19995
19996         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
19997
19998 2003-02-07  Martin Baulig  <martin@ximian.com>
19999
20000         * debug-mono-symfile.c: Reflected latest symwriter changes.
20001         (mono_debug_create_mono_symbol_file): Removed.
20002         (mono_debug_open_mono_symbol_file): Take an argument which
20003         specifies whether to create a dynamic symbol file.
20004
20005 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
20006
20007         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
20008
20009 2003-02-05  Martin Baulig  <martin@ximian.com>
20010
20011         * reflection.c (mono_image_build_metadata): Make this public,
20012         protect it against being called multiple times, don't create
20013         resources and don't build the compressed metadata here.
20014         (mono_image_create_pefile): Do this here.
20015
20016         * icall.c
20017         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
20018
20019 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20020
20021         * socket-io.c: fixed bug #36322.
20022
20023 2003-02-06  Piers Haken <piersh@friskit.com>
20024
20025         * appdomain.[ch]:
20026         * class.h:
20027         * debug-mono-symfile.c:
20028         * icall.c:
20029         * loader.c:
20030         * mono-config.c:
20031         * monosn.c:
20032         * reflection.c:
20033         * socket-io.c: warning cleanups
20034
20035 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
20036
20037         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
20038         function. works like remoting invoke, but does a check for the Proxy first.
20039
20040 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
20041
20042         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
20043
20044 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
20045
20046         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
20047         array of pointers.
20048         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
20049         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
20050
20051         * object.c (mono_store_remote_field_new): used by the new jit
20052         instead of mono_store_remote_field
20053         (mono_load_remote_field_new): used by the new jit
20054         instead of mono_load_remote_field
20055
20056 2003-02-05  Patrik Torstensson
20057
20058         * appdomain.c: changed unload to take the domain id instead
20059         of domain
20060         
20061         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
20062
20063
20064 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20065
20066         * appdomain.c: don't look for assemblies in ApplicationBase if
20067         PrivateBinPathProbe is set.
20068
20069 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20070
20071         * object.c: make the first argument in main_args contain the absolute
20072         path to the assembly. Fixes bug #37511.
20073
20074 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20075
20076         * icall.c: get correct UTC offset for countries not using daylight
20077         time saving. Fixes bug #30030.
20078
20079 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20080
20081         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
20082         and 1 are the family).
20083
20084 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
20085
20086         * icall.c (ves_icall_InternalExecute): removed wrong assertion
20087
20088         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
20089
20090 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
20091
20092         * reflection.c: added support for SignatureHelper tokens, which is
20093         needed by the Calli opcode.
20094
20095         * reflection.h: track changes to SignatureHelper class.
20096
20097         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
20098
20099 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20100
20101         * appdomain.c: fixed loading assemblies from PrivateBinPath.
20102
20103 2003-02-03  Patrik Torstensson
20104         * appdomain.[c|h], domain.c : 
20105          - Added support for getting a domain via domain id
20106          - Support for setting and getting domain from System.AppDomain 
20107            (used in cross appdomain channel)
20108          - Added support for get/set for a MonoAppContext on a thread 
20109            (Context class in System.Runtime.Remoting.Contexts),
20110          - Removed hack in Get/SetData and ExecuteAssembly.
20111         
20112         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
20113         the managed world to get control when a proxy is created.
20114
20115         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
20116         
20117 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
20118
20119         * icall.c
20120         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20121         Populate the codebase field as well.
20122
20123 2003-02-02  Martin Baulig  <martin@ximian.com>
20124
20125         * debug-mono-symfile.c
20126         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
20127         (mono_debug_symfile_add_method): Allow interncalls.
20128
20129 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20130
20131         * icall.c: throw parse exception if strtod fails or the string is empty.
20132
20133 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
20134
20135         * marshal.c: handle object type separately from defined
20136         class types.
20137
20138 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
20139
20140         * marshal.c: handle NATIVE_LPSTR for strings when it's
20141         explicitly specified.
20142
20143 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
20144
20145         * reflection.c, reflection.h, icall.c: setup the reflection
20146         handle cache for ModuleBuilders and AssemblyBuilders.
20147
20148 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
20149
20150         * reflection.c (reflection_methodbuilder_to_mono_method): set
20151         pinvoke flag
20152
20153 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20154
20155         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
20156
20157 2003-01-29  Dick Porter  <dick@ximian.com>
20158
20159         * threads.c: No need for the fake_thread kludge now that Thread
20160         doesn't run a class constructor
20161         
20162 2003-01-29  Dick Porter  <dick@ximian.com>
20163
20164         * threads.c: Use g_direct_hash instead of the rather bogus
20165         g_int_hash
20166
20167 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
20168
20169         * marshal.c (mono_marshal_get_native_wrapper): add check for null
20170         (fix pinvoke12.exe)
20171         (mono_marshal_get_struct_to_ptr): generate valid IL code
20172         (mono_marshal_get_ptr_to_struct): generate valid IL code
20173         (*): correctly set sig->pinvoke, we need to memdup the signature
20174         to do that
20175
20176 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20177
20178         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
20179         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
20180
20181 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20182
20183         * profiler.c: provide more callers information.
20184
20185 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
20186
20187         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
20188
20189         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
20190
20191         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
20192
20193 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20194
20195         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
20196         exception instead of going into an infinite loop on dates which it 
20197         can't yet handle.
20198
20199         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
20200         out-of-range exception if needed.
20201
20202         * class.c (mono_class_setup_vtable): allow a virtual method to provide
20203         an implementation for an interface method and to override an inherited
20204         method at the same time. 
20205         Imagine a scenario when a virtual method is used to override a
20206         virtual abstract method in a parent class, and this same method 
20207         provides an implementation for an method inherited from an interface. 
20208         In this case, the interface resolution code will set im->slot, which 
20209         means that the virtual method override pass will skip this method 
20210         which means a pointer to the abstract method inherited from the parent
20211         will remain in the vtable of this non-abstract class.
20212
20213         * class.c: (mono_class_setup_vtable): continue search for a real 
20214         method if only an abstract method is found.     
20215
20216 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20217
20218         * reflection.c: add size to encoding for ByValStr and ByValArray
20219         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
20220
20221 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20222
20223         * class.c (mono_class_setup_vtable): pass the override info as an
20224         argument.
20225
20226         * class.c (mono_class_setup_vtable): set the slot of overriding methods
20227         correctly.
20228         
20229         * reflection.c (ensure_runtime_vtable); add support for method 
20230         overrides.
20231         
20232 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20233
20234         * reflection.c (resolution_scope_from_image): Hack to work to work with
20235         dynamic assemblies.
20236
20237         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
20238         added a 'force_ref' argument to force this function to allways return 
20239         a TypeRef. This is needed by mono_image_get_memberref_token ().
20240         
20241 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20242
20243         * reflection.c (mono_image_get_type_info): interfaces really don't have
20244         a parent.
20245
20246         * reflection.c (mono_image_basic_init): fill out missing fields of
20247         image structure.
20248
20249         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
20250         dynamic assemblies. This is required so dynamic assemblies show up in
20251         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
20252         Type::GetType() etc. This is consistent with MS behaviour.
20253
20254         * image.c image.h reflection.c: add newly created classes to the name 
20255         cache so mono_class_get () will find them.      
20256
20257 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20258
20259         First part of changes to get IKVM.NET running under mono.
20260         
20261         * appdomain.h, appdomain.c: added new function 
20262         mono_domain_try_type_resolve() which will emit TypeResolve events. 
20263         This function will call AppDomain::DoTypeResolve to do the actual work.
20264
20265         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
20266         moved existing code dealing with dynamic tokens to a new function 
20267         called mono_reflection_lookup_dynamic_token (). This function will 
20268         raise TypeResolve events when appropriate. Since reflection.c is not 
20269         part of libmetadata, a new hook function called 
20270         mono_lookup_dynamic_token() is added to class.c which will call this.
20271
20272         * assembly.h assembly.c: make the invoke_load_hook function public,
20273         so it can be called for dynamic assemblies.
20274
20275         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
20276
20277         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
20278         type isn't found.
20279
20280         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
20281         MonoGHashTable, since it contains pointers to objects which the GC 
20282         needs to track.
20283
20284         * assembly.c (search_loaded): remove unused variable.
20285         
20286 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
20287
20288         * object.c: fixed issue exposed by gcc-generated IL programs
20289         that use RVA data for pointers.
20290
20291 2003-01-25  Martin Baulig  <martin@ximian.com>
20292
20293         * threads.c (start_wrapper): Moved the initialization of
20294         `start_func' above the mono_new_thread_init() call to which we
20295         pass it as argument.
20296
20297 2003-01-24  Martin Baulig  <martin@ximian.com>
20298
20299         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
20300         the MonoThread pointer.
20301
20302 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
20303
20304         * icall.c: Rename `PowImpl' to Pow.
20305
20306 2003-01-23  Dick Porter  <dick@ximian.com>
20307
20308         * threads.c (start_wrapper): Create a Thread object if needed, so
20309         the Main() thread can do the class initialisation in a subthread
20310         that has been set up to allow managed code execution.
20311
20312         Pass the thread ID instead of the MonoThread pointer to the thread
20313         start and attach callbacks.  This change is required, because the
20314         jit thread start callback must be called _before_ the Thread
20315         object can be created.
20316         
20317         (mono_thread_init): Removed much object creation code that is no
20318         longer needed.  No managed code is called from here now.
20319
20320         * object.c (mono_runtime_exec_managed_code): Create a subthread
20321         for Main, and call back to the runtime to use it.
20322         Set the exit code when Main exits.
20323
20324         * gc.c: Make sure domain finalisation happens in a subthread.
20325         Re-enable threaded GC, fixing bug 31333 (again).
20326
20327         * environment.c: System.Environment internall calls (so far just
20328         ExitCode is here, the others are still in icall.c)
20329
20330         * appdomain.c (mono_runtime_cleanup): All threads running managed
20331         code should have finished before mono_runtime_cleanup() is
20332         reached, so no need to clean up threads.
20333
20334 2003-01-22  Martin Baulig  <martin@ximian.com>
20335
20336         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
20337         `gpointer func' arguments.      
20338         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
20339         but added `MonoThread *thread' argument.
20340         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
20341
20342         * threads.c (mono_new_thread_init): Added `gpointer func' argument
20343         and pass it to the mono_thread_start_cb callback.
20344         (mono_install_thread_callbacks): New public function to install a
20345         set of callbacks which are set by the debugger.
20346         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
20347
20348 2003-01-22  Martin Baulig  <martin@ximian.com>
20349
20350         * Makefile.am: Install debug-mono-symfile.h.
20351
20352 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
20353
20354         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
20355
20356 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
20357
20358         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
20359         * class.c (mono_ptr_class_get): correctly set access levels of pointers
20360         (mono_array_class_get): correctly set access levels of arrays
20361
20362 2003-01-20      Patrik Torstensson
20363         * image.h (MonoAssemblyName): changed major, minor, build, revision
20364         from signed to unsigned.
20365
20366 2003-01-20  sean kasun <skasun@azstarnet.com>
20367
20368         * reflection.c (load_cattr_value): Now this handles
20369         MONO_TYPE_SZARRAY.  Fixes bug #35629
20370
20371 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
20372
20373         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
20374         integer value
20375
20376 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20377
20378         * decimal.c: fixed bug #26056.
20379
20380 2003-01-17  Martin Baulig  <martin@ximian.com>
20381
20382         * gc.c: Raise an ExecutionEngineException instead of using g_error().
20383
20384 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20385
20386         * exception.[ch]:
20387         (mono_get_exception_type_initialization): new function.
20388
20389         * object.c: throw a TypeInitializationException when an exception is
20390         thrown invoking the class constructor.
20391
20392 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20393
20394         * reflection.c: fixed attribute reading.
20395
20396 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20397
20398         * icall.c:
20399         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
20400         provided, look for the type in the calling assembly and then in
20401         mscorlib; if the assembly name is provided, only try that one.
20402
20403 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
20404
20405         * object.c: register the vtable before there is a chance it's
20406         queried again recursively.
20407
20408 2003-01-13  Duncan Mak  <duncan@ximian.com>
20409
20410         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
20411         gc-internal.h. 
20412         
20413 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
20414
20415         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
20416
20417 2003-01-11  Martin Baulig  <martin@ximian.com>
20418
20419         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
20420         this to 20 for the release.
20421
20422 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
20423
20424         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
20425
20426         * loader.c (mono_method_get_marshal_info): bug fix
20427
20428         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
20429         structures with explicit layout
20430
20431 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20432
20433         * profiler.c: made the output more readable (and sorted). 
20434         Added caller information for the allocation profiler.
20435
20436 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
20437
20438         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
20439
20440 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20441
20442         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
20443         to get value types.
20444         
20445 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
20446
20447         * object.c, profiler.h, profiler.c, profiler-private.h:
20448         Added object allocation profiler.
20449
20450 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
20451
20452         * reflection.h, reflection.c: handle global methods.
20453         Compress blob entries.
20454
20455 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
20456
20457         * marshal.c: fix compilation.
20458
20459 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
20460
20461         * loader.c (mono_method_get_marshal_info): impl.
20462
20463         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
20464
20465 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20466
20467         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
20468         for reference types.
20469
20470 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
20471
20472         * loader.c: fixed off by one error in loaded parameter names.
20473
20474 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
20475
20476         * marshal.c (mono_marshal_get_icall_wrapper): like
20477         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
20478         instead of a MonoMethod.
20479
20480 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20481
20482         * decimal.c: fixed bug #36537.
20483
20484 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
20485
20486         * marshal.c: throw a missing method exception if a
20487         P/Invoke method is not found.
20488
20489 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20490
20491         * icall.c: allow a null this for constructors.
20492
20493 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
20494
20495         * icall.c: raise the proper exceptions if the arguments to the
20496         internal Invoke are incorrect.
20497
20498 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
20499
20500         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
20501
20502 2003-01-03  Martin Baulig  <martin@ximian.com>
20503
20504         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20505
20506 2002-12-31  Martin Baulig  <martin@ximian.com>
20507
20508         * debug-mono-symfile.c: Completely rewrote the type section.
20509         Instead of using individual malloc()ed fields, we use one big
20510         continuous memory area and offsets into this area.
20511         See the comments in the source code for details.
20512
20513 2002-12-30  Martin Baulig  <martin@ximian.com>
20514
20515         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
20516
20517 2002-12-30  Martin Baulig  <martin@ximian.com>
20518
20519         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
20520         line number table in this data blob instead of using an external
20521         pointer.
20522
20523 2002-12-28  Martin Baulig  <martin@ximian.com>
20524
20525         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20526
20527 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
20528
20529         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
20530         as a boxed return type.
20531
20532 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
20533
20534         * appdomain.c
20535         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
20536         g_build_filename to properly get separators on the filename created.
20537
20538         * object.h: Small change, introduce MonoMarshalByRefObject to
20539         track the layout of that structure in the C# universe as we make
20540         changes there.
20541
20542 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
20543
20544         * object.c: removed assert to allow static fields on interfaces.
20545         * loader.c: a TypeSpec may be used for any type, not just arrays.
20546
20547 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20548
20549         * class.c, class.h: added mono_class_array_element_size ().
20550         Ignore static methods in interfaces.
20551
20552 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20553
20554         * threads.c: fixed the build under cygwin.
20555
20556 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20557
20558         * reflection.c: handle nullref constants. Allocate keys for
20559         reflection handles with the GC.
20560
20561 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20562
20563         * threads.c, threads.h: added mono_thread_get_abort_signal()
20564         to get a suitable signal for thread abort.
20565
20566 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20567
20568         * metadata.c: fix handling of ExportedType table.
20569
20570 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20571
20572         * icall.c: added WriteWindowsDebugString internal call.
20573
20574 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20575
20576         * reflection.h: added fields to match C# implementation.
20577
20578 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20579
20580         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
20581
20582 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
20583
20584         * gc.h, gc-internal.h: Rename header for GC internal calls to
20585         gc-internal.h from gc.h as to not clash with Boehm GC having its
20586         header installed as <gc.h> in outside include paths.
20587         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
20588         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
20589
20590 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20591
20592         * icall.c: assign minor, build and revision in FillName.
20593
20594 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
20595
20596         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
20597         Added support for running code generated by Reflection.Emit.
20598
20599 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20600
20601         * appdomain.c: check for NULL argument in LoadFrom.
20602
20603 2002-12-10  Dick Porter  <dick@ximian.com>
20604
20605         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
20606
20607 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20608
20609         * appdomain.c: fix buglet when building exe file name.  Handle full
20610         assembly name (needed after latest changes to AssemblyName).
20611         * image.c:
20612         (mono_image_close): free some hashtables.
20613
20614 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
20615
20616         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
20617         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
20618         on some systems (redhat 7.3) 
20619
20620 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
20621
20622         * threads.c: delete the critical section of a sync block,
20623         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
20624
20625 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
20626
20627         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
20628
20629 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20630
20631         * appdomain.[ch]: handle the assembly preload event to try loading the
20632         assemblies using the paths we have in the current domain.
20633
20634         * assembly.[ch]: created an assembly preload hook that is called to try
20635         loading the assembly by other means that the ones provided here.
20636
20637         * domain.c: initialize the domain search path.
20638
20639         From now on, assemblies (TODO: except corlib and System) are loaded
20640         according to these rules when using mono_assembly_load ():
20641
20642                 1. It tries to load the assembly from the ApplicationBase
20643                 of the current domain appending .dll and .exe (TODO: have to
20644                 try loading from name/name.dll and name/name.exe).
20645
20646                 2. It tries the search path specified in PrivateBinPath for the
20647                 current domain (if any).
20648
20649                 3. Previous behavior.
20650
20651 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
20652
20653         * icall.c: implemented GetInterfaceMap() related icall.
20654         * domain.c, loader.h: load MethodInfo in mono_defaults.
20655
20656 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20657
20658         * gc.c: disable the finalizer thread for now, untill all the issues
20659         with it are resolved.
20660
20661 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20662
20663         * string-icalls.c: handle embedded nulls in string ctor when the
20664         length is specified.
20665
20666 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20667
20668         * class.c: look for explicit interface implementation in parent
20669         classes, too.
20670
20671 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
20672
20673         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
20674
20675 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
20676
20677         * gc.c: protect handles with a critical section.
20678
20679 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20680
20681         * icall.c:
20682         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
20683         parameters. If no assembly specified, try getting the type from all
20684         the assemblies in the current domain, else, load the assembly and get
20685         the type from it.
20686
20687 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20688
20689         * marshal.c: applied patch from Aleksey Demakov that fixes
20690         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
20691
20692 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20693
20694         * icall.c: fixed get_location.
20695
20696 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
20697
20698         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
20699         declarations to make it work with older gcc. 
20700
20701         * loader.c (mono_get_method): set signature->pinvoke for native calls
20702
20703 2002-11-20  Dick Porter  <dick@ximian.com>
20704
20705         * threads.c (mono_thread_init): Set the main thread's handle
20706
20707 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
20708
20709         * gc.c: allow compilation without GC support. Changed to match the
20710         mono coding style.
20711
20712 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20713
20714         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
20715
20716 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
20717
20718         * reflection.c: set a public key token on the core assemblies.
20719
20720 2002-11-18  Dick Porter  <dick@ximian.com>
20721
20722         * threads.c: Split out some thread initialisation so that other
20723         files can set the start callback function.
20724
20725         * gc.c: Run finalisers in a separate thread, to avoid stack
20726         overflow.  Fixes bug 31333.
20727
20728         * appdomain.c: Set up GC finalisation thread.
20729
20730         * reflection.c: 
20731         * object.c: 
20732         * domain.c: Use gc.h macros for GC_malloc
20733         
20734 2002-11-15  Dick Porter  <dick@ximian.com>
20735
20736         * threadpool.c: 
20737         * threads.c:
20738         * appdomain.c: Removed mono_runtime_init_with_attach(),
20739         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
20740         merging the extra parameter with the existing function.  Removed
20741         unneeded code in mono_thread_attach().
20742
20743 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
20744
20745         * image.c (mono_image_loaded_by_guid): a method to get loaded
20746         images by guid. 
20747         (load_metadata_ptrs): we store the guid as string.
20748
20749 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
20750
20751         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
20752
20753         * metadata.c (mono_guid_to_string): imported method form Zoltan
20754         Varga (slightly modified)
20755
20756         * assembly.c (mono_assembly_open): load precompiled code
20757
20758         * loader.h (MonoMethod): we store the method token for use in the
20759         aot compiler. 
20760
20761 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20762
20763         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
20764         the hook function called when an assembly is loaded.
20765         
20766         * domain.c: Modified file.
20767         (mono_domain_assembly_load): removed hash table insertion of assemblies.
20768
20769         Fixes bug #33196.
20770
20771 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
20772
20773         * reflection.c: Map PEFileKind to the value expected by the WinNT
20774         image loader. 
20775
20776 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20777
20778         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
20779         Read until the buffer is filled completely.
20780
20781 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20782
20783         * icall.c: implemented MonoType.InternalGetEvent ().
20784
20785 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20786
20787         * appdomain.c: implemented InitAppDomainSetup. Delayed
20788         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
20789         the entry_assembly.
20790
20791         * assembly.c: base_dir is now an absolute path ending with
20792         G_DIR_SEPARATOR.
20793
20794         * icall.c: modified get_location according to the above changes.
20795
20796         * object.c: init AppDomain.SetupInformation for the default domain after
20797         we have the entry assembly.
20798
20799         * domain.c: when unloading a domain, setup = NULL.
20800
20801 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
20802
20803         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
20804
20805 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
20806
20807         * object.h, object.c: introduced mono_object_get_virtual_method ()
20808         to lookup the method invoked on an object when a callvirt is done on
20809         a method.
20810         * icall.c: make MethodInfo::Invoke() always do a virtual call.
20811
20812 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20813
20814         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
20815         current domain when loaded an assembly and failed to load it.
20816
20817         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
20818
20819 2002-10-31  Dick Porter  <dick@ximian.com>
20820
20821         * icall.c: 
20822         * file-io.h: 
20823         * file-io.c: Return the error status in a parameter, as the
20824         GetLastError() value has long since been blown away if we try and
20825         look it up in a subsequent internal call invocation.  Delete the
20826         GetLastError() internal call, because it's useless.
20827
20828 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
20829
20830         * class.[ch]: added cast_class to fix bug 29517
20831
20832 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
20833
20834         * marshal.c: create valid IL code in the filter clause:
20835         the new JIT is less forgiving:-)
20836
20837 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20838
20839         * icall.c: removed get_property internal call.
20840
20841 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
20842
20843         * appdomain.h domain.c: Added an ID to appdomains.
20844         
20845         * threads.c threads.h icall.c: Implement icall
20846         Thread:GetDomainID(), and remove unused icall 
20847         CurrentThreadDomain_internal.
20848
20849 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20850
20851         * icall.c: Don't recurse through the base types in GetConstructor.
20852         Fixes bug #32063. 
20853
20854 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20855
20856         * mempool.h, mempool.c: added mono_mempool_empty() and
20857         mono_mempool_stats().
20858
20859 2002-10-23  Dick Porter  <dick@ximian.com>
20860
20861         * file-io.c: 
20862         * file-io.h: 
20863         * icall.c: Added MonoIO.GetFileType internal call
20864
20865 2002-10-17  Dick Porter  <dick@ximian.com>
20866
20867         * appdomain.c (mono_runtime_cleanup): Don't signal the async
20868         delegate semaphore before waiting for all threads to finish,
20869         because new threads can also call async delegates.  Fixes bug
20870         32004.
20871
20872         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
20873         of 3 seconds, in case another async job is queued.  (This part is
20874         needed because the bug fix reintroduced the 3s exit lag.)  This
20875         makes the mono_runtime_shutdown flag superfluous.
20876
20877 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20878
20879         * reflection.c: include ehader size in method section headers.
20880         Really check for suplicated modules entries.
20881
20882 2002-10-17  Martin Baulig  <martin@gnome.org>
20883
20884         * debug-mono-symfile.c: Added back support for locals.
20885
20886 2002-10-14  Martin Baulig  <martin@gnome.org>
20887
20888         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
20889         MONO_TYPE_VOID.
20890
20891 2002-10-14  Martin Baulig  <martin@gnome.org>
20892
20893         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
20894         mono_class_get() instead of looking in the class cache. 
20895
20896 2002-10-13  Martin Baulig  <martin@gnome.org>
20897
20898         * debug-mono-symfile.c: Set version number to 28, include the
20899         signature in method names.
20900
20901 2002-10-13  Martin Baulig  <martin@gnome.org>
20902
20903         * debug-mono-symfile.h: Set version number to 27.
20904
20905 2002-10-11  Martin Baulig  <martin@gnome.org>
20906
20907         * gc.c: Don't register/unregister NULL pointers as disappearing links.
20908
20909 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20910
20911         * metadata.c, metadata.h: added helper function to allocate signatures.
20912
20913 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20914
20915         * icall.c: added internal call to get the location of machine.config.
20916
20917 2002-10-08  Martin Baulig  <martin@gnome.org>
20918
20919         * debug-mono-symfile.c: Ignore classes with a pending init for the
20920         moment.
20921
20922 2002-10-03  Dick Porter  <dick@ximian.com>
20923
20924         * threads.c: Freebsd pthread_t is a pointer
20925
20926 2002-10-03  Dick Porter  <dick@ximian.com>
20927
20928         * socket-io.c: Implemented GetHostName_internal
20929
20930 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20931
20932         * mono-config.c:
20933         (mono_config_parse_file): don't leak the text.
20934
20935 2002-10-02  Martin Baulig  <martin@gnome.org>
20936
20937         * debug-mono-symfile.c: Added support for methods.
20938
20939 2002-10-01  Martin Baulig  <martin@gnome.org>
20940
20941         * debug-mono-symfile.c: Don't emit methods and line numbers for
20942         the dynamic symbol file, just write the type table.  We can easily
20943         have an external helper program which creates a symbol file for an
20944         IL file.        
20945
20946 2002-10-01  Dick Porter  <dick@ximian.com>
20947
20948         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
20949         Only add the handle to the cleanup array when we're about to
20950         launch the thread.  Bug 31425 deadlocked when the test was run on
20951         mono under w32.
20952
20953 2002-10-01  Martin Baulig  <martin@gnome.org>
20954
20955         * debug-mono-symfile.c: Added support for properties.
20956
20957 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20958
20959         * reflection.c: unaligned store fix from Mark Crichton
20960         <crichton@gimp.org>.
20961
20962 2002-09-27  Martin Baulig  <martin@gnome.org>
20963
20964         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
20965         New interncall.
20966
20967 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20968
20969         * assembly.h, assembly.c: use a sane API to hook into the assembly
20970         loading process instead of a useless special-purpouse hack
20971         (ngen needs a hook, too, for example).
20972
20973 2002-09-27  Dick Porter  <dick@ximian.com>
20974
20975         * threads.c (mono_thread_init): Call GetCurrentProcess() so
20976         io-layer can set up some process handle info.  Not needed on w32,
20977         but doesn't hurt either.
20978
20979         * process.c: Pass the program name in the second parameter to
20980         CreateProcess, so the path is searched.  Include the working
20981         directory. Implemented process name, process enumeration, and some
20982         process detail internal calls.
20983         
20984         * icall.c: Added internal calls for process lookup, and some
20985         process details
20986
20987 2002-09-26  Martin Baulig  <martin@gnome.org>
20988
20989         * assembly.c (mono_install_open_assembly_hook): New global
20990         function to install a function to be invoked each time a new
20991         assembly is loaded.
20992         (mono_assembly_open): Run this callback function if set.
20993
20994         * debug-mono-symfile.c: Put back line numbers for the dynamic
20995         symbol file and also record the .il file as source file.  This
20996         allows us to install the temporary symbol file as `file.dbg' just
20997         like a compiler-generated one.
20998
20999 2002-09-26  Nick Zigarovich <nick@chemlab.org>
21000
21001         * Corrected typo in gc.c (BOHEM vs BOEHM).
21002
21003 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21004
21005         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
21006         GetProperties. Also avoid calling g_slist_length in GetProperties and
21007         GetMethods.
21008
21009 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21010
21011         * reflection.c: avoid unaligned stores (bug spotted by
21012         Mark Crichton  <crichton@gimp.org>).
21013
21014 2002-09-25  Martin Baulig  <martin@gnome.org>
21015
21016         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
21017         instead of guint64 for addresses and added prologue/epilogue info.
21018
21019 2002-09-25  Martin Baulig  <martin@gnome.org>
21020
21021         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
21022         store line number info.  For the dynamic symbol file, we only need
21023         to provide the JIT generated dynamic line number info for the dynamic
21024         symbol file.
21025
21026 2002-09-25  Martin Baulig  <martin@gnome.org>
21027
21028         * debug-mono-symfile.h: Incremented version number.
21029
21030 2002-09-24  Martin Baulig  <martin@gnome.org>
21031
21032         * class.c (mono_debugger_class_init_func): New global function
21033         pointer variable.
21034         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
21035         call it.
21036
21037         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
21038         function.  This is called via the mono_debugger_class_init_func
21039         hook to add all types to the dynamic type table.
21040         (ves_icall_MonoDebugger_GetType): New interncall to get a class
21041         from its metadata token.
21042
21043         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
21044         New interncall for the debugger.
21045
21046 2002-09-24  Nick Drochak <ndrochak@gol.com>
21047
21048         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
21049         before using it in case it is null.
21050         
21051 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21052
21053         * metadata.c: allow custom modifiers in local var signatures
21054         (bug spotted by Zoltan Varga).
21055
21056 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21057
21058         * class.c: deal with the <Module> class that may have a NULL vtable.
21059         Eliminate warnings.
21060
21061 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21062
21063         * image.c, image.h: more strong name helpers.
21064         * monosn.c: more work: convert pem keys to cryptoapi format.
21065
21066 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21067
21068         * string-icalls.c: speedup IndexOf.
21069
21070 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21071
21072         * icall.c: updates from Zoltan.2.Varga@nokia.com.
21073
21074 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21075
21076         * icall.c: cleanup: use mono_object_domain ().
21077
21078 2002-09-23  Martin Baulig  <martin@gnome.org>
21079
21080         * debug-mono-symfile.c: Improved type support.
21081
21082 2002-09-22  Martin Baulig  <martin@gnome.org>
21083
21084         * debug-mono-symfile.c: Added support for reference types and strings.
21085
21086 2002-09-22  Martin Baulig  <martin@gnome.org>
21087
21088         * debug-mono-symfile.c: Started to work on the type table.
21089
21090 2002-09-21  Martin Baulig  <martin@gnome.org>
21091
21092         * debug-mono-symfile.c: Largely reworked the symbol table format.
21093         The symbol table is now incrementally updated each time a new
21094         method is added.  We're now also using our own magic and version
21095         so that you don't need to recompile all your classes if the
21096         dynamic table changes.
21097         (mono_debug_update_mono_symbol_file): Removed.
21098         (mono_debug_symfile_add_method): New function to add a method.
21099
21100 2002-09-21  Martin Baulig  <martin@gnome.org>
21101
21102         * icall.c
21103         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
21104         New interncall.
21105
21106         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
21107         New interncall to get a method from its metadata token.
21108
21109 2002-09-21  Martin Baulig  <martin@gnome.org>
21110
21111         * debug-mono-symfile.c: Create type table.
21112
21113 2002-09-20  Martin Baulig  <martin@gnome.org>
21114
21115         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
21116
21117 2002-09-20  Martin Baulig  <martin@gnome.org>
21118
21119         * debug-mono-symfile.c: Provide information about params and locals.
21120
21121 2002-09-20  Martin Baulig  <martin@gnome.org>
21122
21123         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
21124         New interncall.
21125
21126         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
21127         interncall to get a method from its metadata token.
21128
21129 2002-09-20  Martin Baulig  <martin@gnome.org>
21130
21131         * debug-mono-symfile.c: Added a few checks for method->header
21132         being non-NULL.  This should never happen, but for the moment
21133         let's use a g_warning() rather than a g_assert().
21134
21135 2002-09-19  Mark Crichton  <crichton@gimp.org>
21136
21137         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
21138         even if support for it isn't present.  Added an #ifdef to fix this.
21139
21140         * socket-io.c: Added checks back for Solaris support.
21141
21142 2002-09-19  Martin Baulig  <martin@gnome.org>
21143
21144         * debug-mono-symfile.c (read_string, write_string): Reflect latest
21145         changes in the symbol file format.
21146
21147 2002-09-18  Martin Baulig  <martin@gnome.org>
21148
21149         * debug-mono-symfile.c: Set version number to 21.
21150
21151 2002-09-18  Dick Porter  <dick@ximian.com>
21152
21153         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
21154         on netbsd.  Fixes bug 30051.
21155
21156 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21157
21158         * reflection.c:
21159         (set_version_from_string): little fix.
21160
21161 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21162
21163         * monosn.c, Makefile.am: added strong name utility.
21164         * reflection.h, reflection.c: implemented delayed signing,
21165         locale, version and hash id assembly attributes.
21166
21167 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21168
21169         * loader.c, metadata.c: load param attributes in signatures.
21170
21171 2002-09-16  Martin Baulig  <martin@gnome.org>
21172
21173         * debug-mono-symfile.c: Added string table with all method names.
21174
21175 2002-09-14  Martin Baulig  <martin@gnome.org>
21176
21177         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
21178         fast method lookup.
21179
21180 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21181
21182         * reflection.c: record the public key token of referenced assemblies.
21183
21184 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21185
21186         * image.c, image.h: added functions to get the strong name and the
21187         public key of an assembly.
21188         * pedump.c: use them.
21189
21190 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
21191
21192         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
21193
21194 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
21195
21196         * marshal.c (mono_marshal_get_managed_wrapper): Added
21197         MONO_TYPE_BOOLEAN 
21198
21199 2002-09-11  Martin Baulig  <martin@gnome.org>
21200
21201         * gc.c: Call GC_unregister_disappearing_link() on all links when
21202         finalizing them, this is necessary to aviod a crash in boehm's
21203         finalize handler.
21204
21205 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21206
21207         * gc.c: handle GetTarget for finalized objects spotted and fixed by
21208         nick@chemlab.org.
21209
21210 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
21211
21212         * icall.c: implemented MonoType::Module.
21213         * reflection.c, reflection.h: mono_module_get_object () from
21214         Tomi Pakarinen <tomi.pakarinen@welho.com>.
21215
21216 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21217
21218         * icall.c: ignore overridden methods in GetMethods ().
21219         Fix for FieldInfo::SetValue().
21220         * object.c: handle float/double in runtime invoke.
21221
21222 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21223
21224         * object.c: allow a constructor to be called again on an object.
21225
21226 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21227
21228         * class.h, class.c: move field layout code to it's own function and
21229         export it. Get an interface id earlier. Move fields in MonoClass
21230         so they are more cache friendly and align the bitfields.
21231         * loader.c: temporary handle get_param_names() for a runtime method.
21232         * reflection.c, reflection.h: more code to handle runtime creation of
21233         types.
21234
21235 2002-09-09  Martin Baulig  <martin@gnome.org>
21236
21237         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
21238         signature with the pinvoke field being set for the actual call.
21239
21240 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21241
21242         * icall.c: removed some unused icalls. Start of map of glib charsets
21243         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
21244
21245 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21246
21247         * debug-helpers.c: break infinite loop (found and fixed by
21248         Holger Arnold <harnold@gmx.de>).
21249
21250 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21251
21252         * icall.c: target may be null in create_delegate.
21253
21254 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21255
21256         * marshal.c: handle a boolean return type.
21257
21258 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21259
21260         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
21261
21262 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21263
21264         * gc.c: fix weakreferences.
21265
21266 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
21267
21268         * icall.c: added icall to get default codepage.
21269
21270 2002-09-03  Dick Porter  <dick@ximian.com>
21271
21272         * threads.h: 
21273         * threads.c: Use MonoThread instead of MonoObject where
21274         apropriate.
21275
21276         Store running thread objects in a hash table, so that we have all
21277         the info to hand when waiting for them to finish
21278         (means we don't need OpenThread() any more, so mingw builds should
21279         be fully functional again.)
21280
21281         * verify.c:
21282         * object.h: Added thread ID to MonoThread
21283
21284 2002-09-03  Martin Baulig  <martin@gnome.org>
21285
21286         * icall.c (System.Reflection.Assembly::get_location): New interncall.
21287
21288 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21289
21290         * icall.c: fixed leak in get_temp_path. Thanks lupus.
21291
21292 2002-09-03  Martin Baulig  <martin@gnome.org>
21293
21294         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
21295         argument to store the end address of the disassembled instruction.
21296
21297         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
21298         here from debug-symfile.h.
21299         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
21300         JIT into this struct.
21301         (MonoSymbolFile): Added `char *image_file' field.
21302         (MonoDebugGetMethodFunc): Removed.
21303         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
21304         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
21305         (mono_debug_find_method): New method.
21306
21307         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
21308         create a full symbol file.
21309         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
21310         and static symbol files.
21311         (mono_debug_find_method): The symbol file keeps an internal method hash,
21312         call this to get a MonoDebugMethodInfo from a MonoMethod.
21313
21314         * debug-symfile.[ch]: Removed.
21315
21316 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
21317
21318         * image.c (do_mono_image_open): Remove linker version check.
21319
21320 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
21321
21322         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
21323         wrappers for instance methods.
21324         
21325 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21326
21327         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
21328
21329 2002-08-28  Dick Porter  <dick@ximian.com>
21330
21331         * Makefile.am: Export HOST_CC for w32 builds
21332
21333 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21334
21335         * file-io.c process.c: MonoString are null terminated, no
21336         need for mono_string_to_utf16() anymore.
21337
21338 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21339
21340         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
21341
21342 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
21343
21344         * icall.c, reflection.h: speedup System.MonoType.
21345
21346 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21347
21348         * reflection.c: allow null as the value of a string argument in
21349         custom attributes constructors.
21350
21351 2002-08-27  Martin Baulig  <martin@gnome.org>
21352
21353         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
21354         `trampoline_address' field.
21355
21356 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
21357
21358         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
21359         check (fixes bug #29486) 
21360
21361 2002-08-27  Martin Baulig  <martin@gnome.org>
21362
21363         * debug-mono-symfile.c: Changed the file format in a way that allows us
21364         open it read-only and to use a specially malloced area for all the
21365         dynamic data.  We can now also generate a symbol file on-the-fly if we're
21366         debugging IL code and there is no MCS generated symbol file for it.
21367
21368 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21369
21370         * object.c: added a define for a good string and array
21371         creation speedup (not enabled by default because we need to deal with
21372         the synch stuff).
21373
21374 2002-08-26  Martin Baulig  <martin@gnome.org>
21375
21376         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
21377         function to create a dynamic symbol file.  This is used by the
21378         debugger to create a symbol file for IL code on-the-fly.
21379
21380 2002-08-26  Martin Baulig  <martin@gnome.org>
21381
21382         * loader.c (mono_lookup_pinvoke_call): Include the error message
21383         from g_module_error() in the error message.
21384
21385 2002-08-24  Martin Baulig  <martin@gnome.org>
21386
21387         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
21388         function to update the symbol file.  The symbol file is mmap()ed
21389         writable, but private.  This allows us to install the symbol file
21390         together with the assembly.
21391
21392 2002-08-24  Martin Baulig  <martin@gnome.org>
21393
21394         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
21395         but they can read the new symbol file format which mcs is now creating.
21396
21397         * debug-symfile.c (mono_debug_find_source_location): Moved to
21398         debug-mono-symfile.c; this is now operating on the new symbol file.
21399
21400 2002-08-23  Martin Baulig  <martin@gnome.org>
21401
21402         * debug-helpers.c (mono_method_desc_from_method): New function to get
21403         a MonoMethodDesc from a MonoMethod.
21404
21405 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21406
21407         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
21408         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
21409
21410 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
21411
21412         * string-icalls.[ch]: make helper methods static.
21413
21414 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21415
21416         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
21417         types to it and to SetValueInternal.
21418
21419         * object.c: Moved handle_enum label to its proper place. This was the
21420         f... bug! ;-)
21421
21422         This time i compiled mcs and gtk-sharp and they both work.
21423
21424 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21425
21426         * icall.c: reverted partially my previous patch until 
21427         object.c:set_value handles enums correcly.
21428
21429 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21430
21431         * icall.c:
21432         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
21433         (ves_icall_System_Environment_get_MachineName): removed warning when
21434         compiling under cygwin.
21435
21436 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21437
21438         * object.c: fixed field_get_value() for reference types.
21439
21440 2002-08-22  Dick Porter  <dick@ximian.com>
21441
21442         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
21443         Don't free a buffer while it's still needed.  Patch from Jonathan
21444         Liger <Jonathan.liger@wanadoo.fr>
21445
21446 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
21447
21448         * icall.c (ves_icall_System_Environment_get_Platform): Add new
21449         internal call.
21450
21451 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
21452
21453         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
21454         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
21455
21456         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
21457         we call unmanaged code which throws exceptions.
21458
21459 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21460
21461         * appdomain.h: added per-domain entry_assembly.
21462         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
21463         arguments.
21464         * icall.c: Assembly::GetEntryAssembly icall.
21465         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
21466         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
21467
21468 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21469
21470         * appdomain.h, gc.c: added mono_domain_finalize ().
21471
21472 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21473
21474         * object.c:
21475         (mono_print_unhandled_exception): changed g_warning by g_printerr
21476         because g_log has a 1024 characters limit (yeah, i got a big stack
21477         trace). Don't print exception name, that should be in ToString 
21478         returned string.
21479
21480 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21481
21482         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
21483         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
21484
21485 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21486
21487         * object.c:
21488         (mono_print_unhandled_exception): after previous commit, i realized
21489         that MS calls ToString on the exception. I changed this function to
21490         do that. This way we get stack_trace for free.
21491
21492 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21493
21494         * object.c:
21495         (mono_print_unhandled_exception): invoke Message property instead of
21496         getting 'message' field from Exception. Don't allocate memory for
21497         'trace' and 'message' if not needed.
21498
21499 2002-08-18  Dick Porter  <dick@ximian.com>
21500
21501         * unicode.c: Fix asserts to match Encoder.cs checks
21502
21503 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21504
21505         * marshal.c: fix unaligned store issue and a few wrong
21506         opcode argument types.
21507
21508 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21509
21510         * icall.c: added GetUninitializedObjectInternal internal call.
21511
21512 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
21513
21514         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
21515         to the right domain.
21516
21517 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
21518
21519         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
21520
21521         * class.c (class_compute_field_layout): set blittable to false for Strings
21522
21523         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
21524
21525 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21526
21527         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
21528         first chunk of code to create types at runtime. Code to
21529         handle ReflectedType/DeclaringType. Make reflection handles
21530         domain specific.
21531
21532 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21533
21534         * class.c: set correct name in arrays.
21535
21536 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
21537
21538         * appdomain.c (mono_domain_transfer_object): make it work with
21539         valuetypes. bug fixes.
21540
21541 2002-08-12  Dick Porter  <dick@ximian.com>
21542
21543         * object.h: Rename some parameters to avoid c++ keywords (Patch
21544         from Joseph Wenninger <kde@jowenn.at>)
21545
21546 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
21547
21548         * icall.c: added icall to implement Assembly.GetFile*.
21549
21550 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21551
21552         * reflection.h, reflection.c: code to embed managed resources.
21553
21554 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21555
21556         * class.c: move all the type size stuff into
21557         class_compute_field_layout().
21558
21559 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21560
21561         * class.c: ensure enums have always the correct instance size.
21562         * unicode.c: remove wrong assert.
21563
21564 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21565
21566         * assembly.c: fix mem corruption issue.
21567         * image.h, image.c: added mono_image_get_resource () to access
21568         managed resources.
21569         * icall.c: implemented Assembly.EntryPoint property and some
21570         Managed Resources related internalcalls.
21571
21572
21573 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21574
21575         * image.c, image.h: impemented mono_image_get_entry_point ().
21576         * appdomain.c: use mono_image_get_entry_point.
21577
21578 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21579
21580         * reflection.c: support the object type argument when loading
21581         custom attributes.
21582
21583 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
21584
21585         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
21586         String as return type.
21587
21588 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
21589
21590         * reflection.c: fix encoding of named args for custom attrs to match
21591         the ms implementation. Read them back when instantiating custom
21592         attributes.
21593
21594 2002-08-02  Radek Doulik  <rodo@ximian.com>
21595
21596         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
21597         by Dietmar as quick fix
21598         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
21599         16 as stack size, used on more places as quick fix before Dietmar
21600         will fix it properly
21601
21602 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21603
21604         * object.h, object.c: added accessors for fields and properties.
21605
21606 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21607
21608         * class.c, class.h: made mono_class_get_field_from_name ()
21609         loop on parent types.
21610         Added mono_class_get_property_from_name ().
21611
21612 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21613
21614         * class.c, class.h: move the code to setup the type vtable in its own
21615         function so that it can be reused also for types created at runtime.
21616         Eliminate the "class" identifier from the header file.
21617         * reflection.c: setup the vtable for enums so that we can create
21618         objects for use in SetConstant ().
21619
21620 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
21621
21622         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
21623         instead of the delegate itself as this pointer (bug #28383)
21624
21625 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
21626
21627         * marshal.c (mono_marshal_get_managed_wrapper): added return type
21628         conversions.
21629
21630 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21631
21632         * loader.c: don't set the pinvoke bit on icalls.
21633
21634 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
21635
21636         * debug-helpers.c (mono_method_full_name): only print a number to
21637         indicate wrapper type (so that the output is more readable in traces).
21638
21639 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
21640
21641         * class.c (mono_class_init): include method override patch from Paolo
21642
21643 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
21644
21645         * icall.c: fixed GetTypeCode().
21646
21647 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
21648
21649         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
21650         use real delegate invoke function to make it work with multicast
21651         delegates (fix bug# 28291).
21652
21653 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21654
21655         * object.c: load constant strings.
21656
21657 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21658
21659         * reflection.c: no magic numbers.
21660         * tabledefs.h: security action enum.
21661
21662 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21663
21664         * assembly.c: fix possible memory corruption.
21665
21666 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21667
21668         * reflection.h, reflection.c: added support for linking resources.
21669         * verify.c: check we have an updated corlib.
21670
21671 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
21672
21673         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
21674         string arrays.
21675         (mono_marshal_string_array): null terminate unmanaged string arrays.
21676         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
21677
21678 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21679
21680         * icall.c: Type.GetType () can now return also types from the
21681         calling assembly.
21682
21683 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
21684
21685         * loader.h, loader.c: stack walking support.
21686         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
21687         GetCallingAssembly.
21688
21689 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
21690
21691         * marshal.c: added optimisations for blittable types 
21692
21693         * class.c (mono_array_class_get): do not set blittable attribute on arrays
21694         (mono_class_setup_mono_type): set blittable attribute for single
21695         and double.
21696
21697         * marshal.c (mono_string_utf8_to_builder): impl.
21698         (mono_string_builder_to_utf8): impl.
21699         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
21700
21701 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
21702
21703         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
21704         (mono_marshal_get_managed_wrapper): impl. byref types
21705
21706 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21707
21708         * icall.c:
21709         (search_method): don't display debug message. 
21710
21711 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
21712
21713         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
21714
21715 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
21716
21717         * appdomain.c: set the missing filename when throwing exception.
21718
21719 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
21720
21721         * metadata.c (mono_type_size): code cleanup
21722         (mono_type_stack_size): removed some test code
21723
21724 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
21725
21726         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
21727         mono_get_exception_file_not_found now.
21728
21729         * exception.c (mono_exception_from_name_two_strings): New version
21730         that will call a constructor with two string arguments. 
21731         (mono_get_exception_file_not_found): New helper routine, used to
21732         report file-not-found errors.
21733
21734 2002-07-20  Dick Porter  <dick@ximian.com>
21735
21736         * process.h:
21737         * process.c: Pass file handles to CreateProcess
21738         
21739         * icall.c:
21740         * file-io.h:
21741         * file-io.c: Implemented CreatePipe
21742
21743 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
21744
21745         * metadata.c (mono_get_param_info): set alignment for value types
21746
21747 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21748
21749         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
21750         Constify mono_domain_assembly_open().
21751         * loader.c: handle null namespace in icalls.
21752
21753 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
21754
21755         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
21756         (emit_str_to_ptr_conv): marshal object as structs
21757
21758         * metadata.c (mono_type_to_unmanaged): marshal object as structs
21759
21760         * marshal.c (mono_marshal_get_runtime_invoke): support value types
21761
21762 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
21763
21764         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
21765         (mono_marshal_get_native_wrapper): we an now return value types
21766
21767 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21768
21769         * verify.c: more checks implemented.
21770
21771 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
21772
21773         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
21774         (fix bug #27695)
21775         (mono_marshal_get_native_wrapper): allow byref arguments
21776         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
21777         impl. PtrToStringXXX methods
21778         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
21779         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
21780         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
21781         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
21782         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
21783
21784 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21785
21786         * reflection.c: fix buglet in parsing an assembly name.
21787
21788 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
21789
21790         * marshal.c (emit_ptr_to_str_conv): first impl.
21791
21792 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
21793
21794         * object.c, class.h: cache the vtable in the class as suggested by
21795         vargaz@freemail.hu (Zoltan Varga).
21796
21797 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21798
21799         * class.h, loader.c: added mono_field_from_token().
21800         * verify.c: first cut of type checking code.
21801
21802 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
21803
21804         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
21805
21806 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
21807
21808         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
21809         (fix bug #27782)
21810         (mono_marshal_get_remoting_invoke): impl.
21811         (mono_delegate_begin_invoke): impl.
21812         (mono_mb_emit_save_args): impl.
21813         (mono_delegate_end_invoke): impl.
21814         (mono_marshal_get_delegate_begin_invoke):
21815         (mono_marshal_get_delegate_end_invoke):
21816         (mono_marshal_get_delegate_invoke): generate a special name for
21817         those methods (including the signature) and associate them whith
21818         the delegate class. 
21819
21820 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
21821
21822         * reflection.[ch]: 
21823         (mono_reflection_type_from_name): now it has a MonoImage parameter
21824         which is used as the default image to search the type in. If the image
21825         is NULL or getting the type from it fails, it defaults to corlib.
21826
21827         * icall.c: changed 1 call to mono_reflection_type_from_name to match
21828         new parameter.
21829
21830 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21831
21832         * reflection.c: update the parameter table index.
21833
21834 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
21835
21836         * domain.c: don't include the mark byte in the string hash.
21837
21838 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
21839
21840         * icall.cs: icall for Type.GetTypeCode ().
21841         * verify: a couple of fixes and disabled local initialization checks.
21842
21843 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
21844
21845         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
21846
21847         * debug-helpers.c (mono_method_full_name): print the type of the
21848         runtime wrapper
21849
21850         * metadata.c (mono_signature_hash): a hash function for signatures
21851         (mono_signature_hash): better hash algorithm
21852
21853         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
21854
21855         * debug-helpers.c (mono_method_full_name): this can now generate
21856         method names with signatures
21857
21858         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
21859         method dont have this pointers.
21860
21861 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21862
21863         * reflection.c: fixup typebuilder tokens.
21864         * image.c: fix buglet.
21865         * marshal.h: remove whitespace.
21866         * metadata.h, metadata.c: reinstate code that was removed.
21867         * verify.c: handle catch directives and fix another couple of bugs.
21868
21869 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
21870
21871         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
21872         (mono_marshal_get_native_wrapper): make it comp. with the old code
21873         (mono_marshal_get_native_wrapper): support boolean
21874         (mono_marshal_get_managed_wrapper): support more types
21875
21876 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
21877
21878         * class.c (class_compute_field_layout): compute class->blittable attribute.
21879
21880 2002-07-09  Dick Porter  <dick@ximian.com>
21881
21882         * threads.c: Make the thread cleaning up cope with threads that
21883         call ExitThread()
21884
21885 2002-07-08  Radek Doulik  <rodo@ximian.com>
21886
21887         * reflection.c (method_encode_code): use non-translated values to
21888         compute finally_start, this fixes exception handling on ppc, yay!
21889
21890         * decimal.h (struct signscale): fix endianess
21891
21892 2002-07-07  Radek Doulik  <rodo@ximian.com>
21893
21894         * reflection.c: swap box_val and not val
21895
21896 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
21897
21898         * reflection.c, reflection.h: handle full assembly info in type name.
21899         Handle Type arguments when loading custom attributes.
21900         * icall.c: updated to use new mono_reflection_type_from_name () method.
21901
21902 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21903
21904         * loader.c:
21905         (method_from_memberref): also print assembly name when method not found.
21906
21907 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21908
21909         * icall.c:
21910         (ves_icall_TypeGetProperties): fixed bug #27473. 
21911
21912 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21913
21914         * reflection.c: display image name and token when cannot find the
21915         .ctor for an attribute.
21916
21917 2002-07-05  Martin Baulig  <martin@gnome.org>
21918
21919         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
21920
21921 2002-07-04  Dick Porter  <dick@ximian.com>
21922
21923         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
21924         compile on mingw.  This will cause mingw builds to not wait for
21925         subthreads to terminate after the main thread does.  I've lodged a
21926         bug with the mingw developers for them to wrap OpenThread().
21927
21928 2002-07-03  Dick Porter  <dick@ximian.com>
21929
21930         * threads.c: Store thread IDs instead of handles, because
21931         GetCurrentThread() returns a pseudohandle and therefore stores
21932         useless values.  mono_thread_cleanup() continues checking the
21933         array of threads until it is empty, to cope with subthreads
21934         spawning new threads after the main thread has finished.
21935
21936         * profiler.h:
21937         * profiler.c:
21938         * profiler-private.h: Pass the thread ID to thread profiler
21939         functions, instead of a handle
21940
21941 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21942
21943         * verify.c: fixes to make it more usable.
21944         * pedump.c: added --verify code to verify IL code in an assembly.
21945
21946 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21947
21948         * reflection.c: turn errors into warnings to allow compiling corlib.
21949
21950 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
21951
21952         * reflection.c: add special cases to compile corlib.
21953
21954 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21955
21956         * reflection.c: handle properties with only a set method.
21957
21958 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21959
21960         * opcodes.h: add enum with opcodes in opval order.
21961
21962 2002-07-01  Dick Porter  <dick@ximian.com>
21963         
21964         * object.h:
21965         * object.c (mono_runtime_run_main): Removed unneeded argument
21966
21967 2002-06-28  Martin Baulig  <martin@gnome.org>
21968
21969         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
21970
21971 2002-06-27  Dick Porter  <dick@ximian.com>
21972
21973         * threads.c: Store the handle in both the parent thread and in the
21974         subthread, to minimise the time between starting a new thread and
21975         storing its ID.
21976
21977 2002-06-26  Dick Porter  <dick@ximian.com>
21978
21979         * appdomain.c (mono_runtime_cleanup): Close the socket library
21980         after all the threads have finished, not before
21981
21982 2002-06-26  Martin Baulig  <martin@gnome.org>
21983
21984         * debug-symfile.c (mono_debug_find_source_location): Added
21985         `guint32 *line_number' argument.  If it's not NULL, store the line number
21986         there and return the file name without the line number.
21987
21988 2002-06-25  Dick Porter  <dick@ximian.com>
21989
21990         * icall.c:
21991         * process.h:
21992         * process.c: Process forking and other support functions
21993
21994 2002-06-25  Dick Porter  <dick@ximian.com>
21995
21996         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
21997         things dont happen when the image is closed.
21998         (mono_image_lookup_resource): Walk the resource section looking
21999         for a particular entry
22000
22001         * cil-coff.h: PE resource section decoding
22002
22003 2002-06-25  Dick Porter  <dick@ximian.com>
22004         
22005         * assembly.h:
22006         * assembly.c: 
22007         (mono_assembly_foreach): Accessor functions to walk the list of
22008         loaded assemblies
22009         (mono_assembly_set_main):
22010         (mono_assembly_get_main): Process methods need to know which
22011         assembly is the "main" one
22012
22013         * object.c (mono_runtime_run_main): Record the main assembly
22014
22015         * debug-helpers.c: Fix typo
22016
22017 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
22018
22019         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
22020         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
22021
22022 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22023
22024         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
22025
22026 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
22027
22028         * image.c (do_mono_image_open): Initialize reference count,
22029         otherwise we leak the MonoImage.
22030
22031 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22032
22033         * reflection.c: small tweak to handle self-hosting.
22034
22035 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22036
22037         * reflection.c: fix type name parse code.
22038
22039 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22040
22041         * reflection.c: break out of the loop.
22042         * image.c: special case corlib.
22043
22044 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22045
22046         * reflection.c: add all the custom attrs at the end to ensure the
22047         ctors have been properly initialized when the attributes are defined
22048         in the current assembly.
22049
22050 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22051
22052         * reflection.c: handle correctly multiple-nested types.
22053
22054 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
22055
22056         * row-indexes.h: fix typos.
22057         * reflection.c: adjust for typos and fix method_def_or_ref
22058         encoding in MethodImpl table.
22059
22060 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22061
22062         * reflection.c: fix entry point patching (thanks Serge!).
22063
22064 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
22065
22066         * verify.c: add check for System.Exception
22067
22068 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22069
22070         * image.c, class.c: minifix for code just c&p'ed.
22071         * reflection.c: warning fix.
22072         * object.h, loader.h, domain.c: load also StringBuilder.
22073
22074 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22075
22076         * marshal.h, marshal.c: some support code to handle complex marshaling.
22077
22078 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22079
22080         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
22081         Better signatures with vtable error dump.
22082
22083 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
22084
22085         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
22086
22087 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
22088
22089         * icall.c (ves_icall_Type_GetField): impl.
22090
22091 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22092
22093         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
22094         to retrieve a marshal description blob for a field or param.
22095
22096 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22097
22098         * reflection.h, reflection.c: change order of nested type emission
22099         to avoid table corruption. The NestedTypes table is sorted.
22100         * icall.c: change order of GetConstructor results to workaround mcs bug.
22101
22102 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22103
22104         * reflection.h, reflection.c: handle field and param marshal
22105         information.
22106
22107 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22108
22109         * icall.c, marshal.c marshal.h: more Marshal class implementation.
22110
22111 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22112
22113         * reflection.c: fix call convention.
22114
22115 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22116
22117         * reflection.h, reflection.c: mono_image_get_memberref_token()
22118         takes a type instead of a class, now. Added
22119         mono_image_get_array_token() to create tokens for the special
22120         multi-dim array methods.
22121
22122 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22123
22124         * assembly.c: handle modules (no assembly table). Split
22125         loading references in its own function.
22126         * class.c: handle moduleref resolution scope.
22127         * image.c, image.h: cache module name in image.
22128
22129 2002-06-07  Martin Baulig  <martin@gnome.org>
22130
22131         * reflection.c (mono_image_get_type_info): Only add a class layout entry
22132         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
22133
22134 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22135
22136         * icall.c: more signature fixes that used uint instead of int.
22137
22138 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22139
22140         * reflection.c: fixed signature of field refs.
22141
22142 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22143
22144         * class.c, reflection.c: handle typerefs of nested types
22145         (both on read and when writing files).
22146
22147 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
22148
22149         * icall.c: fix method signatures that tried to workaround the previous
22150         typo, d'oh!
22151
22152 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22153
22154         * debug-helpers.c: fix typo.
22155
22156 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22157
22158         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
22159         rewrote the PE/COFF writing code (our programs are understood by the
22160         ms runtime, now).
22161
22162 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22163
22164         * gc.c, gc.h, icall.c: weakreference support.
22165
22166 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22167
22168         * Makefile.am, mono-config.c: use $(sysconfdir).
22169
22170 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22171
22172         * icall.c: changed default precision of Double.ToString() to 15.
22173         Fixed memory leak. Unified with Single.ToString.
22174
22175 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22176
22177         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
22178
22179 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22180
22181         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
22182         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
22183         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
22184         and myself.
22185
22186 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22187
22188         * debug-symfile.c, sysmath.c: yet more compilation fixes.
22189
22190 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22191
22192         * reflection.c, socket-io.c: more compilation fixes.
22193
22194 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22195
22196         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
22197         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
22198         unicode.c: warning and compiler compatibility fixes.
22199
22200 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22201
22202         * class.h, metadata.c: fixed warnings/compilation errors.
22203
22204 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22205
22206         * Makefile.am, mono-config.c, mono-config.h: configuration file
22207         support routines.
22208         * loader.c, loader.h: make Dll mapping configurable at runtime in the
22209         config file. Export methods to insert and lookup mappings.
22210
22211 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22212
22213         * reflection.c: handle types and boxed objects in custom attr
22214         constructors.
22215
22216 2002-05-30  Martin Baulig  <martin@gnome.org>
22217
22218         * debug-symfile.c
22219         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
22220
22221 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
22222
22223         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
22224         to lookup the implmap row for a P/Invoke method.
22225         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
22226         P/Invoke method from the runtime on an as needed basis.
22227
22228 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
22229
22230         * metadata.c (mono_metadata_parse_signature): impl.
22231
22232 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22233
22234         * class.c: handle .pack directive.
22235
22236 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22237
22238         * object.c: initialize static fields with RVA data.
22239
22240 2002-05-25  Martin Baulig  <martin@gnome.org>
22241
22242         * debug-symfile.c
22243         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
22244
22245 2002-05-24  Martin Baulig  <martin@gnome.org>
22246
22247         * debug-symfile.c
22248         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
22249         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
22250         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
22251
22252 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22253
22254         * object.c: special case string ctros in invoke.
22255         * gc.c: silly whitespace changes.
22256
22257 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
22258
22259         * threadpool.[ch]: impl. a threadpool that can
22260         be used by mint and mono.
22261
22262 2002-05-22  Martin Baulig  <martin@gnome.org>
22263
22264         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
22265         The first argument is now a `MonoReflectionModuleBuilder *', the return
22266         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
22267         `methods' field to get the method builder.  The `token' argument is the
22268         unfixed token.
22269
22270         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
22271         invalid characters instead of g_assert_not_reached()ing.  This seems
22272         to be the behaviour of mscorlib.
22273
22274 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
22275
22276         * object.c (mono_runtime_invoke_array): applied patch from Rachel
22277         Hestilow to fix bug #25104
22278
22279 2002-05-21  Martin Baulig  <martin@gnome.org>
22280
22281         * debug-symfile.c (mono_debug_find_source_location): New function.
22282         Looks up an IL offset in the line number table and returns the source
22283         location as a string.
22284
22285 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22286
22287         * icall.c:
22288         (mono_double_ToStringImpl): changed %f by %g until we have something
22289         better.
22290
22291 2002-05-21  Nick Drochak  <ndrochak@gol.com>
22292
22293         * icall.c : Use different name for Math.Pow's icall.  Needed to check
22294         parameters first in C#.
22295
22296 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22297
22298         * icall.c, reflection.h: added icall to get info about an event.
22299
22300 2002-05-20  Radek Doulik  <rodo@ximian.com>
22301
22302         * object.c (mono_value_box): don't use memcpy for boxing on BIG
22303         endian
22304         (mono_value_box): don't use memcpy for small sizes on
22305         architectures with unaligned access
22306
22307 2002-05-20  Martin Baulig  <martin@gnome.org>
22308
22309         * reflection.c (mono_reflection_setup_internal_class): Don't crash
22310         if `tb->parent == NULL'.
22311         (mono_reflection_create_internal_class): New function.  This is
22312         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
22313         for enum types.
22314
22315         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
22316         New interncall.
22317
22318 2002-05-19  Martin Baulig  <martin@gnome.org>
22319
22320         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
22321         argument to get the length, don't default to the array length.
22322
22323 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
22324
22325         * assembly.c (mono_assembly_setrootdir): New function used to
22326         override the MONO_ASSEMBLIES directory.
22327
22328 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22329
22330         * icall.c: ValueType_GetHashCode() initialize local var.
22331
22332 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22333
22334         * reflection.c: sort custom attributes table.
22335
22336 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22337
22338         * reflection.c: support named args in custom attributes (write support).
22339
22340 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22341
22342         * reflection.c: fix finally position calculation.
22343
22344 2002-05-15  Radek Doulik  <rodo@ximian.com>
22345
22346         * reflection.c: fixed endianess at many places
22347
22348         * icall.c (ves_icall_InitializeArray): comment out debug msg
22349
22350 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
22351
22352         * object.c (mono_unhandled_exception): new function to handle
22353         unhandled exceptions.
22354         (mono_unhandled_exception): call the UnhandledException event.
22355         (mono_runtime_delegate_invoke): impl.
22356
22357 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
22358
22359         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
22360         returns the RVA, not the direct pointer to the data. Handle the case
22361         when the class size is fixed.
22362
22363 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22364
22365         * reflection.c: fix some endianess issues.
22366
22367 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
22368
22369         * object.c (mono_runtime_invoke): is now able to catch exceptions.
22370
22371         * threads.c (mono_thread_init): added a callback which is invoked
22372         at thread start.
22373
22374 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
22375         
22376         * icall.c: make GetHashCode return non-negative values.
22377
22378 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
22379
22380         * object.c, icall.c, gc.c: revert to address-based hashcode.
22381
22382 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
22383
22384         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
22385
22386 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22387
22388         * icall.c, class.c: special case <Module>.
22389
22390 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
22391
22392         * icall.c: fix bug in GetNow().
22393
22394 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
22395
22396         * object.c (mono_runtime_class_init): make sure that we call all
22397         static class constructors.
22398
22399 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22400
22401         * reflection.c: sort methodsemantics table.
22402
22403 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22404
22405         * reflection.h, reflection.c: honour init locals setting.
22406
22407 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
22408
22409         * icall.c: copied Double ToStringImpl for Single ToStringImpl
22410
22411 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22412
22413         * reflection.c: support ContructorBuilders in attribute blob creation.
22414
22415 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22416
22417         * reflection.c: some changes to build a binary that can be run
22418         directly in windows.
22419
22420 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
22421
22422         * loader.c: print a big message when an icall can't be found.
22423
22424 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22425
22426         * string-icalls.c: fix bug 24248.
22427
22428 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
22429
22430         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
22431         icall.c, reflection.h: separate assembly loading by pathname and by
22432         assembly name. Use the MONO_PATH env var to search for assemblies.
22433
22434 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22435
22436         * assembly.c, image.h: add some support for assemblies
22437         with multiple modules.
22438         * class.c, class.h: export mono_class_from_typeref().
22439         * loader.c: remove duplicated code and use mono_class_from_typeref(),
22440         instead.
22441
22442 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22443
22444         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
22445         documentation says (the ECMA one is correct).
22446
22447 2002-05-02  Dick Porter  <dick@ximian.com>
22448
22449         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
22450         Don't name the synchronisation mutex.
22451
22452 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
22453
22454         * rand.c
22455         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
22456         Make the prototypes match.
22457         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
22458         Same.
22459
22460         * icall.c
22461         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
22462         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
22463         all systems have tm.tm_zone, so use strftime() with %Z to print
22464         the timezone abreviation into a temp string.
22465
22466         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
22467         rather than mono_array_addr() on a MonoString on Big Endian
22468         machines.
22469
22470 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
22471
22472         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
22473         fix bug 24041
22474
22475 2002-04-30  Dick Porter  <dick@ximian.com>
22476
22477         * socket-io.c: Cope with SOCKET being an integer rather than a
22478         pointer now.
22479
22480         * threads.c: Added Thread_free_internal, to deal with thread
22481         handle cleanup.  Moved calls to handle_store() and handle_remove()
22482         to start_wrapper(), so each can only be called once.  Allocate
22483         synchronisation blocks with GC_malloc(), and use GC finalisation
22484         to close the handles.
22485
22486         * icall.c: added System.Threading.Thread::Thread_free_internal
22487
22488 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22489
22490         * icall.c: support Environment.Exit, CommandLineArgs().
22491
22492 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22493
22494         * object.c, object.h: added mono_runtime_run_main () and
22495         mono_runtime_get_main_args () for use in System.Environment.
22496
22497 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22498
22499         * gc.c: fix thinko, enable actual finalization since the jit is now
22500         fixed.
22501
22502 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22503
22504         * gc.c, object.c: take into account that an object may be offset wrt the address
22505         returned by GC_malloc().
22506
22507 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
22508
22509         * image.c: handle files without entries in the assembly table (modules).
22510
22511 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
22512
22513         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
22514         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
22515         allowed to be null when it's System.Object class setup.
22516
22517 2002-04-27  Martin Baulig  <martin@gnome.org>
22518
22519         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
22520         if `tb->parent == NULL' rather than crashing.
22521
22522 2002-04-28  Nick Drochak  <ndrochak@gol.com>
22523
22524         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
22525         calling acos() where asin() should have been called.
22526
22527 2002-04-26  Martin Baulig  <martin@gnome.org>
22528
22529         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
22530         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
22531         there's a subdirectory called `System', but we don't want to read that
22532         subdirectory as an assembly.
22533
22534 2002-04-25  Martin Baulig  <martin@gnome.org>
22535
22536         * debug-symfile.c: Reflect latest MonoString changes.
22537
22538 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22539
22540         * rand.c, rand.h: instance method icalls need to have an explicit
22541         this pointer as first argument in the C implementation.
22542
22543 2002-04-25  Nick Drochak <ndrochak@gol.com>
22544
22545         * icall.c: Fix typo in map for GetNonZeroBytes
22546
22547 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22548
22549         * string-icalls.c : String does now passes unit tests without any 
22550         errors, the following changes has been made:
22551         
22552         Implemented replace methods.
22553         Renaming of methods to (try) follow the standard.
22554         Fixed compare ordinal
22555         Made all memory allocated directly to function instead of via icall function.
22556         Small performance fix in is_in_array function
22557                         
22558  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
22559
22560         c (mono_string_Internal_ctor_charp_int_int):
22561         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
22562         sindex < 0, throw ArgumentOutOfRangeException instead of
22563         ArgumentNullException.
22564
22565         Added new check for length == 0, however
22566         I need to make it return String.Empty from the C code.
22567         
22568         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
22569         that calculate the length for us here.
22570         
22571         (mono_string_Internal_ctor_sbytep_int_int): Replaced
22572         mono_string_new_utf16 with mono_string_new, since value is utf8.
22573
22574 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22575
22576         * object.c: register the object for finalization if needed.
22577         Allocate one more char in the string for the terminating 0 char.
22578
22579 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22580
22581         * class.c, class.h, image.c: check if a type implemenst a destructor.
22582         Use the proper key for array class lookups.
22583         * icall.c: register the icalls in the System.GC class.
22584         * gc.c, gc.h: GC-related functions and icalls.
22585
22586 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22587
22588         * icall.c:
22589         * socket-io.c:
22590         * unicode.c: free some strings gotten from mono_string_to_utf8 and
22591         changed a couple of free () by g_free ().
22592
22593         * decimal.c: one-liner in the comments for decimal2string ().
22594
22595 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22596
22597         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
22598
22599 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22600
22601         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
22602         * object.c (mono_runtime_invoke_array) : handle null in params
22603
22604 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22605
22606         * string-icalls.c: fixed bug in split (one off bug)
22607
22608 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22609
22610         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
22611         * icalls.c: added String::Equals as internal method
22612
22613 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22614
22615         * threads.c: fixed bug in the double interlocked functions
22616
22617 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
22618
22619         * threads.c: implemented all of the new interlocked icalls.
22620         * string-icalls.c: fix a bug in insert.
22621         * icalls.c: added the icalls for interlocked, removed old string functions.
22622         
22623 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
22624
22625         * loader.c: fix off-by-one error when reading argument names.
22626
22627 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22628
22629         * profiler.c: win32 counter implementation (untested).
22630         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
22631         (the latter needs testing and more complete impl. from win32 folks).
22632
22633 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
22634
22635         * object.c: mono_array_new_full workaround mono_array_class_get
22636         problem.
22637
22638 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22639
22640         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
22641         * object.h (mono_string_chars): Changed casting type.
22642
22643 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22644
22645         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
22646                            method signatures to use gunichar2 instead of gint16.
22647
22648 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
22649
22650         * object.h, object.c: domain-specific versions of mono_object_new and
22651         mono_array_new.
22652
22653 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
22654
22655         * object.c: changed String layout
22656
22657         * string-icalls.c (mono_string_Internal_ctor_chara): added
22658         internal string constructors.
22659
22660 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
22661
22662         * threads.c: pass 'this' to the thread start routine.
22663
22664 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22665
22666         * string-icalls.c: fix IndexOf and LastIndexOf. Now
22667         InternalCompareStr don't call twice mono_string_cmp_char for the last
22668         character. Improved performance in mono_string_cmp_char.
22669
22670 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22671
22672         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
22673         code into its own library: libmonoruntime.
22674
22675 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
22676
22677         * object.h, object.c: changed array format so that szarrays do not
22678         require a bounds structure.
22679         * icall.c, appdomain.c: support for new szarray format.
22680
22681 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
22682
22683         * metadata.c: compare also the retuns type when comparing signatures:
22684         we didn't do this as an optimization since really overloaded methods
22685         must differ also in the arguments, but this doesn't work with
22686         low-level IL code (or when using explicit conversion operators: see
22687         bug#23498 for an example).
22688
22689 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22690
22691         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
22692
22693 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22694
22695         * icall.c: make MonoType::GetElementType its own icall.
22696
22697 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22698
22699         * icall.c: remove MonoMethod_get_Name().
22700         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
22701         object.
22702
22703 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22704
22705         * string-icalls.c: optimized a few methods.
22706
22707 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22708
22709         * icall.c: added all new string internal calls
22710         * string-icalls.c: added, new string internal call implementation.
22711         * object.c: added mono_string_new_size for allocating a string a size
22712
22713 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
22714
22715         * object.c (mono_object_isinst): use the same code as in the
22716         optimized x86 version.
22717
22718 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22719
22720         * profiler.c: TSC-based timer code (faster and more accurate).
22721         Not hooked up in configure, yet (set USE_X86TSC to 1).
22722
22723 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
22724
22725         * profiler.c, profiler.h: track time spent compiling methods.
22726         * threads.c: track thread creation/destruction.
22727
22728 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
22729
22730         * profiler.c, profiler.h, profiler-private.h: profiling interface
22731         and sample implementation. Moved here so that it can be used also by
22732         the jit.
22733
22734 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
22735
22736         * reflection.c, reflection.h: keep types and other handles separate in
22737         the hash tables for referred tokens. Add guid for modules.
22738
22739 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22740
22741         * assembly.c: fix bugs found with valgrind.
22742         * metadata.h, metadata.c: added mono_metadata_guid_heap().
22743
22744 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
22745
22746         * threads: added icall support for getting current domain for
22747                    the thread.
22748  
22749 2002-04-13  Martin Baulig  <martin@gnome.org>
22750
22751         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
22752         (MonoDebugVarInfo): Added `index' field for register based addresses.
22753         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
22754         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
22755         `MonoDebugVarInfo *params' and `guint32 this_offset' with
22756         `MonoDebugVarInfo *this_var'.
22757
22758         * debug-symfile.c (relocate_variable): New static function to write
22759         a location description for a local variable or method parameter.
22760
22761 2002-04-12  Martin Baulig  <martin@gnome.org>
22762
22763         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
22764         stack offset and begin/end scope address of a local variable.
22765         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
22766         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
22767         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
22768
22769         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
22770         Added new relocation types for start/end scope of a local variable.
22771
22772 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22773
22774         * object.h: add mono_object_domain() macro.
22775         * reflection.c: handle typespecs.
22776         * icall.c: MonoMethod::get_Name() implementation.
22777
22778 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22779
22780         * icall.c: String::GetHashCode() icall implementation.
22781
22782 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22783
22784         * icall.c: String::IndexOfAny icall.
22785         * object.c, object.h: make array->max_length more useful.
22786         Intrduced mono_object_class() and mono_string_length() macros.
22787
22788 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22789
22790         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
22791         instead of g_unichar_isdigit.
22792
22793 2002-04-11  Nick Drochak  <ndrochak@gol.com>
22794
22795         * icall.c: Implement a simple Double.ToString().
22796
22797 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
22798
22799         * appdomain.h: only io-layer.h is supposed to be included.
22800         * icall.c: explicitly import environ. Fix warning.
22801
22802 2002-04-10  Nick Drochak  <ndrochak@gol.com>
22803
22804         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
22805                 return true even if it's not Daylight Savings time.
22806                 Only return false for the case where the function isn't
22807                 implemented for a plaform (read Windows).
22808
22809 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22810
22811         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
22812         data with a mutex.
22813
22814 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
22815
22816         * mempool.c (mono_mempool_alloc): only use g_malloc when
22817         absolutely necessary.
22818
22819 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
22820
22821         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
22822
22823         * class.c (mono_class_vtable): use domain mempool to allocate vtable
22824         (mono_class_proxy_vtable): use domain mempool
22825
22826 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22827
22828         * appdomain.h, appdomain.c: split initialization that requires the
22829         execution engine support into mono_runtime_init().
22830
22831 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
22832
22833         * class.c (mono_class_init): don't include vtable inside MonoClass
22834         to save some memory, gather some statistics.
22835         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
22836
22837 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22838
22839         * icall.c: internalcall implementation for ValueType.Equals().
22840
22841 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
22842
22843         * object.c (mono_message_init): moved 
22844         (mono_runtime_exec_main): new arch. independent impl.
22845         (mono_runtime_invoke_array): new method - like
22846         mono_runtime_invoke, but you can pass an array of objects.
22847         (mono_remoting_invoke): new arch. independent impl.
22848         (mono_message_invoke): new arch. independent impl.
22849         (mono_runtime_class_init): new arch. independent impl.
22850         (mono_runtime_object_init): new arch. independent impl.
22851
22852 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22853
22854         * metadata.c, object.c, reflection.c: documented the exported
22855         functions.
22856
22857 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
22858
22859         * icall.c: simpler code to pass the assembly builder data to corlib.
22860         Implement GetNestedTypes() internalcall.
22861
22862 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22863
22864         * class.c: warn if a type can't be loaded.
22865
22866 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
22867
22868         * image.h: typedef MonoImageOpenStatus
22869         * types.h: removed unused file
22870         
22871 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
22872
22873         * icall.c: Enum_ToObject accepts enum value arguments.
22874
22875 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22876
22877         * class.c: move initialization of properties, events and nested
22878         classes, so that they happen for interfaces, too.
22879
22880 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22881
22882         * icall.c: cleanup some ugly casts in Array_SetValue*.
22883
22884 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22885
22886         * icall.c: the values array fro enums is of the correct type, now.
22887         Implement (correctly) getFullName instead of assQualifiedName for
22888         MonoType.
22889         * reflection.h, reflection.c: added mono_type_get_name ().
22890
22891 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22892
22893         * assembly.c, image.h: for each MonoImage, record from wich assembly
22894         it was loaded.
22895         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
22896         Make Type.Assembly work.
22897
22898 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
22899
22900         * debug-symfile.h: use char* instead of gpointer to avoid
22901         unnecessary casts.
22902
22903         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
22904
22905         * icall.c (ves_icall_InternalExecute): impl. FielSetter
22906         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
22907
22908 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
22909
22910         * icall.c (mono_message_init): impl. (code cleanup)
22911         (ves_icall_InternalExecute): impl. FieldGetter
22912
22913         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
22914         defined we call all (non-static)methods through the vtable. 
22915
22916 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
22917
22918         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
22919         finalizer even though the memory is still referenced (and the chunk of
22920         memory is not freed).
22921
22922 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
22923
22924         * assembly.c: fix brokeness.
22925
22926 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
22927
22928         * class.c: kill some warnings. Check explicit interface method
22929         implementation also without considering the namespace.
22930         Load also literal strings in static class data.
22931
22932 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
22933
22934         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
22935         (default_assembly_name_resolver): Make the resolver take the
22936         "base" directory where the assembly was originally defined, so we
22937         can load DLLs that are in the same directory as the assembly that
22938         is being referenced.
22939
22940 2002-03-28  Dick Porter  <dick@ximian.com>
22941
22942         * file-io.h: 
22943         * file-io.c:
22944         * socket-io.c: 
22945         * unicode.h: 
22946         * unicode.c: Warning cleanups
22947
22948 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
22949
22950         * object.h, reflection.h: use the correct type instead of MonoObject.
22951
22952 2002-03-28  Martin Baulig  <martin@gnome.org>
22953
22954         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
22955         (mono_debug_update_symbol_file): Initialize classes if necessary.
22956
22957 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
22958
22959         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
22960         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
22961
22962 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
22963
22964         * assembly.h: fix function prototype.
22965         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
22966         * mono-endian.h: use const cast.
22967
22968 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
22969
22970         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
22971
22972 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
22973
22974         * loader.c: don't assert when a typeref can't be loaded, give
22975         a chance to the runtime to trow an exception instead.
22976         * loader.h: fix warning.
22977
22978 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
22979
22980         * class.c (mono_class_proxy_vtable): added proxy support
22981
22982 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
22983
22984         * icall.c: removed last of PAL calls, added System.Environment
22985         * file-io.h, file-io.c: MonoIO implementation
22986         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
22987
22988 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
22989
22990         * appdomain.c: do not use the byte marker in ldstr table lookup.
22991         * debug-helpers.c: allow two ':' to separate class and method name.
22992         * object.c: allocate arrays bounds with the GC, too.
22993         * verify: add a few more checks.
22994
22995 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
22996
22997         * reflection.c: output also literal strings. Allocate parameter data
22998         with GC_malloc() (thanks, Martin, for catching this!).
22999
23000 2002-03-26  Martin Baulig  <martin@gnome.org>
23001
23002         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
23003         include the `this' offset in the `param_offsets'.
23004
23005 2002-03-25  Martin Baulig  <martin@gnome.org>
23006
23007         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
23008         mono_debug_get_class() function to get the classes. Added new
23009         relocation types for arrays and strings.
23010         (mono_debug_get_class): New static function to search in all
23011         referenced assemblies for a metadata token.
23012
23013         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
23014
23015 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
23016
23017         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
23018         hold gc-allocated objects. Make the string heap a stream like the
23019         others. Removed duplicated code when writing stream info.
23020         Added asserts to catch possible buffer overflows. Set the sorted map
23021         for tables that need sorting. Added some documentation.
23022
23023 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
23024
23025         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
23026         for interned strings and vtables.
23027
23028 2002-03-24  Martin Baulig  <martin@gnome.org>
23029
23030         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
23031         it in the array since it was created with g_slist_prepend().
23032
23033 2002-03-24  Martin Baulig  <martin@gnome.org>
23034
23035         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
23036         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
23037         (mono_debug_method_from_token): Renamed to
23038         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
23039         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
23040
23041         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
23042         relocation types.
23043
23044         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
23045
23046 2002-03-24  Martin Baulig  <martin@gnome.org>
23047
23048         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
23049         (mono_debug_method_from_token): New func.
23050
23051         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
23052         New interncall, calls mono_debug_local_type_from_signature().
23053         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
23054         calls mono_debug_method_from_token().
23055
23056 2002-03-23  Martin Baulig  <martin@gnome.org>
23057
23058         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
23059         specifies the number of bytes to be converted, not the array size.
23060         Return the number of chars, not the number of bytes.
23061         (ves_icall_iconv_get_chars): The `byteCount' argument
23062         specifies the number of bytes to be converted, not the array size.
23063
23064 2002-03-23  Martin Baulig  <martin@gnome.org>
23065
23066         * reflection.h (MonoReflectionSigHelper): New type.
23067
23068         * reflection.c (mono_reflection_sighelper_get_signature_local),
23069         (mono_reflection_sighelper_get_signature_local): New functions.
23070
23071         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
23072         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
23073         interncalls.
23074
23075 2002-03-23  Martin Baulig  <martin@gnome.org>
23076
23077         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
23078         is_writeable is set.
23079         (mono_raw_buffer_update): New function to write the modified map
23080         back to disk.
23081
23082         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
23083
23084         * debug-symfile.c (mono_debug_update_symbol_file): Call
23085         mono_raw_buffer_update() when done writing.
23086
23087 2002-03-23  Martin Baulig  <martin@gnome.org>
23088
23089         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
23090
23091         * debug-symfile.c: Added support for arguments and local variables.
23092
23093 2002-03-23  Dick Porter  <dick@ximian.com>
23094
23095         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
23096         protected by ifdefs, hence breaking the w32 build.
23097
23098 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23099
23100         * object.c: implement is_interned() the right way.
23101
23102 2002-03-21  Martin Baulig  <martin@gnome.org>
23103
23104         * debug-symfile.[ch]: New files to handle debugging information
23105         files. There's also support to dynamically update these symbol
23106         files to include machine dependent information.
23107
23108 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
23109
23110         * threads.c (mono_thread_create): new function to create thread
23111         from C
23112
23113 2002-03-20  Martin Baulig  <martin@gnome.org>
23114
23115         * icall.c (ves_icall_InternalInvoke): Create a new object if the
23116         method is a constructor.
23117         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
23118         points to ves_icall_InternalInvoke().
23119
23120 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
23121
23122         * file-io.c: Flush shouldn't throw exceptions.
23123
23124 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
23125
23126         * file-io.c: FileStream flush support; FileSetLength now
23127         restores file pointer.
23128
23129 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23130
23131         * class.c: set image for pointer classes.
23132
23133 2002/03/19  Nick Drochak <ndrochak@gol.com>
23134
23135         * sysmath.c: Forgot one.
23136
23137 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
23138
23139         * sysmath.c: Avoid redefining existing names.
23140
23141 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
23142
23143         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
23144         handled by runtime as icall rather than dllimport from libm.so
23145         * file-io.c, file-io.h: fixed handle argument type.
23146
23147 2002-03-18  Dick Porter  <dick@ximian.com>
23148
23149         * reflection.c (mono_image_get_type_info): rename interface to
23150         iface, because of "#define interface struct" on windows.
23151
23152 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
23153
23154         * class.c, class.h: rename and export mono_ptr_class_get().
23155         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
23156         * reflection.c, reflection.h, icall.c: better/saner type name
23157         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
23158         method signatures.
23159
23160 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
23161
23162         * class.c (mono_class_init): removed hardcoded GHC_SLOT
23163
23164         * icall.c (ves_icall_InternalInvoke): impl.
23165
23166 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23167
23168         * reflection.c: output the interface map table, too.
23169
23170 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
23171
23172         * class.c (class_compute_field_layout): separate computation of 
23173         static field layout
23174
23175 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
23176
23177         * icall.c: added System.Buffer support.
23178         * file-io.c: moved file icalls from PAL to FileStream.
23179
23180 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
23181
23182         * icall.c (ves_icall_System_Object_GetHashCode): impl.
23183
23184 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
23185
23186         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
23187
23188 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23189
23190         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
23191
23192 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23193
23194         * debug-helpers.{c,h}: moved here from monograph some useful functions
23195         to locate a method by name/signature in a class or image. Included
23196         also a small and flexible IL disassembler.
23197
23198 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23199
23200         * reflection.c: fixup tokens in methods with small header size, too.
23201
23202 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
23203
23204         * object.c (mono_string_to_utf8): remove assert(!error), instead
23205         print a warning. 
23206
23207 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
23208
23209         * icall.c: update to the new mono_Array_class_get interface.
23210
23211 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23212
23213         * appdomain.c, object.c: Boehm-GC enable.
23214         * icall.c: make get_data_chunk() support split data requests.
23215         Ensure a class is initialized in more cases. Return only the first
23216         property found in GetProperties() or the compiler gets confused. 
23217         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
23218         * reflection.h, reflection.c: add fixup mechanism for field and method
23219         tokens. Initialize assembly->typeref in a single place. Output
23220         properties after events. Support custom attributes for events, too.
23221         Typo fix for paramter custom attrs.
23222
23223 2002-03-07  Martin Baulig  <martin@gnome.org>
23224
23225         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
23226
23227 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
23228
23229         * class.c (mono_array_class_get): fix. for multi. dim. arrays
23230
23231 2002-03-06  Martin Baulig  <martin@gnome.org>
23232
23233         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
23234         non-zero lower bounds. See testcases #F10-#F13.
23235
23236 2002-03-05  Martin Baulig  <martin@gnome.org>
23237
23238         * exception.c (mono_get_exception_argument_out_of_range): New exception.
23239
23240         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
23241         ves_icall_System_Array_GetValue(), only calculate the absolute array position
23242         here.
23243         (ves_icall_System_Array_SetValue): Likewise.
23244         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
23245         as argument and does the actual work. This function is used when copying a
23246         multi-dimensional array.
23247         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
23248         now do all the widening conversions of value types.
23249         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
23250
23251 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23252
23253         * class.c: remove some magic numbers and use the smbolic names,
23254         instead. Added init_events() to load event info at class init time.
23255         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
23256         and mono_metadata_methods_from_event().
23257         * reflection.h, reflection.c: added support for writing out the evnets
23258         related information.
23259
23260 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23261
23262         * reflection.h, icall.c: use a different method (GetInterfaces)
23263         to gather interface info and add isbyref, isprimitive and
23264         ispointer to the ves_icall_get_type_info() return value.
23265
23266 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23267
23268         * class.h: stared adding support for events.
23269         * icall.c: split find_members implementation. Added debug icall to get
23270         the address of an object.
23271         * reflection.c: handle TypeBuilders in mono_type_get_object().
23272
23273 2002-03-01  Martin Baulig  <martin@gnome.org>
23274
23275         * icall.c (ves_icall_System_Array_GetLength): This must throw an
23276         ArgumentOutOfRangeException(), not an ArgumentException().
23277         (ves_icall_System_Array_GetLowerBound): Likewise.
23278         (ves_icall_System_Array_GetValue): Improved argument checking.
23279         (ves_icall_System_Array_SetValue): Improved argument checking.
23280
23281 2002-03-01  Martin Baulig  <martin@gnome.org>
23282
23283         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
23284         called with invalid arguments rather than just dying with g_assert().
23285         (ves_icall_System_Array_SetValue): Likewise.
23286         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
23287         raise a NotImplementedException instead.
23288         (ves_icall_System_Array_GetLength): Added argument checking.
23289         (ves_icall_System_Array_GetLowerBound): Added argument checking.
23290
23291 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
23292
23293         * object.h (mono_assert): new macros mono_assert and
23294         mono_assert_not_reached
23295
23296 2002-02-28  Martin Baulig  <martin@gnome.org>
23297
23298         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
23299         and "System::String::IsInterned" to "System::String::_IsInterned".
23300
23301 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
23302
23303         * icall.c: remove hacks for typebuilder. Added icall to create a
23304         modified type from a tybebuilder.
23305         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
23306         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
23307         to create a backing MonoClass for a TypeBuilder.
23308
23309 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23310
23311         * class.c, class.h: more refactoring of class init.
23312         Export mono_class_setup_mono_type() and mono_class_setup_parent().
23313
23314 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
23315
23316         * marshal.c, marshal.h: start of marshaling interface.
23317
23318 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
23319
23320         * icall.c: fix order in assembly qualified name icall.
23321
23322 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
23323
23324         * class.c: do not free str, since we store it in the hash table.
23325         * reflection.h: add label field to MonoILExceptionInfo.
23326         * reflection.c: handle references to more than one assembly. Handle
23327         case when there isn't a module created in the assembly.
23328
23329 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23330
23331         * class.c: Fix typo. Start refactoring of class init code.
23332
23333 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23334
23335         * appdomain.c: exit with 1 on error.
23336         * class.c: we already have the name in MonoClassField.
23337         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
23338         MonoStreamHeader instead of an offset of image->raw_metadata.
23339
23340 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
23341
23342         * appdomain.c (mono_init): Be even more descriptive about the error.
23343
23344 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
23345
23346         * appdomain.c: give the user an informative message when corlib can't
23347         be loaded.
23348
23349 2002-02-26  Martin Baulig  <martin@gnome.org>
23350
23351         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
23352         New icall to get the time zone data.
23353
23354 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23355
23356         * reflection.c: set virtual and raw size of section correctly.
23357         * threads.c: transfer domain information to newly created threads.
23358
23359 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
23360
23361         * class.c: when instancing a class in a domain, load the default
23362         vaules for static fields from the constant table. Fix System.Enum to
23363         not be an enum.
23364         * icall.c: implement Object::GetType() internalcall. Implemented
23365         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
23366         Fixed checking of binding flags in find_members().
23367         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
23368         * reflection.c: handle enumerations when writing to the constant
23369         table. Use a different object cache for types.
23370
23371
23372 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
23373
23374         * object.c (mono_object_isinst): fix for arrays
23375
23376         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
23377
23378 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
23379
23380         * object.c: don't use mprotect ()  and fix intern pool hash table
23381         lookup for big endian systems.
23382
23383 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23384
23385         * icall.c: change type_is_subtype_of () signature.
23386
23387 2002-02-21  Mark Crichton  <crichton@gimp.org>
23388
23389         * rand.c, rand.h: Added random number generator for
23390         System.Security.Cryptography classes.
23391
23392         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
23393
23394         * icall.c: Added System.Security.Cryptography calls.
23395
23396 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
23397
23398         * class.c, icall.c, metadata.c: better support for pointer types.
23399         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
23400         * reflection.c: Add support for getting custom attrs for properties
23401         and simplify some code.
23402
23403 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23404
23405         * icall.c: change getToken () and add custom attribute GetBlob()helper
23406         method.
23407         * reflection.h: add custom attrs array to the reflection builder structures.
23408         * reflection.c: encode and emit custom attributes for all the relevant
23409         reflection objects. Cache fieldref and methodref tokens. Change
23410         mono_image_create_token() interface to take a MonoDynamicAssembly.
23411         More complete custom attributes decoder. Load custom attributes for
23412         Assembly, Field, Method and Constructor objects, too. Make the
23413         returned array an Attribute[] one, not object[]. Added
23414         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
23415         custom attribute constructor.
23416
23417 2002-02-20  Dick Porter  <dick@ximian.com>
23418
23419         * icall.c:
23420         * rawbuffer.c:
23421         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
23422         problem code out for now).
23423
23424 2002-02-19  Radek Doulik  <rodo@ximian.com>
23425
23426         * object.c (mono_ldstr): use hash table to avoid multiple swapping
23427
23428 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
23429
23430         * icall.c: register the GetCustomAttributes method.
23431         * object.c, object.h: add mono_string_new_len ().
23432         * reflection.h, reflection.c: added mono_runtime_invoke(),
23433         mono_install_runtime_invoke(). Added
23434         mono_reflection_get_custom_attrs () to load custom attributes and
23435         create the attribute objects.
23436
23437 2002-02-19  Dick Porter  <dick@ximian.com>
23438         * threads-dummy-types.c:
23439         * threads-dummy-types.h:
23440         * threads-dummy.c:
23441         * threads-dummy.h:
23442         * threads-pthread-types.c:
23443         * threads-pthread-types.h:
23444         * threads-pthread.c:
23445         * threads-pthread.h:  Deleted obsolete files
23446
23447 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
23448
23449         * class.c (mono_class_vtable): runtime init the class when we
23450         allocate static class data.
23451
23452         * icall.c (ves_icall_System_Array_SetValue): check for null values.
23453
23454         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
23455         and String - but we will need generic marshalling support in the
23456         future. 
23457         (mono_init): set the domain name in a ms compatible way
23458
23459         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
23460         String[].
23461
23462 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
23463
23464         * object.c (mono_array_clone): use alloca() instead of g_malloc  
23465         for sizes
23466
23467         * appdomain.c (mono_domain_unload): impl.
23468
23469 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23470
23471         * appdomain.c, object.c: fix intern pool implementation.
23472         * class.c: fix alignment code.
23473
23474 2002-02-16  Radek Doulik  <rodo@ximian.com>
23475
23476         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
23477         and s2 > s1, just copy lower bytes to be compatible with little
23478         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
23479         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
23480
23481         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
23482         force big_endian to be 1 for big endian machines 
23483         (ves_icall_iconv_new_decoder): ditto
23484
23485 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
23486
23487         * socket-io.c (convert_sockopt_level_and_name): If the system
23488         doesn't define SOL_IP or SOL_TCP, get them by hand using
23489         getprotobyname() and caching the values (because this could be a
23490         slow operation).
23491         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
23492         Use the appropriate struct when the system does support it. Ie,
23493         not all systems have struct ip_mreqn so use struct ip_mreq when
23494         appropriate.
23495
23496 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
23497
23498         * reflection.c: handle finally clauses.
23499
23500 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
23501
23502         * socket-io.c: use g_snprintf() instead of snprintf.
23503
23504 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
23505
23506         * reflection.c (mono_param_get_objects): Cast second argument to
23507         mono_method_get_param_names to a const char** to silence the
23508         compiler warning.
23509
23510         * appdomain.c (mono_domain_assembly_open): Put parens around the
23511         truth statement in the for-loop.
23512
23513         * unicode.c (iconv_convert): Got rid of a compiler warning about
23514         int i being unused when the system has a new iconv.
23515         (iconv_get_length): Same.
23516
23517         * image.c (load_class_names): Cast the second argument to
23518         g_hash_table_insert() to char* to hush compiler warnings about the
23519         arg being a const.
23520         (mono_image_open): Same here.
23521
23522         * socket-io.c: Don't conditionally include sys/filio.h or
23523         sys/sockio.h here anymore since we now get them from
23524         io-layer/io-layer.h
23525         (inet_pton): If the system doesn't support inet_aton, implement
23526         using inet_addr and also #define INADDR_NONE if it isn't defined
23527         by the system.
23528
23529 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
23530
23531         * metadata.c, metadata.h: added function to get packing and size info
23532         of a typedef.
23533         * reflection.h, reflection.c: handle field RVA data. Save info about
23534         the table layout if needed. Assign typedef indexes to all the types
23535         before dumping the info about them to avoid forward reference problems.
23536
23537 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
23538
23539         * socket-io.c (convert_sockopt_level_and_name): ifdef
23540         SO_ACCEPTCONN because it is not defined on my system (old debian)
23541
23542 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23543
23544         * opcode.c: use stddef.h to get NULL.
23545
23546 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
23547
23548         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
23549         for FIONBIO, FIONREAD and SIOCATMARK.
23550         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
23551         define INADDR_NONE and besides, inet_addr() is deprecated and
23552         should not be used. Use inet_pton() instead - it also has the
23553         added bonus that it can easily handle IPv6 addresses as well.
23554         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
23555
23556 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23557
23558         * decimal.c: remove _MSC_VER conditional.
23559
23560 2002-02-13  Dick Porter  <dick@ximian.com>
23561
23562         * socket-io.c: 
23563         * icall.c: Internal calls for Blocking, Select, Shutdown,
23564         GetSocketOption and SetSocketOption
23565
23566 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23567
23568         * assembly.cs: better resolver: use it instead of some kludgy
23569         code.
23570
23571 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
23572
23573         * reflection.c: the best way to speed-up the compiler is to avoid
23574         infinite loops.
23575
23576 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
23577
23578         * class.c (mono_class_vtable): changed the object layout
23579         (obj->vtable->class). 
23580         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
23581
23582 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23583
23584         * assembly.c: look for assemblies in the assembly dir, too.
23585
23586 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23587
23588         * class.c: fix thinko in mono_class_from_type().
23589
23590 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23591
23592         * exception.h, exception.c: added TypeLoadException.
23593         * object.h, object.c: added mono_array_clone ().
23594         * icall.c: handle throwOnError in AssemblyGetType().
23595         Added Array.Clone().
23596         * opcode.h, opcode.c: use a single value for the opcode val.
23597         Compile fix for non-gcc compilers.
23598
23599 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
23600
23601         * opcodes.c, opcodes.h: export interesting info about opcodes.
23602
23603 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
23604
23605         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
23606         icalls. 
23607
23608         * class.c (class_compute_field_layout): set element_class for enums
23609         (mono_class_create_from_typedef): set element_class for normal classes
23610
23611         * icall.c (ves_icall_System_Enum_get_value): impl.
23612
23613         * class.c (mono_class_create_from_typedef): do not set valuetype
23614         flag for System.ValueType and System.Enum
23615
23616 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
23617
23618         * unicode.c (iconv_convert): fix big endian problem.
23619
23620 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23621
23622         * class.c: add asserts if we are ever going to scribble over memory.
23623         * socket-io.c: not all systems have AF_IRDA defined.
23624
23625 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
23626
23627         * class.c (class_compute_field_layout): do not consider static
23628         fields to compute alignment
23629
23630 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
23631
23632         * appdomain.c (mono_appdomain_get): impl.
23633         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
23634
23635 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23636
23637         * icall.c: ignore "file://" prefix when loading an assembly.
23638
23639 2002-01-23  Dick Porter  <dick@ximian.com>
23640
23641         * socket-io.c:
23642         * icall.c:
23643         * Makefile.am: Added socket support
23644
23645 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
23646
23647         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
23648         code back.  This should return the assemblies that are loaded by
23649         the runtime on behalf of an application domain. 
23650
23651         The current implementation is still broken, it just returns every
23652         assembly loaded, but until we get real applications domain this
23653         will do.
23654
23655 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
23656
23657         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
23658         AppDomain object.
23659
23660 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
23661
23662         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
23663         the mono_class_from_name lookup.
23664         (ves_icall_get_parameter_info): ditto.
23665         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
23666         method.
23667         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
23668
23669 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
23670
23671         * class.c: load also nested classes on class init.
23672         System.ValueType instance methods gets passed boxed
23673         values, unless methods in derived classed that get a pointer to the
23674         data.
23675         * icall.c: use better name parsing code in GetType().
23676         * image.c, image.h: add mono_image_loaded ().
23677         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
23678         * reflection.c, reflection.h: added mono_reflection_parse_type().
23679
23680 2002-01-22  Veronica De Santis <veron78@interfree.it>
23681
23682         * icall.c : Added mapping of internal calls for Manual and Auto reset events
23683         * threads.c : Added the implementation of internal calls for events
23684         * threads.h : Added prototypes of internal calls for events
23685         
23686 2002-01-21  Radek Doulik  <rodo@ximian.com>
23687
23688         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
23689
23690 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
23691
23692         * class.c (mono_class_init): set min_align to 1 (instead of 0)
23693         (mono_class_value_size): use min_align
23694
23695 2002-01-20  Dick Porter  <dick@ximian.com>
23696
23697         * threads.h:
23698         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
23699         so it compiles on w32.
23700
23701 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
23702
23703         * metadata.c (mono_type_stack_size): impl.
23704
23705         * class.c (mono_class_get_field): impl. memberref token
23706
23707 2002-01-16 Veronica De Santis <veron78@@interfree.it>
23708
23709         * icall.h : Added the internal calls mapping for CreateMutex_internal
23710                     and ReleaseMutex_internal.
23711         * threads.h : Added the prototype of mutexes internal calls.
23712         * threads.c : Added the implementations of mutexes internal calls.
23713
23714 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
23715
23716         * metaparse.h: removed unused file.
23717         * reflection.c, reflection.h: added stream_data_align () function 
23718         to align data in streams and keep stream aligned. Add support for
23719         exception support in method headers.
23720
23721 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
23722
23723         * unicode.c: make iconv_convert () return the number of bytess written
23724         in the output buffer.
23725
23726 2002-01-15  Dick Porter  <dick@ximian.com>
23727         * threads.c: Make the runtime's idea of infinite timeouts coincide
23728         with the class library's
23729
23730         Fix a particularly egregious bug in mono_thread_cleanup(). That
23731         code was so utterly bogus it must have been written on a Monday.
23732
23733 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
23734
23735         * reflection.h: add subtypes field to TypeBuilder.
23736         * reflection.c: encode constants for literal fields.
23737         Handle subtypes. Fix user string token (and add a zero byte)
23738         at the end.
23739         
23740 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
23741
23742         * class.c (mono_class_init): bug fix: assign slot numbers for
23743         abstract methods.
23744
23745 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23746
23747         * reflection.c: don't try to output a code RVA for abstract methods.
23748         Small fixes for method header format. Output parameter info to the
23749         ParamDef table. Save method overriding info to MethodImpl table.
23750         Fix property support. Allow typedef.extends to be a type in the
23751         building assembly.
23752         * verify.c: fix off-by-one error.
23753
23754 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
23755
23756         * class.c: fix mono_class_from_mono_type () for szarray types.
23757         Remove unused cache check in mono_class_from_type_spec().
23758         * icall.c: *type_from_name () functions handle simple arrays and byref.
23759         * reflection.c: handle byref and szarray types. Handle methods without
23760         body (gets P/Invoke compilation working). Handle types and fields in
23761         get_token ().
23762         * reflection.h: add rank to MonoTypeInfo.
23763
23764 2002-01-10  Dick Porter  <dick@ximian.com>
23765
23766         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
23767         internal calls
23768
23769 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
23770
23771         * icall.c: initialize class in type_from_handle ().
23772         Loop also in parent classes for get_method ().
23773         * reflection.c: properly encode class and valuetype types.
23774         Start on encoding TypeBuilder types. Handle fieldrefs.
23775         Use correct length when registering a user string.
23776         Handle ConstructorBuilder and MonoMethod in get_token ().
23777         Make mono_type_get_object () aware of cached types.
23778         * object.c: back out change to mono_string_new ().
23779
23780 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
23781         * object.c: mono_string_new should return a NULL when the string 
23782         passed in is NULL -- not try to deference it.
23783         
23784 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
23785
23786         * icall.c: hack to make IsSubType work for TypeBuilders.
23787         * reflection.c: emit constructors before methods.
23788         Retrieve param names in mono_param_get_objects().
23789
23790 2002/01/05  Nick Drochak  <ndrochak@gol.com>
23791
23792         * Makefile.am: fix list of headers and sources so automake 1.5
23793         doesn't complain. Removed \# at end of list.
23794
23795 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
23796
23797         * reflection.c: get token for a method ref. Set return type of
23798         constructor to void.
23799         * loader.c: debug message.
23800         * class.c: typo fix.
23801
23802 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
23803
23804         * icall.c: fix array init with rank > 1. FindMembers
23805         loops in parent class as well.
23806         * image.c: do not insert nested types in name cache.
23807         * reflection.c: warning fix.
23808         * reflection.h: add override method (for interface impl).
23809
23810 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
23811
23812         * metadata.c: fix customattr decoding.
23813
23814 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
23815
23816         * rawbuffer.cs: Added native Win32 implementation, avoids using
23817         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
23818
23819 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
23820
23821         * class.c: make the low-level routines handle the cache.
23822
23823 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
23824
23825         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
23826
23827 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
23828
23829         * class.c: fix mono_array_element_size() for objects.
23830         * class.h, class.c: add properties to MonoClass and load them
23831         at init time.
23832         * icall.c: check with isinst() when assigning a value to an array
23833         instead of requiring the classes to match exactly.
23834         Implemented icall for System.Type::GetType().
23835         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
23836         enums. Handle bindingflags when looking for methods and fields.
23837         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
23838         and mono_metadata_methods_from_property().
23839         * reflection.h, reflection.c: added structures for propreties,
23840         parameters and enums. Implemented mono_property_get_object() and
23841         mono_param_get_objects().
23842
23843 2001-12-18  Dick Porter  <dick@ximian.com>
23844
23845         * file-io.c: Use mono_string_to_utf16() instead of
23846         mono_string_chars()
23847
23848         * object.c: Added mono_string_to_utf16(), which copies the non
23849         NULL-terminated MonoString into a new double-null-terminated
23850         buffer.
23851
23852 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
23853
23854         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
23855
23856 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
23857
23858         * file-io.c: raise exceptions if handle is invalid.
23859
23860 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
23861
23862         * assembly.c: yet another check for mscorlib.
23863         * class.c, class.h: load nesting info for classes.
23864         * icall.c: many new functions to support the Reflection classes.
23865         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
23866         * reflection.h, reflection.c: mono_image_create_token(),
23867         mono_assembly_get_object(), mono_type_get_object(),
23868         mono_method_get_object(), mono_field_get_object(): methods to return
23869         objects that parallel the C representation of assemblies, types,
23870         methods, fields.
23871
23872 2001-12-11  Dick Porter  <dick@ximian.com>
23873
23874         * icall.c:
23875         * file-io.c: Internal calls for file IO.
23876
23877 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
23878
23879         * tabledefs.h: missing FileAttributes.
23880         * verify.h, verify.c: use is_valid_string () to simplify and check for
23881         valid strings more correctly. Fix warnings and speeling.
23882         Check more tables: Filed, File, ModuleRef, StandAloneSig.
23883         Check code: branches, maxstack, method calls.
23884
23885 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
23886
23887         * object.c (mono_object_allocate): removed static, so that the jit
23888         can allocate value types.
23889
23890         * icall.c (ves_icall_System_DateTime_GetNow): impl.
23891
23892 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
23893
23894         * class.c: init enum types right away and register the
23895         token->MonoClass map in mono_class_create_from_typedef ().
23896         * verify.h, verify.c: first cut of the verifier.
23897         * pedump.c: add --verify switch to verify metadata tables.
23898         * tabledefs.h: add some missing enums.
23899
23900 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
23901
23902         * class.c (mono_install_runtime_class_init): impl.
23903         (mono_class_init): renamed mono_class_metadata_init to
23904         mono_class_init, also removed the metadata_inited flag
23905
23906         * object.c (mono_object_isinst): use faster algorithm
23907
23908 2001-11-30  Radek Doulik  <rodo@ximian.com>
23909
23910         * mono-endian.h: reverted last change
23911         added function prototypes
23912
23913         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
23914         add mono-endian.c back
23915
23916         * mono-endian.c: returned back, as Paolo pointed out, it's needed
23917         for unaligned access, I've mistaked it with endianess. I am
23918         sorry.
23919         (mono_read16): fix reverted endianess
23920         (mono_read64): ditto
23921         (mono_read32): ditto
23922
23923 2001-11-30  Dick Porter  <dick@ximian.com>
23924
23925         * exception.c: Implement mono_exception_from_name()
23926
23927 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
23928
23929         * metadata.h, metadata.c: remove params_size and locals_size and their
23930         calculation from the metadata code: they are only usefult to the
23931         interp.
23932
23933 2001-11-29  Radek Doulik  <rodo@ximian.com>
23934
23935         * object.c (mono_ldstr): swap bytes here, it's probably not the
23936         best place, but works for me now, I'll redo it once I know mono
23937         better, also note that I add PROT_WRITE and don't reset back, also
23938         note that it's only affects big endians, so x86 should be OK
23939
23940         * mono-endian.h (read16): use just glib macros for both endians
23941
23942         * mono-endian.c: removed as glib macros are used in in
23943         mono-endian.h so we don't need to care about endianess for read
23944         macros as glib does that for us already
23945
23946 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
23947
23948         * class.h, class.h: take minimum alignment into consideration so
23949         that the fields of a class remain aligned also when in an array.
23950
23951 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
23952
23953         * loader.h, loader.c: add mono_method_get_param_names().
23954         * class.c: 0-init class fields.
23955
23956 2001-11-26  Dick Porter  <dick@ximian.com>
23957
23958         * icall.c:
23959         * threads-types.h:
23960         * threads.c: New file that handles System.Threading on all platforms
23961
23962         * object.c: 
23963         * object.h: Remove the synchronisation struct from MonoObject,
23964         replace it with a pointer that gets initialised on demand
23965
23966         * Makefile.am: Replace all the system-specific threading code with
23967         a single file that uses the new wrapper library
23968
23969 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
23970
23971         * class.c, class.h: add mono_install_trampoline() so that the runtime
23972         can register a function to create a trampoline: removes the ugly
23973         requirement that a runtime needed to export arch_create_jit_trampoline.
23974         * object.h, object.c: added mono_install_handler() so that the runtime
23975         can install an handler for exceptions generated in C code (with
23976         mono_raise_exception()). Added C struct for System.Delegate.
23977         * pedump.c: removed arch_create_jit_trampoline.
23978         * reflection.c: some cleanups to allow registering user strings and
23979         later getting a token for methodrefs and fieldrefs before the assembly
23980         is built.
23981         * row-indexes.h: updates and fixes from the new ECMA specs.
23982
23983 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
23984
23985         * class.h, class.c: add enum_basetype field to MonoClass.
23986         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
23987         to get index in the constant table reated to a field, param or
23988         property.
23989         * reflection.h, reflection.c: handle constructors. Set public-key and
23990         version number of the built assembly to 0.
23991         * row-indexes.h: update from new ECMA spec.
23992
23993 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
23994
23995         * class.h, class.c: add a max_interface_id to MonoClass.
23996         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
23997         since it's used to do that. Added mono_type_type_from_obj().
23998         Make GetType() return NULL instead of segfaulting if the type was not
23999         found. Handle simple arrays in assQualifiedName.
24000         * object.h: add a struct to represent an Exception.
24001         * reflection.c: output call convention in method signature.
24002         Add code to support P/Invoke methods and fixed offsets for fields.
24003
24004 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
24005
24006         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
24007         the value.
24008         * icall.c: use mono_array_addr instead of array->vector: fixes the
24009         reflection image writing.
24010         * reflection.c: init call convention byte to 0 in method signature.
24011         Encode the property signature. Don't output property-related methods
24012         twice. Really process the properties for a type (don't cast a field to
24013         a property, my mom always told me that).
24014         Fix 64 bit issues in pointer alignment in a different and more
24015         readable way.
24016
24017 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
24018
24019         * loader.h: Removed type class from MonoDefaults, added monotype
24020
24021         * loader.c: Loaded MonoType, removed loading of Type
24022
24023         * icall.c (my_mono_new_object): Now returns a System.MonoType,
24024         and fills in System.Type._impl with a RuntimeTypeHandle rather
24025         than the actual MonoClass *
24026
24027         (ves_icall_type_from_handle): change from type_class to
24028         monotype_class
24029
24030         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
24031         implemented
24032
24033         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
24034         implemented
24035
24036         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
24037
24038         (ves_icall_System_Reflection_Assembly_GetType): implemented
24039
24040         (ves_icall_System_MonoType_assQualifiedName): implemented
24041
24042         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
24043
24044 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
24045
24046         * assembly.c (mono_assembly_open): Implement a cache for the
24047         assemblies. 
24048
24049         (mono_assembly_close): only destroy the assembly when the last
24050         reference is gone.
24051         
24052 2001-11-09  Dick Porter  <dick@ximian.com>
24053
24054         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
24055
24056 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
24057
24058         * class.c (mono_class_metadata_init): bug fix: compute the right slot
24059
24060 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24061
24062         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
24063         from Martin Weindel.
24064         * object.h: add mono_string_chars ().
24065
24066 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
24067
24068         * reflection.c (build_compressed_metadata): Eliminates warnings
24069         and uses 64-bit clean code.
24070
24071         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
24072         (mono_type_equal): Change signature to eliminate warnings.
24073
24074 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24075
24076         * icall.c, loader.c: remove the internalcall array constructors.
24077         Changes to match the new MonoArray structure.
24078         * object.h, object.c: an array object doesn't allocate an extra
24079         vector. Add mono_array_new_full () to create jagged arrays easily.
24080
24081 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24082
24083         * metadata.h, metadata.c: add mono_metadata_field_info () to
24084         retreive all the info about a field from vairous tables.
24085         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
24086         * class.h, class.c: augment MonoClassField with more info.
24087         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
24088         policy and load a field's RVA if needed.
24089
24090 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
24091
24092         * class.c (mono_class_metadata_init): create a trampoline for all
24093         virtual functions instead of actually compiling them.
24094
24095 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
24096
24097         * class.h, class.c: include name in MonoClassField.
24098         * class.c: fix fundamental type of System.Object and System.String.
24099         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
24100         tokens in ldtoken.
24101         * icall.c: remove internalcalls for the Reflection stuff that is now
24102         done in C# code.
24103         * loader.c: mono_field_from_memberref () implementation.
24104         * mono-endian.c: thinko (s/struct/union/g).
24105         * object.c, object.h: make the mono_string_* prototypes actually use
24106         MonoString instead of MonoObject.
24107         * reflection.c, reflection.h: updates for changes in the reflection
24108         code in corlib: we use C structures that map to the actual C# classes.
24109         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
24110         fat method header if needed and use the info from the ILGenerator for
24111         methods. Handle fields in types. Misc fixes.
24112
24113 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
24114
24115         * class.c (mono_class_metadata_init): bug fix: always allocate
24116         space for static class data
24117
24118 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
24119
24120         * class.c (mono_compute_relative_numbering): use relative
24121         numbering to support fast runtime type checks.
24122
24123 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
24124
24125         * class.c (mono_class_create_from_typeref): added debugging output
24126         to print class name when MonoDummy is returned instead of real class
24127
24128 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
24129
24130         * class.c (mono_class_metadata_init): interface offset table now
24131         contains pointers into the vtable - this is more efficient for the jit
24132
24133 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
24134
24135         * class.c (mono_class_metadata_init): use a temporary vtable (the
24136         old algorithm only worked for the interpreter, but not for the jit)
24137
24138 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
24139
24140         * loader.c (method_from_memberref): use mono_class_get to get the
24141         class of an array instead of using System.Array directly.
24142         (mono_get_method): also add MEMBERREF methods to the method cache
24143         which usefull for arrays.
24144
24145 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
24146
24147         * pedump.c (arch_compile_method): added to compute vtable entry
24148
24149         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
24150         number of interfaces.
24151         
24152         * class.h: merged MonoArrayClass into MonoClass
24153
24154         * class.c (mono_class_create_from_typedef): compute the vtable size and
24155         allocate space to include the vtable inside MonoClass
24156         (mono_class_metadata_init): initialize the vtable
24157
24158 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
24159
24160         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
24161         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
24162         * image.c: endian fixes by Laurent Rioux.
24163         * object.h, object.c: rename MonoStringObject to MonoString and
24164         MonoArrayObject to MonoArray. Change some function names to conform to
24165         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
24166         guint16* as first argument, so don't use char*.
24167         Provide macros to do the interesting things on arrays in a portable way.
24168         * threads-pthread.c: updates for the API changes and #include <sched.h>
24169         (required for sched_yield()).
24170         * icall.c: updates for the API changes above.
24171         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
24172         platforms that need them.
24173
24174 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24175
24176         * class.c: set the correct type for all the fundamental
24177         type when loading the class.
24178
24179 2001-10-05  Dick Porter  <dick@ximian.com>
24180
24181         * threads-pthread.c (pthread_mutex_timedlock): Simple
24182         compatibility version for C libraries that lack this call.
24183
24184 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24185
24186         * class.c: MonoTypes stored in MonoClass are stored as
24187         fundamental MonoTypes when the class represents a
24188         fundamental type (System.Int32, ...).
24189         The TypeHandle return by ldtoken is a MonoType*.
24190         * icall.c: ves_icall_get_data_chunk () write out all the
24191         PE/COFF stuff. Implement ves_icall_define_method (),
24192         ves_icall_set_method_body (), ves_icall_type_from_handle ().
24193         * image.c: properly skip unknown streams.
24194         * loader.h, loader.c: add type_class to mono_defaults.
24195         * metadata.c, metadata.h: export compute_size () as
24196         mono_metadata_compute_size () with a better interface.
24197         Typo and C&P fixes.
24198         * pedump.c: don't try to print the entry point RVA if there is no entry point.
24199         * reflection.c, reflection.h: many cleanups, fixes, output method
24200         signatures and headers, typedef and typeref info, compress the metadata
24201         tables, output all the heap streams, cli header etc.
24202         * row-indexes.h: typo fixes.
24203
24204 2001-10-04  Dick Porter  <dick@ximian.com>
24205
24206         * object.h: Add a synchronisation mutex struct to MonoObject
24207
24208         * object.c (mono_new_object): Initialise the object
24209         synchronisation mutexes
24210
24211         * icall.c: System.Threading.Monitor internal calls
24212         
24213         * threads-pthread.h:
24214         * threads-pthread.c: System.Threading.Monitor internal calls
24215
24216         * threads-types.h: New file, includes the system-specific thread
24217         structures
24218         
24219         * threads-pthread-types.h:
24220         * threads-pthread-types.c: New files, handle pthread-specific
24221         synchronisation types
24222
24223         * threads-dummy-types.h: 
24224         * threads-dummy-types.c: New files of dummy support for
24225         thread-specific types
24226
24227         * metadata.c:
24228         * image.c:
24229         * pedump.c: include mono-endian.h not endian.h
24230         
24231         * Makefile.am: More threads files.
24232         Name mono-endian.h not endian.h
24233
24234 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
24235
24236         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
24237         stuff and implement a few more bits.
24238         * icall.c: a field needs to be dereferenced twice. Do not use the same
24239         name for two variables in the same scope.
24240         * image.c, image.h: cleanups.
24241
24242 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
24243
24244         * class.c (mono_class_metadata_init): bug fix: compute the right size
24245
24246 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
24247
24248         * icall.c: implemented some of the Reflection internalcalls.
24249         * image.c, image.h: start writing out the PE/COFF image.
24250         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
24251         that does the reverse than decode_blob_size ().
24252         * object.c: use mono_metadata_encode_value (). Move here
24253         temporary implementation of mono_string_to_utf8 ().
24254         * rawbuffer.c: make malloc_map static.
24255
24256 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24257
24258         * metadata.c: fix type comparison for arrays.
24259         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
24260         Added a couple of new classes to monodefaults.
24261         * icall.c: added a couple of Reflection-related internalcalls.
24262         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
24263         Added a byval_arg MonoType to MonoClass.
24264
24265 2001-09-28  Dick Porter  <dick@ximian.com>
24266
24267         * icall.c:
24268         * threads-pthread.h: 
24269         * threads-pthread.c: Implemented internal calls for
24270         LocalDataStoreSlot operations.  Applied mutexes around all shared
24271         data.  Reworked the thread creation and Start() operations to
24272         avoid a race condition.
24273         
24274         * threads-dummy.h:
24275         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
24276
24277 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
24278
24279         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
24280
24281 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
24282
24283         * class.c, loader.c: warn and return NULL instead of erroring out.
24284         * icall.c: added System.AppDomain::getCurDomain().
24285         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
24286
24287 2001-09-25  Dick Porter  <dick@ximian.com>
24288
24289         * threads-pthread.h:
24290         * threads-pthread.c: Implemented timed thread joining and added
24291         System.Threading.Thread::Join_internal internal call
24292
24293         * icall.c: Added System.Threading.Thread::Join_internal internal call
24294
24295         * threads-dummy.h:
24296         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
24297
24298 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
24299
24300         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
24301         mono_string_intern () to implement the semantics of the ldstr opcode
24302         and the interning of System.Strings.
24303         * icall.c: provide hooks to make String::IsIntern and String::Intern
24304         internalcalls.
24305
24306 2001-09-23  Dick Porter  <dick@ximian.com>
24307
24308         * threads-dummy.c: 
24309         * threads-dummy.h: New files of dummy threading routines
24310
24311         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
24312         support code based on system specifics
24313
24314         Rename PTHREAD_LIBS to THREAD_LIBS
24315         
24316 2001-09-23  Dick Porter  <dick@ximian.com>
24317
24318         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
24319         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
24320         internal calls.
24321         (mono_thread_init): Set up a Thread object instance to return when
24322         the main thread calls Thread.CurrentThread
24323         (mono_thread_cleanup): Wait for all subthreads to exit
24324
24325         * icall.c: New internal calls for System.Threading.Thread::Sleep
24326         (including Schedule) and CurrentThread
24327
24328         * threads.h: New file, to insulate thread-specific stuff from the
24329         rest of the code
24330
24331 2001-09-21  Dick Porter  <dick@ximian.com>
24332
24333         * threads-pthread.h: 
24334         * threads-pthread.c: New file, for handling pthreads-style
24335         threading support.  Start() now starts a new thread and executes
24336         the ThreadStart delegate instance.
24337
24338         * icall.c: Added the internalcall for
24339         System.Threading.Thread::Start_internal
24340
24341         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
24342
24343 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
24344
24345         * loader.c: work around the different signatures for delegates
24346         constructors csc generates in compiled code vs the ones compiled in mscorlib.
24347
24348 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
24349
24350         * class.h, class.c: add mono_class_get_field_from_name ().
24351         * *: Fix C comments and other ANSI C issues.
24352
24353 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
24354
24355         * endian.h, assembly.c: fix some endianness issues.
24356
24357 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
24358
24359         * loader.h, load.c: add delegate_class to mono_defaults.
24360         Handle runtime provided methods in mono_get_method ().
24361
24362 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
24363
24364         * loader.c (mono_get_method): use pinvoke for internal call
24365
24366         * icall.c: use pinvoke for internal call
24367
24368         * loader.c (method_from_memberref): set the method name
24369
24370 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
24371
24372         * metadata.c: help the compiler generate better code for
24373         mono_class_from_mono_type ().
24374
24375 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
24376
24377         * class.c (mono_class_metadata_init): delayed computing of the
24378         class size to mono_class_metadata_init ()
24379
24380 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
24381
24382         * class.c, class.h: add an interfaces member to MonoClass.
24383         * image.c, image.h: add assembly_name field to MonoImage
24384         from the assembly table.
24385         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
24386
24387 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24388
24389         * class.c: Handle Array in mono_class_from_mono_type ().
24390         * metadata.c, pedump.c: some endian fixes.
24391
24392 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24393
24394         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
24395         * metadata.c: fix small problem introduced with the latest commit.
24396
24397 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
24398
24399         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
24400         We don't need a MonoMetadata pointer anymore to compare signatures in
24401         mono_metadata_signature_equal (), update callers.
24402         Reduced memory usage an number of allocations for MonoMethodHeader and
24403         MonoMethodSignature.
24404
24405 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
24406
24407         * metadata.c: added compare for szarray.
24408
24409 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
24410
24411         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
24412         and add a couple more types to it and mono_defaults. Give an hint on
24413         classes that need implementing in our corlib and are referenced
24414         in mscorlib.
24415
24416 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
24417
24418         * class.h, class.c: keep track if a class is also an Enum.
24419         * loader.c: Implement a couple more types for use in libffi
24420         marshalling. Gives better diagnostics when failing to dlopen
24421         a library. Set method->klass for P/Invoke methods, too.
24422
24423 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
24424
24425         * class.c, class.h: add a MonoType this_arg to MonoClass that
24426         represents a pointer to an object of the class' type that
24427         can be used by the interpreter and later the type cache.
24428         Add best guess alignment info for valuetype objects.
24429
24430 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
24431
24432         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
24433         into MonoType: one less level of indirection and allocation and
24434         simplifies quite a bit of code. Added cache for MonoTypes that are
24435         used frequently, so that we don't need to allocate them all the time.
24436
24437 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
24438
24439         * class.c (mono_class_create_from_typedef): System.Enum is also a
24440         value type, although it does not derive from System.ValueType
24441         (maybe a bug in the ms compiler?)
24442
24443         * metadata.c (mono_type_size): return the right size for value types
24444
24445         * loader.c (mono_get_method): only initialize method header if not abstract
24446
24447         * class.c (mono_class_from_mono_type): use mono_default values. 
24448
24449 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
24450
24451         * *: use MonoClass pointers instead of <type_tokens>
24452         
24453         * class.h: new flag: metadata_inited.
24454
24455         * class.c (mono_class_metadata_init): impl.
24456         (mono_class_instance_size): impl.
24457         (mono_class_data_size): impl.
24458
24459 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24460
24461         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
24462         MonoClass now has the name and name_space fields. 
24463         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
24464         mono_get_method () takes and optional MonoClass as argument.
24465         Removed mono_typedef_from_name() and added mono_class_token_from_name()
24466         instead that takes advantage of a map from class names to typedef
24467         tokens in MonoImage.
24468
24469 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
24470
24471         * metadata.c: zero is not a valid alignment boundary.
24472         Merge MONO_TYPE_VOID in default decoding code.
24473
24474 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
24475
24476         * image.h: merged MonoMetadata into MonoImage
24477
24478         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
24479         identify the type of elements.
24480
24481 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
24482
24483         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
24484         * cil-coff.h: split MonoMSDOSHeader and add size info.
24485         * image.c: add some consistency checks.
24486         * metadata.c: fix row size computation: one programmer
24487         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
24488         add explanation for the locator routine.
24489         Fix decoding of size in method header.
24490         
24491 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
24492
24493         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
24494         (g_concat_dir_and_file): Bring g_concat_dir_and_file
24495         function from gnome-libs.  This uses the right path separator
24496         based on the OS, and also works around a bug in some systems where
24497         a double slash is not allowed. 
24498         (default_assembly_name_resolver): Use g_concat_dir_and_file
24499         (mono_assembly_open): ditto.
24500
24501 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
24502
24503         * metadata.c (mono_metadata_signature_equal): impl.
24504
24505         * *: void is now a realy MonoType (instead of using NULL)
24506         
24507         * metadata.c (do_mono_metadata_parse_type): use
24508         mono_metadata_parse_type to parse void value.
24509
24510 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
24511
24512         * metadata.c, metadata.h: in the signature and method header store
24513         only the space required for holding the loca vars and incoming arguments.
24514
24515 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
24516
24517         * metadata.c (do_mono_metadata_parse_type): treat void like any
24518         other type (instead of assigning NULL);
24519
24520 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
24521
24522         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
24523
24524 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
24525
24526         * image.c (do_mono_image_open): added a cache for arrays.
24527
24528 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24529
24530         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
24531         decode a single column from a row in a metadata table and changes
24532         to take advantage of it in the typedef locator (gives a nice speed up).
24533         Store offset info for function params.
24534
24535 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
24536
24537         * image.h (MONO_IMAGE_IS_CORLIB): removed 
24538
24539 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
24540
24541         * assembly.c: how could mono_assembly_close () had ever worked?
24542         * metadata.c, metadata.h: provide offset info for local vars.
24543         Implement mono_type_size () to take care of alignment as well
24544         as size (it was mono_field_type_size in cli/class.c before).
24545
24546 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
24547
24548         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
24549
24550         * assembly.h (CORLIB_NAME): set to corlib.dll
24551
24552         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
24553
24554 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24555
24556         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
24557         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
24558         tokentype.h: massive namespace cleanup.
24559
24560 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24561
24562         * metadata.h, metadata.c: decode exception clauses when parsing method header.
24563
24564 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
24565
24566         * metadata.c (mono_metadata_free_type): added check for type !=
24567         NULL (void) before calling mono_metadata_free_type()
24568
24569 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
24570
24571         * metadata.h, row_indexes.h: added header with enumerations to use
24572         to index in the columns from tables in metadata and to decode coded
24573         tokens: we should start using this instead of embedding magic numbers
24574         all over the code.
24575
24576 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
24577
24578         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
24579         Move metadata_t info from cli_image_info_t to MonoImage, where
24580         it's easily accessible. Changed all the uses accordingly.
24581         Added the method and class caches to MonoImage.
24582         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
24583         and mono_metadata_decode_value () signature to be more consistent
24584         with the other parse functions (and simplify code). Taken advantage
24585         of zero-length array allocation with GCC. Removed reduntant (and
24586         wrong) MonoFieldType struct and use MonoParam instead. Changed
24587         mono_metadata_parse_field_type () to use common code for parsing.
24588         Added mono_metadata_typedef_from_field () and
24589         mono_metadata_typedef_from_method () to lookup a typedef index from a
24590         field or method token.
24591         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
24592
24593 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
24594
24595         * metadata.c (mono_metadata_parse_field_type): Implement. 
24596         (do_mono_metadata_parse_type): Split engine from
24597         mono_metadata_parse_type, so that we can create smaller structures
24598         for things that just have one pointer to the MonoType (look at
24599         the MonoFieldType)
24600
24601 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
24602
24603         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
24604         as Jan Gray found out, it is incorrect. 
24605
24606 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
24607
24608         * assembly.c: Implement asssembly loading.  This loads an image
24609         and loads all the referenced assemblies.  Come to think of it, we
24610         could always do lazy loading of the assemblies. 
24611
24612         * image.c (mono_image_open): Keep loaded images in a hashtable.
24613
24614         * image.h (MonoImage): Add reference count.
24615
24616 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
24617
24618         * assembly.c (mono_assembly_open): Keep track of the file name in
24619         case the assembly has no ASSEMBLY table.
24620
24621         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
24622         from get.c here.
24623
24624 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
24625
24626         * metadata.c, metadata.h: decode local vars in method header
24627         parse function. Change callers accordingly.
24628
24629 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
24630
24631         * metadata.h, cil-coff.h: protect against multiple inclusion.
24632         Added some new structures to hold information decoded from metadata:
24633         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
24634         and relevant decoding/free functions.
24635         * metadata.c: implement decoding functions. Add warning for out of bounds
24636         index in mono_metadata_locate(). Implement mono_get_method () to retreive
24637         all the info about a method signature and invocation. Remove check on
24638         uninitialized local var in parse_mh() and fix memory leak.
24639
24640 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
24641
24642         * metadata.h: More macros.
24643
24644         * tokentype.h: New file.
24645
24646 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
24647
24648         * assembly.c: added a consistency check and initialize
24649         some structures with g_new0().
24650         * metadata.c: fixed a couple more bugs in table size computation
24651         and add other checks for out-of bound access to metadata.
24652
24653 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
24654
24655         * metatada.c: fix bugs computing table sizes. Spew a
24656         warning when index in string heap is out of bounds.
24657
24658 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
24659
24660         * metadata.h: Add a couple of macros to manipulate tokens. 
24661
24662 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
24663
24664         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
24665         cli_section_tables).
24666
24667 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
24668
24669         * metadata.c (mono_metadata_user_string): New function, provides
24670         access to the UserString heap. 
24671
24672 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
24673
24674         * metadata.c: Add inline documentation.
24675
24676 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
24677
24678         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
24679         files. 
24680
24681 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
24682
24683         * typeattr.h: New file, TypeAttribute flags. 
24684
24685 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
24686
24687         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
24688         mono_assembly_ensure_section): Section loading code.
24689         (load_section_tables): Load the sections.
24690
24691         * mono/metadata/metadata.c (mono_metadata_locate_token,
24692         mono_metadata_locate): Functions to locate the information
24693         definition given a token or a table and an index.
24694         (mono_metadata_compute_table_bases): New.
24695         (compute_size): New function to compute the sizes of the various
24696         tables.
24697
24698         * mono/metadata/metadata.h: Finish listing the different index
24699         types. 
24700
24701         * mono/metadata/pedump.c: Improve to dump new information.
24702
24703 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
24704
24705         * mono/metadata/metadata.c: Entered all the tables matching
24706         Beta2. 
24707
24708         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
24709
24710
24711